import { APIKey, OAuth, BasicAuth, BearerToken } from '../../identity/credential';
export declare enum WidgetBaseEvent {
    Ready = "ready",
    PostWidgetParameters = "post-widget-parameters",
    Error = "error",
    CloseWithError = "close-with-error"
}
export interface IWidgetBaseProps {
    widgetOrigin: string;
    widgetPath?: string;
    credential?: APIKey | OAuth | BasicAuth | BearerToken;
    locale?: string;
    theme?: string;
}
export default class WidgetBase {
    private _origin;
    private _messageToken;
    private _eventHandlers;
    protected _widgetOrigin: string;
    protected _widgetPath: string;
    protected _credential?: APIKey | OAuth | BasicAuth | BearerToken;
    protected _locale: string;
    protected _theme: string;
    protected _element?: HTMLIFrameElement;
    protected _isReady: boolean;
    protected _queuedMessages: any[];
    get widgetOrigin(): string;
    set widgetOrigin(v: string);
    get widgetPath(): string;
    set widgetPath(v: string);
    get credential(): APIKey | OAuth | BasicAuth | BearerToken | undefined;
    set locale(v: string);
    set theme(v: string);
    get element(): HTMLIFrameElement | undefined;
    get isReady(): boolean;
    constructor(props: IWidgetBaseProps);
    private _addPostMessageEventListener;
    private _removePostMessageEventListener;
    private _handleMessage;
    private _emitEvent;
    private _addEventHandler;
    private _removeEventHandler;
    private _postMessage;
    protected _build(widgetName: string, target: Element, widgetParameters?: any, widgetPostParameters?: any): void;
    protected _destroy(): void;
    on(event: string, handler: (data?: any) => void): {
        reconnect: () => void;
        disconnect: () => void;
    };
}
