import { IWidgetInstance, IWidgetModel, IWidgetModelPinPreference, IWidgetModelRegistration, WidgetModelEvent, WidgetRegistrationEvent, WidgetSize } from "../apis/api.interfaces";
import { IWidgetModelOrchestratorFactory } from "./IWidgetModelOrchestratorFactory";
export declare class WidgetModelApi implements IWidgetModel {
    private _eventListeners;
    private _registrationEventListeners;
    private _orchestratorFactory;
    constructor(orchestratorFactory: IWidgetModelOrchestratorFactory);
    removeWidget(widgetId: string, instanceId: number): void;
    getWidgetRegistrations(): Promise<Array<IWidgetModelRegistration>>;
    getWidgetRegistration(id: string): Promise<IWidgetModelRegistration | undefined>;
    getUserPinnedPreferences(): Promise<Array<IWidgetModelPinPreference>>;
    createPinPreference(id: string, instanceId?: number): Promise<IWidgetInstance>;
    removePinPreference(id: string, instanceId: number): Promise<void>;
    setPinnedWidgetSize(id: string, instanceId: number, size: WidgetSize): Promise<void>;
    onVisibleStateChanged(id: string, instanceId: number, isVisible: boolean): Promise<void>;
    addEventListener(listener: (eventName: WidgetModelEvent, widgetInstance: [string, number, string, string]) => void): void;
    removeEventListener(listener: (eventName: WidgetModelEvent, widgetInstance: [string, number, string, string]) => void): void;
    private orchestratorEventListener;
    registrationsAdded(registrations: string[]): void;
    registrationsRemoved(registrations: string[]): void;
    registrationsChanged(registrations: string[]): void;
    private registrationEvent;
    addRegistrationListener(listener: (eventName: WidgetRegistrationEvent, registrations: string[]) => void): void;
    removeRegistrationListener(listener: (eventName: WidgetRegistrationEvent, registrations: string[]) => void): void;
}
