import { AsyncLogicEngine } from 'json-logic-engine'; import { EvaluatorConfig, ExpressionSchema, ExecutionContext, ExecutionResult } from '../expression.js'; import '@fajarnugraha37/error'; declare class ExpressionEvaluator { private readonly cache; private readonly engine; private readonly config; constructor(config?: EvaluatorConfig); addKeyword(alias: string, method: (args: any, context: any, above: any[], engine: AsyncLogicEngine) => any, options?: { deterministic?: boolean; lazy?: boolean; traverse?: boolean; }): this; addSyncModule(alias: string, module: unknown, options?: { deterministic?: boolean; }): this; addAsyncModule(alias: string, module: unknown, options?: { deterministic?: boolean; }): this; evaluate(schema: ExpressionSchema, context: ExecutionContext): Promise>; evaluateMany(schemas: ExpressionSchema[], context: ExecutionContext): Promise[]>; evaluateOrThrow(schema: ExpressionSchema, data: unknown): Promise; isCached(schema: ExpressionSchema): boolean; clearCache(): void; getCacheStats(): { size: () => number; maxSize: number | undefined; }; precompile(schemas: ExpressionSchema[]): Promise; validate(schema: ExpressionSchema): Promise; getDependencies(schema: ExpressionSchema): string[]; private evaluateInternal; private compile; private getCacheKey; private hashSchema; private createTimeoutPromise; private validateSchema; private validateContext; private addBuiltinMethods; } export { ExpressionEvaluator };