@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,281 @@
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 class Audio_2 implements Plugin_2 {
8
+ private umd;
9
+ constructor(umd: FlowplayerUMD);
10
+ init(config: Config, container: PlayerRoot, player: PlayerWith<{
11
+ ads: Record<string, any>;
12
+ }>): void;
13
+ }
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 type Component = {
24
+ onrender?: (config: Config, root: PlayerRoot, player: Player) => void;
25
+ onremove?: (config: Config, root: PlayerRoot, player: Player) => void;
26
+ };
27
+
28
+ declare interface Components {
29
+ render(key: string, args: any[]): void;
30
+ remove(key: string, args: any[]): void;
31
+ put(key: string, args: Component): void;
32
+ }
33
+
34
+ declare interface Config {
35
+ src?: UnsafeSource;
36
+ preload?: "none" | "metadata" | "auto";
37
+ controls?: boolean;
38
+ lang?: string;
39
+ start_time?: number;
40
+ autopause?: boolean;
41
+ rewind?: boolean;
42
+ loop?: boolean;
43
+ seamless?: boolean;
44
+ retry?: boolean;
45
+ autoplay?: BitOpts;
46
+ start_quality?: BitOpts;
47
+ live?: boolean;
48
+ poster?: string;
49
+ disabled?: boolean;
50
+ muted?: boolean;
51
+ /**
52
+ * is src handled by one of plugins loaders
53
+ */
54
+ is_native?: boolean;
55
+ /**
56
+ * bitflags for UI options
57
+ */
58
+ ui?: BitOpts;
59
+ /**
60
+ * your user access token
61
+ */
62
+ token?: string;
63
+ /**
64
+ * manually configured duration for pre-rendering usually
65
+ */
66
+ duration?: number;
67
+ /**
68
+ * can the content be seeked to any position
69
+ */
70
+ seekable?: boolean;
71
+ multiplay?: boolean;
72
+ ratio?: number | string;
73
+ logo?: string;
74
+ logo_href?: string;
75
+ logo_alt_text?: string;
76
+ title?: string;
77
+ description?: string;
78
+ /**
79
+ * the number of seconds to have in the buffer before dvr is activated
80
+ */
81
+ seconds_to_dvr?: number;
82
+ }
83
+
84
+ declare type CustomConfig<T> = Config & T;
85
+
86
+ declare const _default: typeof Audio_2;
87
+ export default _default;
88
+
89
+ declare type DeviceId = string;
90
+
91
+ declare type DRM_KEYSYSTEM = "com.widevine.alpha" | "com.microsoft.playready" | "org.w3.clearkey" | "com.apple.fps.1_0";
92
+
93
+ declare type DRMConfiguration = {
94
+ license_server: string;
95
+ http_headers?: Record<string, string>;
96
+ certificate?: string;
97
+ vendor?: string | DRMVendorImplementation;
98
+ request_media_key_system_access_function?: MediaKeyFunc;
99
+ query_params?: Record<string, string>;
100
+ };
101
+
102
+ declare type DRMSourceConfiguration = {
103
+ [keysystem in DRM_KEYSYSTEM]?: DRMConfiguration;
104
+ };
105
+
106
+ declare type DRMVendorImplementation = {
107
+ fairplay_fetch_certificate: (url: string, cb: (certificate_data: Uint8Array) => void) => void;
108
+ fairplay_request_license: (url: string, params: {
109
+ message: any;
110
+ assetId: string;
111
+ }, cb: (license_data: Uint8Array) => void) => void;
112
+ };
113
+
114
+ declare type FlowplayerCustomElementRegistry = Map<string, string>;
115
+
116
+ declare interface FlowplayerUMD extends FlowplayerUMDBase {
117
+ (selector: string, config?: Config): Player;
118
+ (element: HTMLElement, config?: Config): Player;
119
+ <T>(selector: string, config?: CustomConfig<T>): Player;
120
+ <T>(element: HTMLElement, config?: CustomConfig<T>): Player;
121
+ <PluginCtors extends PluginCtor[]>(...plugins: PluginCtors): FlowplayerUMDWithPlugins<CustomConfig<MergeConfigs<PluginCtors>>>;
122
+ }
123
+
124
+ declare interface FlowplayerUMDBase {
125
+ instances: Player[];
126
+ extensions: PluginCtor[];
127
+ events: Record<string, string>;
128
+ ads?: {
129
+ events: Record<string, string>;
130
+ };
131
+ states: Record<string, string>;
132
+ quality: typeof QualityOpts;
133
+ commit: string;
134
+ version: string;
135
+ customElements: FlowplayerCustomElementRegistry;
136
+ defaultElements: Record<string, string>;
137
+ components: Components;
138
+ support: any;
139
+ autoplay: typeof AutoplayOpts;
140
+ jwt: any;
141
+ loaders: any;
142
+ }
143
+
144
+ declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
145
+ (selector: string, config?: ConfigWithPlugins): Player;
146
+ (element: HTMLElement, config?: ConfigWithPlugins): Player;
147
+ }
148
+
149
+ declare interface FPEvent<T> extends CustomEvent<T> {
150
+ /**
151
+ * @deprecated
152
+ the data attribute has been migrated to details to match the CustomEvent spec
153
+ more info: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
154
+ */
155
+ data?: T;
156
+ }
157
+
158
+ declare type JSONPlayer = any;
159
+
160
+ declare type KeyValue = Record<string, any>;
161
+
162
+ declare interface Loader<PluginOwnConfig extends KeyValue = KeyValue> extends Plugin_2<PluginOwnConfig> {
163
+ onload<T = KeyValue>(config: PluginConfig<T>, root: PlayerRoot, video: Player, src?: SourceObj): void;
164
+ wants<S = SourceObj, T = KeyValue>(srcString: SourceStr, srcObj: S, config: PluginConfig<T>): boolean;
165
+ wants<S = KeyValue, T = KeyValue>(srcString: SourceStr, srcObj: SourceWith<S>, config: PluginConfig<T>): boolean;
166
+ }
167
+
168
+ declare type MapToConfigs<Arr extends PluginCtor[]> = {
169
+ [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer ConfigType> ? ConfigType : never;
170
+ };
171
+
172
+ declare type MergeConfigs<Arr extends PluginCtor[]> = ArrayToIntersection<MapToConfigs<Arr>>;
173
+
174
+ declare interface Player extends HTMLVideoElement {
175
+ renderPlugin: (pluginContainer: HTMLElement) => void;
176
+ toggleDisable: (flag: boolean) => void;
177
+ original_src: string;
178
+ root: PlayerRoot;
179
+ playerState: Record<string, boolean>;
180
+ reaper: Map<string, any> | 0;
181
+ hasState(state: PlayerState): boolean;
182
+ transitionState(to: PlayerState, from: PlayerState, timer?: number): void;
183
+ togglePlay(on?: boolean): Promise<void>;
184
+ toggleFullScreen(on?: boolean, state_only?: boolean): void;
185
+ toggleMute(on?: boolean): void;
186
+ destroy(): void;
187
+ render(): void;
188
+ render(component: string, args: any[]): void;
189
+ createComponents(...args: string[]): HTMLElement[];
190
+ setOpts(config: Config): void;
191
+ setSrc(sources: UnsafeSource): Player;
192
+ on<T>(event: string | string[], handler: (e: FPEvent<T>) => void): Player;
193
+ once<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
194
+ off<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
195
+ poll<T>(event: string, data?: T): FPEvent<T>;
196
+ emit<T>(event: string, data?: T): Player;
197
+ setAttrs(attrs: Config): Player;
198
+ opt<T>(key: string, fallback?: T): T;
199
+ enqueueSeek(offset: number): any;
200
+ setState(state: string, flag: boolean): Player;
201
+ toJSON(): JSONPlayer;
202
+ i18n(k: string, fallback?: string): string;
203
+ deviceId(): DeviceId;
204
+ live_state: {
205
+ dvr?: boolean;
206
+ dvr_window?: number;
207
+ };
208
+ opts: Config;
209
+ plugins: Array<Plugin_2 | Loader>;
210
+ dvr_offset?: number;
211
+ message?: {
212
+ events: Record<string, string>;
213
+ };
214
+ disabled: boolean;
215
+ started?: boolean;
216
+ token: string;
217
+ tracks?: VideoTrack[];
218
+ _customElements: FlowplayerCustomElementRegistry;
219
+ _storage: Storage;
220
+ }
221
+
222
+ declare type PlayerRoot = HTMLElement & {
223
+ prevWidth?: number;
224
+ };
225
+
226
+ declare namespace Players {
227
+ export {
228
+ VideoTrack,
229
+ PlayerState,
230
+ FPEvent,
231
+ DeviceId,
232
+ JSONPlayer,
233
+ PlayerRoot,
234
+ Player
235
+ }
236
+ }
237
+
238
+ declare type PlayerState = string;
239
+
240
+ declare type PlayerWith<T> = Players.Player & T;
241
+
242
+ declare interface Plugin_2<PluginOwnConfig extends KeyValue = KeyValue> {
243
+ /**
244
+ * a plugin must always implement the init method so a player instance knows how to initialize it
245
+ */
246
+ init<T>(config: PluginConfig<T>, container: PlayerRoot, player: Player): void;
247
+ init(config: PluginConfig<PluginOwnConfig>, container: PlayerRoot, player: Player): void;
248
+ }
249
+
250
+ declare type PluginConfig<T> = Config & T;
251
+
252
+ declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue> {
253
+ new (umd: FlowplayerUMD, player: Player): AnyPlugin<PluginOwnConfig>;
254
+ }
255
+
256
+ declare enum QualityOpts {
257
+ LOW = 1,
258
+ MEDIUM = 2,
259
+ HIGH = 4
260
+ }
261
+
262
+ declare type SourceObj = {
263
+ src?: SourceStr;
264
+ type?: string;
265
+ drm?: DRMSourceConfiguration;
266
+ };
267
+
268
+ declare type SourceStr = string;
269
+
270
+ declare type SourceWith<T> = SourceObj & T;
271
+
272
+ declare type UnsafeSource = SourceStr | SourceObj | Array<SourceStr | SourceObj>;
273
+
274
+ declare interface VideoTrack {
275
+ name: string;
276
+ data: any;
277
+ default: boolean;
278
+ selected: boolean;
279
+ }
280
+
281
+ export { }
@@ -0,0 +1,335 @@
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 Chapter = {
16
+ start: number;
17
+ end: number;
18
+ label: string;
19
+ cue?: VTTCue;
20
+ };
21
+
22
+ declare const CHAPTER_CHANGED = "chapter:changed";
23
+
24
+ declare class Chapters implements Plugin_2 {
25
+ _current_chapters_track?: HTMLTrackElement;
26
+ _current_chapters_src?: string;
27
+ _track_added_handler: (ev: TrackEvent) => void;
28
+ _cue_changed_handler: (ev: Event) => void;
29
+ _root?: PlayerRoot;
30
+ _player?: Player;
31
+ _timeline?: Element | null;
32
+ chapters: Chapter[];
33
+ current_cue?: VTTCue;
34
+ static events: typeof events;
35
+ constructor(umd: FlowplayerUMD);
36
+ init(config: ChaptersConfig, root: PlayerRoot, player: PlayerWith<{
37
+ chapters: Chapters;
38
+ }>): void;
39
+ track_added(_player: Player, _ev: TrackEvent): void;
40
+ cue_changed(_player: Player, _ev: Event): void;
41
+ set_chapters(chapters: Chapter[]): void;
42
+ jump(idx: number): void;
43
+ current(): Chapter | undefined;
44
+ render(): void;
45
+ wireup(player: Player, config: ChaptersConfig): void;
46
+ wiredown(player: Player): void;
47
+ }
48
+ export default Chapters;
49
+
50
+ declare const CHAPTERS_NEW = "chapters:new";
51
+
52
+ declare type ChaptersConfig = ConfigWith<{
53
+ chapters?: ChaptersConfigurationObject | ChaptersConfigurationObject[];
54
+ }>;
55
+
56
+ declare type ChaptersConfigurationObject = {
57
+ src: string;
58
+ lang?: string;
59
+ };
60
+
61
+ declare type Component = {
62
+ onrender?: (config: Config, root: PlayerRoot, player: Player) => void;
63
+ onremove?: (config: Config, root: PlayerRoot, player: Player) => void;
64
+ };
65
+
66
+ declare interface Components {
67
+ render(key: string, args: any[]): void;
68
+ remove(key: string, args: any[]): void;
69
+ put(key: string, args: Component): void;
70
+ }
71
+
72
+ declare interface Config {
73
+ src?: UnsafeSource;
74
+ preload?: "none" | "metadata" | "auto";
75
+ controls?: boolean;
76
+ lang?: string;
77
+ start_time?: number;
78
+ autopause?: boolean;
79
+ rewind?: boolean;
80
+ loop?: boolean;
81
+ seamless?: boolean;
82
+ retry?: boolean;
83
+ autoplay?: BitOpts;
84
+ start_quality?: BitOpts;
85
+ live?: boolean;
86
+ poster?: string;
87
+ disabled?: boolean;
88
+ muted?: boolean;
89
+ /**
90
+ * is src handled by one of plugins loaders
91
+ */
92
+ is_native?: boolean;
93
+ /**
94
+ * bitflags for UI options
95
+ */
96
+ ui?: BitOpts;
97
+ /**
98
+ * your user access token
99
+ */
100
+ token?: string;
101
+ /**
102
+ * manually configured duration for pre-rendering usually
103
+ */
104
+ duration?: number;
105
+ /**
106
+ * can the content be seeked to any position
107
+ */
108
+ seekable?: boolean;
109
+ multiplay?: boolean;
110
+ ratio?: number | string;
111
+ logo?: string;
112
+ logo_href?: string;
113
+ logo_alt_text?: string;
114
+ title?: string;
115
+ description?: string;
116
+ /**
117
+ * the number of seconds to have in the buffer before dvr is activated
118
+ */
119
+ seconds_to_dvr?: number;
120
+ }
121
+
122
+ declare namespace Configs {
123
+ export {
124
+ BitOpts,
125
+ FlowplayerCustomElementRegistry,
126
+ Config,
127
+ CustomConfig,
128
+ PluginConfig
129
+ }
130
+ }
131
+
132
+ declare type ConfigWith<T> = Configs.Config & T;
133
+
134
+ declare type CustomConfig<T> = Config & T;
135
+
136
+ declare type DeviceId = string;
137
+
138
+ declare type DRM_KEYSYSTEM = "com.widevine.alpha" | "com.microsoft.playready" | "org.w3.clearkey" | "com.apple.fps.1_0";
139
+
140
+ declare type DRMConfiguration = {
141
+ license_server: string;
142
+ http_headers?: Record<string, string>;
143
+ certificate?: string;
144
+ vendor?: string | DRMVendorImplementation;
145
+ request_media_key_system_access_function?: MediaKeyFunc;
146
+ query_params?: Record<string, string>;
147
+ };
148
+
149
+ declare type DRMSourceConfiguration = {
150
+ [keysystem in DRM_KEYSYSTEM]?: DRMConfiguration;
151
+ };
152
+
153
+ declare type DRMVendorImplementation = {
154
+ fairplay_fetch_certificate: (url: string, cb: (certificate_data: Uint8Array) => void) => void;
155
+ fairplay_request_license: (url: string, params: {
156
+ message: any;
157
+ assetId: string;
158
+ }, cb: (license_data: Uint8Array) => void) => void;
159
+ };
160
+
161
+ declare namespace events {
162
+ export {
163
+ CHAPTER_CHANGED,
164
+ CHAPTERS_NEW
165
+ }
166
+ }
167
+
168
+ declare type FlowplayerCustomElementRegistry = Map<string, string>;
169
+
170
+ declare interface FlowplayerUMD extends FlowplayerUMDBase {
171
+ (selector: string, config?: Config): Player;
172
+ (element: HTMLElement, config?: Config): Player;
173
+ <T>(selector: string, config?: CustomConfig<T>): Player;
174
+ <T>(element: HTMLElement, config?: CustomConfig<T>): Player;
175
+ <PluginCtors extends PluginCtor[]>(...plugins: PluginCtors): FlowplayerUMDWithPlugins<CustomConfig<MergeConfigs<PluginCtors>>>;
176
+ }
177
+
178
+ declare interface FlowplayerUMDBase {
179
+ instances: Player[];
180
+ extensions: PluginCtor[];
181
+ events: Record<string, string>;
182
+ ads?: {
183
+ events: Record<string, string>;
184
+ };
185
+ states: Record<string, string>;
186
+ quality: typeof QualityOpts;
187
+ commit: string;
188
+ version: string;
189
+ customElements: FlowplayerCustomElementRegistry;
190
+ defaultElements: Record<string, string>;
191
+ components: Components;
192
+ support: any;
193
+ autoplay: typeof AutoplayOpts;
194
+ jwt: any;
195
+ loaders: any;
196
+ }
197
+
198
+ declare interface FlowplayerUMDWithPlugins<ConfigWithPlugins extends Config = Config> extends FlowplayerUMDBase {
199
+ (selector: string, config?: ConfigWithPlugins): Player;
200
+ (element: HTMLElement, config?: ConfigWithPlugins): Player;
201
+ }
202
+
203
+ declare interface FPEvent<T> extends CustomEvent<T> {
204
+ /**
205
+ * @deprecated
206
+ the data attribute has been migrated to details to match the CustomEvent spec
207
+ more info: https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
208
+ */
209
+ data?: T;
210
+ }
211
+
212
+ declare type JSONPlayer = any;
213
+
214
+ declare type KeyValue = Record<string, any>;
215
+
216
+ declare interface Loader<PluginOwnConfig extends KeyValue = KeyValue> extends Plugin_2<PluginOwnConfig> {
217
+ onload<T = KeyValue>(config: PluginConfig<T>, root: PlayerRoot, video: Player, src?: SourceObj): void;
218
+ wants<S = SourceObj, T = KeyValue>(srcString: SourceStr, srcObj: S, config: PluginConfig<T>): boolean;
219
+ wants<S = KeyValue, T = KeyValue>(srcString: SourceStr, srcObj: SourceWith<S>, config: PluginConfig<T>): boolean;
220
+ }
221
+
222
+ declare type MapToConfigs<Arr extends PluginCtor[]> = {
223
+ [PluginType in keyof Arr]: Arr[PluginType] extends PluginCtor<infer ConfigType> ? ConfigType : never;
224
+ };
225
+
226
+ declare type MergeConfigs<Arr extends PluginCtor[]> = ArrayToIntersection<MapToConfigs<Arr>>;
227
+
228
+ declare interface Player extends HTMLVideoElement {
229
+ renderPlugin: (pluginContainer: HTMLElement) => void;
230
+ toggleDisable: (flag: boolean) => void;
231
+ original_src: string;
232
+ root: PlayerRoot;
233
+ playerState: Record<string, boolean>;
234
+ reaper: Map<string, any> | 0;
235
+ hasState(state: PlayerState): boolean;
236
+ transitionState(to: PlayerState, from: PlayerState, timer?: number): void;
237
+ togglePlay(on?: boolean): Promise<void>;
238
+ toggleFullScreen(on?: boolean, state_only?: boolean): void;
239
+ toggleMute(on?: boolean): void;
240
+ destroy(): void;
241
+ render(): void;
242
+ render(component: string, args: any[]): void;
243
+ createComponents(...args: string[]): HTMLElement[];
244
+ setOpts(config: Config): void;
245
+ setSrc(sources: UnsafeSource): Player;
246
+ on<T>(event: string | string[], handler: (e: FPEvent<T>) => void): Player;
247
+ once<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
248
+ off<T>(event: string, handler: (e: FPEvent<T>) => void): Player;
249
+ poll<T>(event: string, data?: T): FPEvent<T>;
250
+ emit<T>(event: string, data?: T): Player;
251
+ setAttrs(attrs: Config): Player;
252
+ opt<T>(key: string, fallback?: T): T;
253
+ enqueueSeek(offset: number): any;
254
+ setState(state: string, flag: boolean): Player;
255
+ toJSON(): JSONPlayer;
256
+ i18n(k: string, fallback?: string): string;
257
+ deviceId(): DeviceId;
258
+ live_state: {
259
+ dvr?: boolean;
260
+ dvr_window?: number;
261
+ };
262
+ opts: Config;
263
+ plugins: Array<Plugin_2 | Loader>;
264
+ dvr_offset?: number;
265
+ message?: {
266
+ events: Record<string, string>;
267
+ };
268
+ disabled: boolean;
269
+ started?: boolean;
270
+ token: string;
271
+ tracks?: VideoTrack[];
272
+ _customElements: FlowplayerCustomElementRegistry;
273
+ _storage: Storage;
274
+ }
275
+
276
+ declare type PlayerRoot = HTMLElement & {
277
+ prevWidth?: number;
278
+ };
279
+
280
+ declare namespace Players {
281
+ export {
282
+ VideoTrack,
283
+ PlayerState,
284
+ FPEvent,
285
+ DeviceId,
286
+ JSONPlayer,
287
+ PlayerRoot,
288
+ Player
289
+ }
290
+ }
291
+
292
+ declare type PlayerState = string;
293
+
294
+ declare type PlayerWith<T> = Players.Player & T;
295
+
296
+ declare interface Plugin_2<PluginOwnConfig extends KeyValue = KeyValue> {
297
+ /**
298
+ * a plugin must always implement the init method so a player instance knows how to initialize it
299
+ */
300
+ init<T>(config: PluginConfig<T>, container: PlayerRoot, player: Player): void;
301
+ init(config: PluginConfig<PluginOwnConfig>, container: PlayerRoot, player: Player): void;
302
+ }
303
+
304
+ declare type PluginConfig<T> = Config & T;
305
+
306
+ declare interface PluginCtor<PluginOwnConfig extends KeyValue = KeyValue> {
307
+ new (umd: FlowplayerUMD, player: Player): AnyPlugin<PluginOwnConfig>;
308
+ }
309
+
310
+ declare enum QualityOpts {
311
+ LOW = 1,
312
+ MEDIUM = 2,
313
+ HIGH = 4
314
+ }
315
+
316
+ declare type SourceObj = {
317
+ src?: SourceStr;
318
+ type?: string;
319
+ drm?: DRMSourceConfiguration;
320
+ };
321
+
322
+ declare type SourceStr = string;
323
+
324
+ declare type SourceWith<T> = SourceObj & T;
325
+
326
+ declare type UnsafeSource = SourceStr | SourceObj | Array<SourceStr | SourceObj>;
327
+
328
+ declare interface VideoTrack {
329
+ name: string;
330
+ data: any;
331
+ default: boolean;
332
+ selected: boolean;
333
+ }
334
+
335
+ export { }