import { RuleResponse, RulesModel } from '../model/rules.model';
import { UpdateRuleController } from './update.rule.controller';
import { BFastDatabaseOptions } from '../bfast-database.option';
import { LogController } from './log.controller';
export declare class RulesController {
    private readonly updateRuleController;
    private readonly _messageController;
    private readonly config;
    constructor(updateRuleController: UpdateRuleController, _messageController: LogController, config: BFastDatabaseOptions);
    getRulesKey(rules: RulesModel): string[];
    handleAuthenticationRule(rules: RulesModel, ruleResponse: RuleResponse): Promise<RuleResponse>;
    handleAuthorizationRule(rules: RulesModel, ruleResponse: RuleResponse): Promise<RuleResponse>;
    handleIndexesRule(rules: RulesModel, ruleResponse: RuleResponse): Promise<RuleResponse>;
    handleCreateRules(rules: RulesModel, ruleResponse: RuleResponse, transactionSession?: any): Promise<RuleResponse>;
    handleDeleteRules(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, transactionSession?: any): Promise<RuleResponse>;
    handleQueryRules(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, transactionSession?: any): Promise<RuleResponse>;
    handleTransactionRule(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse): Promise<RuleResponse>;
    handleUpdateRules(rules: RulesModel, ruleResponse: RuleResponse, transactionSession?: any): Promise<RuleResponse>;
    handleAggregationRules(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, transactionSession?: any): Promise<RuleResponse>;
    handleStorageRule(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse): Promise<RuleResponse>;
    extractDomain(rule: string, remove: 'create' | 'query' | 'update' | 'delete' | 'index' | 'aggregate'): string;
}
