import { RuleResponse, RulesModel } from '../model/rules.model';
import { DatabaseController } from './database.controller';
import { AuthController } from './auth.controller';
import { StorageController } from './storage.controller';
import { UpdateRuleController } from './update.rule.controller';
import { BFastDatabaseOptions } from '../bfast-database.option';
import { SecurityController } from "./security.controller";
import { AuthAdapter } from "../adapters/auth.adapter";
import { DatabaseAdapter } from "../adapters/database.adapter";
import { FilesAdapter } from "../adapters/files.adapter";
export declare class RulesController {
    constructor();
    getRulesKey(rules: RulesModel): string[];
    handleAuthenticationRule(rules: RulesModel, ruleResponse: RuleResponse, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, authAdapter: AuthAdapter, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<RuleResponse>;
    private processAuthenticationBlock;
    handleAuthorizationRule(rules: RulesModel, ruleResponse: RuleResponse, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<RuleResponse>;
    handleCreateRules(rules: RulesModel, ruleResponse: RuleResponse, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: any, options: BFastDatabaseOptions, transactionSession: any): Promise<RuleResponse>;
    handleDeleteRules(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: any, options: BFastDatabaseOptions, transactionSession: any): Promise<RuleResponse>;
    handleQueryRules(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: any, options: BFastDatabaseOptions, transactionSession: any): Promise<RuleResponse>;
    handleBulkRule(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, updateRuleController: UpdateRuleController, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: any, options: BFastDatabaseOptions): Promise<RuleResponse>;
    handleUpdateRules(rules: RulesModel, ruleResponse: RuleResponse, updateRuleController: UpdateRuleController, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions, transactionSession: any): Promise<RuleResponse>;
    handleStorageRule(rulesBlockModel: RulesModel, ruleResultModel: RuleResponse, storageController: StorageController, authController: AuthController, databaseController: DatabaseController, securityController: SecurityController, authAdapter: AuthAdapter, databaseAdapter: any, filesAdapter: FilesAdapter, options: BFastDatabaseOptions): Promise<RuleResponse>;
    extractDomain(rule: string, remove: 'create' | 'query' | 'update' | 'delete' | 'index' | 'aggregate'): string;
}
