import { UserSignInStatus } from "../../externalApi/externalApiTypes";
import { AuthenticatorEventType, IAuthenticator } from "../apis/api.interfaces";
export declare type signInType = "banner" | "signInButton" | "clientapp";
export declare class AuthenticatorApi implements IAuthenticator {
    private _eventListeners;
    constructor();
    initialize(): Promise<void>;
    getAccountIdsAsync(): Promise<Array<string>>;
    getDefaultAccountIdAsync(): Promise<string>;
    getSecondaryAccountIdAsync(): Promise<string>;
    isMSAAccountAsync(accountId: string): Promise<boolean>;
    isAADAccountAsync(accountId: string): Promise<boolean>;
    getAccountPictureAsync(accountId: string): Promise<string>;
    getAccountPropertyAsync(accountId: string, name: string): Promise<string>;
    getAccountTokenAsync(accountId: string, clientId: string, scope: string, resource: string, apiVersion: string, requestSource: string): Promise<{
        token: string;
        errorResult: number;
        interactionRequired: boolean;
        errorMessage: string;
    }>;
    setSignInStatus(status: UserSignInStatus): Promise<void>;
    getReauthRequiredStatusAsync(): Promise<boolean>;
    verifyAccountAsync(entrypoint?: string): Promise<void>;
    signInUserAsync(entrypoint?: signInType): Promise<void>;
    isUserSignedInAsync(): Promise<boolean>;
    signOutUserAsync(entrypoint?: string): Promise<void>;
    getSignInType(clientId: string): Promise<number>;
    getSignInTargetAccountId(): Promise<string>;
    getSignedInAccount(clientId: string): Promise<string>;
    signOutAccount(clientId: string): Promise<void>;
    getAccountPickedTokenAsync(msaClientId: string, aadClientId: string, msaScope: string, aadScope: string, msaResource: string, aadResource: string, apiVersion: string, requestSource: string): Promise<{
        token: string;
        errorResult: number;
        interactionRequired: boolean;
        errorMessage: string;
    }>;
    addEventListener(listener: (eventName: AuthenticatorEventType) => void): void;
    removeEventListener(listener: (eventName: AuthenticatorEventType) => void): void;
    private fireEvent;
}
