import type { CollectionQuery, PreparedWhere, PreparedQuery } from './types/index.js'; import { Models, PermissionOperations } from '../schema/index.js'; import { Session } from '../session.js'; /** * User facing prepare query options */ type PrepareQueryOptions = { applyPermission: PermissionOperations | undefined; replaceStaticVariables?: boolean; }; /** * Internal prepare query options */ type PrepareQueryRecursiveOptions = Required & { isExpandingPermission: boolean; permissionStack: string[]; queryStack: CollectionQuery[]; }; export declare function prepareQuery(query: CollectionQuery, schema: Models | undefined, variables: Record, session: Session | undefined, options: PrepareQueryOptions): PreparedQuery; /** * Validates where clauses and transforms them to statements, groups, or subqueries * Applies permissions if specified in options * Replaces static variables, other vars handled by query engine */ export declare function prepareQueryFilters(query: CollectionQuery, schema: Models | undefined, variables: Record, session: Session | undefined, options: PrepareQueryRecursiveOptions): PreparedWhere | undefined; export {};