import { IHostWebAccountApi } from "./deprecated_IHostWebAccountApi";
import { UserSignInStatus } from "./externalApiTypes";
export interface IHostAuthenticatorApi {
    getDefaultAccountId(): Promise<string>;
    getSecondaryAccountId(): Promise<string>;
    getAccountIds(): Promise<Array<string>>;
    getAccountPictureAsync(accountId: string, callback: (imageString: string) => void): void;
    getAccountProperty(accountId: string, name: string): Promise<string>;
    getAccountTokenAsync(accountId: string, clientId: string, scope: string, resource: string, apiVersion: string, requestSource: string, callback: (token: string, errorResult: number, userInteractionRequired: boolean, errorMessage: string) => void): void;
    getIsOnlineAccountAvailable(): Promise<boolean>;
    getDefaultAccountAsync(callback: (value: IHostWebAccountApi) => void): void;
    addNewAccountAsync(callback: (accountAdded: boolean) => void): void;
    addEventListener(eventName: string, listener: Function): void;
    removeEventListener(eventName: string, listener: Function): void;
    setSignInStatus(signinStatus: UserSignInStatus): void;
    getReauthRequiredStatus(): Promise<boolean>;
    verifyAccountAsync(callback: Function): void;
    getSignInStatus(): Promise<UserSignInStatus>;
    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, callback: (token: string, errorResult: number, userInteractionRequired: boolean, errorMessage: string) => void): void;
}
