///
import type { UnreadCounterClient, UnreadCounterData, UnreadCounterParams } from '@yandex-int/messenger.unread-counter';
import { Event } from '@yandex-int/messenger.utils';
import * as IWidget from '../../types';
import { PresetOptions } from '../../config';
/**
* @doctitle Плагин для запроса кол-ва непрочитанных сообщений
*
* @doc Позвозляет получить кол-во непрочитанных сообщений без открытия Мессенджера.
* При этом после открытия виджета - запросы (polling) прекращается и начинают использоваться данные Мессенджера.
*
* @doc -scope=internal
* В случае если сервис находится не на домене `yandex.{tld}` или `*.yandex.{tld}`
* необходимо обратиться к дежурному мессенджера.
* @doc -scope=external
* До выдачи `serviceId` плагин работать не будет
*
* @doc -scope=internal
* Для упрощенной инициализации плагина можно использовать две фабрики:
*
* `yandexUnreadCounterFactory` - для внешних сервисов яндекса
*
* `yandexTeamUnreadCounterFactory` - для внутренних сервисов яндекса
*
* @doc -scope=external
* Для инициализации плагина используйте фабрику `unreadCounterFactory`.
*
* @docsubtitle Пример
*
* @example
* -scope=internal
* import {
* Widget,
* Config,
* yandexUnreadCounterFactory,
* } from 'yandex-int/messenger.widget';
*
* const widget = new Widget(new Config().create());
* const unreadCounter = yandexUnreadCounterFactory();
*
* unreadCounter.onChanged
* .addListener((value: UnreadCounterData) => console.log(value))
*
* widget
* .addPlugin(unreadCounter)
* .init();
*
* @example
* -scope=external
* import {
* unreadCounterFactory,
* } from 'yandex-messenger-widget';
*
* const widget = createSingleChatBlockUIWidget(WIDGET_OPTIONS);
* const unreadCounter = unreadCounterFactory();
*
* unreadCounter.onChanged
* .addListener((value: UnreadCounterData) => console.log(value))
*
* widget
* .addPlugin(unreadCounter)
* .init();
*
* @doc -scope=internal
* Доступны два клиента полинга из пакета `yandex-int/messenger.unread-counter`
*
* `UnreadCounter` - для получения данных используется полинг https ручки мессенджера
* Подходит для интеграции в сервисы яндекса. Необходимо разрешить `CORS` на yandex.{tld}
*
* `UnreadCounterIframeClient` - для получения данных используется iframe
* (подходит при интеграции во внешние сервисы)
*
* @docsubtitle -scope=internal Пример с `UnreadCounter`
*
* @example
* -scope=internal
* import { UnreadCounter } from 'yandex-int/messenger.unread-counter';
* import {
* Widget,
* Config,
* UnreadCounterPlugin,
* YANDEX_UNREAD_COUNTER_ENDPOINT,
* } from 'yandex-int/messenger.widget';
*
* const widget = new Widget(new Config().create());
* const unreadCounter = new UnreadCounterPlugin(
* YANDEX_UNREAD_COUNTER_ENDPOINT,
* (params) => new UnreadCounter(params)
* );
*
* unreadCounter.onChanged
* .addListener((value: UnreadCounterData) => console.log(value))
*
* widget
* .addPlugin(unreadCounter)
* .init();
*
*/
export declare class UnreadCounterPlugin implements IWidget.Plugin {
/**
* @doc
* URL ручки непрочитанных сообщений
* @doctemplate members_annotation
*/
private unreadUrl;
/**
* @doc
* Фабрика клиента получения кол-ва непрочитанных из внешнего источника.
* Стандартные клиенты лежат в пакете `yandex-int/messenger.unread-counter`
* @doctemplate members_annotation
*/
private unreadCounterFactory?;
private widgetProxy;
private unreadCounterClient?;
lastValue: Maybe;
/**
* @doc
* Вызывется при изменении значения непрочитанных сообщений
* @doctemplate members_annotation
*/
readonly onChanged: Event;
/**
* @doctitle Конструктор
* @doctemplate method_annotation
* @doc_scope internal
*/
constructor(
/**
* @doc
* URL ручки непрочитанных сообщений
* @doctemplate members_annotation
*/
unreadUrl: string,
/**
* @doc
* Фабрика клиента получения кол-ва непрочитанных из внешнего источника.
* Стандартные клиенты лежат в пакете `yandex-int/messenger.unread-counter`
* @doctemplate members_annotation
*/
unreadCounterFactory?: ((params: UnreadCounterParams) => UnreadCounterClient) | undefined);
/**
* @private
*/
init({ serviceId, workspaceId, unreadCounterChatId, unreadCounterOtherGuid, unreadCounterNsFilter, unreadWithCountChats, unreadCountDetailedWorkspace, orgId, authToken, authPartition, selectedUid, originsProvider, config, }: IWidget.Options & PresetOptions, widget: IWidget.WidgetProxy): void;
private handleUnreadCounter;
private update;
get shouldUseValueForChat(): boolean;
/**
* @private
*/
LCClose(): void;
/**
* @private
*/
LCReady(): void;
}