import type { FlexSearchTokenizable } from '../core/database/database-adapter.js'; import type { Clock, IDGenerator } from '../core/execution/execution-options.js'; import type { QueryNode } from '../core/query-tree/base.js'; import type { AQLFragment } from './aql.js'; import { AQLCompoundQuery } from './aql.js'; export interface QueryGenerationOptions { /** * An interface to determine the current date/time */ readonly clock: Clock; /** * An interface to generate IDs, e.g. for new child entities. */ readonly idGenerator: IDGenerator; /** * If set, an `OPTIONS { maxProjections: }` hint is added to FOR loops that iterate over root entity * documents (including relation traversals). * * See {@link ExecutionOptions.maxProjections} for details. */ readonly maxProjections?: number; /** * An optional prefix prepended to all collection and view names in generated AQL queries. * See {@link ArangoDBConfig.collectionNamePrefix} for details. */ readonly collectionNamePrefix?: string; /** * If set, vector searches where `skip + first` exceeds this value result in a runtime error. * See {@link ArangoDBConfig.vectorSearchMaxSkipPlusFirst} for details. */ readonly vectorSearchMaxSkipPlusFirst?: number; /** * If set, AQL variables are associated with the query tree variables they represent so * getExecutableQueries() can report them (see collectQueryTreeVariableIndices) */ readonly trackQueryTreeVariables?: boolean; } export declare function getAQLQuery(node: QueryNode, options?: Partial): AQLCompoundQuery; export declare function generateTokenizationQuery(tokensFiltered: ReadonlyArray): AQLFragment;