import { AuthProvider, AuthSignInResponse } from './interfaces/provider.interface';
import { Injector } from '@angular/core';
import { AuthConfig } from './interfaces/config.interface';
import { Storage } from '@bravobit/bb-foundation/storage';
import { AuthMapper } from './helpers/mapper.helper';
import { Api } from '@bravobit/bb-foundation/api';
export declare class Auth {
    private _storage;
    private _mapper;
    private _injector;
    private _api?;
    private _config?;
    private readonly _apiUserStorageKey;
    private readonly _apiTokenStorageKey;
    private readonly _apiRefreshTokenStorageKey;
    private _user$;
    constructor(_storage: Storage, _mapper: AuthMapper, _injector: Injector, _api?: Api, _config?: AuthConfig);
    private readonly router;
    initialize(): () => Promise<void>;
    readonly isAuthenticated: boolean;
    readonly user: import("rxjs").Observable<any>;
    readonly accessToken: string;
    readonly refreshToken: string;
    readonly payload: import("./interfaces/token.interface").AuthToken;
    me<T = any>(): import("rxjs").Observable<T>;
    signIn(provider: AuthProvider, as?: string[]): Promise<AuthSignInResponse>;
    signInWithEmail(email: string, password: string, as?: string[]): Promise<AuthSignInResponse>;
    signInWithVerifyCode(code: string, verifyToken: string): Promise<AuthSignInResponse>;
    register<T = any>(data: any): Promise<any>;
    logout(): void;
    refresh(): import("rxjs").Observable<any>;
    requestPassword(email: string): Promise<any>;
    resetPassword(token: string, newPassword: string): Promise<any>;
    guard(type: string): false | import("@angular/router").UrlTree;
    setTokens(accessToken?: string, refreshToken?: string): void;
    setUser(user: unknown): void;
    clear(): void;
}
