import { RuleEngineRequestContext, RuleEngineContext, RuleEngineSitecoreContext, ParsedRuleXmlData, OperatorFunctionDefinition, ConditionFunctionDefinition, ActionFunctionDefinition } from './types/ruleEngine';
export declare class JssRuleEngine {
    commandDefinitions: Map<string, ActionFunctionDefinition>;
    ruleDefinitions: Map<string, ConditionFunctionDefinition>;
    operatorDefinitions: Map<string, OperatorFunctionDefinition>;
    debug: boolean;
    sitecoreContext?: RuleEngineSitecoreContext;
    requestContext?: RuleEngineRequestContext;
    mockDate?: Date;
    constructor(options?: RuleEngineContext);
    setOptions(options?: RuleEngineContext): void;
    initialize(_options: any): void;
    registerCommand(id: string, command: ActionFunctionDefinition): void;
    registerRule(id: string, rule: ConditionFunctionDefinition): void;
    registerOperator(id: string, operator: OperatorFunctionDefinition): void;
    parseRuleXml(ruleXml: string, ruleEngineContext: RuleEngineContext): ParsedRuleXmlData | null;
    setSitecoreContext(sitecoreContext: RuleEngineSitecoreContext): void;
    setRequestContext(requestContext?: RuleEngineRequestContext): void;
    setMockDate(dateObj: Date): void;
    getRuleEngineContext(): RuleEngineContext;
    runRule(parsedRule: ParsedRuleXmlData | null, ruleEngineContext: RuleEngineContext): Promise<true | null>;
    runRuleActions(parsedRule: ParsedRuleXmlData | null, ruleActions: any, ruleEngineContext: RuleEngineContext): Promise<void>;
    prefetchItems(_ruleEngineContext: RuleEngineContext): void;
    parseAndRunRule(ruleXml: any, context?: RuleEngineContext): Promise<true | null>;
    debugMessage(..._args: any[]): void;
}
