import { AuthAdapter } from '../adapters/auth.adapter';
import { ContextBlock } from '../model/rules.model';
import { BasicUserAttributesModel } from '../model/basic-user-attributes.model';
import { DatabaseController } from './database.controller';
export declare class AuthController {
    constructor(auth: AuthAdapter, database: DatabaseController);
    private policyDomainName;
    private static validateData;
    addPolicyRule(ruleId: string, rule: string, context: ContextBlock): Promise<any>;
    hasPermission(ruleId: string, context: ContextBlock): Promise<boolean>;
    deleteUser(context?: ContextBlock): Promise<any>;
    resetPassword(email: string, context?: ContextBlock): Promise<any>;
    sendVerificationEmail(email: string, context?: ContextBlock): Promise<any>;
    signIn<T extends BasicUserAttributesModel>(userModel: T, context?: ContextBlock): Promise<T>;
    signUp<T extends BasicUserAttributesModel>(userModel: T, context?: ContextBlock): Promise<T>;
    update<T extends BasicUserAttributesModel>(userModel: T, context?: ContextBlock): Promise<T>;
    updatePassword(password: string, context?: ContextBlock): Promise<any>;
}
