import type { RootEntityType } from '../model/implementation/root-entity-type.js'; import type { FlexSearchFilterTypeGenerator } from './flex-search-filter-input-types/generator.js'; import type { FlexSearchPostFilterAugmentation } from './flex-search-post-filter-augmentation.js'; import type { OrderByAndPaginationAugmentation } from './order-by-and-pagination-augmentation.js'; import type { OutputTypeGenerator } from './output-type-generator.js'; import type { QueryNodeField, QueryNodeObjectType } from './query-node-object-type/definition.js'; 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; }