@flowplayer/player 3.14.1 → 3.15.0-rc.10

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.
Files changed (81) hide show
  1. package/core/events.d.ts +575 -68
  2. package/core/events.js +286 -34
  3. package/core.js +1 -1
  4. package/default.js +1 -1
  5. package/embed.js +2 -2
  6. package/flowplayer.css +1 -1
  7. package/index.d.ts +1480 -91
  8. package/package.json +1 -1
  9. package/plugins/ads.d.ts +3744 -112
  10. package/plugins/ads.js +1 -1
  11. package/plugins/airplay.d.ts +1440 -116
  12. package/plugins/airplay.js +1 -1
  13. package/plugins/analytics.d.ts +1409 -82
  14. package/plugins/analytics.js +1 -1
  15. package/plugins/asel.d.ts +1409 -82
  16. package/plugins/asel.js +1 -1
  17. package/plugins/audio.d.ts +1409 -82
  18. package/plugins/audio.js +1 -1
  19. package/plugins/chapters.d.ts +1409 -82
  20. package/plugins/chapters.js +1 -1
  21. package/plugins/chromecast.d.ts +1464 -80
  22. package/plugins/chromecast.js +1 -1
  23. package/plugins/comscore.d.ts +1409 -82
  24. package/plugins/consent.d.ts +1409 -82
  25. package/plugins/consent.js +1 -1
  26. package/plugins/context-menu.d.ts +1443 -116
  27. package/plugins/cuepoints.d.ts +1443 -116
  28. package/plugins/cuepoints.js +1 -1
  29. package/plugins/dash.d.ts +1445 -115
  30. package/plugins/dash.js +1 -1
  31. package/plugins/drm.d.ts +1409 -82
  32. package/plugins/drm.js +1 -1
  33. package/plugins/endscreen.d.ts +1442 -115
  34. package/plugins/endscreen.js +1 -1
  35. package/plugins/fas.d.ts +1409 -82
  36. package/plugins/float-on-scroll.d.ts +1443 -116
  37. package/plugins/float-on-scroll.js +1 -1
  38. package/plugins/ga4.d.ts +1409 -82
  39. package/plugins/gemius.d.ts +1439 -112
  40. package/plugins/google-analytics.d.ts +1409 -82
  41. package/plugins/health.d.ts +1435 -107
  42. package/plugins/health.js +1 -1
  43. package/plugins/hls.d.ts +1431 -104
  44. package/plugins/hls.js +1 -1
  45. package/plugins/id3.d.ts +1409 -82
  46. package/plugins/id3.js +1 -1
  47. package/plugins/iframe.d.ts +1440 -116
  48. package/plugins/iframe.js +1 -1
  49. package/plugins/keyboard.d.ts +1409 -82
  50. package/plugins/media-session.d.ts +1409 -82
  51. package/plugins/message.d.ts +1409 -82
  52. package/plugins/message.js +1 -1
  53. package/plugins/ovp.d.ts +1435 -110
  54. package/plugins/ovp.js +1 -1
  55. package/plugins/playlist.d.ts +1409 -82
  56. package/plugins/playlist.js +1 -1
  57. package/plugins/preview.d.ts +1409 -82
  58. package/plugins/preview.js +1 -1
  59. package/plugins/qsel.d.ts +1409 -82
  60. package/plugins/qsel.js +1 -1
  61. package/plugins/qul.d.ts +1441 -114
  62. package/plugins/qul.js +1 -1
  63. package/plugins/rts.d.ts +1409 -82
  64. package/plugins/rts.js +1 -1
  65. package/plugins/share.d.ts +1409 -82
  66. package/plugins/share.js +1 -1
  67. package/plugins/speed.d.ts +1434 -107
  68. package/plugins/speed.js +1 -1
  69. package/plugins/ssai.d.ts +1412 -82
  70. package/plugins/ssai.js +1 -1
  71. package/plugins/subtitles.d.ts +1426 -102
  72. package/plugins/thumbnails.d.ts +1434 -107
  73. package/plugins/thumbnails.js +1 -1
  74. package/plugins/tizen.d.ts +1409 -82
  75. package/plugins/tizen.js +1 -1
  76. package/plugins/vtsel.d.ts +1409 -82
  77. package/plugins/vtsel.js +1 -1
  78. package/plugins/webos.d.ts +1409 -82
  79. package/plugins/webos.js +1 -1
  80. package/util/loader.d.ts +1436 -101
  81. package/util/loader.js +13 -2
@@ -1,10 +1,31 @@
1
+ /// <reference types="node" />
2
+
3
+ import type { BitrateInfo } from 'dashjs';
1
4
  import type { MediaKeyFunc } from 'hls.js';
2
5
 
6
+ /* Excluded from this release type: AnyLoader */
7
+
3
8
  declare type ArrayToIntersection<T extends Array<unknown>> = T extends [
4
9
  infer Current,
5
10
  ...infer Remaining
6
11
  ] ? Current & ArrayToIntersection<Remaining> : unknown;
7
12
 
13
+ /**
14
+ * Each loader must
15
+ */
16
+ declare type _AttachedEventCheck = {
17
+ on(event: `${string}:attached`, handler: (e: FPEvent<unknown>) => void): Player;
18
+ };
19
+
20
+ /* Excluded from this release type: AUDIO_ONLY_SOURCE */
21
+
22
+ /* Excluded from this release type: AudioOnlySourceEventDetail */
23
+
24
+ declare const AUTOPLAY = "is-autoplay";
25
+
26
+ /**
27
+ * @public
28
+ */
8
29
  declare type Autoplay = BitOpts | boolean;
9
30
 
