import BaseApi from '../abstract/BaseApi'; import BaseLogger from '../abstract/BaseLogger'; import StatLog from '../enums/StatLog'; /** * Класс отвечает за отправку различной информации в сервис статистики (события, статистика и подобное) */ export default class Logger extends BaseLogger { private static _instance; private static _conversationIdProvider; static setConversationIdProvider(provider: () => string | null): void; static create(api: BaseApi, externalLogger: BaseLogger | null): void; static log(name: StatLog, value?: string, immediately?: boolean): void; static logCustom(name: StatLog, params: Record, immediately?: boolean): void; static logClientStats(params: Record, immediately?: boolean): void; static logClientEvent(params: Record, immediately?: boolean): void; static destroy(): void; private readonly _externalLogger; private readonly _api; private readonly _batchInterval; private _batchedLogItems; private _batchedClientStats; private _batchedClientEvents; private _batchTimeout; private _serverTimeDelta; constructor(api: BaseApi, externalLogger: BaseLogger | null); log(name: StatLog, value?: string, immediately?: boolean): void; logCustom(name: string, params: Record, immediately?: boolean): void; logClientStats(data: Record, immediately?: boolean): void; logClientEvent(data: Record, immediately?: boolean): void; destroy(): void; private _logInternal; private _getConversationId; private _sendBatch; private _startTimeout; private _stopTimeout; private _sendLogItems; private _sendClientStats; private _sendClientEvents; private _calculateServerTimeDelta; private _now; }