import moment from 'moment' ; import { EdmTypeShared } from '../edm-types' ; import { EntityBase , ODataVersionOf } from '../entity-base' ; import { Field } from '../selectable' ; import { Filter } from './filter' ; internal export abstract class FilterFunction < EntityT extends EntityBase , ReturnT > { param functionName param parameters param edmType constructor ( readonly functionName , readonly parameters , readonly edmType ) { } param value param edmType returns equals ( value ) { return new Filter ( this , 'eq' , value , this . edmType ) ; } param value param edmType returns notEquals ( value ) { return new Filter ( this , 'ne' , value , this . edmType ) ; } } internal export type FilterFunctionPrimitiveParameterType = number | string | moment . Moment ; internal export type FilterFunctionParameterType < EntityT extends EntityBase > = FilterFunctionPrimitiveParameterType | Field < EntityT , boolean , boolean > | FilterFunction < EntityT , any > | FilterFunctionPrimitiveParameterType [ ] ;