import { DeSerializers } from '../de-serializers' ; import { EdmTypeShared } from '../edm-types' ; import { EntityBase , EntityIdentifiable , ODataVersionOf } from '../entity-base' ; import type { FilterFunction } from './filter-function-base' ; import type { Filterable } from './filterable' ; type FilterOperatorString = 'eq' | 'ne' ; type FilterOperatorBoolean = 'eq' | 'ne' ; type FilterOperatorNumber = 'eq' | 'ne' | 'lt' | 'le' | 'gt' | 'ge' ; internal export type FilterOperator = FilterOperatorString | FilterOperatorBoolean | FilterOperatorNumber ; internal export type FilterOperatorByType < FieldT > = FieldT extends string ? FilterOperatorString : FieldT extends number ? FilterOperatorNumber : FilterOperatorBoolean ; typeparam typeparam internal export class Filter < EntityT extends EntityBase , DeSerializersT extends DeSerializers , FieldT > implements EntityIdentifiable < EntityT , DeSerializersT > { /**
     * Entity type of the entity tp be filtered.
     */ readonly _entity : EntityT ; readonly _deSerializers : DeSerializersT ; param field param operator param value param edmType constructor ( public field , public operator , public value , public edmType ? ) { } } param filterable returns internal export function isFilter < EntityT extends EntityBase , DeSerializersT extends DeSerializers , FieldT > ( filterable ) { return ( typeof filterable [ 'field' ] !== 'undefined' && typeof filterable [ 'operator' ] !== 'undefined' && typeof filterable [ 'value' ] !== 'undefined' ) ; }