@flowplayer/player 3.11.1 → 3.11.2-rc.1

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 (49) hide show
  1. package/core.js +1 -1
  2. package/default.js +1 -1
  3. package/embed.js +2 -2
  4. package/index.d.ts +14 -71
  5. package/package.json +39 -1
  6. package/plugins/ads.d.ts +719 -0
  7. package/plugins/ads.js +1 -1
  8. package/plugins/airplay.d.ts +321 -0
  9. package/plugins/analytics.d.ts +242 -0
  10. package/plugins/analytics.js +1 -1
  11. package/plugins/asel.d.ts +304 -0
  12. package/plugins/audio.d.ts +281 -0
  13. package/plugins/chapters.d.ts +335 -0
  14. package/plugins/chromecast.d.ts +366 -0
  15. package/plugins/consent.d.ts +305 -0
  16. package/plugins/context-menu.d.ts +212 -0
  17. package/plugins/cuepoints.d.ts +13 -84
  18. package/plugins/dash.d.ts +235 -0
  19. package/plugins/drm.d.ts +248 -0
  20. package/plugins/endscreen.d.ts +351 -0
  21. package/plugins/fas.d.ts +308 -0
  22. package/plugins/float-on-scroll.d.ts +301 -0
  23. package/plugins/ga4.d.ts +398 -0
  24. package/plugins/gemius.d.ts +319 -0
  25. package/plugins/google-analytics.d.ts +400 -0
  26. package/plugins/health.d.ts +307 -0
  27. package/plugins/health.js +1 -1
  28. package/plugins/hls.d.ts +229 -0
  29. package/plugins/id3.d.ts +198 -0
  30. package/plugins/iframe.d.ts +278 -0
  31. package/plugins/keyboard.d.ts +189 -0
  32. package/plugins/media-session.d.ts +189 -0
  33. package/plugins/message.d.ts +193 -0
  34. package/plugins/ovp.d.ts +343 -0
  35. package/plugins/playlist.d.ts +326 -0
  36. package/plugins/preview.d.ts +243 -0
  37. package/plugins/qsel.d.ts +284 -0
  38. package/plugins/qul.d.ts +220 -0
  39. package/plugins/rts.d.ts +273 -0
  40. package/plugins/share.d.ts +295 -0
  41. package/plugins/speed.d.ts +268 -0
  42. package/plugins/ssai.d.ts +346 -0
  43. package/plugins/ssai.js +1 -1
  44. package/plugins/subtitles.d.ts +294 -0
  45. package/plugins/thumbnails.d.ts +307 -0
  46. package/plugins/tizen.d.ts +374 -0
  47. package/plugins/vtsel.d.ts +282 -0
  48. package/plugins/webos.d.ts +374 -0
  49. package/util/loader.d.ts +14 -95
