import { IWidgetInstance, WidgetProperty } from "../apis/api.interfaces";
import { IWidgetInstanceInternal } from "../orchestrator/IWidgetInstanceInternal";
import { IWidgetRegistration } from "../orchestrator/IWidgetRegistration";
import { Data } from "../orchestrator/VisibilityTelemetry";
import { WidgetApi } from "../orchestrator/WidgetApi";
import { EntryPoint, WidgetDesignation, WidgetPropertyInternal, WidgetState } from "../orchestrator/orchestrator.types";
export declare class WidgetInstance implements IWidgetInstance, IWidgetInstanceInternal {
    private _widgetId;
    private _instanceId;
    private _widgetInstanceId;
    private _indexedDBInstanceId;
    private _accountId;
    private _widgetRegistration;
    private _apiObjects;
    private _widgetDesignation;
    private _cachedProperties;
    private _widgetState;
    private _widgetErrorStateReason;
    private _widgetErrorCode;
    private _widgetIconUri;
    private _softRefreshRequested;
    private _telemetry;
    private _boardView;
    private _stateChangeListeners;
    private _executeActionListeners;
    private _submitActionListeners;
    private _isLoadForAddedInstancePending;
    private _isCustomElementDefined;
    private _loadingCompletePromise;
    private _loadingCompletePromiseResolver;
    private _loadingStartedPromise;
    private _loadingStartedPromiseResolver;
    constructor(registration: IWidgetRegistration, widgetId: string | undefined, // Generated id provided by the platform
    instanceId: number, widgetInstanceId: string | undefined, indexedDBInstanceId: number, widgetDesignation?: WidgetDesignation, cachedProperties?: Map<WidgetPropertyInternal | WidgetProperty, any>, firstRunCreation?: boolean);
    createWidgetPlatformInstance(pinned: boolean): Promise<void>;
    get cachedProperties(): Map<WidgetPropertyInternal | WidgetProperty, any>;
    get widgetRegistration(): IWidgetRegistration;
    set widgetId(widgetId: string);
    set widgetInstanceId(widgetInstanceId: string);
    get widgetId(): string;
    get widgetInstanceId(): string;
    get widgetDefinitionId(): string;
    get accountId(): string;
    set accountId(accountId: string);
    get instanceId(): number;
    get indexedDBInstanceId(): number;
    get entryPoint(): EntryPoint;
    get widgetDesignation(): WidgetDesignation;
    get widgetState(): WidgetState;
    set widgetState(state: WidgetState);
    get widgetIconUri(): string;
    get widgetErrorStateReason(): string;
    set widgetErrorStateReason(state: string);
    get widgetErrorCode(): number;
    set widgetErrorCode(state: number);
    get telemetry(): Data.Telemetry;
    get softRefreshRequested(): boolean;
    get isPlatform(): boolean;
    get boardView(): string;
    set boardView(boardView: string);
    set softRefreshRequested(softRefreshRequested: boolean);
    get isLoadForAddedInstancePending(): boolean;
    set isLoadForAddedInstancePending(isLoadForAddedInstancePending: boolean);
    get isCustomElementDefined(): boolean;
    set isCustomElementDefined(isCustomElementDefined: boolean);
    tryGetApi<T>(apiName: string, minVersion: number, targetVersion: number): T | null;
    setApi(apiName: string, version: number, createApi: WidgetApi | ((widgetInstance: IWidgetInstanceInternal) => WidgetApi)): void;
    getWidgetProperty(key: WidgetPropertyInternal | WidgetProperty): any;
    getAllWidgetProperties(): Map<WidgetPropertyInternal | WidgetProperty, any>;
    setWidgetProperty(key: WidgetPropertyInternal | WidgetProperty, value: any): Promise<any>;
    updateRegistration(registration: IWidgetRegistration): Promise<void>;
    refreshContent(): Promise<void>;
    suspend(): Promise<void>;
    resume(): Promise<void>;
    addExecuteActionListener(listener: (actionProps: Array<string>, instanceId: number, widgetInstanceId: string, widgetRegistration: IWidgetRegistration) => void): void;
    removeExecuteActionListener(listener: (actionProps: Array<string>, instanceId: number, widgetInstanceId: string, widgetRegistration: IWidgetRegistration) => void): void;
    addSubmitActionListener(listener: (actionProps: Array<string>, instanceId: number, widgetInstanceId: string, widgetRegistration: IWidgetRegistration) => void): void;
    removeSubmitActionListener(listener: (actionProps: Array<string>, instanceId: number, widgetInstanceId: string, widgetRegistration: IWidgetRegistration) => void): void;
    addStateChangeListener(listener: (widgetInstance: IWidgetInstanceInternal, previousState: WidgetState, currentState: WidgetState) => void): void;
    removeStateChangeListener(listener: (widgetInstance: IWidgetInstanceInternal, previousState: WidgetState, currentState: WidgetState) => void): void;
    signalAPIInitialization(): void;
    widgetInitializationPromise(): Promise<void>;
    isOutlookWidget(): boolean;
    notifyExecuteAction(actionProps: Array<string>): void;
    notifySubmitAction(actionProps: Array<string>): Promise<void>;
    private onStateChanged;
    private logWidgetInit;
}
