import type * as Stuntman from '@stuntman/shared';
declare class RuleExecutor implements Stuntman.RuleExecutorInterface {
    private _rules;
    private rulesLock;
    private get enabledRules();
    constructor(rules?: Stuntman.Rule[]);
    private hasExpired;
    private cleanUpExpired;
    addRule(rule: Stuntman.Rule, overwrite?: boolean): Promise<Stuntman.LiveRule>;
    private _removeRule;
    removeRule(id: string): Promise<void>;
    removeRule(rule: Stuntman.Rule): Promise<void>;
    enableRule(id: string): void;
    enableRule(rule: Stuntman.Rule): void;
    disableRule(id: string): void;
    disableRule(rule: Stuntman.Rule): void;
    findMatchingRule(request: Stuntman.Request): Promise<Stuntman.LiveRule | null>;
    getRules(): Promise<readonly Stuntman.LiveRule[]>;
    getRule(id: string): Promise<Stuntman.LiveRule | undefined>;
}
export declare const getRuleExecutor: (mockUuid: string, overrideRules?: Stuntman.DeployedRule[]) => RuleExecutor;
export {};
//# sourceMappingURL=ruleExecutor.d.ts.map