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