import { ExpressionReturnType, TypeMap } from '@luvies/evaluator';
export interface Rule {
    expression: string;
    context?: TypeMap;
}
export interface RuleResult {
    id: string;
    rule: Rule;
    value?: ExpressionReturnType;
    activated?: boolean;
    error?: Error;
}
export interface RuleResults {
    results: Map<string, ExpressionReturnType>;
    activated: string[];
    deactivated: string[];
    errors: Map<string, Error>;
}
export interface RulesOptions {
    previous?: Map<string, ExpressionReturnType>;
    aliases?: Map<string, string>;
}
export declare class Rules {
    aliases: Map<string, string>;
    private _context;
    private _previous?;
    private _rules;
    constructor(context?: TypeMap, options?: RulesOptions);
    set(id: string, rule: Rule): this;
    get(id: string): Rule | undefined;
    has(id: string): boolean;
    delete(id: string): boolean;
    eval(): Promise<RuleResults>;
    private _evalRule;
}
//# sourceMappingURL=rules.d.ts.map