import { AddonMessage, InitMessage, KeyDownMessage } from './messages';
export * from './context';
export * from './messages';
export declare enum LogLevel {
    Trace = 1,
    Debug = 2,
    Errors = 9
}
export declare class AddonsSdk {
    logLevel: LogLevel;
    onInit: (context: InitMessage) => void;
    onKeyDown: (keyDownMessage: KeyDownMessage) => void;
    onMessage: (message: AddonMessage) => void;
    errorHandler: (message: string, ...optionalParams: any[]) => void;
    private host;
    /**
     * Creates an instance of AddonsSdk.
     * @memberof AddonsSdk
     */
    constructor();
    /**
     * Informs the interested parties that sdk is initialized and
     * ready to receive messages from host and other participants.
     *
     * @memberof AddonsSdk
     */
    ready(): void;
    /**
     * Informs the host that addon needs to be reinitialized with
     * fresh init context in order to operate properly
     * (e.g. addon token expired and addon needs from host new token)
     * @memberof AddonsSdk
     */
    initRequest: () => void;
    /**
     * Send a message through the host to other participants
     * using addon at the same time
     *
     * @param {string} type
     * @param {*} [payload]
     * @memberof Sync
     */
    sendMessage<T extends AddonMessage>(message: T): void;
    private handleReceivedMessage;
    private preprocessInitMessage;
    private handleKeyboardEvent;
}
declare global {
    interface IVivani {
        sdk: AddonsSdk;
    }
    interface Window {
        vivani: IVivani;
    }
}
declare const _default: AddonsSdk;
export default _default;
