import { AuthAdapter } from '../adapters/auth.adapter';
import { BasicUserAttributesModel } from '../model/basic-user-attributes.model';
import { ContextBlock } from '../model/rules.model';
import { BFastDatabaseOptions } from "../bfast-database.option";
import { SecurityController } from "../controllers/security.controller";
import { DatabaseController } from "../controllers/database.controller";
import { DatabaseAdapter } from "../adapters/database.adapter";
export declare class AuthFactory implements AuthAdapter {
    private domainName;
    constructor();
    resetPassword(email: string, context?: ContextBlock): Promise<any>;
    signIn<T extends BasicUserAttributesModel>(userModel: T, context: ContextBlock, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<T>;
    signUp<T extends BasicUserAttributesModel>(userModel: T, context: ContextBlock, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: DatabaseAdapter, options: BFastDatabaseOptions): Promise<T>;
    deleteUser(context: ContextBlock): Promise<any>;
    sendVerificationEmail(email: string, context?: ContextBlock): Promise<any>;
    update<T extends BasicUserAttributesModel>(userModel: T, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: DatabaseAdapter, context: ContextBlock, options: BFastDatabaseOptions): Promise<T>;
    updatePassword(password: string, databaseController: DatabaseController, securityController: SecurityController, databaseAdapter: DatabaseAdapter, context: ContextBlock, options: BFastDatabaseOptions): Promise<any>;
}