10
31
  declare enum AutoplayOpts {
@@ -13,19 +34,60 @@ declare enum AutoplayOpts {
13
34
  AUDIO_REQUIRED = 2
14
35
  }
15
36
 
16
- declare type BitOpts = number;
37
+ /* Excluded from this release type: BEFORE_PAUSE */
38
+
39
+ /* Excluded from this release type: BEFORE_PLAY */
40
+
41
+ /**
42
+ * @public
43
+ */
44
+ declare type BeforePauseEventDetail = {
45
+ forced: boolean;
46
+ };
17
47
 
18
- declare type Component = {
19
- onrender?: (config: Config, root: PlayerRoot, player: Player) => void;
20
- onremove?: (config: Config, root: PlayerRoot, player: Player) => void;
48
+ /**
49
+ * @public
50
+ */
51
+ declare type BeforePlayEventDetail = {
52
+ forced: boolean;
21
53
  };
22
54
 
23
- declare interface Components {
24
- render(key: string, args: any[]): void;
25
- remove(key: string, args: any[]): void;
26
- put(key: string, args: Component): void;
27
- }
55
+ /**
56
+ * @public
57
+ */
58
+ declare type BitOpts = number;
59
+
60
+ /**
61
+ * @public
62
+ */
63
+ declare const /**
64
+ @public
65
+ * when a new player is inserted into the HTML
66
+ */ /**
67
+ * @public
68
+ */
69
+ CAN_PLAY = "canplay";
70
+
71
+ /**
72
+ * @public
73
+ */
74
+ declare const /**
75
+ @public
76
+ * when a new player is inserted into the HTML
77
+ */ /**
78
+ * @public
79
+ */
80
+ CLICK = "click";
81
+
82
+ /* Excluded from this release type: Component */
28
83
 
84
+ /* Excluded from this release type: Components */
85
+
86
+ /* Excluded from this release type: CONFIG */
87
+
88
+ /**
89
+ * @public
90
+ */
29
91
  declare interface Config {
30
92
  src?: UnsafeSource;
31
93
  preload?: "none" | "metadata" | "auto";
@@ -35,7 +97,7 @@ declare interface Config {
35
97
  autopause?: boolean;
36
98
  rewind?: boolean;
37
99
  loop?: boolean;
38
- seamless?: boolean;
100
+ /* Excluded from this release type: seamless */
39
101
  retry?: boolean;
40
102
  autoplay?: Autoplay;
41
103
  start_quality?: BitOpts;
@@ -43,10 +105,7 @@ declare interface Config {
43
105
  poster?: string;
44
106
  disabled?: boolean;
45
107
  muted?: boolean;
46
- /**
47
- * is src handled by one of plugins loaders
48
- */
49
- is_native?: boolean;
108
+ /* Excluded from this release type: is_native */
50
109
  /**
51
110
  * bitflags for UI options
52
111
  */
@@ -55,10 +114,7 @@ declare interface Config {
55
114
  * your user access token
56
115
  */
57
116
  token?: string;
58
- /**
59
- * manually configured duration for pre-rendering usually
60
- */
61
- duration?: number;
117
+ /* Excluded from this release type: duration */
62
118
  /**
63
119
  * can the content be seeked to any position
64
120
  */
@@ -76,17 +132,125 @@ declare interface Config {
76
132
  seconds_to_dvr?: number;
77
133
  }
78
134
 
135
+ /* Excluded from this release type: ConfigEventDetail */
136
+
137
+ /**
138
+ * @public
139
+ */
79
140
  declare type ConfigWith<T> = Config & T;
80
141
 
81
- declare const _default: PluginCtor<KeyValue, KeyValue>;
142
+ /* Excluded from this release type: CONTENT_REAL_LOAD_START */
143
+
144
+ /**
145
+ * @public
146
+ */
147
+ declare const /**
148
+ @public
149
+ * when a new player is inserted into the HTML
150
+ */ /**
151
+ * @public
152
+ */
153
+ CONTEXT_MENU = "contextmenu";
154
+
155
+ /**
156
+ * @public
157
+ */
158
+ declare type ContextMenuEventDetail = null;
159
+
160
+ /**
161
+ * @public
162
+ * when a cuepoint becomes inactive
163
+ */
164
+ declare const /**
165
+ @public
166
+ * when a new player is inserted into the HTML
167
+ */ /**
168
+ * @public
169
+ * when a cuepoint becomes inactive
170
+ */
171
+ CUEPOINT_END = "cuepointend";
172
+
173
+ /**
174
+ * @public
175
+ * when a cuepoint is active
176
+ */
177
+ declare const /**
178
+ @public
179
+ * when a new player is inserted into the HTML
180
+ */ /**
181
+ * @public
182
+ * when a cuepoint is active
183
+ */
184
+ CUEPOINT_START = "cuepointstart";
185
+
186
+ /**
187
+ * @public
188
+ */
189
+ declare type CuePointEndEventDetail = null;
190
+
191
+ /**
192
+ * @public
193
+ * cuepoints parsing is asynchronous
194
+ * you cannot rely on them existing until
195
+ * this event is emitted
196
+ */
197
+ declare const /**
198
+ @public
199
+ * when a new player is inserted into the HTML
200
+ */ /**
201
+ * @public
202
+ * cuepoints parsing is asynchronous
203
+ * you cannot rely on them existing until
204
+ * this event is emitted
205
+ */
206
+ CUEPOINTS = "cuepoints";
207
+
208
+ /**
209
+ * @public
210
+ */
211
+ declare type CuePointStartEventDetail = null;
212
+
213
+ /**
214
+ * @public
215
+ */
216
+ declare const /**
217
+ @public
218
+ * when a new player is inserted into the HTML
219
+ */ /**
220
+ * @public
221
+ */
222
+ DATA = "loadeddata";
223
+
224
+ /**
225
+ * @public
226
+ */
227
+ declare const /**
228
+ @public
229
+ * when a new player is inserted into the HTML
230
+ */ /**
231
+ * @public
232
+ */
233
+ DBL_CLICK = "dblclick";
234
+
235
+ declare const _default: PluginCtor<Config, Player>;
82
236
  export default _default;
83
237
 
84
- declare type DeviceId = string;
238
+ declare const DESTROYED = "is-destroyed";
239
+
240
+ /* Excluded from this release type: DeviceId */
241
+
242
+ declare const DISABLED = "is-disabled";
85
243
 
86
244
  declare const DISPLAY = "display";
87
245
 
246
+ /**
247
+ * @public
248
+ */
88
249
  declare type DRM_KEYSYSTEM = "com.widevine.alpha" | "com.microsoft.playready" | "org.w3.clearkey" | "com.apple.fps.1_0";
89
250
 
251
+ /**
252
+ * @public
253
+ */
90
254
  declare type DRMConfiguration = {
91
255
  license_server: string;
92
256
  http_headers?: Record<string, string>;
@@ -96,10 +260,16 @@ declare type DRMConfiguration = {
96
260
  query_params?: Record<string, string>;
97
261
  };
98
262
 
263
+ /**
264
+ * @public
265
+ */
99
266
  declare type DRMSourceConfiguration = {
100
267
  [keysystem in DRM_KEYSYSTEM]?: DRMConfiguration;
101
268
  };
102
269
 
270
+ /**
271
+ * @public
272
+ */
103
273
  declare type DRMVendorImplementation = {
104
274
  fairplay_fetch_certificate: (url: string, cb: (certificate_data: Uint8Array) => void) => void;
105
275
  fairplay_request_license: (url: string, params: {
@@ -108,6 +278,74 @@ declare type DRMVendorImplementation = {
108
278
  }, cb: (license_data: Uint8Array) => void) => void;
109
279
  };
110
280
 
281
+ /**
282
+ * @public
283
+ */
284
+ declare const /**
285
+ @public
286
+ * when a new player is inserted into the HTML
287
+ */ /**
288
+ * @public
289
+ */
290
+ DURATION_CHANGE = "durationchange";
291
+
292
+ /**
293
+ * @public
294
+ * when the player has started playing dvr content
295
+ */
296
+ declare const /**
297
+ @public
298
+ * when a new player is inserted into the HTML
299
+ */ /**
300
+ * @public
301
+ * when the player has started playing dvr content
302
+ */
303
+ DVR = "dvr";
304
+
305
+ /**
306
+ * @public
307
+ */
308
+ declare type DvrEventDetail = number;
309
+
310
+ declare const ENDED = "is-ended";
311
+
312
+ /**
313
+ * @public
314
+ */
315
+ declare const /**
316
+ @public
317
+ * when a new player is inserted into the HTML
318
+ */ /**
319
+ * @public
320
+ */
321
+ ENDED_2 = "ended";
322
+
323
+ declare type EnsureOnAttached<P extends Function, T extends Player> = ExtractPureAPI<T> extends _AttachedEventCheck ? P : "Loaders must implement on('<pluginname>:attached') event";
324
+
325
+ /**
326
+ * @public
327
+ */
328
+ declare const /**
329
+ @public
330
+ * when a new player is inserted into the HTML
331
+ */ /**
332
+ * @public
333
+ */
334
+ ERROR = "error";
335
+
336
+ declare const ERRORED = "is-error";
337
+
338
+ /**
339
+ * @public
340
+ */
341
+ declare type ErrorEventDetail = {
342
+ src?: string;
343
+ type?: string;
344
+ code?: number | string;
345
+ };
346
+
347
+ /* Excluded from this release type: _ErrorEventDetail */
348
+
111
349
  declare type EventInfo = {
112
350
  event: string;
113
351
  media_session_id: string;
@@ -115,41 +353,161 @@ declare type EventInfo = {
115
353
  play_range_id: string;
116
354
  };
117
355
 
356
+ declare namespace events {
357
+ export {
358
+ MOUNT,
359
+ ERROR,
360
+ CONTEXT_MENU,
361
+ CLICK,
362
+ DBL_CLICK,
363
+ KEYUP,
364
+ KEYDOWN,
365
+ LOAD,
366
+ MOUSE_ENTER,
367
+ MOUSE_LEAVE,
368
+ MOUSE_UP,
369
+ MOUSE_DOWN,
370
+ MOUSE_MOVE,
371
+ TOUCH_START,
372
+ TOUCH_MOVE,
373
+ TOUCH_END,
374
+ TOUCH_CANCEL,
375
+ RESIZE,
376
+ SCROLL,
377
+ FULLSCREEN_ENTER,
378
+ FULLSCREEN_EXIT,
379
+ FULLSCREEN_CHANGE,
380
+ METADATA,
381
+ DATA,
382
+ PROGRESS,
383
+ TIME_UPDATE,
384
+ LOAD_START,
385
+ VOLUME_CHANGE,
386
+ PAUSE,
387
+ PLAYING_2 as PLAYING,
388
+ PLAY,
389
+ WAITING_2 as WAITING,
390
+ CAN_PLAY,
391
+ ENDED_2 as ENDED,
392
+ SEEKED,
393
+ SEEKING_2 as SEEKING,
394
+ DURATION_CHANGE,
395
+ CUEPOINTS,
396
+ CUEPOINT_START,
397
+ CUEPOINT_END,
398
+ VIEW_ENTER,
399
+ VIEW_LEAVE,
400
+ SOURCE,
401
+ REAP,
402
+ QUALITIES,
403
+ VIDEO_TRACKS,
404
+ SET_QUALITY,
405
+ VIDEO_TRACK_SELECT,
406
+ RECOMMENDATIONS_READY,
407
+ LANDSCAPE,
408
+ PORTRAIT,
409
+ DVR,
410
+ LIVE_2 as LIVE
411
+ }
412
+ }
413
+
414
+ declare type ExtractPureAPI<T> = T extends PlayerWith<infer PureAPI> ? PureAPI : never;
415
+
416
+ /**
417
+ * @public
418
+ */
118
419
  declare type FlowplayerCustomElementRegistry = Map<string, string>;
119
420
 
421
+ /**
422
+ * @public
423
+ */
424
+ declare type FlowplayerStates = typeof states;
425
+
426
+ /**
427
+ * @public
428
+ */
120
429
  declare interface FlowplayerUMD extends FlowplayerUMDBase {
430
+ /**
431
+ * Configure flowplayer and display it in the UI
432
+ * @param selector - query selector of the HTML element where player will render
433
+ * @param config - configuration of flowplayer
434
+ */
121
435
  (selector: string, config?: Config): Player;
436
+ /**
437
+ * Configure flowplayer and display it in the UI
438
+ * @param element - HTML element where player will render
439
+ * @param config - configuration of flowplayer
440
+ */
122
441
  (element: HTMLElement, config?: Config): Player;
442
+ /**
443
+ * Configure flowplayer and display it in the UI
444
+ * @param selector - query selector of the HTML element where player will render
445
+ * @param config - configuration of flowplayer
446
+ */
123
447
  <T>(selector: string, config?: ConfigWith<T>): Player;
448
+ /**
449
+ * Configure flowplayer and display it in the UI
450
+ * @param element - HTML element where player will render
451
+ * @param config - configuration of flowplayer
452
+ */
124
453
  <T>(element: HTMLElement, config?: ConfigWith<T>): Player;
454
+ /**
455
+ * Register plugins in flowplayer
456
+ * @returns flowplayer instance with registered plugins
457
+ */
125
458
  <PluginCtors extends PluginCtor[]>(...plugins: PluginCtors): FlowplayerUMDWithPlugins<ConfigWith<MergeConfigs<PluginCtors>>, PlayerWith<MergePlayerAPIExtensions<PluginCtors>>>;
126
459
  }
127
460
 
128
461
  declare interface FlowplayerUMDBase {
462
+ /**
463
+ * All player instances on the page
464
+ */
129
465
  instances: Player[];
130
- extensions: PluginCtor<KeyValue, any>[];
131
- events: Record<string, string>;
132
- ads?: {
133
- events: Record<string, string>;
134
- };
135
- states: Record<string, string>;
466
+ /**
467
+ * Flowplayer core events
468
+ */
469
+ events: typeof events;
470
+ /**
471
+ * Flowplayer ui states map
472
+ */
473
+ states: FlowplayerStates;
136
474
  quality: typeof QualityOpts;
475
+ autoplay: typeof AutoplayOpts;
137
476
  commit: string;
138
477
  version: string;
478
+ /**
479
+ * Flowplayer's custom element registry
480
+ */
139
481
  customElements: FlowplayerCustomElementRegistry;
140
- defaultElements: Record<string, string>;
141
- components: Components;
142
- support: any;
143
- autoplay: typeof AutoplayOpts;
144
- jwt: any;
145
- loaders: any;
482
+ /* Excluded from this release type: extensions */
483
+ /* Excluded from this release type: defaultElements */
484
+ /* Excluded from this release type: components */
485
+ /* Excluded from this release type: support */
486
+ /* Excluded from this release type: jwt */
487
+ /* Excluded from this release type: loaders */
146
488
  }
147
489
 
148
- declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config, PluginPlayerAPIExtension extends Player = Player> extends FlowplayerUMDBase {
149
- (selector: string, config?: ConfigWithPlugins): PluginPlayerAPIExtension;
150
- (element: HTMLElement, config?: ConfigWithPlugins): PluginPlayerAPIExtension;
490
+ /**
491
+ * @public
492
+ */
493
+ declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config, PluginPlayer extends Player = Player> extends FlowplayerUMDBase {
494
+ /**
495
+ * Configure flowplayer, it's attached plugins and display flowplayer it in the UI
496
+ * @param selector - query selector of the HTML element where player will render
497
+ * @param config - Configuration of the flowplayer and the attached plugins
498
+ */
499
+ (selector: string, config?: ConfigWithPlugins): PluginPlayer;
500
+ /**
501
+ * Configure flowplayer, it's attached plugins and display flowplayer it in the UI
502
+ * @param element - HTML element where player will render
503
+ * @param config - Configuration of the flowplayer and the attached plugins
504
+ */
505
+ (element: HTMLElement, config?: ConfigWithPlugins): PluginPlayer;
151
506
  }
152
507
 
508
+ /**
509
+ * @public
510
+ */
153
511
  declare interface FPEvent<T> extends CustomEvent<T> {
154
512
  /**
155
513
  * @deprecated
@@ -159,6 +517,45 @@ declare interface FPEvent<T> extends CustomEvent<T> {
159
517
  data?: T;
160
518
  }
161
519
 
520
+ declare const FULLSCREEN = "is-fullscreen";
521
+
522
+ /**
523
+ * @public
524
+ */
525
+ declare const /**
526
+ @public
527
+ * when a new player is inserted into the HTML
528
+ */ /**
529
+ * @public
530
+ */
531
+ FULLSCREEN_CHANGE = "fullscreenchange";
532
+
533
+ /**
534
+ * @public
535
+ */
536
+ declare const /**
537
+ @public
538
+ * when a new player is inserted into the HTML
539
+ */ /**
540
+ * @public
541
+ */
542
+ FULLSCREEN_ENTER = "fullscreenenter";
543
+
544
+ /**
545
+ * @public
546
+ */
547
+ declare const /**
548
+ @public
549
+ * when a new player is inserted into the HTML
550
+ */ /**
551
+ * @public
552
+ */
553
+ FULLSCREEN_EXIT = "fullscreenexit";
554
+
555
+ declare const GRABBING = "is-grabbing";
556
+
557
+ declare const HAS_POSTER = "has-poster";
558
+
162
559
  declare class Health implements Plugin_2 {
163
560
  static events: typeof HealthEvents;
164
561
  static _UNLOAD_SUBSCRIBED: boolean;
@@ -168,6 +565,7 @@ declare class Health implements Plugin_2 {
168
565
  session_id: string;
169
566
  analyticsLoop: ReturnType<typeof setInterval>;
170
567
  suspended: boolean;
568
+ first_playing_event_timestamp?: number;
171
569
  constructor(umd: FlowplayerUMD, player: PlayerWithHealthAPI);
172
570
  eventInfo(event: string): EventInfo;
173
571
  suspend(): void;
@@ -175,151 +573,1081 @@ declare class Health implements Plugin_2 {
175
573
  init(_config: Config, root: PlayerRoot, player: Player): void;
176
574
  }
177
575
 
178
- /**
179
- * @public
180
- */
181
- export declare type HealthClass = Health;
576
+ /* Excluded from this release type: HealthClass */
182
577
 
183
578
  declare namespace HealthEvents {
184
579
  export {
185
580
  RECORD,
186
581
  REBUFFER,
187
582
  REBUFFER_ENDED,
188
- DISPLAY
583
+ DISPLAY,
584
+ TIME_TO_FIRST_FRAME,
585
+ TIME_TO_FIRST_FRAGMENT_LOADED
189
586
  }
190
587
  }
191
588
 
192
- declare type JSONPlayer = any;
589
+ declare const HOVERED = "is-hovered";
193
590
 
194
- declare type KeyValue = Record<string, any>;
591
+ declare const IN_VIEWPORT = "is-in-viewport";
195
592
 
196
- declare interface Loader<PluginOwnConfig extends KeyValue = KeyValue, PluginPlayerAPIExtension extends KeyValue = KeyValue> extends Plugin_2<PluginOwnConfig, PluginPlayerAPIExtension> {
197
- onload(config: ConfigWith<PluginOwnConfig>, root: PlayerRoot, video: PlayerWith<PluginPlayerAPIExtension>, src?: SourceObj): void;
198
- wants<S = SourceObj>(srcString: SourceStr, srcObj: S, config: ConfigWith<PluginOwnConfig>): boolean;
199
- wants<S = KeyValue>(srcString: SourceStr, srcObj: SourceWith<S>, config: ConfigWith<PluginOwnConfig>): boolean;
200
- }
593
+ /* Excluded from this release type: INTERSECTIONCHANGE */
201
594
 
202
- declare interface Logger {
203
- (...args: any[]): void;
204
- log(...args: any[]): void;
205
- }
595
+ /* Excluded from this release type: IntersectionChangeEventDetail */
206
596
 
207
- declare type MapToConfigs<Arr extends PluginCtor[]> = {
208
- [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer ConfigType> ? ConfigType : never;
209
- };
597
+ declare const IS_SOURCE_PROCESSING = "is-source-processing";
210
598
 
211
- declare type MapToPlayerApiExtensions<Arr extends PluginCtor[]> = {
212
- [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer _uConfigType, infer PlayerAPIExtension> ? PlayerAPIExtension : never;
213
- };
599
+ declare type JSONPlayer = any;
214
600
 
215
- declare type MergeConfigs<Arr extends PluginCtor[]> = ArrayToIntersection<MapToConfigs<Arr>>;
601
+ /**
602
+ * @public
603
+ */
604
+ declare const /**
605
+ @public
606
+ * when a new player is inserted into the HTML
607
+ */ /**
608
+ * @public
609
+ */
610
+ KEYDOWN = "keydown";
216
611
 
217
- declare type MergePlayerAPIExtensions<Arr extends PluginCtor[]> = ArrayToIntersection<MapToPlayerApiExtensions<Arr>>;
612
+ /**
613
+ * @public
614
+ */
615
+ declare const /**
616
+ @public
617
+ * when a new player is inserted into the HTML
618
+ */ /**
619
+ * @public
620
+ */
621
+ KEYUP = "keyup";
218
622
 
219
- declare interface Player extends HTMLVideoElement {
220
- renderPlugin: (pluginContainer: HTMLElement) => void;
221
- toggleDisable: (flag: boolean) => void;
222
- original_src: string;
223
- root: PlayerRoot;
224
- playerState: Record<string, boolean>;
225
- reaper: Map<string, any> | 0;
226
- hasState(state: PlayerState): boolean;
227
- transitionState(to: PlayerState, from: PlayerState, timer?: number): void;
228
- togglePlay(on?: boolean): Promise<void>;
229
- toggleFullScreen(on?: boolean, state_only?: boolean): void;
230
- toggleMute(on?: boolean): void;
231
- destroy(): void;
232
- render(): void;
233
- render(component: string, args: any[]): void;
234
- createComponents(...args: string[]): HTMLElement[];
623
+ /**
624
+ * @public
625
+ */
626
+ declare type KeyValue = Record<string, any>;
627
+
628
+ /**
629
+ * @public
630
+ */
631
+ declare const /**
632
+ @public
633
+ * when a new player is inserted into the HTML
634
+ */ /**
635
+ * @public
636
+ */
637
+ LANDSCAPE = "landscape";
638
+
639
+ declare const LIVE = "is-live";
640
+
641
+ /**
642
+ * @public
643
+ * when src is a livestream
644
+ */
645
+ declare const /**
646
+ @public
647
+ * when a new player is inserted into the HTML
648
+ */ /**
649
+ * @public
650
+ * when src is a livestream
651
+ */
652
+ LIVE_2 = "live";
653
+
654
+ declare const LIVE_SEEKED = "is-live-seeked";
655
+
656
+ /**
657
+ * @public
658
+ */
659
+ declare type LiveEventDetail = null;
660
+
661
+ /**
662
+ * @public
663
+ */
664
+ declare const /**
665
+ @public
666
+ * when a new player is inserted into the HTML
667
+ */ /**
668
+ * @public
669
+ */
670
+ LOAD = "load";
671
+
672
+ /**
673
+ * @public
674
+ */
675
+ declare const /**
676
+ @public
677
+ * when a new player is inserted into the HTML
678
+ */ /**
679
+ * @public
680
+ */
681
+ LOAD_START = "loadstart";
682
+
683
+ declare const LOADED = "is-loaded";
684
+
685
+ /**
686
+ * @public A plugin that supports loading new media formats. Use 'class MyPlugin implements Loader\<...\>' when writing your custom Loader
687
+ * @typeParam PluginPlayer- Player API that will be implemented by the loader. Loader at least must implement on(\<loader-name\>:attached, ...) event handler
688
+ */
689
+ declare interface Loader<PluginOwnConfig extends KeyValue, // FIXME extends Config
690
+ PluginPlayer extends PlayerWith<_AttachedEventCheck>> extends Plugin_2<PluginOwnConfig, PluginPlayer> {
691
+ onload: EnsureOnAttached<(config: ConfigWith<PluginOwnConfig>, root: PlayerRoot, video: PlayerWith<PluginPlayer>, src: SourceObj) => void, PluginPlayer>;
692
+ wants<S = SourceObj>(srcString: SourceStr, srcObj: S, config: ConfigWith<PluginOwnConfig>): boolean;
693
+ wants<S = KeyValue>(srcString: SourceStr, srcObj: SourceWith<S>, config: ConfigWith<PluginOwnConfig>): boolean;
694
+ }
695
+
696
+ declare const LOADING = "is-loading";
697
+
698
+ declare interface Logger {
699
+ (...args: any[]): void;
700
+ log(...args: any[]): void;
701
+ }
702
+
703
+ declare type MapToConfigs<Arr extends PluginCtor[]> = {
704
+ [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<ConfigWith<infer ConfigType>> ? ConfigType : never;
705
+ };
706
+
707
+ declare type MapToPlayerApiExtensions<Arr extends PluginCtor[]> = {
708
+ [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer _uConfigType, PlayerWith<infer PlayerAPIExtension>> ? PlayerAPIExtension : never;
709
+ };
710
+
711
+ declare const MENU_OPENED = "has-menu-opened";
712
+
713
+ declare type MergeConfigs<Arr extends PluginCtor[]> = ArrayToIntersection<MapToConfigs<Arr>>;
714
+
715
+ declare type MergePlayerAPIExtensions<Arr extends PluginCtor[]> = ArrayToIntersection<MapToPlayerApiExtensions<Arr>>;
716
+
717
+ /**
718
+ * @public
719
+ * general video events flowplayer uses internally
720
+ * https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events
721
+ */
722
+ declare const /**
723
+ @public
724
+ * when a new player is inserted into the HTML
725
+ */ /**
726
+ * @public
727
+ * general video events flowplayer uses internally
728
+ * https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events
729
+ */
730
+ METADATA = "loadedmetadata";
731
+
732
+ /**
733
+ @public
734
+ * when a new player is inserted into the HTML
735
+ */
736
+ declare const /**
737
+ @public
738
+ * when a new player is inserted into the HTML
739
+ */ /**
740
+ @public
741
+ * when a new player is inserted into the HTML
742
+ */ MOUNT = "mount";
743
+
744
+ /**
745
+ * @public
746
+ */
747
+ declare type MountEventDetail = null;
748
+
749
+ /**
750
+ * @public
751
+ */
752
+ declare const /**
753
+ @public
754
+ * when a new player is inserted into the HTML
755
+ */ /**
756
+ * @public
757
+ */
758
+ MOUSE_DOWN = "mousedown";
759
+
760
+ /**
761
+ * @public
762
+ */
763
+ declare const /**
764
+ @public
765
+ * when a new player is inserted into the HTML
766
+ */ /**
767
+ * @public
768
+ */
769
+ MOUSE_ENTER = "mouseenter";
770
+
771
+ /**
772
+ * @public
773
+ */
774
+ declare const /**
775
+ @public
776
+ * when a new player is inserted into the HTML
777
+ */ /**
778
+ * @public
779
+ */
780
+ MOUSE_LEAVE = "mouseleave";
781
+
782
+ /**
783
+ * @public
784
+ */
785
+ declare const /**
786
+ @public
787
+ * when a new player is inserted into the HTML
788
+ */ /**
789
+ * @public
790
+ */
791
+ MOUSE_MOVE = "mousemove";
792
+
793
+ /**
794
+ * @public
795
+ */
796
+ declare const /**
797
+ @public
798
+ * when a new player is inserted into the HTML
799
+ */ /**
800
+ * @public
801
+ */
802
+ MOUSE_UP = "mouseup";
803
+
804
+ declare const MUTED = "is-muted";
805
+
806
+ declare const NO_CONTROLS = "no-controls";
807
+
808
+ declare const NO_DVR = "no-timeline";
809
+
810
+ /* Excluded from this release type: NON_RECOVERABLE_ERROR */
811
+
812
+ /* Excluded from this release type: NonRecoverableErrorEventDetail */
813
+
814
+ /* Excluded from this release type: NQState */
815
+
816
+ /**
817
+ * @public
818
+ */
819
+ declare type OVPMetadata = {
820
+ player_id?: string;
821
+ media_id?: string;
822
+ ad_keywords?: string;
823
+ title?: string;
824
+ description?: string;
825
+ category_name?: string;
826
+ duration?: number;
827
+ tags?: string;
828
+ };
829
+
830
+ /**
831
+ * @public
832
+ */
833
+ declare const /**
834
+ @public
835
+ * when a new player is inserted into the HTML
836
+ */ /**
837
+ * @public
838
+ */
839
+ PAUSE = "pause";
840
+
841
+ declare const PAUSED = "is-paused";
842
+
843
+ /**
844
+ * @public
845
+ */
846
+ declare const /**
847
+ @public
848
+ * when a new player is inserted into the HTML
849
+ */ /**
850
+ * @public
851
+ */
852
+ PLAY = "play";
853
+
854
+ /**
855
+ * @public
856
+ */
857
+ declare type Player = HTMLVideoElement & PlayerEventOverloads & {
858
+ /* Excluded from this release type: renderPlugin */
859
+ /**
860
+ * Disables and enables the player.
861
+ * @param flag -Forces disabled mode (true) or enabled mode (false). Disabled player cannot be seeked forward.
862
+ */
863
+ toggleDisable: (flag?: boolean) => void;
864
+ /* Excluded from this release type: original_src */
865
+ /**
866
+ * The root element of the video player. This is the immediate parent element of the video tag.
867
+ */
868
+ root: PlayerRoot;
869
+ /* Excluded from this release type: playerState */
870
+ /* Excluded from this release type: reaper */
871
+ /* Excluded from this release type: hasState */
872
+ /* Excluded from this release type: transitionState */
873
+ /**
874
+ * Toggles between playing and paused mode.
875
+ * @param on - Forces the playback (true) or paused state (false). Use this for initial playback of a source configured with setSrc() and when changing the state.
876
+ */
877
+ togglePlay(on?: boolean): Promise<void>;
878
+ /* Excluded from this release type: toggleFullScreen */
879
+ /**
880
+ * @public
881
+ * Toggles between normal and fullscreen mode. The optional flag attribute forces the normal sized (false) or fullscreen (false) mode.
882
+ * The custom fullscreenenter and fullscreenexit events are sent respectively.
883
+ */
884
+ toggleFullScreen(on?: boolean): void;
885
+ /* Excluded from this release type: toggleMute */
886
+ /**
887
+ * Toggles between muted and original volume level.
888
+ */
889
+ toggleMute(): void;
890
+ /**
891
+ * Removes a Flowplayer instance from `flowplayer.instances` and emits the `flowplayer.events.REAP` event, enabling cleanup of unsafe resources.
892
+ */
893
+ destroy(): void;
894
+ /* Excluded from this release type: render */
895
+ /* Excluded from this release type: render */
896
+ createComponents(...args: string[]): HTMLElement[];
897
+ /**
898
+ * Adds or changes configuration object. Usually used in conjunction with `setSrc()`. You can use all top-level config options like `subtitle:` , `logo:`, `ima:` etc.
899
+ * @example
900
+ * ```
901
+ * setOpts({
902
+ * subtitles:{
903
+ * tracks:[
904
+ * {
905
+ * src: "1.vtt",
906
+ * label: "English",
907
+ * default: true
908
+ * }, {
909
+ * src: "2.vtt",
910
+ * label: "Spanish",
911
+ * default : false }]},
912
+ * logo: "https://myserver.com/logo.png"
913
+ * })
914
+ * ```
915
+ */
235
916
  setOpts(config: Config): void;
236
- setSrc(sources: UnsafeSource): Player;
237
- on<T>(event: string | string[], handler: (e: FPEvent<T>) => void): Player;
238
- once<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
239
- off<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
240
- poll<T>(event: string, data?: T): FPEvent<T>;
241
- emit<T>(event: string, data?: T): Player;
242
- setAttrs(attrs: Config): Player;
243
- opt<T>(key: string, fallback?: T): T;
244
- enqueueSeek(offset: number): any;
245
- setState(state: string, flag: boolean): Player;
246
- toJSON(): JSONPlayer;
917
+ /**
918
+ * Sets the video source to be played. The src attribute can be a string or an object similar to the src property.
919
+ */
920
+ setSrc(sources: UnsafeSource): void;
921
+ /* Excluded from this release type: setSrc */
922
+ /* Excluded from this release type: setAttrs */
923
+ /* Excluded from this release type: opt */
924
+ /* Excluded from this release type: enqueueSeek */
925
+ /* Excluded from this release type: setState */
926
+ setState(state: PlayerState, flag: boolean): void;
927
+ /* Excluded from this release type: toJSON */
928
+ /**
929
+ * Adds a language to the project. See {@link https://developer.wowza.com/docs/wowza-flowplayer/player/translations/#using-npm| Official documentation}
930
+ */
247
931
  i18n(k: string, fallback?: string): string;
248
- deviceId(): DeviceId;
249
- live_state: {
250
- dvr?: boolean;
251
- dvr_window?: number;
252
- };
932
+ /* Excluded from this release type: deviceId */
933
+ /* Excluded from this release type: live_state */
934
+ /**
935
+ * A reference to the configuration state of the player.
936
+ */
253
937
  opts: Config;
254
- plugins: Array<Plugin_2 | Loader>;
255
- dvr_offset?: number;
938
+ /* Excluded from this release type: plugins */
939
+ /* Excluded from this release type: dvr_offset */
256
940
  message?: {
257
941
  events: Record<string, string>;
258
942
  };
943
+ /**
944
+ * A boolean specifying whether the player is disabled and the user cannot seek forward using the mouse or keyboard.
945
+ * Player is disabled and enabled with the `toggleDisable()` method.
946
+ */
259
947
  disabled: boolean;
260
- started?: boolean;
261
- token: string;
948
+ /* Excluded from this release type: started */
949
+ /* Excluded from this release type: token */
262
950
  tracks?: VideoTrack[];
263
- _customElements: FlowplayerCustomElementRegistry;
264
- _storage: Storage;
265
- }
951
+ /* Excluded from this release type: _customElements */
952
+ /* Excluded from this release type: _storage */
953
+ };
954
+
955
+ declare type PlayerCustomEventName = keyof PlayerCustomEventsDetailMap;
956
+
957
+ declare type PlayerCustomEventsDetailMap = {
958
+ [MOUNT]: MountEventDetail;
959
+ [ERROR]: ErrorEventDetail;
960
+ [CONTEXT_MENU]: ContextMenuEventDetail;
961
+ /* Excluded from this release type: beforeplay */
962
+ /* Excluded from this release type: beforepause */
963
+ /* Excluded from this release type: state */
964
+ [CUEPOINT_START]: CuePointStartEventDetail;
965
+ [CUEPOINT_END]: CuePointEndEventDetail;
966
+ [VIEW_ENTER]: ViewEnterEventDetail;
967
+ [VIEW_LEAVE]: ViewLeaveEventDetail;
968
+ [SOURCE]: SourceEventDetail;
969
+ /* Excluded from this release type: recover */
970
+ [REAP]: ReapEventDetail;
971
+ /* Excluded from this release type: config */
972
+ [QUALITIES]: QualitiesEventDetail;
973
+ /* Excluded from this release type: "error:fatal" */
974
+ [RECOMMENDATIONS_READY]: RecommendationsReadyEventDetail;
975
+ /* Excluded from this release type: audioonlysource */
976
+ /* Excluded from this release type: renderplugin */
977
+ [DVR]: DvrEventDetail;
978
+ [LIVE_2]: LiveEventDetail;
979
+ /* Excluded from this release type: "seek:queued" */
980
+ /* Excluded from this release type: "seek:cancel" */
981
+ /* Excluded from this release type: "plugin:registered" */
982
+ /* Excluded from this release type: intersectionchange */
983
+ /* Excluded from this release type: retry */
984
+ };
266
985
 
986
+ declare type PlayerCustomEventsOverloads = {
987
+ /**
988
+ * Sent when the player interface is completely rendered and you can access all the elements with CSS and JavaScript. Due to the way mounting works, this event is only accessible inside of a custom extension.
989
+ */
990
+ on(event: typeof MOUNT, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof MOUNT]>) => void): Player;
991
+ /**
992
+ * Sent when an error occurs. Learn more about error handling.
993
+ */
994
+ on(event: typeof ERROR, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof ERROR]>) => void): Player;
995
+ on(// FIXME - this event is in context-menu plugin
996
+ event: typeof CONTEXT_MENU, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof CONTEXT_MENU]>) => void): Player;
997
+ /* Excluded from this release type: on */
998
+ /* Excluded from this release type: on */
999
+ /* Excluded from this release type: on */
1000
+ /**
1001
+ * TODO - move to Cuepoints? Sent when a configured cuepoint is entered.
1002
+ */
1003
+ on(event: typeof CUEPOINT_START, // TODO: move to Cuepoints
1004
+ handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof CUEPOINT_START]>) => void): Player;
1005
+ /**
1006
+ * Sent when a configured cuepoint is terminated.
1007
+ */
1008
+ on(event: typeof CUEPOINT_END, // TODO: move to Cuepoints
1009
+ handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof CUEPOINT_END]>) => void): Player;
1010
+ /**
1011
+ * Sent when the player becomes visible for the user.
1012
+ */
1013
+ on(event: typeof VIEW_ENTER, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof VIEW_ENTER]>) => void): Player;
1014
+ /**
1015
+ * Sent when the player leaves the users viewport and is longer visible.
1016
+ */
1017
+ on(event: typeof VIEW_LEAVE, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof VIEW_LEAVE]>) => void): Player;
1018
+ /**
1019
+ * Sent right before the player src attribute is set. This allows you to change the video URL before playback.
1020
+ */
1021
+ on(event: typeof SOURCE, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof SOURCE]>) => void): Player;
1022
+ /* Excluded from this release type: on */
1023
+ /**
1024
+ * Sent when a flowplayer instance is about to be removed from the DOM, and any unsafe references are about to be reaped, which allows Single Page Applications to perform the necessary resource cleanups. This is important when working with front-end frameworks like React. This event should never be emitted directly, only listened to.
1025
+ */
1026
+ on(event: typeof REAP, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof REAP]>) => void): Player;
1027
+ /* Excluded from this release type: on */
1028
+ /**
1029
+ * Emitted when the set of underlying qualities has changed.
1030
+ */
1031
+ on(event: typeof QUALITIES, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof QUALITIES]>) => void): Player;
1032
+ /* Excluded from this release type: on */
1033
+ /**
1034
+ * Listen to this event to create a recommendations grid using the data passed with the event.
1035
+ */
1036
+ on(event: typeof RECOMMENDATIONS_READY, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof RECOMMENDATIONS_READY]>) => void): Player;
1037
+ /* Excluded from this release type: on */
1038
+ /* Excluded from this release type: on */
1039
+ /**
1040
+ * when the player has started playing dvr content
1041
+ */
1042
+ on(event: typeof DVR, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof DVR]>) => void): Player;
1043
+ /**
1044
+ * when src is a livestream
1045
+ */
1046
+ on(event: typeof LIVE_2, handler: (e: FPEvent<PlayerCustomEventsDetailMap[typeof LIVE_2]>) => void): Player;
1047
+ /* Excluded from this release type: on */
1048
+ /* Excluded from this release type: on */
1049
+ /* Excluded from this release type: on */
1050
+ /* Excluded from this release type: on */
1051
+ /* Excluded from this release type: on */
1052
+ on<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
1053
+ /* Excluded from this release type: on */
1054
+ /**
1055
+ * Same as `on()`, but the handler function is executed only once.
1056
+ */
1057
+ once<T extends PlayerCustomEventName>(event: T, handler: (e: FPEvent<PlayerCustomEventsDetailMap[T]>) => void): Player;
1058
+ /**
1059
+ * Same as `on()`, but the handler function is executed only once.
1060
+ */
1061
+ once<T extends PlayerNativeEventName>(event: T, handler: (e: PlayerNativeEventsDetailMap[T]) => void): Player;
1062
+ once<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
1063
+ /**
1064
+ * Removes the event handler with the specified event type.
1065
+ */
1066
+ off<T extends PlayerCustomEventName>(event: T, handler: (e: FPEvent<PlayerCustomEventsDetailMap[T]>) => void): Player;
1067
+ /**
1068
+ * Removes the event handler with the specified event type.
1069
+ */
1070
+ off<T extends PlayerNativeEventName>(event: T, handler: (e: PlayerNativeEventsDetailMap[T]) => void): Player;
1071
+ /**
1072
+ * Removes the event handler with the specified event type.
1073
+ */
1074
+ off<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
1075
+ /* Excluded from this release type: poll */
1076
+ emit<T extends PlayerCustomEventName>(event: T, data?: PlayerCustomEventsDetailMap[T]): Player;
1077
+ /* Excluded from this release type: emit */
1078
+ emit<T, X extends string = string>(event: X & (X extends PlayerCustomEventName ? "Incorrect event detail type" : X), data?: T): Player;
1079
+ };
1080
+
1081
+ declare type PlayerEventOverloads = PlayerNativeEventsOverloads & PlayerCustomEventsOverloads;
1082
+
1083
+ declare type PlayerNativeEventName = keyof PlayerNativeEventsDetailMap;
1084
+
1085
+ declare type PlayerNativeEventsDetailMap = Omit<HTMLVideoElementEventMap, "error">;
1086
+
1087
+ declare type PlayerNativeEventsOverloads = {
1088
+ on<K extends keyof PlayerNativeEventsDetailMap>(event: K, handler: (ev: PlayerNativeEventsDetailMap[K]) => void): Player;
1089
+ };
1090
+
1091
+ /**
1092
+ * @public
1093
+ * The root element of the video player. This is the immediate parent element of the video tag.
1094
+ */
267
1095
  declare type PlayerRoot = HTMLElement & {
268
- prevWidth?: number;
1096
+ /* Excluded from this release type: prevWidth */
269
1097
  };
