import { CompareOptions } from '../query/builder/types.js'; import { IndexInterface } from '../indexes/base-index.js'; import { BasicExpression } from '../query/ir.js'; import { CollectionLike } from '../types.js'; /** * Result of index-based query optimization */ export interface OptimizationResult { canOptimize: boolean; matchingKeys: Set; } /** * Finds an index that matches a given field path */ export declare function findIndexForField(collection: CollectionLike, fieldPath: Array, compareOptions?: CompareOptions): IndexInterface | undefined; /** * Intersects multiple sets (AND logic) */ export declare function intersectSets(sets: Array>): Set; /** * Unions multiple sets (OR logic) */ export declare function unionSets(sets: Array>): Set; /** * Optimizes a query expression using available indexes to find matching keys */ export declare function optimizeExpressionWithIndexes(expression: BasicExpression, collection: CollectionLike): OptimizationResult; /** * Checks if an expression can be optimized */ export declare function canOptimizeExpression(expression: BasicExpression, collection: CollectionLike): boolean;