import { Context, FunctionsTable, ValidationContext, RuleFunctionsTable, Rule, ResolvedConsequence } from '../types';
export declare class RulesEngine<ConsequencePayload, C extends Context, RF extends RuleFunctionsTable<C, ConsequencePayload, CustomEngineRuleFuncRunOptions>, F extends FunctionsTable<C, CustomEngineRuleFuncRunOptions>, Ignore = never, CustomEngineRuleFuncRunOptions = undefined> {
    private readonly functionsTable;
    private readonly ruleFunctionsTable;
    constructor(functionsTable: F, ruleFunctionsTable: RF);
    evaluate(rules: Rule<ConsequencePayload, RF, C, F, Ignore, CustomEngineRuleFuncRunOptions>[], context: C, runOptions: CustomEngineRuleFuncRunOptions): Promise<void | ResolvedConsequence<ConsequencePayload>>;
    evaluateAll(rules: Rule<ConsequencePayload, RF, C, F, Ignore, CustomEngineRuleFuncRunOptions>[], context: C, runOptions: CustomEngineRuleFuncRunOptions): Promise<void | ResolvedConsequence<ConsequencePayload>[]>;
    validate(rules: Rule<ConsequencePayload, RF, C, F, Ignore, CustomEngineRuleFuncRunOptions>[], validationContext: ValidationContext<C, Ignore>, runOptions: CustomEngineRuleFuncRunOptions): Promise<void>;
}
