import { RootEntityType } from '../model/implementation'; import { FlexSearchFilterTypeGenerator } from './flex-search-filter-input-types'; import { FlexSearchPostFilterAugmentation } from './flex-search-post-filter-augmentation'; import { OrderByAndPaginationAugmentation } from './order-by-and-pagination-augmentation'; import { OutputTypeGenerator } from './output-type-generator'; import { QueryNodeField, QueryNodeObjectType } from './query-node-object-type'; export declare const DEFAULT_FLEXSEARCH_MAX_FILTERABLE_AMOUNT: number; /** * Augments list fields with filter and pagination features */ export declare class FlexSearchGenerator { private readonly flexSearchTypeGenerator; private readonly outputTypeGenerator; private readonly postFilterAugmentation; private readonly orderByAugmentation; constructor(flexSearchTypeGenerator: FlexSearchFilterTypeGenerator, outputTypeGenerator: OutputTypeGenerator, postFilterAugmentation: FlexSearchPostFilterAugmentation, orderByAugmentation: OrderByAndPaginationAugmentation); generate(rootEntityType: RootEntityType): QueryNodeField; generateMeta(rootEntityType: RootEntityType, metaType: QueryNodeObjectType): QueryNodeField; generateFromConfig(schemaField: QueryNodeField, rootEntityType: RootEntityType): QueryNodeField; private buildFlexSearchFilterNode; /** * Creates the FlexSearchNode without the List-augmentation so it can be used in the PreExecutionQueryNode that prevents the usage of the list-augmentation arguments for too many objects * @param rootEntityType * @param args * @param context */ private getPreExecQueryNode; private augmentWithCondition; private buildFlexSearchExpressionFilterNode; }