@@ -0,0 +1,366 @@
1
+ import type { MediaKeyFunc } from 'hls.js';
2
+
3
+ declare type AnyPlugin<PluginOwnConfig extends KeyValue> = Plugin_2<PluginOwnConfig> | Loader<PluginOwnConfig>;
4
+
5
+ declare namespace apps {
6
+ export {
7
+ STABLE,
8
+ CANARY,
9
+ LOCAL
10
+ }
11
+ }
12
+
13
+ declare type ArrayToIntersection<T extends Array<unknown>> = T extends [infer Current, ...infer Remaining] ? Current & ArrayToIntersection<Remaining> : unknown;
14
+
15
+ declare enum AutoplayOpts {
16
+ OFF = 0,
17
+ ON = 1,
18
+ AUDIO_REQUIRED = 2
19
+ }
20
+
21
+ declare type BitOpts = number;
22
+
23
+ declare const CANARY = "6F71FA7C";
24
+
25
+ declare const CAST_AVAILABLE = "chromecast:available";
26
+
27
+ declare const CAST_FIELD_UPDATE = "chromecast:field:update";
28
+
29
+ declare const CAST_IDLE = "chromecast:idle";
30
+
31
+ declare const CAST_MEDIA_LOAD_REQUEST = "chromecast:media";
32
+
33
+ declare const CAST_SESSION_CHANGED = "chromecast:session:changed";
34
+
35
+ declare const CAST_START_CASTING = "chromecast:start";
36
+
37
+ declare const CAST_STATE_CHANGED = "chromecast:state:changed";
38
+
39
+ declare const CAST_UNAVAILABLE = "chromecast:unavailable";
40
+
41
+ declare namespace CastEvents {
42
+ export {
43
+ CAST_AVAILABLE,
44
+ CAST_UNAVAILABLE,
45
+ CAST_START_CASTING,
46
+ CAST_IDLE,
47
+ CAST_STATE_CHANGED,
48
+ CAST_SESSION_CHANGED,
49
+ CAST_FIELD_UPDATE,
50
+ CAST_MEDIA_LOAD_REQUEST
51
+ }
52
+ }
53
+
54
+ declare type ChromecastConfig = ConfigWith<{
55
+ chromecast?: ChromecastConfigObject;
56
+ }>;
57
+
58
+ declare interface ChromecastConfigObject {
59
+ crossOrigin?: boolean;
60
+ app?: string;
61
+ }
62
+
63
+ declare class ChromecastPlugin implements Plugin_2 {
64
+ static apps: typeof apps;
65
+ static events: typeof CastEvents;
66
+ flowplayer: FlowplayerUMD;
67
+ constructor(flowplayer: FlowplayerUMD);
68
+ init(config: ChromecastConfig, root: PlayerRoot, video: ChromePlayer): void;
69
+ reset_state(video: ChromePlayer): void;
70
+ }
71
+
72
+ declare type ChromePlayer = PlayerWith<{
73
+ chromecast: ChromecastPlugin;
74
+ sender?: Sender;
75
+ currentSessionTime: number;
76
+ }>;
77
+
78
+ declare type Component = {
79
+ onrender?: (config: Config, root: PlayerRoot, player: Player) => void;
80
+ onremove?: (config: Config, root: PlayerRoot, player: Player) => void;
81
+ };
82
+
83
+ declare interface Components {
84
+ render(key: string, args: any[]): void;
85
+ remove(key: string, args: any[]): void;
86
+ put(key: string, args: Component): void;
87
+ }
88
+
89
+ declare interface Config {
90
+ src?: UnsafeSource;
91
+ preload?: "none" | "metadata" | "auto";
92
+ controls?: boolean;
93
+ lang?: string;
94
+ start_time?: number;
95
+ autopause?: boolean;
96
+ rewind?: boolean;
97
+ loop?: boolean;
98
+ seamless?: boolean;
99
+ retry?: boolean;
100
+ autoplay?: BitOpts;
101
+ start_quality?: BitOpts;
102
+ live?: boolean;
103
+ poster?: string;
104
+ disabled?: boolean;
105
+ muted?: boolean;
106
+ /**
107
+ * is src handled by one of plugins loaders
108
+ */
109
+ is_native?: boolean;
110
+ /**
111
+ * bitflags for UI options
112
+ */
113
+ ui?: BitOpts;
114
+ /**
115
+ * your user access token
116
+ */
117
+ token?: string;
118
+ /**
119
+ * manually configured duration for pre-rendering usually
120
+ */
121
+ duration?: number;
122
+ /**
123
+ * can the content be seeked to any position
124
+ */
125
+ seekable?: boolean;
126
+ multiplay?: boolean;
127
+ ratio?: number | string;
128
+ logo?: string;
129
+ logo_href?: string;
130
+ logo_alt_text?: string;
131
+ title?: string;
132
+ description?: string;
133
+ /**
134
+ * the number of seconds to have in the buffer before dvr is activated
135
+ */
136
+ seconds_to_dvr?: number;
137
+ }
138
+
139
+ declare namespace Configs {
140
+ export {
141
+ BitOpts,
142
+ FlowplayerCustomElementRegistry,
143
+ Config,
144
+ CustomConfig,
145
+ PluginConfig
146
+ }
147
+ }
148
+
149
+ declare type ConfigWith<T> = Configs.Config & T;
150
+
151
+ declare type CustomConfig<T> = Config & T;
152
+
153
+ declare const _default: typeof ChromecastPlugin;
154
+ export default _default;
155
+
156
+ declare type DeviceId = string;
157
+
158
+ declare type DRM_KEYSYSTEM = "com.widevine.alpha" | "com.microsoft.playready" | "org.w3.clearkey" | "com.apple.fps.1_0";
159
+
160
+ declare type DRMConfiguration = {
161
+ license_server: string;
162
+ http_headers?: Record<string, string>;
163
+ certificate?: string;
164
+ vendor?: string | DRMVendorImplementation;
165
+ request_media_key_system_access_function?: MediaKeyFunc;
166
+ query_params?: Record<string, string>;
167
+ };
168
+
169
+ declare type DRMSourceConfiguration = {
170
+ [keysystem in DRM_KEYSYSTEM]?: DRMConfiguration;
171
+ };
172
+
173
+ declare type DRMVendorImplementation = {
174
+ fairplay_fetch_certificate: (url: string, cb: (certificate_data: Uint8Array) => void) => void;
175
+ fairplay_request_license: (url: string, params: {
176
+ message: any;
177
+ assetId: string;
178
+ }, cb: (license_data: Uint8Array) => void) => void;
179
+ };
180
+
181
+ declare type FlowplayerCustomElementRegistry = Map<string, string>;
182
+
183
+ declare interface FlowplayerUMD extends FlowplayerUMDBase {
184
+ (selector: string, config?: Config): Player;
185
+ (element: HTMLElement, config?: Config): Player;
186
+ <T>(selector: string, config?: CustomConfig<T>): Player;
187
+ <T>(element: HTMLElement, config?: CustomConfig<T>): Player;
188
+ <PluginCtors extends PluginCtor[]>(...plugins: PluginCtors): FlowplayerUMDWithPlugins<CustomConfig<MergeConfigs<PluginCtors>>>;
189
+ }
190
+
191
+ declare interface FlowplayerUMDBase {
192
+ instances: Player[];
193
+ extensions: PluginCtor[];
194
+ events: Record<string, string>;
195
+ ads?: {
196
+ events: Record<string, string>;
197
+ };
198
+ states: Record<string, string>;
199
+ quality: typeof QualityOpts;
200
+ commit: string;
201
+ version: string;
202
+ customElements: FlowplayerCustomElementRegistry;
203
+ defaultElements: Record<string, string>;
204
+ components: Components;
205
+ support: any;
206
+ autoplay: typeof AutoplayOpts;
207
+ jwt: any;
208
+ loaders: any;
209
+ }
210
+
211
+ declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
212
+ (selector: string, config?: ConfigWithPlugins): Player;
213
+ (element: HTMLElement, config?: ConfigWithPlugins): Player;
214
+ }
215
+
216
+ declare interface FPEvent<T> extends CustomEvent<T> {
217
+ /**
218
+ * @deprecated
219
+ the data attribute has been migrated to details to match the CustomEvent spec
220
+ more info: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
221
+ */
222
+ data?: T;
223
+ }
224
+
225
+ declare type JSONPlayer = any;
226
+
227
+ declare type KeyValue = Record<string, any>;
228
+
229
+ declare interface Loader<PluginOwnConfig extends KeyValue = KeyValue> extends Plugin_2<PluginOwnConfig> {
230
+ onload<T = KeyValue>(config: PluginConfig<T>, root: PlayerRoot, video: Player, src?: SourceObj): void;
231
+ wants<S = SourceObj, T = KeyValue>(srcString: SourceStr, srcObj: S, config: PluginConfig<T>): boolean;
232
+ wants<S = KeyValue, T = KeyValue>(srcString: SourceStr, srcObj: SourceWith<S>, config: PluginConfig<T>): boolean;
233
+ }
234
+
235
+ declare const LOCAL = "5258CA32";
236
+
237
+ declare type MapToConfigs<Arr extends PluginCtor[]> = {
238
+ [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer ConfigType> ? ConfigType : never;
239
+ };
240
+
241
+ declare type MergeConfigs<Arr extends PluginCtor[]> = ArrayToIntersection<MapToConfigs<Arr>>;
242
+
243
+ declare interface Player extends HTMLVideoElement {
244
+ renderPlugin: (pluginContainer: HTMLElement) => void;
245
+ toggleDisable: (flag: boolean) => void;
246
+ original_src: string;
247
+ root: PlayerRoot;
248
+ playerState: Record<string, boolean>;
249
+ reaper: Map<string, any> | 0;
250
+ hasState(state: PlayerState): boolean;
251
+ transitionState(to: PlayerState, from: PlayerState, timer?: number): void;
252
+ togglePlay(on?: boolean): Promise<void>;
253
+ toggleFullScreen(on?: boolean, state_only?: boolean): void;
254
+ toggleMute(on?: boolean): void;
255
+ destroy(): void;
256
+ render(): void;
257
+ render(component: string, args: any[]): void;
258
+ createComponents(...args: string[]): HTMLElement[];
259
+ setOpts(config: Config): void;
260
+ setSrc(sources: UnsafeSource): Player;
261
+ on<T>(event: string | string[], handler: (e: FPEvent<T>) => void): Player;
262
+ once<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
263
+ off<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
264
+ poll<T>(event: string, data?: T): FPEvent<T>;
265
+ emit<T>(event: string, data?: T): Player;
266
+ setAttrs(attrs: Config): Player;
267
+ opt<T>(key: string, fallback?: T): T;
268
+ enqueueSeek(offset: number): any;
269
+ setState(state: string, flag: boolean): Player;
270
+ toJSON(): JSONPlayer;
271
+ i18n(k: string, fallback?: string): string;
272
+ deviceId(): DeviceId;
273
+ live_state: {
274
+ dvr?: boolean;
275
+ dvr_window?: number;
276
+ };
277
+ opts: Config;
278
+ plugins: Array<Plugin_2 | Loader>;
279
+ dvr_offset?: number;
280
+ message?: {
281
+ events: Record<string, string>;
282
+ };
283
+ disabled: boolean;
284
+ started?: boolean;
285
+ token: string;
286
+ tracks?: VideoTrack[];
287
+ _customElements: FlowplayerCustomElementRegistry;
288
+ _storage: Storage;
289
+ }
290
+
291
+ declare type PlayerRoot = HTMLElement & {
292
+ prevWidth?: number;
293
+ };
294
+
295
+ declare namespace Players {
296
+ export {
297
+ VideoTrack,
298
+ PlayerState,
299
+ FPEvent,
300
+ DeviceId,
301
+ JSONPlayer,
302
+ PlayerRoot,
303
+ Player
304
+ }
305
+ }
306
+
307
+ declare type PlayerState = string;
308
+
309
+ declare type PlayerWith<T> = Players.Player & T;
310
+
311
+ declare type PlayerWithSender = PlayerWith<{
312
+ sender?: Sender;
313
+ }>;
314
+
315
+ declare interface Plugin_2<PluginOwnConfig extends KeyValue = KeyValue> {
316
+ /**
317
+ * a plugin must always implement the init method so a player instance knows how to initialize it
318
+ */
319
+ init<T>(config: PluginConfig<T>, container: PlayerRoot, player: Player): void;
320
+ init(config: PluginConfig<PluginOwnConfig>, container: PlayerRoot, player: Player): void;
321
+ }
322
+
323
+ declare type PluginConfig<T> = Config & T;
324
+
325
+ declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue> {
326
+ new (umd: FlowplayerUMD, player: Player): AnyPlugin<PluginOwnConfig>;
327
+ }
328
+
329
+ declare enum QualityOpts {
330
+ LOW = 1,
331
+ MEDIUM = 2,
332
+ HIGH = 4
333
+ }
334
+
335
+ declare class Sender {
336
+ video?: Player;
337
+ constructor(video: PlayerWithSender);
338
+ static of(video: PlayerWithSender): Sender;
339
+ static maybe(video: PlayerWithSender, cb: (sender: Sender, video: PlayerWithSender) => void): void;
340
+ static getEstimatedTime(): number | undefined;
341
+ static load(video: PlayerWithSender, instances: Player[]): void;
342
+ static destroy(sender: Sender): void;
343
+ }
344
+
345
+ declare type SourceObj = {
346
+ src?: SourceStr;
347
+ type?: string;
348
+ drm?: DRMSourceConfiguration;
349
+ };
350
+
351
+ declare type SourceStr = string;
352
+
353
+ declare type SourceWith<T> = SourceObj & T;
354
+
355
+ declare const STABLE = "940D4BE4";
356
+
357
+ declare type UnsafeSource = SourceStr | SourceObj | Array<SourceStr | SourceObj>;
358
+
359
+ declare interface VideoTrack {
360
+ name: string;
361
+ data: any;
362
+ default: boolean;
363
+ selected: boolean;
364
+ }
365
+
366
+ export { }
@@ -0,0 +1,305 @@
1
+ import type { MediaKeyFunc } from 'hls.js';
2
+
3
+ declare type AnyPlugin<PluginOwnConfig extends KeyValue> = Plugin_2<PluginOwnConfig> | Loader<PluginOwnConfig>;
4
+
5
+ declare type ArrayToIntersection<T extends Array<unknown>> = T extends [infer Current, ...infer Remaining] ? Current & ArrayToIntersection<Remaining> : unknown;
6
+
7
+ declare enum AutoplayOpts {
8
+ OFF = 0,
9
+ ON = 1,
10
+ AUDIO_REQUIRED = 2
11
+ }
12
+
13
+ declare type BitOpts = number;
14
+
15
+ declare type Component = {
16
+ onrender?: (config: Config, root: PlayerRoot, player: Player) => void;
17
+ onremove?: (config: Config, root: PlayerRoot, player: Player) => void;
18
+ };
19
+
20
+ declare interface Components {
21
+ render(key: string, args: any[]): void;
22
+ remove(key: string, args: any[]): void;
23
+ put(key: string, args: Component): void;
24
+ }
25
+
26
+ declare interface Config {
27
+ src?: UnsafeSource;
28
+ preload?: "none" | "metadata" | "auto";
29
+ controls?: boolean;
30
+ lang?: string;
31
+ start_time?: number;
32
+ autopause?: boolean;
33
+ rewind?: boolean;
34
+ loop?: boolean;
35
+ seamless?: boolean;
36
+ retry?: boolean;
37
+ autoplay?: BitOpts;
38
+ start_quality?: BitOpts;
39
+ live?: boolean;
40
+ poster?: string;
41
+ disabled?: boolean;
42
+ muted?: boolean;
43
+ /**
44
+ * is src handled by one of plugins loaders
45
+ */
46
+ is_native?: boolean;
47
+ /**
48
+ * bitflags for UI options
49
+ */
50
+ ui?: BitOpts;
51
+ /**
52
+ * your user access token
53
+ */
54
+ token?: string;
55
+ /**
56
+ * manually configured duration for pre-rendering usually
57
+ */
58
+ duration?: number;
59
+ /**
60
+ * can the content be seeked to any position
61
+ */
62
+ seekable?: boolean;
63
+ multiplay?: boolean;
64
+ ratio?: number | string;
65
+ logo?: string;
66
+ logo_href?: string;
67
+ logo_alt_text?: string;
68
+ title?: string;
69
+ description?: string;
70
+ /**
71
+ * the number of seconds to have in the buffer before dvr is activated
72
+ */
73
+ seconds_to_dvr?: number;
74
+ }
75
+
76
+ declare namespace Configs {
77
+ export {
78
+ BitOpts,
79
+ FlowplayerCustomElementRegistry,
80
+ Config,
81
+ CustomConfig,
82
+ PluginConfig
83
+ }
84
+ }
85
+
86
+ declare type ConfigWith<T> = Configs.Config & T;
87
+
88
+ declare type ConsentConfig = ConfigWith<{
89
+ consent?: number;
90
+ }>;
91
+
92
+ declare class ConsentPlugin implements Plugin_2 {
93
+ static tracking: typeof TrackingConfig;
94
+ static storage: typeof StorageConfig;
95
+ player: PlayerWithHealthAPI;
96
+ current_value: number;
97
+ constructor(_umd: FlowplayerUMD, player: Player);
98
+ init(config: ConsentConfig, _container: PlayerRoot, player: Player): void;
99
+ adapt(config: ConsentConfig): void;
100
+ setStorage(flag: StorageConfig): void;
101
+ setTracking(flag: TrackingConfig): void;
102
+ }
103
+
104
+ declare type CustomConfig<T> = Config & T;
105
+
106
+ declare const _default: typeof ConsentPlugin;
107
+ export default _default;
108
+
109
+ declare type DeviceId = string;
110
+
111
+ declare type DRM_KEYSYSTEM = "com.widevine.alpha" | "com.microsoft.playready" | "org.w3.clearkey" | "com.apple.fps.1_0";
112
+
113
+ declare type DRMConfiguration = {
114
+ license_server: string;
115
+ http_headers?: Record<string, string>;
116
+ certificate?: string;
117
+ vendor?: string | DRMVendorImplementation;
118
+ request_media_key_system_access_function?: MediaKeyFunc;
119
+ query_params?: Record<string, string>;
120
+ };
121
+
122
+ declare type DRMSourceConfiguration = {
123
+ [keysystem in DRM_KEYSYSTEM]?: DRMConfiguration;
124
+ };
125
+
126
+ declare type DRMVendorImplementation = {
127
+ fairplay_fetch_certificate: (url: string, cb: (certificate_data: Uint8Array) => void) => void;
128
+ fairplay_request_license: (url: string, params: {
129
+ message: any;
130
+ assetId: string;
131
+ }, cb: (license_data: Uint8Array) => void) => void;
132
+ };
133
+
134
+ declare type FlowplayerCustomElementRegistry = Map<string, string>;
135
+
136
+ declare interface FlowplayerUMD extends FlowplayerUMDBase {
137
+ (selector: string, config?: Config): Player;
138
+ (element: HTMLElement, config?: Config): Player;
139
+ <T>(selector: string, config?: CustomConfig<T>): Player;
140
+ <T>(element: HTMLElement, config?: CustomConfig<T>): Player;
141
+ <PluginCtors extends PluginCtor[]>(...plugins: PluginCtors): FlowplayerUMDWithPlugins<CustomConfig<MergeConfigs<PluginCtors>>>;
142
+ }
143
+
144
+ declare interface FlowplayerUMDBase {
145
+ instances: Player[];
146
+ extensions: PluginCtor[];
147
+ events: Record<string, string>;
148
+ ads?: {
149
+ events: Record<string, string>;
150
+ };
151
+ states: Record<string, string>;
152
+ quality: typeof QualityOpts;
153
+ commit: string;
154
+ version: string;
155
+ customElements: FlowplayerCustomElementRegistry;
156
+ defaultElements: Record<string, string>;
157
+ components: Components;
158
+ support: any;
159
+ autoplay: typeof AutoplayOpts;
160
+ jwt: any;
161
+ loaders: any;
162
+ }
163
+
164
+ declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
165
+ (selector: string, config?: ConfigWithPlugins): Player;
166
+ (element: HTMLElement, config?: ConfigWithPlugins): Player;
167
+ }
168
+
169
+ declare interface FPEvent<T> extends CustomEvent<T> {
170
+ /**
171
+ * @deprecated
172
+ the data attribute has been migrated to details to match the CustomEvent spec
173
+ more info: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
174
+ */
175
+ data?: T;
176
+ }
177
+
178
+ declare type JSONPlayer = any;
179
+
180
+ declare type KeyValue = Record<string, any>;
181
+
182
+ declare interface Loader<PluginOwnConfig extends KeyValue = KeyValue> extends Plugin_2<PluginOwnConfig> {
183
+ onload<T = KeyValue>(config: PluginConfig<T>, root: PlayerRoot, video: Player, src?: SourceObj): void;
184
+ wants<S = SourceObj, T = KeyValue>(srcString: SourceStr, srcObj: S, config: PluginConfig<T>): boolean;
185
+ wants<S = KeyValue, T = KeyValue>(srcString: SourceStr, srcObj: SourceWith<S>, config: PluginConfig<T>): boolean;
186
+ }
187
+
188
+ declare type MapToConfigs<Arr extends PluginCtor[]> = {
189
+ [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer ConfigType> ? ConfigType : never;
190
+ };
191
+
192
+ declare type MergeConfigs<Arr extends PluginCtor[]> = ArrayToIntersection<MapToConfigs<Arr>>;
193
+
194
+ declare interface Player extends HTMLVideoElement {
195
+ renderPlugin: (pluginContainer: HTMLElement) => void;
196
+ toggleDisable: (flag: boolean) => void;
197
+ original_src: string;
198
+ root: PlayerRoot;
199
+ playerState: Record<string, boolean>;
200
+ reaper: Map<string, any> | 0;
201
+ hasState(state: PlayerState): boolean;
202
+ transitionState(to: PlayerState, from: PlayerState, timer?: number): void;
203
+ togglePlay(on?: boolean): Promise<void>;
204
+ toggleFullScreen(on?: boolean, state_only?: boolean): void;
205
+ toggleMute(on?: boolean): void;
206
+ destroy(): void;
207
+ render(): void;
208
+ render(component: string, args: any[]): void;
209
+ createComponents(...args: string[]): HTMLElement[];
210
+ setOpts(config: Config): void;
211
+ setSrc(sources: UnsafeSource): Player;
212
+ on<T>(event: string | string[], handler: (e: FPEvent<T>) => void): Player;
213
+ once<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
214
+ off<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
215
+ poll<T>(event: string, data?: T): FPEvent<T>;
216
+ emit<T>(event: string, data?: T): Player;
217
+ setAttrs(attrs: Config): Player;
218
+ opt<T>(key: string, fallback?: T): T;
219
+ enqueueSeek(offset: number): any;
220
+ setState(state: string, flag: boolean): Player;
221
+ toJSON(): JSONPlayer;
222
+ i18n(k: string, fallback?: string): string;
223
+ deviceId(): DeviceId;
224
+ live_state: {
225
+ dvr?: boolean;
226
+ dvr_window?: number;
227
+ };
228
+ opts: Config;
229
+ plugins: Array<Plugin_2 | Loader>;
230
+ dvr_offset?: number;
231
+ message?: {
232
+ events: Record<string, string>;
233
+ };
234
+ disabled: boolean;
235
+ started?: boolean;
236
+ token: string;
237
+ tracks?: VideoTrack[];
238
+ _customElements: FlowplayerCustomElementRegistry;
239
+ _storage: Storage;
240
+ }
241
+
242
+ declare type PlayerRoot = HTMLElement & {
243
+ prevWidth?: number;
244
+ };
245
+
246
+ declare type PlayerState = string;
247
+
248
+ declare type PlayerWithHealthAPI = Player & {
249
+ health?: {
250
+ media_session_id: string;
251
+ session_id: string;
252
+ toggle: (flag: boolean) => void;
253
+ };
254
+ };
255
+
256
+ declare interface Plugin_2<PluginOwnConfig extends KeyValue = KeyValue> {
257
+ /**
258
+ * a plugin must always implement the init method so a player instance knows how to initialize it
259
+ */
260
+ init<T>(config: PluginConfig<T>, container: PlayerRoot, player: Player): void;
261
+ init(config: PluginConfig<PluginOwnConfig>, container: PlayerRoot, player: Player): void;
262
+ }
263
+
264
+ declare type PluginConfig<T> = Config & T;
265
+
266
+ declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue> {
267
+ new (umd: FlowplayerUMD, player: Player): AnyPlugin<PluginOwnConfig>;
268
+ }
269
+
270
+ declare enum QualityOpts {
271
+ LOW = 1,
272
+ MEDIUM = 2,
273
+ HIGH = 4
274
+ }
275
+
276
+ declare type SourceObj = {
277
+ src?: SourceStr;
278
+ type?: string;
279
+ drm?: DRMSourceConfiguration;
280
+ };
281
+
282
+ declare type SourceStr = string;
283
+
284
+ declare type SourceWith<T> = SourceObj & T;
285
+
286
+ declare enum StorageConfig {
287
+ ALL = 8,
288
+ NONE = 16
289
+ }
290
+
291
+ declare enum TrackingConfig {
292
+ ALL = 1,
293
+ NONE = 2
294
+ }
295
+
296
+ declare type UnsafeSource = SourceStr | SourceObj | Array<SourceStr | SourceObj>;
297
+
298
+ declare interface VideoTrack {
299
+ name: string;
300
+ data: any;
301
+ default: boolean;
302
+ selected: boolean;
303
+ }
304
+
305
+ export { }