270
1098
 
271
- declare type PlayerState = string;
1099
+ /**
1100
+ * @public
1101
+ */
1102
+ declare type PlayerState = FlowplayerStates[keyof FlowplayerStates];
1103
+
1104
+ /* Excluded from this release type: _PlayerState */
1105
+
1106
+ /* Excluded from this release type: PlayerStates */
272
1107
 
1108
+ /**
1109
+ * @public
1110
+ */
273
1111
  declare type PlayerWith<T> = T & Player;
274
1112
 
275
- declare type PlayerWithHealthAPI = Player & {
1113
+ declare type PlayerWithHealthAPI = PlayerWith<{
276
1114
  health?: {
277
1115
  media_session_id: string;
278
1116
  session_id: string;
279
1117
  toggle: (flag: boolean) => void;
280
1118
  };
281
- };
1119
+ }>;
1120
+
1121
+ declare const PLAYING = "is-playing";
1122
+
1123
+ /**
1124
+ * @public
1125
+ */
1126
+ declare const /**
1127
+ @public
1128
+ * when a new player is inserted into the HTML
1129
+ */ /**
1130
+ * @public
1131
+ */
1132
+ PLAYING_2 = "playing";
282
1133
 
283
- declare interface Plugin_2<PluginOwnConfig extends KeyValue = KeyValue, PluginPlayerAPIExtension extends KeyValue = KeyValue> {
1134
+ /**
1135
+ * @public
1136
+ */
1137
+ declare interface Plugin_2<PluginConfig extends Config = Config, PluginPlayer extends Player = Player> {
284
1138
  /**
285
1139
  * a plugin must always implement the init method so a player instance knows how to initialize it
286
1140
  */
287
- init(config: ConfigWith<PluginOwnConfig>, container: PlayerRoot, player: PlayerWith<PluginPlayerAPIExtension>): void;
1141
+ init(config: PluginConfig, container: PlayerRoot, player: PluginPlayer): void;
288
1142
  }
289
1143
 
290
- declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue, PluginPlayerAPIExtension extends KeyValue = KeyValue> {
291
- new (umd: FlowplayerUMD, player: PlayerWith<PluginPlayerAPIExtension>): Plugin_2<PluginOwnConfig, PluginPlayerAPIExtension>;
1144
+ /* Excluded from this release type: PLUGIN_REGISTERED */
1145
+
1146
+ /**
1147
+ * @public
1148
+ */
1149
+ declare interface PluginCtor<PluginConfig extends Config = Config, PluginPlayer extends Player = Player> {
1150
+ new (umd: FlowplayerUMD, player: PluginPlayer): Plugin_2<PluginConfig, PluginPlayer>;
292
1151
  }
293
1152
 
1153
+ /* Excluded from this release type: PluginRegisteredEventDetail */
1154
+
1155
+ declare type PluginStates = string;
1156
+
1157
+ /**
1158
+ * @public
1159
+ */
1160
+ declare const /**
1161
+ @public
1162
+ * when a new player is inserted into the HTML
1163
+ */ /**
1164
+ * @public
1165
+ */
1166
+ PORTRAIT = "portrait";
1167
+
1168
+ /**
1169
+ * @public
1170
+ */
1171
+ declare const /**
1172
+ @public
1173
+ * when a new player is inserted into the HTML
1174
+ */ /**
1175
+ * @public
1176
+ */
1177
+ PROGRESS = "progress";
1178
+
1179
+ /**
1180
+ * @public
1181
+ * emitted whenever a list of qualities has been made available
1182
+ * when index 0 is the highest quality and index 0+N is the lowest
1183
+ */
1184
+ declare const /**
1185
+ @public
1186
+ * when a new player is inserted into the HTML
1187
+ */ /**
1188
+ * @public
1189
+ * emitted whenever a list of qualities has been made available
1190
+ * when index 0 is the highest quality and index 0+N is the lowest
1191
+ */
1192
+ QUALITIES = "qualities";
1193
+
1194
+ /**
1195
+ * @public
1196
+ */
1197
+ declare type QualitiesEventDetail = QualityDetail[];
1198
+
1199
+ /**
1200
+ * @public
1201
+ */
1202
+ declare type QualityDetail = {
1203
+ level: number;
1204
+ text: string;
1205
+ width: number;
1206
+ height: number;
1207
+ videoCodec: string;
1208
+ } | BitrateInfo | {
1209
+ text: string | number;
1210
+ encodingId: string;
1211
+ spatialLayerId: number;
1212
+ temporalLayerId: number;
1213
+ maxSpatialLayerId: number;
1214
+ maxTemporalLayerId: number;
1215
+ height: number;
1216
+ width: number;
1217
+ };
1218
+
294
1219
  declare enum QualityOpts {
295
1220
  LOW = 1,
296
1221
  MEDIUM = 2,
297
1222
  HIGH = 4
298
1223
  }
299
1224
 
1225
+ /**
1226
+ * @public
1227
+ * emitted when it is safe to clean up a fp instance
1228
+ */
1229
+ declare const /**
1230
+ @public
1231
+ * when a new player is inserted into the HTML
1232
+ */ /**
1233
+ * @public
1234
+ * emitted when it is safe to clean up a fp instance
1235
+ */
1236
+ REAP = "reap";
1237
+
1238
+ /**
1239
+ * @public
1240
+ */
1241
+ declare type ReapEventDetail = null;
1242
+
300
1243
  declare const REBUFFER = "rebuffer";
301
1244
 
302
1245
  declare const REBUFFER_ENDED = "rebuffer:ended";
303
1246
 
1247
+ /**
1248
+ * @public
1249
+ */
1250
+ declare type RecommendationItem = {
1251
+ poster?: string;
1252
+ src?: UnsafeSource;
1253
+ title?: string;
1254
+ description?: string;
1255
+ metadata: OVPMetadata;
1256
+ chapters?: {
1257
+ src: string;
1258
+ };
1259
+ thumbnails?: {
1260
+ src: string;
1261
+ };
1262
+ subtitles?: string[];
1263
+ };
1264
+
1265
+ /**
1266
+ * @public
1267
+ */
1268
+ declare const /**
1269
+ @public
1270
+ * when a new player is inserted into the HTML
1271
+ */ /**
1272
+ * @deprecated please use Endscreen.events.RECOMMENDATIONS_READY / flowplayer.endscreen.events.RECOMMENDATIONS_READY
1273
+ **/
1274
+ /**
1275
+ * @public
1276
+ */
1277
+ RECOMMENDATIONS_READY = "recommendationsready";
1278
+
1279
+ /**
1280
+ * @public
1281
+ */
1282
+ declare type RecommendationsReadyEventDetail = {
1283
+ playlist: RecommendationItem[];
1284
+ };
1285
+
304
1286
  declare const RECORD = "health:record";
305
1287
 
1288
+ /* Excluded from this release type: RECOVER */
1289
+
1290
+ /* Excluded from this release type: RecoverEventDetail */
1291
+
1292
+ /* Excluded from this release type: REMOTE_SESSION_ENDED */
1293
+
1294
+ /* Excluded from this release type: REMOTE_SESSION_STARTED */
1295
+
1296
+ /* Excluded from this release type: RENDER_PLUGIN */
1297
+
1298
+ /**
1299
+ * @public
1300
+ */
1301
+ declare type RenderPluginEventDetail = HTMLElement;
1302
+
1303
+ /**
1304
+ * @public
1305
+ */
1306
+ declare const /**
1307
+ @public
1308
+ * when a new player is inserted into the HTML
1309
+ */ /**
1310
+ * @public
1311
+ */
1312
+ RESIZE = "resize";
1313
+
1314
+ /* Excluded from this release type: RETRY */
1315
+
1316
+ /* Excluded from this release type: RetryEventDetail */
1317
+
1318
+ declare const RTL = "is-rtl";
1319
+
1320
+ /**
1321
+ * @public
1322
+ */
1323
+ declare const /**
1324
+ @public
1325
+ * when a new player is inserted into the HTML
1326
+ */ /**
1327
+ * @public
1328
+ */
1329
+ SCROLL = "scroll";
1330
+
1331
+ declare const SEAMLESS = "is-seamless";
1332
+
1333
+ /* Excluded from this release type: SEEK_CANCEL */
1334
+
1335
+ /* Excluded from this release type: SEEK_QUEUED */
1336
+
1337
+ declare const SEEKABLE = "is-seekable";
1338
+
1339
+ /* Excluded from this release type: SeekCancelEventDetail */
1340
+
1341
+ /**
1342
+ * @public
1343
+ */
1344
+ declare const /**
1345
+ @public
1346
+ * when a new player is inserted into the HTML
1347
+ */ /**
1348
+ * @public
1349
+ */
1350
+ SEEKED = "seeked";
1351
+
1352
+ declare const SEEKING = "is-seeking";
1353
+
1354
+ /**
1355
+ * @public
1356
+ */
1357
+ declare const /**
1358
+ @public
1359
+ * when a new player is inserted into the HTML
1360
+ */ /**
1361
+ * @public
1362
+ */
1363
+ SEEKING_2 = "seeking";
1364
+
1365
+ /* Excluded from this release type: SeekQueuedEventDetail */
1366
+
1367
+ /**
1368
+ * @public
1369
+ * allows plugins to listen for forced quality changes
1370
+ * it should emit the index of the quality to set
1371
+ * -1 is a special idx saying to use ABR if the plugin
1372
+ * exposes an ABR implementation
1373
+ */
1374
+ declare const /**
1375
+ @public
1376
+ * when a new player is inserted into the HTML
1377
+ */ /**
1378
+ * @public
1379
+ * allows plugins to listen for forced quality changes
1380
+ * it should emit the index of the quality to set
1381
+ * -1 is a special idx saying to use ABR if the plugin
1382
+ * exposes an ABR implementation
1383
+ */
1384
+ SET_QUALITY = "quality:set";
1385
+
1386
+ declare const SMALL = "is-small";
1387
+
1388
+ /**
1389
+ * @public
1390
+ * emitted when a valid source is found prior to mounting
1391
+ */
1392
+ declare const /**
1393
+ @public
1394
+ * when a new player is inserted into the HTML
1395
+ */ /**
1396
+ * @public
1397
+ * emitted when a valid source is found prior to mounting
1398
+ */
1399
+ SOURCE = "src";
1400
+
1401
+ /**
1402
+ * @public
1403
+ */
1404
+ declare type SourceEventDetail = SourceObj;
1405
+
1406
+ /**
1407
+ * @public
1408
+ */
306
1409
  declare type SourceObj = {
307
1410
  src?: SourceStr;
1411
+ /**
1412
+ * the MIME type (example `video/mp4` or `application/x-mpegurl`)
1413
+ */
308
1414
  type?: string;
309
1415
  drm?: DRMSourceConfiguration;
310
1416
  };
311
1417
 
1418
+ /**
1419
+ * @public
1420
+ */
312
1421
  declare type SourceStr = string;
313
1422
 
1423
+ /**
1424
+ * @public
1425
+ */
314
1426
  declare type SourceWith<T> = SourceObj & T;
315
1427
 
1428
+ declare const STARTING = "is-starting";
1429
+
1430
+ /* Excluded from this release type: STATE */
1431
+
1432
+ /* Excluded from this release type: StateEventDetail */
1433
+
1434
+ declare namespace states {
1435
+ export {
1436
+ PLAYING,
1437
+ FULLSCREEN,
1438
+ PAUSED,
1439
+ MUTED,
1440
+ LOADED,
1441
+ LOADING,
1442
+ STARTING,
1443
+ SEEKING,
1444
+ GRABBING,
1445
+ DISABLED,
1446
+ SMALL,
1447
+ TINY,
1448
+ RTL,
1449
+ TV,
1450
+ ENDED,
1451
+ LIVE,
1452
+ ERRORED,
1453
+ WAITING,
1454
+ AUTOPLAY,
1455
+ SEAMLESS,
1456
+ TOGGLING,
1457
+ LIVE_SEEKED,
1458
+ NO_DVR,
1459
+ HAS_POSTER,
1460
+ WILL_PLAY,
1461
+ WILL_PAUSE,
1462
+ MENU_OPENED,
1463
+ TOUCHED,
1464
+ HOVERED,
1465
+ TOUCH_DEVICE,
1466
+ WILL_SEEK,
1467
+ SEEKABLE,
1468
+ IN_VIEWPORT,
1469
+ NO_CONTROLS,
1470
+ DESTROYED,
1471
+ IS_SOURCE_PROCESSING
1472
+ }
1473
+ }
1474
+
1475
+ declare const TIME_TO_FIRST_FRAGMENT_LOADED = "insights:time_to_first_frag_loaded";
1476
+
1477
+ declare const TIME_TO_FIRST_FRAME = "insights:ttff";
1478
+
1479
+ /**
1480
+ * @public
1481
+ */
1482
+ declare const /**
1483
+ @public
1484
+ * when a new player is inserted into the HTML
1485
+ */ /**
1486
+ * @public
1487
+ */
1488
+ TIME_UPDATE = "timeupdate";
1489
+
1490
+ declare const TINY = "is-tiny";
1491
+
1492
+ declare const TOGGLING = "is-toggling";
1493
+
1494
+ /**
1495
+ * @public
1496
+ */
1497
+ declare const /**
1498
+ @public
1499
+ * when a new player is inserted into the HTML
1500
+ */ /**
1501
+ * @public
1502
+ */
1503
+ TOUCH_CANCEL = "touchcancel";
1504
+
1505
+ declare const TOUCH_DEVICE = "is-touch-device";
1506
+
1507
+ /**
1508
+ * @public
1509
+ */
1510
+ declare const /**
1511
+ @public
1512
+ * when a new player is inserted into the HTML
1513
+ */ /**
1514
+ * @public
1515
+ */
1516
+ TOUCH_END = "touchend";
1517
+
1518
+ /**
1519
+ * @public
1520
+ */
1521
+ declare const /**
1522
+ @public
1523
+ * when a new player is inserted into the HTML
1524
+ */ /**
1525
+ * @public
1526
+ */
1527
+ TOUCH_MOVE = "touchmove";
1528
+
1529
+ /**
1530
+ * @public
1531
+ */
1532
+ declare const /**
1533
+ @public
1534
+ * when a new player is inserted into the HTML
1535
+ */ /**
1536
+ * @public
1537
+ */
1538
+ TOUCH_START = "touchstart";
1539
+
1540
+ declare const TOUCHED = "is-touched";
1541
+
1542
+ declare const TV = "is-tv";
1543
+
1544
+ /**
1545
+ * @public
1546
+ */
316
1547
  declare type UnsafeSource = SourceStr | SourceObj | Array<SourceStr | SourceObj>;
317
1548
 
1549
+ /**
1550
+ * @public
1551
+ * emitted when a video track is selected
1552
+ */
1553
+ declare const /**
1554
+ @public
1555
+ * when a new player is inserted into the HTML
1556
+ */ /**
1557
+ * @public
1558
+ * emitted when a video track is selected
1559
+ */
1560
+ VIDEO_TRACK_SELECT = "tracks:video:select";
1561
+
1562
+ /**
1563
+ * @public
1564
+ * emitted whenever multiple video tracks are detected
1565
+ */
1566
+ declare const /**
1567
+ @public
1568
+ * when a new player is inserted into the HTML
1569
+ */ /**
1570
+ * @public
1571
+ * emitted whenever multiple video tracks are detected
1572
+ */
1573
+ VIDEO_TRACKS = "videoTracks";
1574
+
1575
+ /**
1576
+ * @public
1577
+ */
318
1578
  declare interface VideoTrack {
319
1579
  name: string;
320
- data: any;
1580
+ /* Excluded from this release type: data */
321
1581
  default: boolean;
322
1582
  selected: boolean;
323
1583
  }
324
1584
 
1585
+ /**
1586
+ * @public
1587
+ * when a player enters the viewpoint
1588
+ */
1589
+ declare const /**
1590
+ @public
1591
+ * when a new player is inserted into the HTML
1592
+ */ /**
1593
+ * @public
1594
+ * when a player enters the viewpoint
1595
+ */
1596
+ VIEW_ENTER = "viewenter";
1597
+
1598
+ /**
1599
+ * @public
1600
+ * when a player leaves the viewport
1601
+ */
1602
+ declare const /**
1603
+ @public
1604
+ * when a new player is inserted into the HTML
1605
+ */ /**
1606
+ * @public
1607
+ * when a player leaves the viewport
1608
+ */
1609
+ VIEW_LEAVE = "viewleave";
1610
+
1611
+ /**
1612
+ * @public
1613
+ */
1614
+ declare type ViewEnterEventDetail = null;
1615
+
1616
+ /**
1617
+ * @public
1618
+ */
1619
+ declare type ViewLeaveEventDetail = null;
1620
+
1621
+ /**
1622
+ * @public
1623
+ */
1624
+ declare const /**
1625
+ @public
1626
+ * when a new player is inserted into the HTML
1627
+ */ /**
1628
+ * @public
1629
+ */
1630
+ VOLUME_CHANGE = "volumechange";
1631
+
1632
+ declare const WAITING = "is-waiting";
1633
+
1634
+ /**
1635
+ * @public
1636
+ */
1637
+ declare const /**
1638
+ @public
1639
+ * when a new player is inserted into the HTML
1640
+ */ /**
1641
+ * @public
1642
+ */
1643
+ WAITING_2 = "waiting";
1644
+
1645
+ /* Excluded from this release type: WEBKIT_NEEDKEY */
1646
+
1647
+ declare const WILL_PAUSE = "will-pause";
1648
+
1649
+ declare const WILL_PLAY = "will-play";
1650
+
1651
+ declare const WILL_SEEK = "will-seek";
1652
+
325
1653
  export { }