@vkontakte/videoplayer-statistics 1.0.35 → 1.0.37

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/index.d.ts CHANGED
@@ -1,408 +1,411 @@
1
1
  import { IPlayer } from '@vkontakte/videoplayer-core';
2
2
  import { Kbps, IObservable, ISubscription, IError, Seconds, Milliseconds, Subscription } from '@vkontakte/videoplayer-shared';
3
3
 
4
- declare enum ApiEnv {
5
- PROD = "prod",
6
- VK_ALIAS = "vk_alias",
7
- VIDEOTEST = "videotest",
8
- TEST = "test",
9
- AUTO = "auto"
10
- }
11
- declare enum Quality {
12
- Q144P = "mobile",
13
- Q240P = "lowest",
14
- Q360P = "low",
15
- Q480P = "medium",
16
- Q720P = "high",
17
- Q1080P = "fullhd",
18
- Q1440P = "quadhd",
19
- Q2160P = "ultrahd",
20
- UNKNOWN = "unknown"
21
- }
22
- declare enum ContentType {
23
- MP4 = "mp4",
24
- DASH = "dash",
25
- DASH_SEP = "dash_sep",
26
- ONDEMAND_DASH = "ondemand_dash",
27
- HLS = "hls",
28
- ONDEMAND_HLS = "ondemand_hls",
29
- WEBM = "webm",
30
- ONDEMAND_DASH_LIVE = "ondemand_dash_live",
31
- ONDEMAND_HLS_LIVE = "ondemand_hls_live",
32
- WEBRTC = "webrtc",
33
- UNKNOWN = "unknown",
34
- /** @deprecated сдк не поддерживает RTMP, не нужно его использовать */
35
- RTMP = "rtmp"
36
- }
37
- declare enum StatType {
38
- AUTO = "auto",
39
- MANUAL = ""
40
- }
41
- declare enum ConnectionType {
42
- HTTP1 = "http1",
43
- HTTP2 = "http2",
44
- HTTP3 = "http3"
45
- }
46
- declare enum Flag {
47
- YES = 1,
48
- NO = 0
49
- }
50
- declare enum Network {
51
- EXCELLENT = "excellent",
52
- GOOD = "good",
53
- POOR = "poor"
54
- }
55
- declare enum Mode {
56
- PIP = "pip",
57
- FULLSCREEN = "fullscreen",
58
- EXTERNAL = "external",
59
- PREFETCH = "prefetch"
60
- }
61
- declare enum SeekAction {
62
- SLIDER = "slider",
63
- DOUBLE_TAP = "double_tap",
64
- TIME_CODE = "time_code",
65
- EPISODE = "episode",
66
- REWIND = "rewind",
67
- LIVE = "live",
68
- UNKNOWN = "unknown"
4
+ declare enum ApiEnv {
5
+ PROD = "prod",
6
+ VK_ALIAS = "vk_alias",
7
+ VIDEOTEST = "videotest",
8
+ TEST = "test",
9
+ AUTO = "auto"
10
+ }
11
+ declare enum Quality {
12
+ Q144P = "mobile",
13
+ Q240P = "lowest",
14
+ Q360P = "low",
15
+ Q480P = "medium",
16
+ Q720P = "high",
17
+ Q1080P = "fullhd",
18
+ Q1440P = "quadhd",
19
+ Q2160P = "ultrahd",
20
+ UNKNOWN = "unknown"
21
+ }
22
+ declare enum ContentType {
23
+ MP4 = "mp4",
24
+ DASH = "dash",
25
+ DASH_SEP = "dash_sep",
26
+ ONDEMAND_DASH = "ondemand_dash",
27
+ HLS = "hls",
28
+ ONDEMAND_HLS = "ondemand_hls",
29
+ WEBM = "webm",
30
+ AV1 = "av1",
31
+ ONDEMAND_DASH_LIVE = "ondemand_dash_live",
32
+ ONDEMAND_HLS_LIVE = "ondemand_hls_live",
33
+ WEBRTC = "webrtc",
34
+ UNKNOWN = "unknown",
35
+ /** @deprecated сдк не поддерживает RTMP, не нужно его использовать */
36
+ RTMP = "rtmp"
37
+ }
38
+ declare enum StatType {
39
+ AUTO = "auto",
40
+ MANUAL = ""
41
+ }
42
+ declare enum ConnectionType {
43
+ HTTP1 = "http1",
44
+ HTTP2 = "http2",
45
+ HTTP3 = "http3"
46
+ }
47
+ declare enum Flag {
48
+ YES = 1,
49
+ NO = 0
50
+ }
51
+ declare enum Network {
52
+ EXCELLENT = "excellent",
53
+ GOOD = "good",
54
+ POOR = "poor"
55
+ }
56
+ declare enum Mode {
57
+ PIP = "pip",
58
+ FULLSCREEN = "fullscreen",
59
+ EXTERNAL = "external",
60
+ PREFETCH = "prefetch"
61
+ }
62
+ declare enum SeekAction {
63
+ SLIDER = "slider",
64
+ DOUBLE_TAP = "double_tap",
65
+ TIME_CODE = "time_code",
66
+ EPISODE = "episode",
67
+ REWIND = "rewind",
68
+ LIVE = "live",
69
+ UNKNOWN = "unknown"
69
70
  }
70
71
 
71
- interface ILogCustomData {
72
- /**
73
- * Сессия смотрения, уникальна для пользователя, контента, экземпляра плеера и одного просмотра
74
- * См https://confluence.vk.team/display/VID/Video%20Session%20ID
75
- */
76
- vsid: string;
77
- vid: number;
78
- ct?: ContentType;
79
- place?: string;
80
- quality?: Quality;
81
- cdn_host?: string;
82
- stat_type?: StatType;
83
- param?: any;
84
- vk_app_id?: string;
85
- track_code?: string;
86
- connection_type?: ConnectionType;
87
- connection_reused?: Flag;
88
- cached_data?: Flag;
89
- live?: Flag;
90
- muted?: Flag;
91
- mode?: Mode;
92
- subtitles?: string;
93
- failover?: Flag;
94
- download_speed?: Kbps;
95
- manual_quality?: Flag;
96
- ref_domain?: string;
97
- vk_playlist_id?: string;
98
- aid?: string;
72
+ interface ILogCustomData {
73
+ /**
74
+ * Сессия смотрения, уникальна для пользователя, контента, экземпляра плеера и одного просмотра
75
+ * См https://confluence.vk.team/display/VID/Video%20Session%20ID
76
+ */
77
+ vsid: string;
78
+ vid: number;
79
+ ct?: ContentType;
80
+ place?: string;
81
+ quality?: Quality;
82
+ cdn_host?: string;
83
+ stat_type?: StatType;
84
+ param?: any;
85
+ vk_app_id?: string;
86
+ track_code?: string;
87
+ connection_type?: ConnectionType;
88
+ connection_reused?: Flag;
89
+ cached_data?: Flag;
90
+ live?: Flag;
91
+ muted?: Flag;
92
+ mode?: Mode;
93
+ subtitles?: string;
94
+ failover?: Flag;
95
+ download_speed?: Kbps;
96
+ manual_quality?: Flag;
97
+ ref_domain?: string;
98
+ vk_playlist_id?: string;
99
+ aid?: string;
99
100
  }
100
101
 
101
- interface IUIEvents {
102
- actionRewind$: IObservable<void>;
103
- actionSeek$: IObservable<SeekAction>;
104
- inPiP$: IObservable<boolean>;
105
- inFullscreen$: IObservable<boolean>;
106
- actionSetSubtitle$: IObservable<string>;
107
- }
108
- interface IAdsEvents {
109
- slotRequested$: IObservable<void>;
110
- started$: IObservable<string>;
111
- paused$: IObservable<void>;
112
- resumed$: IObservable<void>;
113
- ended$: IObservable<void>;
114
- skipped$: IObservable<void>;
115
- clicked$: IObservable<void>;
102
+ interface IUIEvents {
103
+ actionRewind$: IObservable<void>;
104
+ actionSeek$: IObservable<SeekAction>;
105
+ inPiP$: IObservable<boolean>;
106
+ inFullscreen$: IObservable<boolean>;
107
+ actionSetSubtitle$: IObservable<string>;
108
+ }
109
+ interface IAdsEvents {
110
+ slotRequested$: IObservable<void>;
111
+ started$: IObservable<string>;
112
+ paused$: IObservable<void>;
113
+ resumed$: IObservable<void>;
114
+ ended$: IObservable<void>;
115
+ skipped$: IObservable<void>;
116
+ clicked$: IObservable<void>;
116
117
  }
117
118
 
118
- interface IOneStat {
119
- /**
120
- * Лучше авторизоваться сразу, чтобы избежать ситуации:
121
- * 1. Накапливаем запросы в очереди через debounce send
122
- * 2. Пользователь закрывает приложение
123
- * 3. Запрос пытается уйти через sendBeacon и падает без авторизации
124
- */
125
- authorize(authToken?: string): Promise<unknown>;
126
- /**
127
- * Обновляет общие параметры событий
128
- */
129
- updateContext(context: Partial<IStatContext>): void;
130
- attachTo(player: IPlayer): ISubscription;
131
- attachToUi(uiEvents: IUIEvents): ISubscription;
132
- attachToAds(adsEvents: IAdsEvents): ISubscription;
133
- /**
134
- * Ставит отправку событий на паузу. Они будут накапливаться до вызова `resume()`
135
- */
136
- pause(): void;
137
- /**
138
- * Снимает паузу отправки событий
139
- */
140
- resume(): void;
141
- /**
142
- * Деструктор класса
143
- */
144
- destroy(): void;
145
- /**
146
- * Сбрасывает сессию смотрения
147
- */
148
- resetViewSession(): void;
149
- /**
150
- * @deprecated
151
- * Отключает отправку полей событий
152
- */
153
- setFieldBlacklist(fields: (keyof ILogCustomData)[]): void;
154
- /**
155
- * @deprecated
156
- */
157
- logInited(): void;
158
- /**
159
- * @deprecated публично нужно использовать attachTo
160
- * Плеер готов начать воспроизведение
161
- */
162
- logReady(payload: IReadyPayload): void;
163
- /**
164
- * @deprecated публично нужно использовать attachTo
165
- * Первый старт видео. Отправляется 1 раз, когда фактически началось воспроизведение ролика, а также после зацикливания, но не после паузы.
166
- *
167
- * В документации API может называться `play`
168
- */
169
- logStarted(payload: IActionPlayPayload): void;
170
- /**
171
- * @deprecated публично нужно использовать attachTo
172
- * Возобновление после паузы
173
- *
174
- * В документации API может называться `play_toggle`
175
- */
176
- logPlay(): void;
177
- /**
178
- * @deprecated публично нужно использовать attachTo
179
- * Постановка видео на паузу
180
- */
181
- logPause(payload: IPausePayload): void;
182
- /**
183
- * @deprecated публично нужно использовать attachTo
184
- * перемотка видео
185
- */
186
- logSeek(payload: ISeekPayload): void;
187
- /**
188
- * @deprecated публично нужно использовать attachTo
189
- * Промежутки видео, которые были просмотрены пользователем.
190
- * Время указывается в секундах от начала ролика (т.е. является позицией).
191
- */
192
- logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
193
- /**
194
- * @deprecated публично нужно использовать attachTo
195
- * Промежутки видео, которые были просмотрены пользователем.
196
- * Время указывается в виде UTC timestamp'ов.
197
- */
198
- logWatchCoverageLive(payload: IWatchCoveragePayload): void;
199
- /**
200
- * @deprecated публично нужно использовать attachTo
201
- * Буфер пуст и пользователь видит залипший кадр.
202
- */
203
- logEmptyBuffer(payload: IEmptyBufferPayload): void;
204
- /**
205
- * @deprecated публично нужно использовать attachTo
206
- * Получен первый кусок данных контента от сервера раздачи видео
207
- */
208
- logFirstBytes(payload: IFirstBytesPayload): void;
209
- /**
210
- * @deprecated публично нужно использовать attachTo
211
- * Пользователь увидел первый кадр
212
- */
213
- logFirstFrame(payload: IFirstFramePayload): void;
214
- /**
215
- * @deprecated публично нужно использовать attachTo
216
- * @param payload
217
- */
218
- logDownloadSpeed(payload: IDownloadSpeedPayload): void;
219
- /**
220
- * произошла ошибка
221
- */
222
- logError(payload: IErrorPayload): void;
223
- /**
224
- * @deprecated публично нужно использовать attachToAds
225
- */
226
- logAdSlotRequest(): void;
227
- /**
228
- * @deprecated публично нужно использовать attachToAds
229
- * @param sectionType
230
- */
231
- logAdStarted(sectionType: string): void;
232
- /**
233
- * @deprecated публично нужно использовать attachToAds
234
- */
235
- logAdPaused(): void;
236
- /**
237
- * @deprecated публично нужно использовать attachToAds
238
- */
239
- logAdResumed(): void;
240
- /**
241
- * @deprecated публично нужно использовать attachToAds
242
- */
243
- logAdEnded(): void;
244
- /**
245
- * @deprecated публично нужно использовать attachToAds
246
- */
247
- logAdSkipped(): void;
248
- /**
249
- * @deprecated публично нужно использовать attachToAds
250
- */
251
- logAdClicked(): void;
252
- experimental: {
253
- error$: IObservable<IError>;
254
- };
255
- }
256
- interface IActionPlayPayload {
257
- /**
258
- * время в секундах от начала ролика
259
- */
260
- position: Seconds;
261
- }
262
- interface IPausePayload {
263
- /**
264
- * время в секундах: сколько просмотрено от начала ролика
265
- */
266
- position: Seconds;
267
- }
268
- interface ISeekPayload {
269
- /**
270
- * Действие пользователя приведшее к перемотке
271
- */
272
- action: SeekAction;
273
- time: Seconds;
274
- }
275
- interface IReadyPayload {
276
- /**
277
- * время в миллисекундах с события inited
278
- */
279
- time: Milliseconds;
280
- }
281
- interface IFirstBytesPayload {
282
- /**
283
- * время в миллисекундах с события inited
284
- */
285
- time: Milliseconds;
286
- }
287
- interface IFirstFramePayload {
288
- /**
289
- * время в миллисекундах с события inited
290
- */
291
- time: Milliseconds;
292
- }
293
- interface IEmptyBufferPayload {
294
- /**
295
- * время в миллисекундах которое пользователь видел застывшую картинку
296
- */
297
- duration: Milliseconds;
298
- }
299
- interface IDownloadSpeedPayload {
300
- /**
301
- * Скорость в килобайтах (!) в секунду
302
- */
303
- speed: number;
304
- }
305
- interface IErrorPayload {
306
- /**
307
- * строка из символов(без пробелов): тип ошибки
308
- */
309
- errorType: string;
310
- fatal: boolean;
311
- }
312
- interface IStatContext {
313
- mobile: boolean;
314
- movieId: number;
315
- vkAppId?: string;
316
- clip?: boolean;
317
- liveEdge?: boolean;
318
- autoplay: boolean;
319
- audible?: boolean;
320
- quality?: Quality;
321
- autoQuality?: boolean;
322
- contentType?: ContentType;
323
- albumId?: string;
324
- vkPlaylistId?: string;
325
- trackCode?: string;
326
- place?: string;
327
- cdnHostname?: string;
328
- downloadSpeed?: Kbps;
329
- connectionType?: ConnectionType;
330
- connectionReused?: boolean;
331
- firstConnectionType?: ConnectionType;
332
- firstConnectionReused?: boolean;
333
- network?: Network;
334
- cached?: boolean;
335
- mode?: Mode;
336
- subtitles?: string;
337
- failover?: boolean;
338
- }
339
- interface IConfig {
340
- requestRetryCount: number;
341
- }
342
- interface IConstructorParams {
343
- apiEnv: ApiEnv;
344
- config?: Partial<IConfig>;
345
- userSalt?: string;
346
- refreshAuthToken?: () => Promise<string | undefined>;
347
- }
348
- interface IWatchCoveragePayload {
349
- start: number;
350
- end: number;
351
- }
352
- declare class OneStat implements IOneStat {
353
- private api;
354
- private logger;
355
- private config;
356
- private subscription;
357
- private timeSynchronisation;
358
- experimental: {
359
- error$: IObservable<IError>;
360
- };
361
- private statContext;
362
- private vsid;
363
- private isEmbed;
364
- private embedParent;
365
- private uiEvents;
366
- private player;
367
- private seekAction$;
368
- constructor(statContext: IStatContext, params: IConstructorParams);
369
- updateContext(newContext: Partial<IStatContext>): void;
370
- attachTo(player: IPlayer): ISubscription;
371
- attachToUi(events: IUIEvents): Subscription;
372
- attachToAds(adsEvents: IAdsEvents): ISubscription;
373
- authorize(authToken?: string): Promise<unknown>;
374
- pause(): void;
375
- resume(): void;
376
- destroy(): void;
377
- resetViewSession(): void;
378
- setFieldBlacklist(): void;
379
- logInited(): void;
380
- logReady(payload: IReadyPayload): void;
381
- logStarted(...args: Parameters<typeof this$1.logActionPlay>): void;
382
- logPlay(): void;
383
- logPause(payload: IPausePayload): void;
384
- logSeek(payload: ISeekPayload): void;
385
- logFirstBytes(payload: IFirstBytesPayload): void;
386
- logFirstFrame(payload: IFirstFramePayload): void;
387
- logError(payload: IErrorPayload): void;
388
- logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
389
- logWatchCoverageLive(payload: IWatchCoveragePayload): void;
390
- logEmptyBuffer(payload: IEmptyBufferPayload): void;
391
- logDownloadSpeed(): void;
392
- logAdSlotRequest(): void;
393
- logAdStarted(sectionType: string): void;
394
- logAdPaused(): void;
395
- logAdResumed(): void;
396
- logAdEnded(): void;
397
- logAdSkipped(): void;
398
- logAdClicked(): void;
399
- private subscribe;
400
- private logPlayerReady;
401
- private logActionPlay;
402
- private logCloseAtEmptyBuffer;
403
- private logActionStop;
404
- private log;
405
- private createLogItem;
119
+ interface IOneStat {
120
+ /**
121
+ * Лучше авторизоваться сразу, чтобы избежать ситуации:
122
+ * 1. Накапливаем запросы в очереди через debounce send
123
+ * 2. Пользователь закрывает приложение
124
+ * 3. Запрос пытается уйти через sendBeacon и падает без авторизации
125
+ */
126
+ authorize(authToken?: string): Promise<unknown>;
127
+ /**
128
+ * Обновляет общие параметры событий
129
+ */
130
+ updateContext(context: Partial<IStatContext>): void;
131
+ attachTo(player: IPlayer): ISubscription;
132
+ attachToUi(uiEvents: IUIEvents): ISubscription;
133
+ attachToAds(adsEvents: IAdsEvents): ISubscription;
134
+ /**
135
+ * Ставит отправку событий на паузу. Они будут накапливаться до вызова `resume()`
136
+ */
137
+ pause(): void;
138
+ /**
139
+ * Снимает паузу отправки событий
140
+ */
141
+ resume(): void;
142
+ /**
143
+ * Деструктор класса
144
+ */
145
+ destroy(): void;
146
+ /**
147
+ * Сбрасывает сессию смотрения
148
+ */
149
+ resetViewSession(): void;
150
+ /**
151
+ * @deprecated
152
+ * Отключает отправку полей событий
153
+ */
154
+ setFieldBlacklist(fields: (keyof ILogCustomData)[]): void;
155
+ /**
156
+ * @deprecated
157
+ */
158
+ logInited(): void;
159
+ /**
160
+ * @deprecated публично нужно использовать attachTo
161
+ * Плеер готов начать воспроизведение
162
+ */
163
+ logReady(payload: IReadyPayload): void;
164
+ /**
165
+ * @deprecated публично нужно использовать attachTo
166
+ * Первый старт видео. Отправляется 1 раз, когда фактически началось воспроизведение ролика, а также после зацикливания, но не после паузы.
167
+ *
168
+ * В документации API может называться `play`
169
+ */
170
+ logStarted(payload: IActionPlayPayload): void;
171
+ /**
172
+ * @deprecated публично нужно использовать attachTo
173
+ * Возобновление после паузы
174
+ *
175
+ * В документации API может называться `play_toggle`
176
+ */
177
+ logPlay(): void;
178
+ /**
179
+ * @deprecated публично нужно использовать attachTo
180
+ * Постановка видео на паузу
181
+ */
182
+ logPause(payload: IPausePayload): void;
183
+ /**
184
+ * @deprecated публично нужно использовать attachTo
185
+ * перемотка видео
186
+ */
187
+ logSeek(payload: ISeekPayload): void;
188
+ /**
189
+ * @deprecated публично нужно использовать attachTo
190
+ * Промежутки видео, которые были просмотрены пользователем.
191
+ * Время указывается в секундах от начала ролика (т.е. является позицией).
192
+ */
193
+ logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
194
+ /**
195
+ * @deprecated публично нужно использовать attachTo
196
+ * Промежутки видео, которые были просмотрены пользователем.
197
+ * Время указывается в виде UTC timestamp'ов.
198
+ */
199
+ logWatchCoverageLive(payload: IWatchCoveragePayload): void;
200
+ /**
201
+ * @deprecated публично нужно использовать attachTo
202
+ * Буфер пуст и пользователь видит залипший кадр.
203
+ */
204
+ logEmptyBuffer(payload: IEmptyBufferPayload): void;
205
+ /**
206
+ * @deprecated публично нужно использовать attachTo
207
+ * Получен первый кусок данных контента от сервера раздачи видео
208
+ */
209
+ logFirstBytes(payload: IFirstBytesPayload): void;
210
+ /**
211
+ * @deprecated публично нужно использовать attachTo
212
+ * Пользователь увидел первый кадр
213
+ */
214
+ logFirstFrame(payload: IFirstFramePayload): void;
215
+ /**
216
+ * @deprecated публично нужно использовать attachTo
217
+ * @param payload
218
+ */
219
+ logDownloadSpeed(payload: IDownloadSpeedPayload): void;
220
+ /**
221
+ * произошла ошибка
222
+ */
223
+ logError(payload: IErrorPayload): void;
224
+ /**
225
+ * @deprecated публично нужно использовать attachToAds
226
+ */
227
+ logAdSlotRequest(): void;
228
+ /**
229
+ * @deprecated публично нужно использовать attachToAds
230
+ * @param sectionType
231
+ */
232
+ logAdStarted(sectionType: string): void;
233
+ /**
234
+ * @deprecated публично нужно использовать attachToAds
235
+ */
236
+ logAdPaused(): void;
237
+ /**
238
+ * @deprecated публично нужно использовать attachToAds
239
+ */
240
+ logAdResumed(): void;
241
+ /**
242
+ * @deprecated публично нужно использовать attachToAds
243
+ */
244
+ logAdEnded(): void;
245
+ /**
246
+ * @deprecated публично нужно использовать attachToAds
247
+ */
248
+ logAdSkipped(): void;
249
+ /**
250
+ * @deprecated публично нужно использовать attachToAds
251
+ */
252
+ logAdClicked(): void;
253
+ experimental: {
254
+ error$: IObservable<IError>;
255
+ };
256
+ }
257
+ interface IActionPlayPayload {
258
+ /**
259
+ * время в секундах от начала ролика
260
+ */
261
+ position: Seconds;
262
+ }
263
+ interface IPausePayload {
264
+ /**
265
+ * время в секундах: сколько просмотрено от начала ролика
266
+ */
267
+ position: Seconds;
268
+ }
269
+ interface ISeekPayload {
270
+ /**
271
+ * Действие пользователя приведшее к перемотке
272
+ */
273
+ action: SeekAction;
274
+ time: Seconds;
275
+ }
276
+ interface IReadyPayload {
277
+ /**
278
+ * время в миллисекундах с события inited
279
+ */
280
+ time: Milliseconds;
281
+ }
282
+ interface IFirstBytesPayload {
283
+ /**
284
+ * время в миллисекундах с события inited
285
+ */
286
+ time: Milliseconds;
287
+ }
288
+ interface IFirstFramePayload {
289
+ /**
290
+ * время в миллисекундах с события inited
291
+ */
292
+ time: Milliseconds;
293
+ }
294
+ interface IEmptyBufferPayload {
295
+ /**
296
+ * время в миллисекундах которое пользователь видел застывшую картинку
297
+ */
298
+ duration: Milliseconds;
299
+ }
300
+ interface IDownloadSpeedPayload {
301
+ /**
302
+ * Скорость в килобайтах (!) в секунду
303
+ */
304
+ speed: number;
305
+ }
306
+ interface IErrorPayload {
307
+ /**
308
+ * строка из символов(без пробелов): тип ошибки
309
+ */
310
+ errorType: string;
311
+ fatal: boolean;
312
+ }
313
+ interface IStatContext {
314
+ mobile: boolean;
315
+ movieId: number;
316
+ vkAppId?: string;
317
+ clip?: boolean;
318
+ liveEdge?: boolean;
319
+ autoplay: boolean;
320
+ audible?: boolean;
321
+ quality?: Quality;
322
+ autoQuality?: boolean;
323
+ contentType?: ContentType;
324
+ albumId?: string;
325
+ vkPlaylistId?: string;
326
+ trackCode?: string;
327
+ place?: string;
328
+ cdnHostname?: string;
329
+ downloadSpeed?: Kbps;
330
+ connectionType?: ConnectionType;
331
+ connectionReused?: boolean;
332
+ firstConnectionType?: ConnectionType;
333
+ firstConnectionReused?: boolean;
334
+ network?: Network;
335
+ cached?: boolean;
336
+ mode?: Mode;
337
+ subtitles?: string;
338
+ failover?: boolean;
339
+ }
340
+ interface IConfig {
341
+ requestRetryCount: number;
342
+ }
343
+ interface IConstructorParams {
344
+ apiEnv: ApiEnv;
345
+ config?: Partial<IConfig>;
346
+ userSalt?: string;
347
+ refreshAuthToken?: () => Promise<string | undefined>;
348
+ }
349
+ interface IWatchCoveragePayload {
350
+ start: number;
351
+ end: number;
352
+ }
353
+ declare class OneStat implements IOneStat {
354
+ private api;
355
+ private logger;
356
+ private config;
357
+ private subscription;
358
+ private beforeunloadSubscription;
359
+ private timeSynchronisation;
360
+ experimental: {
361
+ error$: IObservable<IError>;
362
+ };
363
+ private statContext;
364
+ private vsid;
365
+ private isEmbed;
366
+ private embedParent;
367
+ private uiEvents;
368
+ private player;
369
+ private seekAction$;
370
+ constructor(statContext: IStatContext, params: IConstructorParams);
371
+ updateContext(newContext: Partial<IStatContext>): void;
372
+ attachTo(player: IPlayer): ISubscription;
373
+ attachToUi(events: IUIEvents): Subscription;
374
+ attachToAds(adsEvents: IAdsEvents): ISubscription;
375
+ authorize(authToken?: string): Promise<unknown>;
376
+ pause(): void;
377
+ resume(): void;
378
+ destroy(): void;
379
+ resetViewSession(): void;
380
+ setFieldBlacklist(): void;
381
+ logInited(): void;
382
+ logReady(payload: IReadyPayload): void;
383
+ logStarted(...args: Parameters<typeof this$1.logActionPlay>): void;
384
+ logPlay(): void;
385
+ logPause(payload: IPausePayload): void;
386
+ logSeek(payload: ISeekPayload): void;
387
+ logFirstBytes(payload: IFirstBytesPayload): void;
388
+ logFirstFrame(payload: IFirstFramePayload): void;
389
+ logError(payload: IErrorPayload): void;
390
+ logWatchCoverageRecord(payload: IWatchCoveragePayload): void;
391
+ logWatchCoverageLive(payload: IWatchCoveragePayload): void;
392
+ logEmptyBuffer(payload: IEmptyBufferPayload): void;
393
+ logDownloadSpeed(): void;
394
+ logAdSlotRequest(): void;
395
+ logAdStarted(sectionType: string): void;
396
+ logAdPaused(): void;
397
+ logAdResumed(): void;
398
+ logAdEnded(): void;
399
+ logAdSkipped(): void;
400
+ logAdClicked(): void;
401
+ private subscribe;
402
+ private resubscribeBeforeunload;
403
+ private logPlayerReady;
404
+ private logActionPlay;
405
+ private logCloseAtEmptyBuffer;
406
+ private logActionStop;
407
+ private log;
408
+ private createLogItem;
406
409
  }
407
410
 
408
411
  declare const VERSION: string;