import { IWidgetInstance, IAuthenticator, AuthenticatorEventType } from "./api.interfaces";
import { IWidgetRegistration } from "../orchestrator/IWidgetRegistration";
import { UserSignInStatus } from "ClientApp/app/externalApi/externalApiTypes";
export declare class MockWidgetInstance implements IWidgetInstance {
    private _apiObjects;
    constructor();
    get widgetRegistration(): IWidgetRegistration;
    get widgetId(): string;
    get widgetInstanceId(): string;
    get widgetDefinitionId(): string;
    get instanceId(): number;
    get indexedDBInstanceId(): number;
    get accountId(): string;
    set accountId(accountId: string);
    get title(): string;
    set title(title: string);
    get attribution(): string;
    set attribution(title: string);
    getProperty(name: string): any;
    setProperty(name: string, value: any): void;
    addPropertyChangeListener(listener: (name: string) => void): void;
    removePropertyChangeListener(listener: (name: string) => void): void;
    setGetApi(apiName: string, minVersion: number, targetVersion: number, apiObject: any): void;
    tryGetApi<T>(apiName: string, minVersion: number, targetVersion: number): T | null;
}
export declare class MockAuthenticator implements IAuthenticator {
    addEventListener(listener: (eventName: AuthenticatorEventType) => void): void;
    removeEventListener(listener: (eventName: AuthenticatorEventType) => void): void;
    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: string): 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;
    }>;
}
