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