import type { FileRecord, IndexedDocument, QueryDiagnostics, QueryResult, QuerySpec } from "../types.js"; import type { ExpressionNode } from "./expression/index.js"; export interface CompileQueryOptions { strict?: boolean; } export interface CompiledQuery { spec: QuerySpec; strict: boolean; globalFilter?: CompiledFilter; viewFilters: Map; formulas: Map; formulaOrder: string[]; summaryFormulas: Map; } type CompiledFilter = { kind: "expr"; expression: ExpressionNode; } | { kind: "tree"; and?: CompiledFilter[]; or?: CompiledFilter[]; not?: CompiledFilter; }; export declare function compileQuery(spec: QuerySpec, options?: CompileQueryOptions): CompiledQuery; export interface ExecuteQueryOptions { compiled: CompiledQuery; view?: string; documents: IndexedDocument[]; diagnostics?: QueryDiagnostics; thisFile?: FileRecord; } export declare function executeCompiledQuery(options: ExecuteQueryOptions): QueryResult; export {};