@vkontakte/calls-sdk 2.8.12-dev.615122b3.0 → 2.8.12-dev.68a694c3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CallsSDK.d.ts +27 -7
- package/abstract/BaseApi.d.ts +6 -9
- package/abstract/BaseSignaling.d.ts +6 -5
- package/calls-sdk.cjs.js +10 -10
- package/calls-sdk.esm.js +2980 -2065
- package/classes/AudioFix.d.ts +2 -2
- package/classes/AudioOutput.d.ts +2 -2
- package/classes/CallRegistry.d.ts +5 -1
- package/classes/ExternalIdCache.d.ts +1 -0
- package/classes/MediaSource.d.ts +6 -2
- package/classes/SpecListener.d.ts +2 -2
- package/classes/codec/LibVPxDecoder.d.ts +2 -2
- package/classes/codec/LibVPxEncoder.d.ts +2 -2
- package/classes/codec/WebCodecsDecoder.d.ts +2 -2
- package/classes/codec/WebCodecsEncoder.d.ts +2 -2
- package/classes/codec/WorkerBase.d.ts +3 -3
- package/classes/{Conversation.d.ts → conversation/Conversation.d.ts} +47 -36
- package/classes/conversation/Conversation.testUtils.d.ts +148 -0
- package/classes/{ConversationResponseValidator.d.ts → conversation/ConversationResponseValidator.d.ts} +1 -1
- package/classes/{DisplayLayoutRequester.d.ts → conversation/DisplayLayoutRequester.d.ts} +4 -4
- package/classes/conversation/index.d.ts +1 -0
- package/classes/screenshare/ScreenCaptureReceiver.d.ts +2 -2
- package/classes/screenshare/ScreenCaptureSender.d.ts +2 -2
- package/classes/screenshare/StreamBuilder.d.ts +2 -2
- package/classes/stat/CallFinishClassifier.d.ts +11 -0
- package/classes/stat/CallLifecycleStats.d.ts +3 -8
- package/classes/stat/CodecStatsAggregator.d.ts +2 -2
- package/classes/stat/ConversationStats.d.ts +5 -4
- package/classes/stat/StatAggregator.d.ts +6 -2
- package/classes/stat/StatDrainScheduler.d.ts +16 -0
- package/classes/stat/StatEventCollector.d.ts +37 -0
- package/classes/stat/StatPings.d.ts +2 -2
- package/classes/stat/StatQueue.d.ts +39 -0
- package/classes/stat/StatSignalingCommands.d.ts +2 -2
- package/classes/stat/StatUnloadJournal.d.ts +25 -0
- package/classes/transport/DirectTransport.d.ts +3 -2
- package/classes/transport/ServerTransport.d.ts +3 -2
- package/classes/transport/Transport.d.ts +5 -2
- package/default/Api.d.ts +14 -4
- package/default/ApiExternal.d.ts +2 -1
- package/default/Signaling.d.ts +13 -16
- package/default/SignalingTransport.d.ts +7 -1
- package/enums/ClientHangupReason.d.ts +7 -0
- package/enums/HangupType.d.ts +0 -1
- package/enums/SessionError.d.ts +10 -0
- package/enums/Stat.d.ts +0 -1
- package/package.json +3 -3
- package/static/ApiTransport.d.ts +3 -0
- package/static/AuthData.d.ts +10 -0
- package/static/External.d.ts +1 -1
- package/static/Params.d.ts +28 -2
- package/static/Utils.d.ts +1 -1
- package/static/WebRTCUtils.d.ts +13 -12
- package/types/Api.d.ts +9 -0
- package/types/FastHangup.d.ts +66 -0
- package/types/SignalingMessage.d.ts +5 -1
- package/types/WebTransport.d.ts +14 -15
- package/utils/IceServers.d.ts +2 -0
- package/utils/NavigatorPermissions.d.ts +2 -2
- package/classes/StatsLogger.d.ts +0 -41
package/static/Params.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { VideoEffects } from '@vkontakte/calls-video-effects';
|
|
2
|
-
import type { EffectVoiceChange } from '@vkontakte/calls-audio-effects';
|
|
2
|
+
import type { EffectVoiceChange, VadControllerOptions, VadLib } from '@vkontakte/calls-audio-effects';
|
|
3
3
|
import type * as Vmoji from '@vkontakte/calls-vmoji';
|
|
4
4
|
import { IAsrData } from '../types/Asr';
|
|
5
5
|
import { ConversationData } from '../types/Conversation';
|
|
@@ -193,6 +193,14 @@ export type ParamsObject = {
|
|
|
193
193
|
* Можно установить позднее методом `setAudioEffects`
|
|
194
194
|
*/
|
|
195
195
|
audioEffects: EffectVoiceChange | null;
|
|
196
|
+
/**
|
|
197
|
+
* Namespace библиотеки VAD из `@vkontakte/calls-audio-effects`.
|
|
198
|
+
*
|
|
199
|
+
* Можно установить методом `setVad`
|
|
200
|
+
*/
|
|
201
|
+
vad: VadLib | null;
|
|
202
|
+
/** Настройки VAD (threshold, hangoverMs, enabled) */
|
|
203
|
+
vadOptions: VadControllerOptions;
|
|
196
204
|
/**
|
|
197
205
|
* Максимальная ширина видео в пикселях для видео эффекта
|
|
198
206
|
*
|
|
@@ -505,6 +513,16 @@ export type ParamsObject = {
|
|
|
505
513
|
* _По умолчанию: `false`_
|
|
506
514
|
*/
|
|
507
515
|
enableSessionStateUpdates: boolean;
|
|
516
|
+
/**
|
|
517
|
+
* Использовать `<audio>` вместо `<video>` для воспроизведения звука в desktop Safari
|
|
518
|
+
* @hidden
|
|
519
|
+
*/
|
|
520
|
+
safariAudioElement: boolean;
|
|
521
|
+
/**
|
|
522
|
+
* Отправлять пустой ICE candidate (end-of-candidates) удалённому пиру
|
|
523
|
+
* @hidden
|
|
524
|
+
*/
|
|
525
|
+
forwardEmptyIceCandidate: boolean;
|
|
508
526
|
/**
|
|
509
527
|
* Получен локальный стрим с камеры/микрофона
|
|
510
528
|
*/
|
|
@@ -892,7 +910,7 @@ export type ParamsObject = {
|
|
|
892
910
|
/**
|
|
893
911
|
* Собеседник подключился к сигналлингу
|
|
894
912
|
*/
|
|
895
|
-
onPeerRegistered?: (conversationId?: string) => void;
|
|
913
|
+
onPeerRegistered?: (conversationId?: string, externalIds?: ExternalId[]) => void;
|
|
896
914
|
};
|
|
897
915
|
export default abstract class Params {
|
|
898
916
|
private static _params;
|
|
@@ -960,6 +978,10 @@ export default abstract class Params {
|
|
|
960
978
|
static get displaySurface(): DisplayCaptureSurfaceType;
|
|
961
979
|
static get audioEffects(): EffectVoiceChange | null;
|
|
962
980
|
static set audioEffects(value: EffectVoiceChange | null);
|
|
981
|
+
static get vad(): VadLib | null;
|
|
982
|
+
static set vad(value: VadLib | null);
|
|
983
|
+
static get vadOptions(): VadControllerOptions;
|
|
984
|
+
static set vadOptions(value: VadControllerOptions);
|
|
963
985
|
static get videoEffects(): VideoEffects | null;
|
|
964
986
|
static set videoEffects(value: VideoEffects | null);
|
|
965
987
|
static get videoEffectMaxWidth(): number;
|
|
@@ -1027,6 +1049,8 @@ export default abstract class Params {
|
|
|
1027
1049
|
static get waitForRecordResponse(): boolean;
|
|
1028
1050
|
static get transparentAudio(): boolean;
|
|
1029
1051
|
static get enableSessionStateUpdates(): boolean;
|
|
1052
|
+
static get safariAudioElement(): boolean;
|
|
1053
|
+
static get forwardEmptyIceCandidate(): boolean;
|
|
1030
1054
|
static toJSON(): {
|
|
1031
1055
|
apiKey: string;
|
|
1032
1056
|
apiEnv: string;
|
|
@@ -1063,5 +1087,7 @@ export default abstract class Params {
|
|
|
1063
1087
|
waitForRecordResponse: boolean;
|
|
1064
1088
|
transparentAudio: boolean;
|
|
1065
1089
|
enableSessionStateUpdates: boolean;
|
|
1090
|
+
safariAudioElement: boolean;
|
|
1091
|
+
forwardEmptyIceCandidate: boolean;
|
|
1066
1092
|
};
|
|
1067
1093
|
}
|
package/static/Utils.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export declare const DEVICE_IDX_PARAMETER = "d";
|
|
|
9
9
|
/** @hidden */
|
|
10
10
|
declare namespace Utils {
|
|
11
11
|
function patchLocalSDP(sdp: string, preferH264: boolean, brokenH264Decoder: boolean, preferVP9: boolean, isAudioNack?: boolean): string;
|
|
12
|
-
function patchRemoteSDP(sdp: string,
|
|
12
|
+
function patchRemoteSDP(sdp: string, preferH264: boolean, brokenH264: boolean, preferVP9: boolean, brokenVP9Encoder: boolean, brokenVP9Decoder: boolean): string;
|
|
13
13
|
function getPeerIdString(peerId: SignalingMessage.PeerId): string;
|
|
14
14
|
function comparePeerId(peerId1: SignalingMessage.PeerId, peerId2: SignalingMessage.PeerId): boolean;
|
|
15
15
|
function getPeerConnectionHostInfo(pc: RTCPeerConnection): Promise<{
|
package/static/WebRTCUtils.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Вспомогательный плагин для работы с WebRTC
|
|
3
3
|
*/
|
|
4
4
|
import { IVideoDimentions } from '../types/MediaSettings';
|
|
5
|
-
import type
|
|
5
|
+
import type StatEventCollector from '../classes/stat/StatEventCollector';
|
|
6
6
|
import { type DebugLogger } from './Debug';
|
|
7
7
|
/**
|
|
8
8
|
* Тип камеры мобильного устройства
|
|
@@ -20,7 +20,7 @@ export declare enum FacingMode {
|
|
|
20
20
|
/**
|
|
21
21
|
* Известные браузеры
|
|
22
22
|
*/
|
|
23
|
-
export type BrowserName = '
|
|
23
|
+
export type BrowserName = 'Edge' | 'Chrome' | 'Firefox' | 'Yandex' | 'Opera' | 'Sferum';
|
|
24
24
|
declare namespace WebRTCUtils {
|
|
25
25
|
/**
|
|
26
26
|
* До вызова этого метода бесполезно опрашивать другие публичные методы.
|
|
@@ -85,24 +85,24 @@ declare namespace WebRTCUtils {
|
|
|
85
85
|
* @param needAudio Нужно ли аудио
|
|
86
86
|
* @param needEmptyTracks Добавлять ли в стрим пустые треки для отключенного видео/аудио
|
|
87
87
|
*/
|
|
88
|
-
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?:
|
|
88
|
+
function getUserMedia(needVideo?: boolean, needAudio?: boolean, needEmptyTracks?: boolean, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
89
89
|
/**
|
|
90
90
|
* Запрашивает трансляцию экрана пользователя с опциональным захватом звука
|
|
91
91
|
*/
|
|
92
|
-
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?:
|
|
92
|
+
function getScreenMedia(fastScreenShare: boolean, withAudioShare: boolean, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
93
93
|
/**
|
|
94
94
|
* Запрашивает камеру пользователя
|
|
95
95
|
*
|
|
96
96
|
* @param deviceId ID устройства
|
|
97
97
|
* @param resolution Размеры видео
|
|
98
98
|
*/
|
|
99
|
-
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?:
|
|
99
|
+
function getUserVideo(deviceId?: string, resolution?: IVideoDimentions, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
100
100
|
/**
|
|
101
101
|
* Запрашивает микрофон пользователя
|
|
102
102
|
*
|
|
103
103
|
* @param deviceId ID устройства
|
|
104
104
|
*/
|
|
105
|
-
function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?:
|
|
105
|
+
function getUserAudio(deviceId?: string, debug?: DebugLogger, logger?: StatEventCollector | null): Promise<MediaStream>;
|
|
106
106
|
/**
|
|
107
107
|
* Устанавливает размер видео в стриме
|
|
108
108
|
*
|
|
@@ -122,6 +122,10 @@ declare namespace WebRTCUtils {
|
|
|
122
122
|
* Проверяет поддержку WebRTC браузером
|
|
123
123
|
*/
|
|
124
124
|
function isBrowserSupported(): boolean;
|
|
125
|
+
/**
|
|
126
|
+
* Возвращает первую отсутствующую capability в стабильном порядке.
|
|
127
|
+
*/
|
|
128
|
+
function getBrowserSupportFailure(): BrowserSupportFailure | null;
|
|
125
129
|
/**
|
|
126
130
|
* Проверяет поддержку шаринга экрана браузером
|
|
127
131
|
*/
|
|
@@ -139,17 +143,14 @@ declare namespace WebRTCUtils {
|
|
|
139
143
|
* В некоторых браузерах VP9 decoder сломан
|
|
140
144
|
*/
|
|
141
145
|
function isBrokenVP9Decoder(): boolean;
|
|
142
|
-
/**
|
|
143
|
-
* Изменился формат описания датаканала в SDP
|
|
144
|
-
* @link https://blog.mozilla.org/webrtc/how-to-avoid-data-channel-breaking/
|
|
145
|
-
*/
|
|
146
|
-
function isOldDataChannelDescription(): boolean;
|
|
147
146
|
/**
|
|
148
147
|
* Может ли браузер делать H264 приоритетным
|
|
149
148
|
*/
|
|
150
149
|
function canPreferH264(): boolean;
|
|
151
150
|
/**
|
|
152
|
-
*
|
|
151
|
+
* Поддержка simulcast браузером.
|
|
152
|
+
* Safari корректно поддерживает simulcast начиная с версии 18.
|
|
153
|
+
* Firefox поддерживает simulcast с VP8 начиная с версии 134.
|
|
153
154
|
*/
|
|
154
155
|
function isSimulcastSupportedByBrowser(): boolean;
|
|
155
156
|
/**
|
package/types/Api.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type ClientHangupReason from '../enums/ClientHangupReason';
|
|
2
|
+
import type HangupType from '../enums/HangupType';
|
|
3
|
+
/**
|
|
4
|
+
* Параметры запроса завершения звонка через внешнего партнёра (fast hangup).
|
|
5
|
+
*
|
|
6
|
+
* SDK генерирует объект и передаёт его в {@link FastHangupHandler}.
|
|
7
|
+
* Хост и backend партнёра пробрасывают `internalParams` как есть, без парсинга.
|
|
8
|
+
*/
|
|
9
|
+
export interface FastHangupParams {
|
|
10
|
+
/**
|
|
11
|
+
* ID звонка
|
|
12
|
+
*/
|
|
13
|
+
conversationId: string;
|
|
14
|
+
/**
|
|
15
|
+
* Причина завершения звонка
|
|
16
|
+
*/
|
|
17
|
+
reason: HangupType;
|
|
18
|
+
/**
|
|
19
|
+
* Внутренние параметры звонка (JSON-строка). Генерируется SDK.
|
|
20
|
+
*/
|
|
21
|
+
internalParams?: string | null;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Ответ внешнего партнёра на завершение звонка.
|
|
25
|
+
*/
|
|
26
|
+
export interface FastHangupResponse {
|
|
27
|
+
/**
|
|
28
|
+
* true — участие в звонке завершено
|
|
29
|
+
*/
|
|
30
|
+
success: boolean;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Параметры публичных методов {@link hangup} / {@link declineCall}.
|
|
34
|
+
*
|
|
35
|
+
* `reason` и `conversationId` идут в signaling hangup.
|
|
36
|
+
* `onFastHangup` заменяет Calls API `vchat.hangupConversation`, если обработчик передан
|
|
37
|
+
* (явный hangup/decline или delayed hangup во время init).
|
|
38
|
+
* Если обработчик не передан, API hangup не вызывается — кроме закрытия вкладки (`pagehide`),
|
|
39
|
+
* где SDK всегда шлёт beacon, и delayed hangup без handler.
|
|
40
|
+
*/
|
|
41
|
+
export interface HangupParams {
|
|
42
|
+
/**
|
|
43
|
+
* ID звонка. Если опущен — завершается текущий активный звонок.
|
|
44
|
+
*/
|
|
45
|
+
conversationId?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Причина завершения для проброса в сигналинг. См. {@link ClientHangupReason}.
|
|
48
|
+
*/
|
|
49
|
+
reason?: ClientHangupReason;
|
|
50
|
+
/**
|
|
51
|
+
* Обработчик fast hangup — завершение звонка через внешнего партнёра.
|
|
52
|
+
*/
|
|
53
|
+
onFastHangup?: FastHangupHandler;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Функция-обработчик fast hangup.
|
|
57
|
+
*
|
|
58
|
+
* Если передана в {@link HangupParams.onFastHangup} при `hangup` / `declineCall`,
|
|
59
|
+
* SDK вызывает её вместо API `vchat.hangupConversation`.
|
|
60
|
+
*
|
|
61
|
+
* На `pagehide` не используется — SDK всегда отправляет `sendBeacon`.
|
|
62
|
+
*
|
|
63
|
+
* @param params Параметры запроса
|
|
64
|
+
* @param signal AbortSignal текущего звонка, если он ещё жив на момент вызова
|
|
65
|
+
*/
|
|
66
|
+
export type FastHangupHandler = (params: FastHangupParams, signal?: AbortSignal) => Promise<FastHangupResponse>;
|
|
@@ -34,8 +34,11 @@ export type RecordInfo = {
|
|
|
34
34
|
recordExternalOwnerId?: string;
|
|
35
35
|
};
|
|
36
36
|
export interface SignalingResponse extends SignalingMessage {
|
|
37
|
-
response?: SignalingCommandType;
|
|
38
37
|
error?: string;
|
|
38
|
+
errorCode?: string;
|
|
39
|
+
errorMessage?: string;
|
|
40
|
+
message?: string;
|
|
41
|
+
response?: SignalingCommandType;
|
|
39
42
|
reason?: HangupType | FatalError;
|
|
40
43
|
sequence?: number;
|
|
41
44
|
type: 'response' | 'error' | 'timeout';
|
|
@@ -185,6 +188,7 @@ declare namespace SignalingMessage {
|
|
|
185
188
|
peerId: PeerId;
|
|
186
189
|
mediaSettings: Partial<MediaSettings>;
|
|
187
190
|
capabilities?: string;
|
|
191
|
+
externalId?: ExternalId;
|
|
188
192
|
}
|
|
189
193
|
export interface Hungup extends Notification {
|
|
190
194
|
participantId: OkUserId;
|
package/types/WebTransport.d.ts
CHANGED
|
@@ -1,33 +1,32 @@
|
|
|
1
1
|
import { WebTransportOptions } from '@fails-components/webtransport';
|
|
2
2
|
import { DebugLogger } from '../static/Debug';
|
|
3
3
|
declare class WebTransportEventual {
|
|
4
|
+
static isBrowserSupported(): boolean;
|
|
5
|
+
onopen: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
6
|
+
onmessage: ((this: WebTransportEventual, ev: MessageEvent) => any) | null;
|
|
7
|
+
onerror: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
8
|
+
onclose: ((this: WebTransportEventual, ev: CloseEvent) => any) | null;
|
|
9
|
+
readyState: number;
|
|
4
10
|
private webTransport;
|
|
5
|
-
private stream;
|
|
6
11
|
private writer;
|
|
7
|
-
private reader;
|
|
8
12
|
private readonly url;
|
|
9
13
|
private readonly options;
|
|
10
14
|
private readonly compression;
|
|
11
|
-
private closeRequested;
|
|
12
|
-
private closeEventEmitted;
|
|
13
15
|
private encoder;
|
|
14
16
|
private decoder;
|
|
15
17
|
private readonly _debug;
|
|
16
|
-
onopen: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
17
|
-
onmessage: ((this: WebTransportEventual, ev: MessageEvent) => any) | null;
|
|
18
|
-
onerror: ((this: WebTransportEventual, ev: Event) => any) | null;
|
|
19
|
-
onclose: ((this: WebTransportEventual, ev: CloseEvent) => any) | null;
|
|
20
|
-
readyState: number;
|
|
21
18
|
constructor(url: string, options?: WebTransportOptions, debug?: DebugLogger);
|
|
19
|
+
send(data: string): Promise<void>;
|
|
20
|
+
close(code?: number, reason?: string): void;
|
|
22
21
|
private getCompressionTypeFromUrl;
|
|
23
22
|
private connect;
|
|
24
|
-
private
|
|
23
|
+
private observeClosed;
|
|
25
24
|
private readLoop;
|
|
26
|
-
|
|
25
|
+
private fail;
|
|
26
|
+
private handleStreamError;
|
|
27
|
+
private requestNativeClose;
|
|
28
|
+
private finishClose;
|
|
29
|
+
private emitEvent;
|
|
27
30
|
private createErrorEvent;
|
|
28
|
-
close(code?: number, reason?: string): void;
|
|
29
|
-
private closeConnectedTransport;
|
|
30
|
-
private emitClose;
|
|
31
|
-
static isBrowserSupported(): boolean;
|
|
32
31
|
}
|
|
33
32
|
export { WebTransportEventual as WebTransport };
|
|
@@ -2,8 +2,8 @@ type Device = 'camera' | 'microphone';
|
|
|
2
2
|
type PermissionStatusState = typeof PermissionStatus.prototype.state;
|
|
3
3
|
type EventListener = (name: Device, state: PermissionStatusState) => void;
|
|
4
4
|
export declare class NavigatorPermissions {
|
|
5
|
-
private _cameraPermissionStatus
|
|
6
|
-
private _microphonePermissionStatus
|
|
5
|
+
private _cameraPermissionStatus?;
|
|
6
|
+
private _microphonePermissionStatus?;
|
|
7
7
|
private _listener;
|
|
8
8
|
static isSupported(): boolean;
|
|
9
9
|
init(listener: EventListener): Promise<void>;
|
package/classes/StatsLogger.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import BaseApi from '../abstract/BaseApi';
|
|
2
|
-
import BaseLogger from '../abstract/BaseLogger';
|
|
3
|
-
import StatLog from '../enums/StatLog';
|
|
4
|
-
import TransportTopology from '../enums/TransportTopology';
|
|
5
|
-
type ClientStatsPayload = Record<string, string | number | boolean | undefined | null>;
|
|
6
|
-
export type LogClientStatsOptions = {
|
|
7
|
-
immediately?: boolean;
|
|
8
|
-
occurredAt?: number;
|
|
9
|
-
conversationId?: string | null;
|
|
10
|
-
deferUntilServerTime?: boolean;
|
|
11
|
-
};
|
|
12
|
-
/**
|
|
13
|
-
* Класс отвечает за отправку различной информации в сервис статистики (события, статистика и подобное)
|
|
14
|
-
*/
|
|
15
|
-
export default class StatsLogger extends BaseLogger {
|
|
16
|
-
private readonly _externalLogger;
|
|
17
|
-
private readonly _api;
|
|
18
|
-
private readonly _conversationIdProvider;
|
|
19
|
-
private readonly _topologyProvider;
|
|
20
|
-
private readonly _batchInterval;
|
|
21
|
-
private _batchedClientStats;
|
|
22
|
-
private _batchTimeout;
|
|
23
|
-
private _serverTimeDelta;
|
|
24
|
-
private _waitingForServerTime;
|
|
25
|
-
private _deferredClientStats;
|
|
26
|
-
constructor(api: BaseApi, externalLogger: BaseLogger | null, conversationIdProvider: () => string | null, topologyProvider?: () => TransportTopology | undefined);
|
|
27
|
-
log(name: StatLog, value?: string, immediately?: boolean): void;
|
|
28
|
-
logClientStats(data: ClientStatsPayload, immediatelyOrOptions?: boolean | LogClientStatsOptions): void;
|
|
29
|
-
destroy(): void;
|
|
30
|
-
private _logClientStats;
|
|
31
|
-
private _getConversationId;
|
|
32
|
-
private _getCallTopology;
|
|
33
|
-
private _sendBatch;
|
|
34
|
-
private _startTimeout;
|
|
35
|
-
private _stopTimeout;
|
|
36
|
-
private _sendClientStats;
|
|
37
|
-
private _calculateServerTimeDelta;
|
|
38
|
-
private _flushDeferredClientStats;
|
|
39
|
-
private _now;
|
|
40
|
-
}
|
|
41
|
-
export {};
|