import { Context, Expression, FunctionsTable, ValidationContext, EvaluationResult } from '../types';
export declare const evaluate: <C extends Context, F extends FunctionsTable<C, CustomEvaluatorFuncRunOptions>, Ignore = never, CustomEvaluatorFuncRunOptions = undefined>(expression: Expression<C, F, Ignore, CustomEvaluatorFuncRunOptions>, context: C, functionsTable: F, runOptions: CustomEvaluatorFuncRunOptions) => Promise<boolean>;
export declare const validate: <C extends Context, F extends FunctionsTable<C, CustomEvaluatorFuncRunOptions>, Ignore = never, CustomEvaluatorFuncRunOptions = undefined>(expression: Expression<C, F, Ignore, CustomEvaluatorFuncRunOptions>, validationContext: ValidationContext<C, Ignore>, functionsTable: F, runOptions: CustomEvaluatorFuncRunOptions) => Promise<void>;
export declare const evaluateWithReason: <C extends Context, F extends FunctionsTable<C, CustomEvaluatorFuncRunOptions>, Ignore = never, CustomEvaluatorFuncRunOptions = undefined>(expression: Expression<C, F, Ignore, CustomEvaluatorFuncRunOptions>, context: C, functionsTable: F, runOptions: CustomEvaluatorFuncRunOptions) => Promise<EvaluationResult<C, F, Ignore, CustomEvaluatorFuncRunOptions>>;
