/// import { WidgetTransport } from './libs/Transport'; import * as IWidget from './types'; import { WidgetHandlers } from './__codegen__/WidgetHandlers'; import { Config } from './config/Config'; declare const API: unique symbol; interface WidgetParameters { events: () => E; handlers: Constructor; api: Constructor; } declare class Widget = Partial, A = unknown> implements IWidget.LCDispatcher { private config; /** * Версия виджета */ version: string; /** * Идентификатор виджета */ widgetId: string; private uiPlugin; private plugins; private lastShowData; private transportInstance; private forceSendOpenIframe; private onlineEnsurer; /** * Используется в плагинах и классах UI */ private proxy; private [API]; /** * API Мессенджера */ api: A; /** * Обработчики событий */ handlers: H; /** * События Мессенджера */ events: E; /** * @nodoc */ constructor(config: Config, params: WidgetParameters); /** * @docsubtitle Инициализировать виджет * @doctemplate method_annotation */ init(): this; /** * @docsubtitle Открыть Мессенджер * @doc * Метод позволяет открыть определенный чат или список чатов в Мессенджере * Если `params` не передан, при первом открытии * будут использованы данные из `iframeOpenData`, * при последующих открытиях будет вызван только `LCShown` * @doc -scope=internal * При вызове ручки возможно создание нового чата. * Если необходимо предзагрузить виджет используйте `preload` * * @doctemplate method_annotation */ show( /** * @doc Параметры открытия Мессенджера * @docref template=members_annotation */ params?: IWidget.IframeOpenData, /** * @doc Колбэк открытия чата/нулвого экрана */ callback?: (error?: Error | void) => void): void; /** * @docsubtitle Свернуть Мессенджер * * @doctemplate method_annotation */ hide(): void; /** * @docsubtitle Установить UI плагин * @doctemplate method_annotation */ setUI(plugin: IWidget.UIPlugin): this; /** * @docsubtitle Установить плагин. * @doc * Порядок плагинов имеет значение. * * @doctemplate method_annotation */ addPlugin(plugin: IWidget.Plugin): this; /** * @docsubtitle Удалить виджет. * @doctemplate method_annotation */ destroy(): void; get options(): Partial; /** * @private */ dispatchLC(name: N, event: Parameters[N]>[0]): Parameters[N]>[0]; private getIframeUrl; private handleErrorConnect; /** * @private */ protected get transport(): WidgetTransport; private configureMetrikaTransport; } export { Widget as AbstractWidget };