import { BFastOptions } from '../bfast-option';
import { AuthAdapter } from "../adapters/auth";
import { FilesAdapter } from "../adapters/files";
import { Rules } from "../models/rules";
import { RuleResponse } from "../models/rule-response";
import { DatabaseAdapter } from "../adapters/database";
export declare function getRulesKey(rules: Rules): string[];
export declare function handleAuthenticationRule(rules: Rules, ruleResponse: RuleResponse, authAdapter: AuthAdapter, databaseAdapter: DatabaseAdapter, options: BFastOptions): Promise<RuleResponse>;
export declare function handlePolicyRule(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions): Promise<RuleResponse>;
export declare function handleDeleteRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions, transaction: any): Promise<RuleResponse>;
export declare function handleQueryRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions, transaction: any): Promise<RuleResponse>;
export declare function handleBulkRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions): Promise<RuleResponse>;
export declare function handleCreateRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions, transactionSession: any): Promise<RuleResponse>;
export declare function handleUpdateRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions, transaction: any): Promise<RuleResponse>;
export declare function handleStorageRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, authAdapter: AuthAdapter, filesAdapter: FilesAdapter, options: BFastOptions): Promise<RuleResponse>;
export declare function handleAggregationRules(rules: Rules, ruleResponse: RuleResponse, databaseAdapter: DatabaseAdapter, options: BFastOptions): Promise<RuleResponse>;
export declare function extractDomain(rule: string, remove: 'create' | 'query' | 'update' | 'delete' | 'index' | 'aggregate'): string;
