import { Constructable, Entity, EntityIdentifiable } from '../entity'; import type { Filterable } from './filterable'; /** * Data structure to combine [[Filterable]]s conjunctively and / or disjunctively. A FilterList matches when all filterables within the `andFilters` match and when at least one filterable within the `orFilters` matches. Should not be used directly. * @typeparam EntityT - */ export declare class FilterList implements EntityIdentifiable { andFilters: Filterable[]; orFilters: Filterable[]; /** * Constructor type of the entity to be filtered. */ readonly _entityConstructor: Constructable; /** * Entity type of the entity tp be filtered. */ readonly _entity: EntityT; /** * Creates an instance of FilterList. * @param andFilters - Filters to be combined by logical conjunction (`and`) * @param orFilters - Filters to be combined by logical disjunction (`or`) */ constructor(andFilters?: Filterable[], orFilters?: Filterable[]); /** * @deprecated Since v1.28.1. This function should not be used, since some OData Services might not support the flattened filter expression. * Flattens `andFilters` and `orFilters` as far as possible while staying logically equivalent. * @returns Flattened filter list. */ flatten(): FilterList; private canFlatten; private isEmpty; private _flatten; } export declare function isFilterList(filterable: Filterable): filterable is FilterList; //# sourceMappingURL=filter-list.d.ts.map