import { BehaviorSubject } from 'rxjs'; import { Config } from 'yoga-layout'; import { default as default_2 } from 'hls.js'; import { default as default_3 } from 'konva'; import { HlsConfig } from 'hls.js'; import { MediaChromeButton } from 'media-chrome'; import { MediaChromeRange } from 'media-chrome'; import { MediaController } from 'media-chrome'; import { MediaFullscreenButton } from 'media-chrome'; import { MediaKeySessionContext } from 'hls.js'; import { MediaPlayButton } from 'media-chrome'; import { MediaPlaylist } from 'hls.js'; import { MediaThemeElement } from 'media-chrome/media-theme-element'; import { MediaTimeRange } from 'media-chrome'; import { Node as Node_2 } from 'yoga-layout'; import { Observable } from 'rxjs'; import { ReplaySubject } from 'rxjs'; import { Subject } from 'rxjs'; import { Track as Track_2 } from 'hls.js'; export declare function affectsStyledElement(event: UiEvent, element: StyledElement): boolean; declare interface Alert { readonly id: string; readonly level: AlertLevel; readonly message: string; readonly timestamp: Date; readonly config?: AlertConfig | undefined; readonly state: AlertState; } export declare interface AlertConfig { /** Display duration in milliseconds. Undefined means the alert persists until dismissed. */ duration?: number; } export declare type AlertEvent = { [K in AlertEventType]: { type: K; data: AlertEventTypeDataMap[K]; }; }[keyof AlertEventTypeDataMap]; declare interface AlertEventData { alert: Alert; } export declare enum AlertEventType { ALERT_RAISED = "ALERT_RAISED", ALERT_DISMISSED = "ALERT_DISMISSED" } export declare type AlertEventTypeDataMap = { [AlertEventType.ALERT_RAISED]: AlertEventData; [AlertEventType.ALERT_DISMISSED]: AlertEventData; }; declare enum AlertLevel { INFO = "INFO", WARN = "WARN", ERROR = "ERROR" } export declare interface AlertsApi { /** Emits an event whenever an alert is raised or dismissed. */ onEvent$: Observable; /** * Raises an info alert. * * @param message - The message to display. * @param config - Optional display configuration (e.g. auto-dismiss duration). * @returns The unique ID of the created alert. */ info(message: string, config?: AlertConfig): Alert['id']; /** * Raises a warning alert. * * @param message - The message to display. * @param config - Optional display configuration (e.g. auto-dismiss duration). * @returns The unique ID of the created alert. */ warn(message: string, config?: AlertConfig): Alert['id']; /** * Raises an error alert. * * @param message - The message to display. * @param config - Optional display configuration (e.g. auto-dismiss duration). * @returns The unique ID of the created alert. */ error(message: string, config?: AlertConfig): Alert['id']; /** * Dismisses the alert with the given ID. * * @param id - The ID of the alert to dismiss. */ dismiss(id: Alert['id']): void; /** Dismisses all currently active alerts. */ dismissAll(): void; } declare class AlertsManager implements AlertsApi, Destroyable { private readonly _onEvent$; private readonly _activeAlerts; constructor(); get onEvent$(): Observable; info(message: string, config?: AlertConfig): string; warn(message: string, config?: AlertConfig): string; error(message: string, config?: AlertConfig): string; dismiss(id: string): void; dismissAll(): void; private _emit; private _dismiss; destroy(): void; } declare interface AlertsManagerMessageChannel { onEvent$: Observable; info(message: string, config?: AlertConfig): Observable; warn(message: string, config?: AlertConfig): Observable; error(message: string, config?: AlertConfig): Observable; dismiss(id: Alert['id']): Observable; dismissAll(): Observable; } declare class AlertsManagerProxy extends BaseMessageChannelProxy implements AlertsManagerMessageChannel { constructor(remoteNode: RemoteNode); get onEvent$(): Observable; error(message: string, config?: AlertConfig): Observable; info(message: string, config?: AlertConfig): Observable; warn(message: string, config?: AlertConfig): Observable; dismiss(id: AlertState['id']): Observable; dismissAll(): Observable; } declare interface AlertState { id: string; level: AlertLevel; message: string; timestamp: Date; config?: AlertConfig | undefined; } declare abstract class Audio_2 extends BaseTrack { protected _trackType: TrackType; protected abstract _audioType: AudioType; protected _url: string | undefined; protected _duration: number | undefined; protected _audioCodec: string | undefined; protected _channels: number | undefined; protected constructor(args: AudioArgs); protected getState(): AudioState; get url(): string | undefined; get audioType(): AudioType; get audioCodec(): string | undefined; get channels(): number | undefined; get duration(): number | undefined; updateAttrs(attrs: AudioUpdateableAttrs): void; } export { Audio_2 as Audio } /** * Construction arguments for audio track instances. */ export declare interface AudioArgs extends BaseTrackArgs { /** URL of the audio source. Overridden by `source` when a {@link UrlSource} is provided. */ url?: string | undefined; /** Duration of the audio track in seconds. */ duration?: number | undefined; /** Audio codec identifier (e.g. `"mp4a.40.2"`). */ audioCodec?: string | undefined; /** Number of audio channels. */ channels?: number | undefined; } /** * Implementation of {@link AudioEffectState} */ export declare interface AudioEffect { /** * Converts effect to effect definition */ toState(): AudioEffectState; /** * Returns input audio nodes */ getInputNodes(): AudioNode[]; /** * Returns output audio nodes */ getOutputNode(): AudioNode; /** * Returns all audio nodes */ getNodes(): AudioNode[]; /** * Effect's id. Unique at {@link AudioEffectGraph} level. */ id: string; /** * Effect's effect type. Used for dynamic effect instantiation. */ effectType: string; /** * Arbitrary values used to describe the effect */ attrs: Map; /** * Signals when effect is fully initialized. */ onReady$: Observable; /** * Sets effect parameter. * * @param param */ setParam(param: AudioEffectParam): void; /** * Returns all effect parameters */ getParams(): AudioEffectParamType[] | undefined; /** * Destroys all effect's nodes and sets up the effect to be garbage collected */ destroy(): void; } /** * Connection definition to {@link AudioEffectState} */ export declare interface AudioEffectConnectionDef { /** * {@link OmpAudioNodeDef.id} */ effectId: string; /** * Input */ output?: number; /** * Output */ input?: number; } export declare class AudioEffectDef implements AudioEffectState { id: string; effectType: string; attrs?: Record; connections?: AudioEffectConnectionDef[]; audioParams?: AudioEffectParamType[]; constructor(id: string, effectType: string); withAttrs(attrs: Record): AudioEffectDef; outputTo(...effectConnections: (string | AudioEffectConnectionDef)[]): AudioEffectDef; addParam(audioParam: AudioEffectParamType): this; } export declare class AudioEffectDelayTimeParam extends AudioEffectParam { protected readonly _valueParam: AudioNodeValueParam; constructor(delayTime?: number); setDelayTime(delayTime: number): void; } export declare type AudioEffectEvent = { [K in AudioEffectEventType]: { type: K; data: AudioEffectEventTypeDataMap[K]; }; }[keyof AudioEffectEventTypeDataMap]; export declare interface AudioEffectEventParametersChangeData extends Serializable { connection: AudioEffectGraphConnection; changedParameters: AudioEffectParameterChange[]; } export declare enum AudioEffectEventType { AUDIO_EFFECT_PARAMETER_CHANGE = "AUDIO_EFFECT_PARAMETER_CHANGE", AUDIO_EFFECT_GRAPH_ADDED = "AUDIO_EFFECT_GRAPH_ADDED", AUDIO_EFFECT_GRAPH_REMOVED = "AUDIO_EFFECT_GRAPH_REMOVED" } export declare type AudioEffectEventTypeDataMap = { [AudioEffectEventType.AUDIO_EFFECT_PARAMETER_CHANGE]: AudioEffectEventParametersChangeData; [AudioEffectEventType.AUDIO_EFFECT_GRAPH_ADDED]: AudioEffectSlotEventChangeData; [AudioEffectEventType.AUDIO_EFFECT_GRAPH_REMOVED]: AudioEffectSlotEventChangeData; }; export declare type AudioEffectFactory = (effectDef: AudioEffectState) => AudioEffect; /** * Filter values used for filtering {@link AudioEffect}'s */ export declare interface AudioEffectFilter { /** * {@link AudioEffect.id} */ id?: string | undefined; /** * {@link AudioEffect.type} */ effectType?: string | undefined; /** * {@link AudioEffect.attrs} */ attrs?: Record | undefined; } export declare class AudioEffectGainParam extends AudioEffectParam { protected readonly _valueParam: AudioNodeValueParam; constructor(gain?: number); setGain(gain: number): void; } /** * Audio effects graph. Implementation corresponds to definition {@link AudioEffectGraph.toDef} */ export declare class AudioEffectGraph { private def; protected _effects: AudioEffect[]; protected _effectsById: Map; protected _sourceEffects: AudioEffect[]; protected _destinationEffects: AudioEffect[]; protected _initialized: boolean; get initialized(): boolean; constructor(def: AudioEffectGraphState); initialize(): Observable; /** * Finds all {@link AudioEffect}'s that correspond to {@link filter} * * @param filter */ findAudioEffects(filter?: AudioEffectFilter): AudioEffect[]; /** * Audio effects graph input {@link AudioEffect}'s */ get sourceEffects(): AudioEffect[]; /** * Audio effects graph output {@link AudioEffect}'s */ get destinationEffects(): AudioEffect[]; toState(): AudioEffectGraphState; destroy(): void; } /** * Connection definition for audio graph. */ export declare type AudioEffectGraphConnection = { slot: Extract; routingPath?: Partial; } | { slot: Extract; } | { slot: Extract; }; /** * Audio effects graph definition. Contains {@link AudioEffectState}'s */ export declare class AudioEffectGraphDef implements AudioEffectGraphState { effectDefs: AudioEffectState[]; sourceEffectIds: string[]; destinationEffectIds: string[]; private constructor(); static create(...effects: AudioEffectState[]): AudioEffectGraphDef; } export declare type AudioEffectGraphSlot = 'source' | 'router' | 'destination'; export declare type AudioEffectGraphSpecificConnection = { slot: Extract; routingPath: AudioRoutingPath; } | { slot: Extract; } | { slot: Extract; }; /** * Audio graph definition. Contains {@link AudioEffectState}'s */ export declare interface AudioEffectGraphState { effectDefs: AudioEffectState[]; /** * Effects graph input effects ids */ sourceEffectIds: string[]; /** * Effects graph output effects ids */ destinationEffectIds: string[]; } export declare class AudioEffectParam extends AudioNodeParam { } export declare interface AudioEffectParameterChange { effectId: string; parameterName: string; routingPath?: AudioRoutingPath; } export declare interface AudioEffectParamType extends AudioNodeParamType { } export declare interface AudioEffectsApi { setEffectGraph(effectGraphState: AudioEffectGraphState, effectGraphConnection: AudioEffectGraphConnection): Observable; removeEffectGraph(effectGraphConnection: AudioEffectGraphConnection): Observable; setEffectsParams(param: AudioEffectParam, effectGraphConnection: AudioEffectGraphConnection, filter?: AudioEffectFilter): Observable; getEffectStates(effectGraphConnection: AudioEffectGraphConnection, filter?: AudioEffectFilter): Observable; getEffectGraphState(effectGraphConnection: AudioEffectGraphSpecificConnection): Observable; onEvent$: Observable; } export declare class AudioEffectsGraphDefBuilder { protected _effectDefs: AudioEffectState[]; protected _effectDefsMap: Map; protected _sourceEffectDefs?: AudioEffectState[]; protected _destinationEffectDefs?: AudioEffectState[]; private constructor(); static get instance(): AudioEffectsGraphDefBuilder; addEffects(effectDefs: AudioEffectState[]): this; addEffect(node: AudioEffectState): this; connections(connections: [{ from: string; to: string; }]): this; connect(sourceNodeId: string, destinationNodeId: string): this; sourceEffectsIds(ids: string[]): this; destinationEffectsIds(ids: string[]): this; build(): AudioEffectGraphState; } export declare interface AudioEffectSlotEventChangeData extends Serializable { connection: AudioEffectGraphConnection; } declare interface AudioEffectsMessageChannel { setEffectGraph(effectGraphState: AudioEffectGraphState, effectGraphConnection: AudioEffectGraphConnection): Observable; removeEffectGraph(effectGraphConnection: AudioEffectGraphConnection): Observable; setEffectsParams(param: AudioEffectParam, effectGraphConnection: AudioEffectGraphConnection, filter?: AudioEffectFilter): Observable; getEffectStates(effectGraphConnection: AudioEffectGraphConnection, filter?: AudioEffectFilter): Observable; getEffectGraphState(effectGraphConnection: AudioEffectGraphSpecificConnection): Observable; onEvent$: Observable; } declare class AudioEffectsProxy extends BaseMessageChannelProxy implements AudioEffectsApi { protected _destroyBreaker: ObserverBreaker; constructor(messageChannel: MessageChannel_2); get onEvent$(): Observable; setEffectGraph(effectGraphState: AudioEffectGraphState, effectGraphConnection: AudioEffectGraphConnection): Observable; removeEffectGraph(effectGraphConnection: AudioEffectGraphConnection): Observable; setEffectsParams(param: AudioEffectParam, effectGraphConnection: AudioEffectGraphConnection, filter?: AudioEffectFilter): Observable; getEffectStates(effectGraphConnection: AudioEffectGraphConnection, filter?: AudioEffectFilter): Observable; getEffectGraphState(effectGraphConnection: AudioEffectGraphSpecificConnection): Observable; destroy(): void; } export declare class AudioEffectsRegistry implements Destroyable { static get instance(): AudioEffectsRegistry; private registry; constructor(); register(name: string, effect: AudioEffectFactory): void; destroy(): void; get(name: string): AudioEffectFactory | undefined; } /** * Definition of an audio effect. */ export declare interface AudioEffectState { id: string; /** * Effect type as used in EffectsRegistry. There are no limitations to effect types * but they need to be dynamically added to EffectsRegistry. */ effectType: string; /** * Arbitrary attributes which can be used to describe audio effect. */ attrs?: Record; /** * Connections to other {@link OmpAudioNodeDef}'s */ connections?: AudioEffectConnectionDef[]; /** * Audio effect params */ audioParams?: AudioEffectParamType[]; } export declare class AudioEffectsUtil { /** * Calculates crossfade gain value for {@link value} and {@link curve} * * @param value in [0, 1] range * @param curve */ static crossfadeGain(value: number, curve?: 'linear' | 'equal-power' | 'log' | 'sigmoid'): { left: number; right: number; }; } export declare class AudioFile extends Audio_2 { protected _audioType: AudioType; constructor(args: AudioArgs); } declare interface AudioFileMainMediaArgs extends BaseMainMediaArgs { source: Source; } declare interface AudioFileMainMediaState extends MainMediaState { } declare interface AudioFilePlayerControllerConfig extends PlayerControllerConfig { } declare interface AudioFilePlayerPlaybackEngine extends PlayerPlaybackEngine { } export declare interface AudioHandlerApi { onEvent$: Observable; onPeakProcessorEvent$: Observable; enabled: boolean; inputAudioNode: AudioNode; outputAudioNode: AudioNode; channelCount: number; volume: number; muted: boolean; state: AudioHandlerState; effects: AudioEffectsApi; router: AudioRouterApi | undefined; mute(): Observable; unmute(): Observable; toggleMuted(): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; setEnabled(enabled: boolean): Observable; createPeakProcessor(): Observable; createPeakProcessor(meterStandard?: AudioPeakProcessorMeterStandard): Observable; createAudioRouter(inputsNumber?: number, outputsNumber?: number): Observable; } export declare type AudioHandlerEvent = { [K in AudioHandlerEventType]: { type: K; data: AudioHandlerEventTypeDataMap[K]; }; }[keyof AudioHandlerEventTypeDataMap]; export declare interface AudioHandlerEventData extends Serializable { state: AudioHandlerState; } export declare enum AudioHandlerEventType { AUDIO_HANDLER_CHANGE = "AUDIO_HANDLER_CHANGE" } declare type AudioHandlerEventTypeDataMap = { [AudioHandlerEventType.AUDIO_HANDLER_CHANGE]: AudioHandlerEventData; }; declare interface AudioHandlerMessageChannel { onEvent$: Observable; onPeakProcessorEvent$: Observable; mute(): Observable; unmute(): Observable; toggleMuted(): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; setEnabled(enabled: boolean): Observable; state(): Observable; createPeakProcessor(meterStandard?: AudioPeakProcessorMeterStandard): Observable; createAudioRouter(inputsNumber?: number, outputsNumber?: number): Observable; } declare class AudioHandlerProxy extends BaseMessageChannelProxy implements AudioHandlerApi { protected _remoteNode: RemoteNode; private _state?; protected _audioEffects: AudioEffectsProxy; protected _audioRouter: AudioRouterProxy | undefined; private readonly _onEventQueue$; protected _destroyBreaker: ObserverBreaker; constructor(messageChannel: MessageChannel_2, remoteNode: RemoteNode, state: AudioHandlerState); private syncStateOperator; get router(): AudioRouterProxy | undefined; get effects(): AudioEffectsApi; private checkLateInitialization; updateFromState(state: AudioHandlerState): void; get inputAudioNode(): AudioNode; get outputAudioNode(): AudioNode; get onEvent$(): Observable; get onPeakProcessorEvent$(): Observable; get enabled(): boolean; get channelCount(): number; get muted(): boolean; get volume(): number; get state(): AudioHandlerState; mute(): Observable; setEnabled(enabled: boolean): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; toggleMuted(): Observable; unmute(): Observable; createPeakProcessor(meterStandard?: AudioPeakProcessorMeterStandard): Observable; createAudioRouter(inputsNumber?: number, outputsNumber?: number): Observable; destroy(): void; } declare interface AudioHandlerSlotState { type: AudioSlotType; effectGraph: AudioEffectGraphState; } export declare interface AudioHandlerState { enabled: boolean; channelCount: number; volume: number; muted: boolean; peakProcessor: AudioPeakProcessorState | undefined; router: AudioRouterState | undefined; slots: AudioHandlerSlotState[]; } export declare type AudioLevelEvent = { [K in AudioLevelEventType]: { type: K; data: AudioLevelEventTypeDataMap[K]; }; }[keyof AudioLevelEventTypeDataMap]; export declare interface AudioLevelEventData extends Serializable { dbValues: number[]; } export declare enum AudioLevelEventType { AUDIO_LEVEL_CHANGE = "AUDIO_LEVEL_CHANGE", CHANNEL_COUNT_CHANGE = "CHANNEL_COUNT_CHANGE" } export declare type AudioLevelEventTypeDataMap = { [AudioLevelEventType.AUDIO_LEVEL_CHANGE]: AudioLevelEventData; [AudioLevelEventType.CHANNEL_COUNT_CHANGE]: ChannelCountEventData; }; export declare abstract class AudioLevelSource implements AudioLevelSourceApi { protected _onEvent$: Subject; protected _destroyBreaker: ObserverBreaker; get onEvent$(): Observable; protected getBaseLog(x: number, y: number): number; protected dbFromFloat(floatVal: number): number; destroy(): void; } export declare interface AudioLevelSourceApi extends Destroyable { onEvent$: Observable; } export declare enum AudioLevelSourceType { PEAK_PROCESSOR = "PEAK_PROCESSOR", OBSERVATION_TRACK = "OBSERVATION_TRACK" } declare class AudioMainMedia extends BaseMainMedia { protected getState(): AudioFileMainMediaState; protected _mainMediaType: MainMediaType; protected _source: Source; protected readonly _destroyBreaker: ObserverBreaker; constructor(args: AudioFileMainMediaArgs); protected _state(): AudioFileMainMediaState; } /** * Wrapper for {@link AudioParam} */ export declare class AudioNodeParam implements AudioNodeParamType { name: string; props: AudioNodeParamPropType[]; constructor(name: string); protected addProp(prop: AudioNodeParamPropType): void; } export declare interface AudioNodeParamFilter { name?: string; id?: string; } /** * Wrapper for {@link AudioParam} attributes */ export declare interface AudioNodeParamPropType { name: string; value: any; } /** * Wrapper for {@link AudioParam} */ export declare interface AudioNodeParamType { name: string; props: AudioNodeParamPropType[]; } export declare class AudioNodeUtil { static extractAudioParamProps(audioParam: AudioParam): AudioNodeParamPropType[]; } /** * Wrapper for {@link AudioParam} attributes */ export declare class AudioNodeValueParam implements AudioNodeParamPropType { name: string; value: any; constructor(value: any); setValue(value: any): void; } export declare class AudioPeakProcessor implements AudioPeakProcessorApi { protected readonly _onEvent$: Subject; protected readonly _meterStandard: AudioPeakProcessorMeterStandard; protected readonly _loadStage: OpStage; protected _audioWorkletNode?: AudioWorkletNode; protected _audioNode?: AudioNode; protected _destroyBreaker: ObserverBreaker; constructor(meterStandard?: AudioPeakProcessorMeterStandard); load(audioNode: AudioNode): Observable; protected handleAudioPeakProcessorMessage: (event: MessageEvent) => void; get onEvent$(): Observable; get state(): AudioPeakProcessorState; destroy(): void; } export declare interface AudioPeakProcessorApi extends Destroyable { onEvent$: Observable; state: AudioPeakProcessorState; load(audioNode: AudioNode): Observable; } export declare interface AudioPeakProcessorErrorEventData extends AudioPeakProcessorEventData { error: string | undefined; } export declare type AudioPeakProcessorEvent = { [K in AudioPeakProcessorEventType]: { type: K; data: AudioPeakProcessorEventTypeDataMap[K]; }; }[keyof AudioPeakProcessorEventTypeDataMap]; export declare interface AudioPeakProcessorEventData extends Serializable { } export declare enum AudioPeakProcessorEventType { AUDIO_PEAK_PROCESSOR_LOADING = "AUDIO_PEAK_PROCESSOR_LOADING", AUDIO_PEAK_PROCESSOR_LOADED = "AUDIO_PEAK_PROCESSOR_LOADED", AUDIO_PEAK_PROCESSOR_LOAD_ERROR = "AUDIO_PEAK_PROCESSOR_LOAD_ERROR", AUDIO_PEAK_PROCESSOR_MESSAGE = "AUDIO_PEAK_PROCESSOR_MESSAGE" } export declare type AudioPeakProcessorEventTypeDataMap = { [AudioPeakProcessorEventType.AUDIO_PEAK_PROCESSOR_LOADING]: AudioPeakProcessorEventData; [AudioPeakProcessorEventType.AUDIO_PEAK_PROCESSOR_LOADED]: AudioPeakProcessorEventData; [AudioPeakProcessorEventType.AUDIO_PEAK_PROCESSOR_LOAD_ERROR]: AudioPeakProcessorErrorEventData; [AudioPeakProcessorEventType.AUDIO_PEAK_PROCESSOR_MESSAGE]: AudioPeakProcessorMessage; }; export declare type AudioPeakProcessorMessage = AudioPeakProcessorMessageMessage | AudioPeakProcessorPeaksMessage; export declare interface AudioPeakProcessorMessageMessage { type: 'message'; message: number[][]; } export declare enum AudioPeakProcessorMeterStandard { PEAK_SAMPLE = "PEAK_SAMPLE", TRUE_PEAK = "TRUE_PEAK" } export declare interface AudioPeakProcessorPeaksMessage { type: 'peaks'; peaks: number[]; } export declare interface AudioPeakProcessorState { /** * Audio peak processing strategy */ meterStandard: AudioPeakProcessorMeterStandard; loadStage: OpStageState; } export declare enum AudioPlayerSize { FULL = "FULL", COMPACT = "COMPACT" } declare interface AudioProbeMetadata { channelsNumber: number; codec: string; } export declare class AudioRouter implements InternalAudioRouterApi { protected readonly _onEvent$: Subject; protected readonly _loadStage: OpStage; protected _inputsNumber: number; protected _outputsNumber: number; protected _sourceAudioNode?: AudioNode; protected _channelSplitterNode: ChannelSplitterNode; protected _channelMergerNode: ChannelMergerNode; protected _defaultRoutingConnections: AudioRoutingConnection[]; protected _soloMuteStatesByInput: Map; protected _suppressMuteEvents: boolean; protected _muteEventAllowedInputs: Set | undefined; protected _connectionsByInputOutput: Map>; protected _effectGraphsByInputOutput: Map>; protected _destroyBreaker: ObserverBreaker; constructor(audioOutputNode: AudioNode, inputsNumber: number, outputsNumberResolver?: (maxChannelCount: number) => number); setDefaultRoutingConnections(connections: AudioRoutingConnection[]): Observable; resetRouter(): Observable; get onEvent$(): Observable; load(): Observable; get isSourceConnected(): boolean; disconnectSource(): void; connectSource(audioNode: AudioNode): void; updateConnections(connections: AudioRoutingConnection[]): Observable; protected _updateConnection(newConnection: AudioRoutingConnection, emitEvent?: boolean): void; protected emitChange(): void; protected emitSoloChange(inputNumber: number): void; protected emitMuteChange(inputNumber: number): void; getDefaultRoutingConnections(): AudioRoutingConnection[]; protected getRoutingConnections(): AudioRoutingConnection[][]; get state(): AudioRouterState; restoreState(state: AudioRouterState): Observable; toggleSolo(routingPath: AudioRoutingInputPath): Observable; protected _solo(inputNumber: number): void; private setInputSoloMuteState; protected _unsolo(inputNumber: number, checkMute?: boolean): void; toggleMute(routingPath: AudioRoutingInputPath): Observable; protected _mute(inputNumber: number): void; protected _unmute(inputNumber: number): void; private getInitialRoutingConnectionsForInput; protected resetInputSoloMuteState(inputNumber: number): void; protected createInitialSoloMuteState(inputNumber: number): AudioRouterSoloMuteState; /** * Recomputes solo/mute states after connections change. * Solo/mute change events are emitted inline via {@link setInputSoloMuteState}/{@link resetInputSoloMuteState}. * A soloed input can only be unsoloed here (never soloed), when both mute and solo can be emitted, mute(s) are emitted. */ protected _updateInputsSoloMuteState(): void; setAudioEffectGraphs(effectGraphState: AudioEffectGraphState, routingPath?: Partial): Observable; removeAudioEffectGraphs(routingPath?: Partial): void; findAudioEffectGraphs(routingPath?: Partial): RoutedAudioEffectGraph[]; getEffectGraphState(routingPath: AudioRoutingPath): AudioEffectGraphState | undefined; protected _findRoutedAudioEffects(filter?: { routingPath?: Partial | undefined; } & AudioEffectFilter): RoutedAudioEffect[]; findAudioEffects(filter?: { routingPath?: Partial | undefined; } & AudioEffectFilter): AudioEffect[]; findAudioEffectStates(filter?: { routingPath?: Partial | undefined; } & AudioEffectFilter): AudioEffectState[]; setAudioEffectParams(param: AudioEffectParam, filter?: { routingPath?: Partial | undefined; } & AudioEffectFilter): { id: string; routingPath: AudioRoutingPath; }[]; private _setEffectsGraphs; private _checkIfEffectsGraphsCanBeChanged; private _setEffectGraph; private _getByRoutingPath; private connectEffectGraph; private disconnectEffectGraph; destroy(): void; } export declare interface AudioRouterApi { onEvent$: Observable; state: AudioRouterState; getDefaultRoutingConnections(): AudioRoutingConnection[]; setDefaultRoutingConnections(connections: AudioRoutingConnection[]): Observable; toggleSolo(routingPath: AudioRoutingInputPath): Observable; toggleMute(routingPath: AudioRoutingInputPath): Observable; resetRouter(): Observable; updateConnections(connections: AudioRoutingConnection[]): Observable; } export declare interface AudioRouterErrorEventData extends AudioRouterEventData { error: string | undefined; } export declare type AudioRouterEvent = { [K in AudioRouterEventType]: { type: K; data: AudioRouterEventTypeDataMap[K]; }; }[keyof AudioRouterEventTypeDataMap]; export declare interface AudioRouterEventData extends Serializable { state: AudioRouterState; } export declare enum AudioRouterEventType { AUDIO_ROUTER_LOADING = "AUDIO_ROUTER_LOADING", AUDIO_ROUTER_LOADED = "AUDIO_ROUTER_LOADED", AUDIO_ROUTER_LOAD_ERROR = "AUDIO_ROUTER_LOAD_ERROR", AUDIO_ROUTER_CHANGE = "AUDIO_ROUTER_CHANGE", AUDIO_ROUTER_SOLO_CHANGE = "AUDIO_ROUTER_SOLO_CHANGE", AUDIO_ROUTER_MUTE_CHANGE = "AUDIO_ROUTER_MUTE_CHANGE" } export declare type AudioRouterEventTypeDataMap = { [AudioRouterEventType.AUDIO_ROUTER_LOADING]: AudioRouterEventData; [AudioRouterEventType.AUDIO_ROUTER_LOADED]: AudioRouterEventData; [AudioRouterEventType.AUDIO_ROUTER_LOAD_ERROR]: AudioRouterErrorEventData; [AudioRouterEventType.AUDIO_ROUTER_CHANGE]: AudioRouterEventData; [AudioRouterEventType.AUDIO_ROUTER_SOLO_CHANGE]: AudioRouterSoloChangeEventData; [AudioRouterEventType.AUDIO_ROUTER_MUTE_CHANGE]: AudioRouterMuteChangeEventData; }; declare interface AudioRouterMessageChannel { onEvent$: Observable; state: Observable; getDefaultRoutingConnections(): Observable; setDefaultRoutingConnections(connections: AudioRoutingConnection[]): Observable; toggleSolo(routingPath: AudioRoutingInputPath): Observable; toggleMute(routingPath: AudioRoutingInputPath): Observable; resetRouter(): Observable; updateConnections(connections: AudioRoutingConnection[]): Observable; } export declare interface AudioRouterMuteChangeEventData extends Serializable { state: Omit; } declare class AudioRouterProxy extends BaseMessageChannelProxy implements AudioRouterApi { protected _destroyBreaker: ObserverBreaker; protected _routerState?: AudioRouterState; protected _audioRouterEventEmmiter$: Subject; constructor(messageChannel: MessageChannel_2); get onEvent$(): Observable; get state(): AudioRouterState; getDefaultRoutingConnections(): AudioRoutingConnection[]; setDefaultRoutingConnections(connections: AudioRoutingConnection[]): Observable; toggleSolo(routingPath: AudioRoutingInputPath): Observable; toggleMute(routingPath: AudioRoutingInputPath): Observable; resetRouter(): Observable; updateConnections(connections: AudioRoutingConnection[]): Observable; private checkLateInitialization; updateFromState(routerState: AudioRouterState): void; protected tryLateInitialization(): void; private syncStateOperator; } export declare interface AudioRouterSoloChangeEventData extends Serializable { state: Omit; } export declare interface AudioRouterSoloMuteState { /** * Audio router input number */ inputNumber: number; /** * Flag that tells if audio router input is soloed */ soloed: boolean; /** * Flag that tells if audio router input is muted */ muted: boolean; /** * Audio router soloed input connections */ inputSoloedConnections: AudioRoutingConnection[]; /** * Audio router muted input connections */ inputMutedConnections: AudioRoutingConnection[]; /** * Audio router connections before input solo action (current input connections are not included) */ unsoloConnections: AudioRoutingConnection[]; } export declare interface AudioRouterState { loadStage: OpStageState; /** * Number of audio inputs */ inputsNumber: number; /** * Number of audio outputs */ outputsNumber: number; /** * Audio routing matrix */ routingConnections: AudioRoutingConnection[][]; /** * Audio router initial/default connections */ initialRoutingConnections: AudioRoutingConnection[]; routingRoutes: AudioRoutingRoute[]; /** * Per-input solo/mute state */ soloMuteStates: AudioRouterSoloMuteState[]; } /** * Describes {@ OmpAudioRoutingPoint} connection status - connected or disconnected */ export declare interface AudioRoutingConnection { /** * Routing path - channel splitter output and channel merger input */ path: AudioRoutingPath; /** * Connected status, true = connected, false = disconnected */ connected: boolean; } export declare type AudioRoutingInputPath = Pick; export declare type AudioRoutingOutputPath = Pick; /** * Describes routing path - channel splitter output and channel merger input */ export declare interface AudioRoutingPath { /** * Input - Channel splitter output */ input: number; /** * Output - Channel merger input */ output: number; } /** * Describes state on {@link AudioRoutingPath} */ export declare interface AudioRoutingRoute { /** * Routing path */ path: AudioRoutingPath; /** * Connection status */ connection: AudioRoutingConnection; /** * Audio effect graph state */ audioEffectGraphState: AudioEffectGraphState | undefined; } declare type AudioSlotType = 'source' | 'router' | 'destination'; /** * Serializable snapshot of an audio {@link Track}. */ export declare interface AudioState extends TrackState { audioType: AudioType; url: string | undefined; duration: number | undefined; audioCodec: string | undefined; channels: number | undefined; } export declare interface AudioThemeConfig extends AudioThemeConfigUpdateableAttrs { /** * Specifies list of enabled floating controls */ floatingControls: AudioThemeFloatingControl[]; /** * Specifies list of floating controls that are shown when the video is playing */ alwaysOnFloatingControls: AudioThemeFloatingControl[]; /** * Sets the available playback rates in menu */ playbackRates: number[]; /** * Enables/disables the audio visualization */ visualization: AudioVisualization; /** * Configures the audio visualization */ visualizationConfig: AudioVisualizationConfig; /** * Id of the custom web component used for Player chroming */ htmlTemplateId?: string; } export declare interface AudioThemeConfigUpdateableAttrs { /** * Specifies controls visibility */ controlBarVisibility: Omit; /** * Specifies list of enabled controls in control bar */ controlBar: AudioThemeControl[]; /** * Specifies the audio player size */ playerSize: AudioPlayerSize; /** * Specifies which time format will be used in the timer control */ timeFormat: ChromingTimeFormat; /** * Specifies if the time control can be used for seeking. It is activated by double clicking the time. */ timeInteractive: boolean; } export declare enum AudioThemeControl { PLAY = "PLAY", VOLUME = "VOLUME", PLAYBACK_RATE = "PLAYBACK_RATE", TRACK_SELECTOR = "TRACK_SELECTOR", SCRUBBER = "SCRUBBER", TIME = "TIME", ROUTER = "ROUTER" } export declare enum AudioThemeFloatingControl { PLAYBACK_CONTROLS = "PLAYBACK_CONTROLS", HELP_MENU = "HELP_MENU" } declare interface AudioTrackController extends TrackController { onBufferingRequired$: Observable; handler: PlayerAudioHandlerApi; } declare type AudioTrackIdentifier = any; /** Load options for audio tracks. */ export declare interface AudioTrackLoadOptions extends BaseTrackLoadOptions { args?: AudioArgs; } /** * Discriminator for the origin of an audio track. */ export declare enum AudioType { /** Standalone audio file loaded as a sidecar. */ AUDIO_FILE = "AUDIO_FILE", /** Audio rendition extracted from an HLS manifest. */ HLS_AUDIO = "HLS_AUDIO", /** Audio track from an MP4 container. */ MP4_AUDIO = "MP4_AUDIO" } /** * Subset of {@link AudioState} fields that can be updated at runtime. */ export declare type AudioUpdateableAttrs = TrackUpdateableAttrs & Pick; export declare enum AudioVisualization { DISABLED = "DISABLED", ENABLED = "ENABLED" } export declare interface AudioVisualizationConfig { /** * Hex value for the stroke color */ strokeColor: string; /** * Hex values for the fill gradient colors */ fillColors: string[]; } export declare class AuthConfig { static _authentication?: AuthenticationData | undefined; static set authentication(authentication: AuthenticationData | undefined); static get authentication(): AuthenticationData | undefined; /** * Creates a fetch-compatible RequestInit object */ static createRequestInit(url: string, authentication?: AuthenticationData): RequestInit; } /** Union of all supported authentication strategies. */ export declare type AuthenticationData = BasicAuthenticationData | BearerAuthenticationData | CustomAuthenticationData; export declare class BarChartLane extends BaseObservationTrackLane { protected _downsamplers: Map; private _typedTrackViews; constructor(configAndStyle?: ConfigAndStyle); addTrack(track: ObservationTrack, config?: BarChartLaneTrackConfig): void; addTrack(id: ObservationTrack['id'], config?: BarChartLaneTrackConfig): void; protected renderTrack(track: ObservationTrack, config: BarChartLaneTrackConfig | undefined): ObservationTrackView; protected onTrackRemoved(trackId: ObservationTrack['id']): void; protected hasVisualElements(): boolean; protected updatePositions(): void; protected createLoadingGroupContent(width: number, height: number): default_3.Animation; private _createDefaultLoadingAnimation; private _createOgLoadingAnimation; destroy(): void; } export declare interface BarChartLaneConfig extends ObservationTrackLaneConfig { } export declare interface BarChartLaneStyle extends ObservationTrackLaneStyle { } /** * Per-track configuration for {@link BarChartLane}. * Each track added via `addTrack()` can carry its own scale, baseline, interpolation * settings, and visual style that override lane-level defaults. */ export declare interface BarChartLaneTrackConfig extends ObservationTrackLaneTrackConfig { /** Value domain for this track. Auto-derived from data when omitted. */ scale?: BarChartLaneTrackScale; /** Value that maps to the bar baseline (zero-crossing). Defaults to 0. */ scaleBaseline?: number; /** Aggregation strategy used when multiple samples fall in the same interpolation bucket. */ interpolationStrategy?: InterpolationStrategy; /** Width in pixels of a single interpolation bucket. Smaller = more detail */ interpolationWidth?: number; style?: BarChartLaneTrackStyle; } /** * Visual style for a single measurement series within a bar-chart track. * Matched to data by `measurement`; unmatched measurements use defaults. */ export declare interface BarChartLaneTrackMeasurementStyle { /** Measurement this style applies to (matches {@link ObservationItem.measurement}). */ measurement: ObservationItem['measurement']; /** Bar rendering mode: `'default'` draws rectangles, `'og'` draws a column of stacked circles. */ barType: 'default' | 'og'; /** Solid fill color. Mutually exclusive with `fillLinearGradientColorStops`. */ fill: Color; /** Gradient color stops (Konva format). Used when `fill` is not set. */ fillLinearGradientColorStops: (number | string)[]; /** Overall bar opacity (0–1). */ opacity: Size; /** Corner radius for `'default'` bars. */ cornerRadius: Size | [Size, Size, Size, Size]; /** Stroke color drawn around each bar. */ strokeColor: Color; /** Stroke width in pixels. */ strokeWidth: Size; /** Horizontal padding inside the bar's allocated width. Single value = symmetric; tuple = [left, right]. */ paddingX: Size | [Size, Size]; } declare type BarChartLaneTrackScale = { min: number; max: number; }; export declare interface BarChartLaneTrackStyle { paddingTop?: number; paddingBottom?: number; baselineFill?: Color; baselineThickness?: Size; baselineDash?: Size[]; measurements?: Partial[]; } export declare type BarChartViewComponentEvent = { [K in BarChartViewComponentEventType]: { type: K; data: BarChartViewComponentEventTypeDataMap[K]; }; }[keyof BarChartViewComponentEventTypeDataMap]; export declare interface BarChartViewComponentEventData { item: ObservationState; pointerPosition: Position; } export declare enum BarChartViewComponentEventType { CLICK = "CLICK", MOUSE_MOVE = "MOUSE_MOVE", MOUSE_ENTER = "MOUSE_ENTER", MOUSE_LEAVE = "MOUSE_LEAVE" } export declare type BarChartViewComponentEventTypeDataMap = { [BarChartViewComponentEventType.CLICK]: BarChartViewComponentEventData; [BarChartViewComponentEventType.MOUSE_MOVE]: BarChartViewComponentEventData; [BarChartViewComponentEventType.MOUSE_ENTER]: BarChartViewComponentEventData; [BarChartViewComponentEventType.MOUSE_LEAVE]: BarChartViewComponentEventData; }; declare abstract class BaseChroming implements ChromingInternalApi, Destroyable { protected readonly _onEvent$: Subject; protected _destroyBreaker: ObserverBreaker; protected _config: ChromingInternalConfig; protected _playerInternal: PlayerInternalApi | undefined; protected _alertDuration: number; private _watermark; private _helpMenuGroups; private _videoSafeZones; protected _thumbnailTrackId: Track['id'] | undefined; protected _markerTrackHandlers: { [ChromingTrackDestination.PROGRESS_BAR]: ChromingMarkerBarHandler | undefined; [ChromingTrackDestination.MARKER_BARS]: ChromingMarkerBarHandler[]; }; protected _domController: ChromingDomController; protected constructor(config: ChromingInternalConfig); abstract addMarkerBar(trackId: Track['id'], destination: ChromingTrackDestination, config?: Partial): Observable; abstract setMarkerBars(markerBars: ChromingMarkerBarState[], progressBarMarkerBar?: ChromingMarkerBarState): Observable; abstract updateMarker(markerTrack: MarkerTrackState, marker: MarkerState, attrs: MarkerUpdateableAttrs): void; abstract setThumbnailTrack(trackId: Track['id'] | undefined): Observable; abstract restoreAlerts(): Observable; protected abstract addAudioTrackObserver(trackId: Track['id'], breaker$: Observable, audioType: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR): void; protected abstract addTextTrackObserver(trackId: Track['id'], breaker$: Observable): void; protected abstract getMarkerTrackState(trackId: Track['id']): Observable; protected handleTrackRepositoryDeleteEvent(event: TrackRepositoryEvent): void; protected handleMarkerTrackEvent(event: TimedItemsTrackEvent): void; protected handleThumbnailTrackEvent(event: TimedItemsTrackEvent, trackState: ThumbnailTrackState): void; setPlayerInternal(playerInternal: PlayerInternalApi): void; get onEvent$(): Observable; restoreChromingSession(chromingSession: ChromingSession): Observable; protected resolveTheme(): ChromingTheme; protected resolveThemeConfig(): Partial | undefined; get state(): ChromingState; get chromingSession(): ChromingSession; emitChromingChange(): void; emitSafeZonesChange(): void; emitHelpMenuChange(): void; emitMarkerTrackChange(): void; emitThumbnailTrackChange(): void; emitThemeConfigChange(): void; emitWatermarkChange(watermark: string | undefined): void; setWatermark(watermark: string | undefined): Observable; get videoSafeZones(): VideoSafeZone[]; setSafeZones(videoSafeZones: VideoSafeZone[]): Observable; addSafeZone(videoSafeZone: VideoSafeZoneCreate): Observable; removeSafeZone(id: string): Observable; removeAllSafeZones(): Observable; get helpMenuGroups(): HelpMenuGroup[]; setHelpMenuGroups(helpMenuGroups: HelpMenuGroup[]): Observable; addHelpMenuGroup(helpMenuGroup: HelpMenuGroup, insertPosition?: HelpMenuGroupInsertPosition): Observable; clearHelpMenuGroups(): Observable; setFloatingTimeVisible(visible: boolean, interactive?: boolean, openEditMode?: boolean): Observable; setFloatingVuMeterVisible(visible: boolean): Observable; setTimeFormat(timeFormat: ChromingTimeFormat): Observable; setThemeConfig(themeConfig: Partial): Observable; setVuMeterConfig(vuMeterConfig: Partial, position?: ChromingVuMeterPosition): Observable; toggleFullScreen(): Observable; getPlayerChromingElement(querySelector: string): T; getMarkerBars(): ChromingMarkerBarHandlers; getMarkerBar(id: string): ChromingMarkerBarHandlerApi | undefined; deleteMarkerBar(id: string): Observable; protected createMarkerElementAndHandler(markerTracks: MarkerTrackState[], destination: ChromingTrackDestination, config?: Partial, trackState?: ChromingMarkerBarState, ui?: Ui | UiProxy): ChromingMarkerBarHandlerApi; get isFloatingTimeVisible(): boolean | undefined; get timeFormat(): ChromingTimeFormat | undefined; get domController(): ChromingDomController; destroy(): void; } declare abstract class BaseFlexGroup> extends BaseFlexNode { private _children; protected constructor(config: C, contentNode: T); protected processOptions(): void; addChild(flexNode: FlexNode, index?: number | undefined): BaseFlexGroup; addChildren(...flexNodes: FlexNode[]): BaseFlexGroup; addChildInternal(flexNode: FlexNode, index: number, refreshLayout?: boolean): BaseFlexGroup; removeChild(flexNode: FlexNode, refreshLayout?: boolean): this; protected _removeChild(flexNode: FlexNode, refreshLayout: boolean): this; refreshLayout(): BaseFlexGroup; applyLayout(): void; destroy(): void; private setJustifyContent; private setAlignContent; private setAlignItems; private setFlexDirection; private setFlexWrap; getChildren(): FlexNode[]; } declare abstract class BaseFlexNode implements FlexNode { protected _name: string; protected _config: C; protected _parent?: FlexNode; protected _contentNode: T; protected _yogaConfig: Config; protected _yogaNode: Node_2; protected constructor(config: C, contentNode: T); protected processOptions(): void; protected setWidthInternal(value: number | string | 'auto'): void; protected setMaxWidthInternal(value: number | string): void; protected setMinWidthInternal(value: number | string): void; protected setHeightInternal(value: number | string | 'auto'): void; protected setMinHeightInternal(value: number | string): void; protected setMaxHeightInternal(value: number | string): void; protected setMarginsInternal(margins: { value: number; flexEdge: FlexEdge; }[]): void; protected setPositionsInternal(positions: { value: number; flexEdge: FlexEdge; }[]): void; refreshLayout(): void; applyLayout(): void; refreshLayoutFromRoot(): T; setParent(parent: FlexNode): void; setWidth(value: number | string | 'auto'): void; setHeight(value: number | string | 'auto'): void; setHeightAndMargins(value: number | string | 'auto', margins: FlexSpacing[], refreshLayout?: boolean): void; setDimension(width: number | string | 'auto', height: number | string | 'auto'): void; setMargins(margins: FlexSpacing[], refreshLayout?: boolean): void; setPositions(positions: FlexSpacing[]): void; setDimensionAndPositions(width: number | string | 'auto', height: number | string | 'auto', positions: FlexSpacing[]): void; getLayout(): Layout; destroy(): void; get name(): string; get parent(): FlexNode | undefined; get yogaNode(): Node_2; get yogaConfig(): Config; get contentNode(): T; get config(): C; } declare abstract class BaseKonvaComponent, S, T extends default_3.Node> implements KonvaComponent { protected readonly _styleAdapter: StyleAdapter; protected _config: C; private _konvaNode?; protected _destroyBreaker: ObserverBreaker; protected constructor(config: C); protected abstract provideKonvaNode(): T; destroy(): void; get config(): C; get konvaNode(): T; get style(): S; set style(value: Partial); } declare abstract class BaseKonvaComponent2 implements KonvaComponent2 { protected _konvaNode?: K; protected _destroyBreaker: ObserverBreaker; protected constructor(); protected abstract provideKonvaNode(): K; get konvaNode(): K; destroy(): void; } export declare abstract class BaseMainMedia extends BaseMediaEntity implements MainMedia { protected readonly _onEvent$: Subject; protected readonly _mediaType = MediaEntityType.MAIN_MEDIA; protected abstract _mainMediaType: MainMediaType; protected readonly _source: Source; protected _sourceFileFormatType?: FileFormatType | undefined; protected readonly _loadOptions: MainMediaLoadOptions | undefined; protected readonly _loadStage: OpStage; protected readonly _tracks: Track[]; protected readonly _tracksMap: Map; protected _initialDuration?: number | undefined; protected _duration?: number | undefined; protected _frameRateModel?: FrameRateModel | undefined; protected _ffomTimecodeModel?: TimecodeModel | undefined; protected _initSegmentTimeOffset?: number | undefined; protected _hasDrm?: boolean | undefined; protected _hasVideo?: boolean | undefined; protected _hasAudio?: boolean | undefined; protected constructor(args: BaseMainMediaArgs); loadStart(): void; loadSuccess(): void; loadError(error: string | undefined): void; addTrack(track: Track): void; addTracks(tracks: Track[]): void; get source(): Source; get mainMediaType(): MainMediaType; get tracks(): Track[]; get loadStage(): OpStage; get hasDrm(): boolean | undefined; get initialDuration(): number | undefined; get duration(): number | undefined; get frameRateModel(): FrameRateModel | undefined; get ffomTimecodeModel(): TimecodeModel | undefined; get initSegmentTimeOffset(): number | undefined; get hasVideo(): boolean | undefined; get hasAudio(): boolean | undefined; get sourceFileFormatType(): FileFormatType | undefined; updateAttrs(attrs: MainMediaUpdateableAttrs): void; get onEvent$(): Observable; protected _getState(): MainMediaState; } /** * Construction arguments for {@link BaseMainMedia} and its subclasses. */ export declare interface BaseMainMediaArgs extends BaseMediaEntityArgs { /** The resolved media source. */ source: Source; /** The resolved file format type of the source. */ sourceFileFormatType?: FileFormatType | undefined; /** Load options used when the media was requested. */ loadOptions?: MainMediaLoadOptions | undefined; /** Pre-existing tracks to associate with the media. */ tracks?: Track[]; /** Initial media duration in seconds. */ duration?: number | undefined; /** Frame rate model for frame-accurate operations. */ frameRateModel?: FrameRateModel | undefined; /** FFOM timecode model for time offset display. */ ffomTimecodeModel?: TimecodeModel | undefined; /** Initialization segment time offset. */ initSegmentTimeOffset?: number | undefined; /** Whether the media source is DRM-protected. */ hasDrm?: boolean | undefined; /** Whether media has video. */ hasVideo?: boolean | undefined; /** Whether media has audio. */ hasAudio?: boolean | undefined; } export declare abstract class BaseMarker extends BaseTimedItem implements Marker { protected _label: string | undefined; protected constructor(args: MarkerArgs); update(attrs: MarkerUpdateableAttrs): void; protected _getState(): MarkerState; get label(): string | undefined; get markerType(): MarkerType; } declare abstract class BaseMarkerViewInnerComponent extends BaseKonvaComponent2 { protected _onHandleClick$: Subject; protected _onHandleMouseMove$: Subject; protected _onHandleDragStart$: Subject; protected _onHandleDragEnd$: Subject; protected _editable: boolean; protected _style: MarkerOnMarkerTrackLaneStyle; protected _markerState: MarkerState; protected _timeline: TimelineImpl; protected _markerTrackLane: MarkerTrackLane; protected _updateHook: (attrs: MarkerUpdateableAttrs) => void; protected _group: default_3.Group; protected _renderBreaker: ObserverBreaker; protected constructor(args: BaseMarkerViewInnerComponentArgs); protected abstract render(): void; abstract refreshTimelinePosition(): void; get onHandleClick$(): Observable; get onHandleMouseMove$(): Observable; get onHandleDragStart$(): Observable; get onHandleDragEnd$(): Observable; update(markerState: MarkerState): void; protected getVerticals(): MarkerViewHandleVerticals; protected onDragMove(newPosition: Position): Position; protected provideKonvaNode(): default_3.Group; } declare interface BaseMarkerViewInnerComponentArgs { editable: boolean; style: MarkerOnMarkerTrackLaneStyle; markerState: MarkerState; timeline: TimelineImpl; markerTrackLane: MarkerTrackLane; updateHook: (attrs: MarkerUpdateableAttrs) => void; } export declare abstract class BaseMediaEntity implements MediaEntity { protected _id: string; protected abstract _mediaType: MediaEntityType; protected constructor(args?: BaseMediaEntityArgs); protected abstract getState(): S; protected _getState(): MediaEntityState; get id(): string; get mediaType(): MediaEntityType; get state(): S; } /** * Construction arguments shared by all {@link BaseMediaEntity} subclasses. */ export declare interface BaseMediaEntityArgs extends Serializable { /** Optional pre-assigned UUID. When omitted a new UUID is generated automatically. */ id?: MediaEntity['id'] | undefined; } /** * If remote method response is awaited value is always Observable. For methods that already return Observable we need to unwrap it as return type is already Observable */ declare abstract class BaseMessageChannel> extends UntypedMessageChannel { protected constructor(managedBroadcastChannel: ManagedBroadcastChannel, topic: string); send, RequestData extends ChannelDef[ActionName]['requestData']>(action: ActionName, arg?: RequestData): void; sendAndWaitForResponse, RequestData extends ChannelDef[Action]['requestData'], ResponseData extends ChannelDef[Action]['responseData']>(action: Action, arg?: RequestData, sendOptions?: Partial): Observable>; listen, ResponseData extends ChannelDef[Action]['responseData']>(action: Action): Observable>; receive, RequestData extends ChannelDef[Action]['requestData']>(action: Action): Observable; receiveAndSendResponse, RequestData extends ChannelDef[Action]['requestData'], ResponseData extends ChannelDef[Action]['responseData']>(action: Action): Observable<[RequestData, (response: UnwrapObservable | ResponseData) => void, (error: Error) => void]>; } declare abstract class BaseMessageChannelProxy implements MessageChannelProxy { private readonly _messageChannel; protected _onInitialized$: BehaviorSubject; constructor(messageChannel: MessageChannel_2); get messageChannel(): MessageChannel_2; get onInitialized$(): Observable; destroy(): void; } export declare abstract class BaseMultiTrackLane extends BaseTimelineLane implements MultiTrackTimelineLane { protected _trackRepository?: TrackRepository; protected _tracks: T[]; protected _tracksMap: Map; protected _trackConfigs: Map; protected _trackBreakers: Map; protected _canRender: boolean; protected constructor(config: C, style?: Partial); protected abstract render(): void; protected abstract updatePositions(): void; protected abstract onTrackRemoved(trackId: T['id']): void; protected abstract hasVisualElements(): boolean; protected settleLayout(): void; protected showLoadingGroup(): void; protected createLoadingGroupContent(width: number, height: number): default_3.Animation; protected hideLoadingGroup(): void; protected updateLoadingVisibility(): void; prepareForTimeline(timeline: TimelineImpl, player: PlayerApi, ompProvider: OmpProvider): void; addTrack(track: T, config?: TC): void; addTrack(id: T['id'], config?: TC): void; removeTrack(trackId: T['id']): void; getTracks(): T[]; protected trySetOnTrackDeleted(track: T, trackBreaker: ObserverBreaker): void; destroy(): void; } /** * Abstract base for all observation item implementations. */ export declare abstract class BaseObservation extends BaseTimedItem implements Observation { protected _label: string | undefined; protected _items: ObservationItem[]; protected constructor(args: ObservationArgs); update(attrs: ObservationUpdateableAttrs): void; protected _getState(): ObservationState; get label(): string | undefined; get items(): ObservationItem[]; } /** * Abstract base for all observation track implementations. */ export declare abstract class BaseObservationTrack = never> extends BaseTimedItemsTrack { protected _trackType: TrackType; protected abstract _observationTrackType: ObservationTrackType; protected constructor(args?: ObservationTrackArgs); protected _getState(): ObservationTrackState; get observationTrackType(): ObservationTrackType; updateAttrs(attrs: ObservationTrackUpdateableAttrs): void; } export declare abstract class BaseObservationTrackLane extends BaseMultiTrackLane { private readonly _onEvent$; protected readonly _trackViews: Map; protected _trackViewsGroup?: default_3.Group; protected _eventCatcher?: default_3.Rect; private _timecodedClick$; private _timecodedMouseMove$; protected _onTimelineZoom$: Subject; protected _onTimelineScroll$: Subject; protected _onSettleLayout$: Subject; protected constructor(config: C, style?: Partial); protected abstract renderTrack(track: ObservationTrack, config?: TC): ObservationTrackView; protected render(): void; protected updatePositions(): void; protected handleTimelineZoom(): void; protected handleTimelineScroll(): void; private handleTimecodeMouseMove; private handleTimecodeClick; prepareForTimeline(timeline: TimelineImpl, player: PlayerApi, ompProvider: OmpProvider): void; addTrack(track: ObservationTrack, config?: TC): void; addTrack(id: ObservationTrack['id'], config?: TC): void; protected createStyledElement(): StyledElementWithId; protected hasVisualElements(): boolean; protected settleLayout(): void; protected onTrackRemoved(trackId: ObservationTrack['id']): void; clearContent(): void; destroy(): void; } declare abstract class BaseOmakasePlayer implements Destroyable { protected _destroyBreaker: ObserverBreaker; protected constructor(); destroy(): void; } export declare abstract class BasePlayerAudioTrack extends BasePlayerTrack implements PlayerAudioTrack { protected _active: boolean; protected constructor(trackState: AudioState); abstract get playerAudioHandler(): PlayerAudioHandlerApi; abstract setActive(active: boolean): Observable; protected _getState(): PlayerAudioTrackState; get active(): boolean; destroy(): void; } export declare abstract class BasePlayerTextTrack extends BasePlayerTrack implements PlayerTextTrack { protected constructor(track: TextTrackState, loadOptions?: PlayerTextTrackLoadOptions); abstract get handler(): PlayerTextTrackHandlerApi; get active(): boolean; protected _getState(): PlayerTextTrackState; destroy(): void; } export declare abstract class BasePlayerTextTrackHandler implements PlayerTextTrackHandlerApi { protected readonly _onEvent$: Subject; protected _id: string; protected _trackState: TextTrackState; protected _playerController: PlayerController; protected _loadOptions: PlayerTrackLoadOptions | undefined; protected _active: boolean; protected _shown: boolean; protected _destroyBreaker: ObserverBreaker; protected constructor(trackState: TextTrackState, playerController: PlayerController, loadOptions?: PlayerTrackLoadOptions); abstract get handlerType(): PlayerTextHandlerType; abstract hide(): Observable; abstract show(): Observable; abstract switch(active: boolean): Observable; protected setActive(active: boolean): void; protected setShown(shown: boolean): void; restoreState(state: PlayerTextTrackHandlerState): Observable; get id(): string; get onEvent$(): Observable; get active(): boolean; get shown(): boolean; toggleShowHide(): Observable; protected emitChangeEvent(): void; protected getState(): PlayerTextTrackHandlerState; get state(): PlayerTextTrackHandlerState; destroy(): void; } declare abstract class BasePlayerTrack implements PlayerTrack, Destroyable { protected readonly _onEvent$: Subject; protected readonly _loadStage: OpStage; protected readonly _loadOptions: L | undefined; protected _trackState: T; protected _destroyBreaker: ObserverBreaker; protected constructor(trackState: T, loadOptions?: L); protected abstract _getState(): S; loadStart(): void; loadSuccess(): void; loadError(error: string | undefined): void; setTrackState(trackState: T): void; get trackState(): T; get loadStage(): OpStage; get state(): S; get onEvent$(): Observable; destroy(): void; } export declare abstract class BaseRepository implements Repository { protected _mediaEntities: Map; add(mediaEntity: T): T; _add(mediaEntity: T): T; addAll(mediaEntities: T[]): T[]; get(id: T['id']): T | undefined; getOrFail(id: T['id']): T; delete(id: T['id']): boolean; clear(): boolean; _delete(id: T['id']): boolean; deleteAll(ids: T['id'][]): boolean; find(predicate?: (value: T, index: number, array: T[]) => unknown, thisArg?: any): T[]; private _find; findFirst(predicate?: (value: T, index: number, obj: T[]) => unknown, thisArg?: any): T | undefined; toString(): string; } export declare abstract class BaseSource implements Source { protected abstract _type: SourceType; protected abstract getState(): S; get state(): S; get type(): SourceType; } export declare abstract class BaseTextCue extends BaseTimedItem implements TextCue { protected _text: string; protected constructor(args: TextCueArgs); update(attrs: TextCueUpdateableAttrs): void; protected _getState(): TextCueState; get text(): string; } export declare abstract class BaseTextTrack = never> extends BaseTimedItemsTrack implements TextTrack_2 { protected _trackType: TrackType; protected abstract _textTrackType: TextTrackType; protected _kind: TextTrackKind_2 | undefined; protected _srclang: string | undefined; protected _default: boolean; protected constructor(args: TextTrackArgs); protected _getState(): TextTrackState; get textTrackType(): TextTrackType; get kind(): TextTrackKind_2 | undefined; get srclang(): string | undefined; get default(): boolean; updateAttrs(attrs: TextTrackUpdateableAttrs): void; } export declare abstract class BaseThumbnail extends BaseTimedItem implements Thumbnail { protected _label: string | undefined; protected _url: string; protected constructor(args: ThumbnailArgs); update(attrs: ThumbnailUpdateableAttrs): void; protected _getState(): ThumbnailState; get label(): string | undefined; get url(): string; } export declare class BaseTimedItem implements MutableTimedItem { protected readonly _id: string; protected _temporal: TimedItemTemporal; protected _data: Record; constructor(args: TimedItemArgs); protected _getState(): TimedItemState; /* Excluded from this release type: update */ get id(): string; get temporal(): TimedItemTemporal; get data(): Record; get state(): S; } export declare abstract class BaseTimedItemsFetcher implements TimedItemsFetcher { protected _track: T; protected _loadOptions?: TrackLoadOptions | undefined; protected constructor(track: T, loadOptions?: TrackLoadOptions | undefined); abstract fetchTimedItems(): Observable; } export declare abstract class BaseTimedItemsTrack, S extends TimedItemsTrackState, E extends OmpEventGroup = never> extends BaseTrack implements TimedItemsTrack, E | TimedItemsTrackEvent>, Destroyable { protected _timedItems: TM[]; protected _timedItemsSorted: TM[]; protected _timedItemsById: Map; protected _timedItemHooks?: TimedItemHooks | undefined; protected _areTimedItemsLocked: boolean; protected _areTimedItemsFetched: boolean; protected constructor(args?: TimedItemsTrackArgs); protected _getState(): TimedItemsTrackState; updateTimedItem(id: T['id'], attrs: InferUpdateAttrs): void; findTimedItemsInRange(start: number, end: number): T[]; findNearestTimedItem(time: number): T | undefined; private sortTimedItemsSorted; private matchesTime; findTimedItemsAtTime(time: number): T[]; findFirstTimedItemAtTime(time: number): T | undefined; get timedItems(): T[]; get timedItemsSorted(): T[]; get areTimedItemsLocked(): boolean; set areTimedItemsLocked(value: boolean); get areTimedItemsFetched(): boolean; set areTimedItemsFetched(areTimedItemsFetched: boolean); getTimedItem(id: T['id']): T | undefined; protected checkTimedItemsLocked(): void; addTimedItems(timedItems: TM | TM[]): void; deleteTimedItems(ids: T['id'] | T['id'][]): void; } export declare abstract class BaseTimelineLane implements TimelineLaneApi { protected _config: C; protected _id: string; protected _description?: string | undefined; protected _leftBgRect: default_3.Rect; protected _rightBgRect: default_3.Rect; protected _timecodedGroup?: default_3.Group; protected _loadingGroup?: default_3.Group; protected _loadingAnimation?: default_3.Animation; protected _mainLeftFlexGroup?: KonvaFlexGroup; protected _mainRightFlexGroup?: KonvaFlexGroup; protected _mainLeftDescription?: KonvaFlexGroup; protected _mainLeftStartJustified?: KonvaFlexGroup; protected _mainLeftEndJustified?: KonvaFlexGroup; protected _descriptionTextLabel?: TextLabel; protected _styledElement?: StyledElementWithId; protected _providedStyle?: Partial | undefined; protected _style?: S; protected _initialStyle?: S; protected _timeline?: TimelineImpl; protected _player?: PlayerApi; protected _ui?: Ui; protected _prepared: BehaviorSubject; protected _uiBreaker: ObserverBreaker; protected _destroyBreaker: ObserverBreaker; protected constructor(config: C, providedStyle?: Partial); protected abstract createStyledElement(): StyledElementWithId; protected abstract settleLayout(): void; prepareForTimeline(timeline: TimelineImpl, player: PlayerApi, ompProvider: OmpProvider): void; protected handleStyleUpdate(): void; protected handleTimelineZoom(): void; protected handleTimelineScroll(): void; protected createMainLeftFlexGroup(): KonvaFlexGroup; protected createDescriptionTextLabel(): void; protected createMainRightFlexGroup(): KonvaFlexGroup; onMeasurementsChange(): void; /* Excluded from this release type: updateLayoutDimensions */ clearContent(): void; getTimecodedRect(): RectMeasurement; get id(): string; get mainLeftFlexGroup(): KonvaFlexGroup; get mainRightFlexGroup(): KonvaFlexGroup; addTimelineNode(config: TimelineLaneComponentConfig): TimelineNode; isMinimized(): boolean; /* Excluded from this release type: _minimize */ /* Excluded from this release type: _maximize */ minimize(args?: TimelineLaneMinimizeMaximizeArgs): void; maximize(args?: TimelineLaneMinimizeMaximizeArgs): void; protected checkIsPrepared(): void; private _minimizeEased; private _maximizeEased; toggleMinimizeMaximize(args?: TimelineLaneMinimizeMaximizeArgs): void; get style(): S; setStyle(style: Partial): void; updateAttrs(attrs: TimelineLaneUpdateableAttrs): void; protected updateDescriptionTextLabel(description: string | undefined): void; destroy(): void; } export declare abstract class BaseTimelineNode, S extends TimelineNodeStyle> extends BaseKonvaComponent implements TimelineNode { private readonly _onEvent$; protected _group: default_3.Group; protected _bgRect: default_3.Rect; protected constructor(config: C); get onEvent$(): Observable; onMeasurementsChange(): void; protected provideKonvaNode(): default_3.Group; protected onStyleChange(): void; destroy(): void; } export declare abstract class BaseTrack> extends BaseMediaEntity implements Track, Destroyable { protected readonly _onEvent$: Subject>; protected readonly _mediaType = MediaEntityType.TRACK; protected abstract readonly _trackType: TrackType; protected readonly _source: Source | undefined; protected readonly _sourceFileFormatType?: FileFormatType | undefined; protected readonly _loadOptions: TrackLoadOptions | undefined; protected readonly _relations: Relation[]; protected readonly _loadStage: OpStage; protected _label: string | undefined; protected _customAttrs: Record | undefined; protected readonly _destroyBreaker: ObserverBreaker; protected constructor(args?: BaseTrackArgs); updateAttrs(attrs: TrackUpdateableAttrs): void; protected _updateAttrs(attrs: TrackUpdateableAttrs, emitEvent?: boolean): void; protected _getState(): TrackState; loadStart(): void; loadSuccess(): void; loadError(error: string | undefined): void; addRelation(relation: Relation): void; hasRelation(relation: Relation): boolean; get onEvent$(): Observable>; get trackType(): TrackType; get source(): Source | undefined; get sourceFileFormatType(): FileFormatType | undefined; get relations(): Relation[]; get loadStage(): OpStage; get label(): string | undefined; get customAttrs(): Record | undefined; destroy(): void; } /** * Construction arguments for {@link BaseTrack} and its subclasses. */ export declare interface BaseTrackArgs extends BaseMediaEntityArgs { /** Data source backing this track. */ source?: Source | undefined; /** Initial set of inter-track relations. */ relations?: Relation[] | undefined; /** The resolved file format of the source. */ sourceFileFormatType?: FileFormatType | undefined; /** Load options used when the track was requested. */ loadOptions?: TrackLoadOptions | undefined; /** Human-readable label for this track. */ label?: string | undefined; /** Custom arbitrary attributes for this track */ customAttrs?: Record | undefined; /** Track load status **/ loadStage?: OpStage | undefined; } export declare abstract class BaseTrackLane extends BaseTimelineLane { protected _trackRepository?: TrackRepository; protected _track?: T | undefined; protected _trackSet: BehaviorSubject; protected _canRender: boolean; protected _trackUpdateBreaker: ObserverBreaker; protected constructor(config: C, style?: Partial); abstract render(): void; protected abstract hasVisualElements(): boolean; protected settleLayout(): void; protected showLoadingGroup(): void; protected createLoadingGroupContent(width: number, height: number): default_3.Animation; protected hideLoadingGroup(): void; protected updateLoadingVisibility(): void; prepareForTimeline(timeline: TimelineImpl, player: PlayerApi, ompProvider: OmpProvider): void; setTrack(track: T): void; protected tryUpdateDescription(): void; protected trySetOnTrackDeleted(): void; destroy(): void; } /** Base load options shared by all track types. */ export declare interface BaseTrackLoadOptions { fileFormatType?: FileFormatType | undefined; } export declare abstract class BaseUrlSource extends BaseSource { protected _type: SourceType; protected _url: string; constructor(url: string); protected abstract getState(): T; get url(): string; } /** Authentication data for HTTP Basic auth. */ export declare interface BasicAuthenticationData { type: 'basic'; /** Basic auth username. */ username: string; /** Basic auth password. */ password: string; } /** Authentication data for Bearer token auth. */ export declare interface BearerAuthenticationData { type: 'bearer'; /** Bearer token included in the `Authorization` header. */ token: string; } declare interface BufferedTimeRange { start: number; end: number; } export declare interface ChannelCountEventData extends Serializable { channelCount: number; } export declare interface ChromelessThemeConfig extends ChromelessThemeConfigUpdateableAttrs { /** * Specifies the list of enabled floating controls */ floatingControls: ChromelessThemeFloatingControl[]; /** * Specifies the list of floating controls that are shown when the video is playing */ alwaysOnFloatingControls: ChromelessThemeFloatingControl[]; } export declare interface ChromelessThemeConfigUpdateableAttrs { /** * Specifies which time format will be used in the timer control */ timeFormat: ChromingTimeFormat; /** * Specifies if the time control can be used for seeking. It is activated by double clicking the time. */ timeInteractive: boolean; } export declare enum ChromelessThemeFloatingControl { TIME = "TIME" } /** * Public API for chroming the player * @document ../../docs/static/chroming/README.md */ export declare interface ChromingApi extends ChromingCommonApi { /** * Gets the HTML element from the player chroming DOM * @param querySelector HTML query selector */ getPlayerChromingElement(querySelector: string): T; /** * Add a marker bar to the player. Marker bar will be displayed in the marker bar area above the progress bar. * @param url URL of the marker bar to load * @param source Source of the marker bar to load * @param destination The destination where the marker bar should be added (marker bar area or progress bar) * @param options Track load options * @param config Marker bar configuration such as marker presentation function and initial visibility */ addMarkerBar(url: string, destination: ChromingTrackDestination, options?: TrackLoadOptions, config?: Partial): Observable; addMarkerBar(source: Source, destination: ChromingTrackDestination, options?: TrackLoadOptions, config?: Partial): Observable; /** * Set a thumbnail track for the player. Thumbnail track will be used to display preview thumbnails when hovering over the progress bar. * @param url URL of the thumbnail track to load * @param source Source of the thumbnail track to load * @param options Track load options */ setThumbnailTrack(url: string, options?: TrackLoadOptions): Observable; setThumbnailTrack(source: Source, options?: TrackLoadOptions): Observable; setThumbnailTrack(empty: undefined): Observable; /** * Get current chroming VU meter configuration * @param position VU meter position in chroming */ getVuMeterConfig(position?: ChromingVuMeterPosition): ChromingVuMeterConfig; } declare interface ChromingAudioTrack extends ChromingAudioTrackUpdateAttrs { audioTrack: AudioState; } declare interface ChromingAudioTrackUpdateAttrs { type: PlayerAudioType; playerTrack: PlayerAudioTrackState; } export declare interface ChromingChangeEventData extends Serializable { chroming: ChromingState; } export declare interface ChromingCommonApi { /** * Observable that emits chroming events such as theme change, safe zones change, help menu change, marker track change, thumbnail track change and theme config change. */ onEvent$: Observable; /** * Current help menu groups configured in the player chroming. */ helpMenuGroups: HelpMenuGroup[]; /** * Current video safe zones configured in the player chroming. */ videoSafeZones: VideoSafeZone[]; /** * Whether the floating time display is visible in the player chroming. */ isFloatingTimeVisible: boolean | undefined; /** * Current time format used in the player chroming. */ timeFormat: ChromingTimeFormat | undefined; /** * Current chroming state of the player. Should not be edited externally. */ state: ChromingState; /** * Current chroming session of the player. Should not be edited externally. */ chromingSession: ChromingSession; /** * Adds a video safe zone to the player chroming. * @param videoSafeZone */ addSafeZone(videoSafeZone: Partial): Observable; /** * Removes a video safe zone from the player chroming. * @param id Video safe zone id */ removeSafeZone(id: string): Observable; /** * Removes all video safe zones from the player chroming. */ removeAllSafeZones(): Observable; /** * Adds a help menu group to the player chroming. * @param helpMenuGroup Help menu group to add * @param insertPosition Position where the help menu group should be added in the help menu (append or prepend) */ addHelpMenuGroup(helpMenuGroup: HelpMenuGroup, insertPosition: HelpMenuGroupInsertPosition): Observable; /** * Removes all help menu groups from the player chroming. */ clearHelpMenuGroups(): Observable; /** * Shows or hides and optionally sets the interactivity of the floating time display in the player chroming. * @param visible is floating time shown * @param isInteractive sets timeInteractive property in theme config to true/false * @param openEditMode if true, changes the time to edit mode and focuses the input (only applicable if timeInteractive property is true) */ setFloatingTimeVisible(visible: boolean, isInteractive?: boolean, openEditMode?: boolean): Observable; /** * Changes the time format used in the player chroming. * @param timeFormat Time format to set (media time, countdown media time or timecode) */ setTimeFormat(timeFormat: ChromingTimeFormat): Observable; /** * Changes the theme configuration of the player chroming. Theme configuration includes settings such as control visibility, floating control configuration and action icon configuration for each theme. */ setThemeConfig(themeConfig: Partial): Observable; /** * Updates the VU meter configuration in the player chroming * @param config New VU meter configuration, only attributes to update need to be sent * @param position Position of the VU meter to affect, if not sent all VU meters in chroming will be affected */ setVuMeterConfig(config: Partial, position?: ChromingVuMeterPosition): Observable; /** * Shows or hides the floating VU meter in the player chroming. */ setFloatingVuMeterVisible(visible: boolean): Observable; /** * Sets the watermark text in the player chroming. Sending undefined will remove the watermark. */ setWatermark(watermark: string | undefined): Observable; /** * Returns an object containing the progress bar marker bar and a list of marker bar handlers from the marker bar area in chroming */ getMarkerBars(): ChromingMarkerBarHandlers; /** * Gets a marker bar handler by the marker bar id. Marker bar handler can be used to update the marker bar presentation and visibility and to add or remove marker tracks from the marker bar. * @param id Send id to get the marker bar from the marker bars area or progress bar */ getMarkerBar(id: string): ChromingMarkerBarHandlerApi | undefined; /** * Removes a marker bar from chroming. * @param id Send id to remove the marker bar from the marker bars area or progress bar */ deleteMarkerBar(id: string): Observable; /** * Internal method. Restores the chroming state from the session. * @param chromingSession Chroming session to restore */ restoreChromingSession(chromingSession: ChromingSession): Observable; /** * Enters or exits fullscreen mode. */ toggleFullScreen(): Observable; } export declare interface ChromingConfig extends ChromingConfigLocalAndDetached { } declare type ChromingConfigLocalAndDetached = Omit; declare class ChromingDetached extends BaseChroming implements ChromingDetachedApi { private _remoteNode?; private _sessionStore?; private _trackRepository?; private _omakaseTrackApiProxy?; private _alertsManagerProxy?; private _mainMediaRepositoryProxy?; private _uiProxy?; constructor(config: ChromingDetachedConfig); setRemoteProxies(remoteNode: RemoteNode): void; protected handleMarkerTrackEvent(event: TimedItemsTrackEvent): void; addAudioTrackObserver(trackId: Track['id'], breaker$: Observable, audioType: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR): void; addTextTrackObserver(trackId: Track['id'], breaker$: Observable): void; protected getMarkerTrackState(trackId: Track['id']): Observable; updateMarker(markerTrack: MarkerTrackState, marker: MarkerState, attrs: MarkerUpdateableAttrs): void; addMarkerBar(trackId: Track['id'], destination: ChromingTrackDestination, config?: Partial): Observable; setMarkerBars(chromingMarkerBars: ChromingMarkerBarState[], progressBarMarkerBar?: ChromingMarkerBarState): Observable; setThumbnailTrack(trackId: Track['id'] | undefined): Observable; findThumbnailFn(trackId: string, time: number): Observable; restoreAlerts(): Observable; protected wireEvents(): void; } export declare interface ChromingDetachedApi extends ChromingInternalApi, Destroyable { } export declare interface ChromingDetachedConfig extends ChromingConfigLocalAndDetached { } declare interface ChromingDetachedMessageChannel extends ChromingDetachedApi { } declare class ChromingDetachedProxy extends BaseMessageChannelProxy implements ChromingDetachedApi, Destroyable { protected _sessionStore: SessionStore; private _state?; private _remoteNode; private _destroyBreaker; constructor(remoteNode: RemoteNode, ompProvider: OmpProvider); protected initialize(): void; protected updateFromState(chromingState: ChromingState): void; protected updateChromingMarkerBarHandlerProxies(): void; get onEvent$(): Observable; private checkLateInitialization; get chromingSession(): ChromingSession; get state(): ChromingState; get helpMenuGroups(): HelpMenuGroup[]; get isFloatingTimeVisible(): boolean | undefined; get timeFormat(): ChromingTimeFormat | undefined; get videoSafeZones(): VideoSafeZone[]; addHelpMenuGroup(helpMenuGroup: HelpMenuGroup, insertPosition: HelpMenuGroupInsertPosition): Observable; addSafeZone(videoSafeZone: Partial): Observable; clearHelpMenuGroups(): Observable; removeAllSafeZones(): Observable; removeSafeZone(id: string): Observable; restoreChromingSession(chromingSession: ChromingSession): Observable; setFloatingTimeVisible(visible: boolean, interactive?: boolean, openEditMode?: boolean): Observable; setFloatingVuMeterVisible(visible: boolean): Observable; setWatermark(watermark: string | undefined): Observable; addMarkerBar(trackId: Track['id'], destination: ChromingTrackDestination, config?: Partial): Observable; deleteMarkerBar(id: string): Observable; getMarkerBars(): ChromingMarkerBarHandlers; getMarkerBar(id: string): ChromingMarkerBarHandlerApi | undefined; setThumbnailTrack(trackId: Track['id'] | undefined): Observable; setTimeFormat(timeFormat: ChromingTimeFormat): Observable; setThemeConfig(themeConfig: Partial): Observable; setVuMeterConfig(config: Partial, position?: ChromingVuMeterPosition): Observable; toggleFullScreen(): Observable; get domController(): ChromingDomController; setPlayerInternal(playerInternal: PlayerInternalApi): void; destroy(): void; } declare interface ChromingDomConfig extends PlayerChromingThemeConfig, PlayerChromingCommonConfig { playerHtmlElementId: string; playerWindowPlaybackMode: WindowPlaybackMode; playerDetachable: boolean; requestAttachFn: () => void; requestDetachFn: () => void; findThumbnailFn: (trackId: string, time: number) => Observable; mediaElement?: Partial>; } declare abstract class ChromingDomController implements PlayerDomController, Destroyable { protected _themeConfigChange$: Subject; protected _config: ChromingDomConfig; protected _playerInternal: PlayerInternalApi | undefined; protected _mainMediaType: MainMediaType | undefined; protected _themeElement: MediaThemeElement; protected _videoElementId: string; protected _htmlElement: HTMLElement; protected _mediaControllerElement: MediaController; protected _mainMediaVideoElement: HTMLVideoElement; protected _divButtonOverlayPlay: HTMLElement; protected _divButtonOverlayPause: HTMLElement; protected _divButtonOverlayLoading: HTMLElement; protected _divButtonOverlayError: HTMLElement; protected _divButtonOverlayReplay: HTMLElement; protected _divButtonOverlayAttach: HTMLElement; protected _divWatermark: HTMLElement; protected _divSafeZoneWrapper: HTMLElement; protected _divBackground: HTMLElement; protected _divPlaybackButtons: HTMLElement; protected _autoHidePlaybackButtons: boolean; protected _divActionIcons: HTMLElement; protected _divAlerts: HTMLElement; protected _divHelp?: HTMLElement; protected _divHelpMenu?: HTMLElement; protected _divHelpWrapper?: HTMLElement; protected _divButtonHelp?: HTMLElement; protected _textMediaCaptionsElement: HTMLElement; protected _textImscElement: HTMLElement; protected _markerBar?: OmakaseMarkerBar; protected _timeRange?: OmakaseTimeRange; protected _attachDetachButton?: MediaChromeButton; protected _vuMeterToggle?: MediaChromeButton; protected _audioLevelSource?: AudioLevelSource; protected _audioDropdownLists: { [PlayerAudioType.MAIN]: OmakaseDropdownList[]; [PlayerAudioType.SIDECAR]: OmakaseDropdownList[]; }; protected _textDropdownLists: OmakaseDropdownList[]; protected _vuMeters: { [ChromingVuMeterPosition.CONTROL_BAR]: VuMeter | undefined; [ChromingVuMeterPosition.FLOATING]: VuMeter | undefined; }; protected _posterDisplayDelay: number; protected _hideBackgroundOnSetPoster: boolean; protected _playerPlayback?: PlayerPlayback | undefined; protected _seekingToTime?: number; protected _seekAnimationDelay: number; private _showTemporaryOnMouseMoveTimeoutId?; private _showTemporaryBackgroundTimeoutId?; private _showSeekLoadingAnimationTimeoutId?; protected _playerBreaker: ObserverBreaker; protected _destroyBreaker: ObserverBreaker; protected _alertClosed$: Subject; protected _attachDetachButtonEnabled$: Subject; private _maxAlertCount; private _maxStackCount; private _displaySpinnerInDetached; protected _enterPictureInPictureHandler?: () => void; protected _leavePictureInPictureHandler?: () => void; protected _fullscreenChangeHandler: () => void; protected _documentClickListener: ((event: MouseEvent) => void) | undefined; protected constructor(config: ChromingDomConfig); abstract setThemeConfig(themeConfig: Partial): void; abstract setThumbnailTrack(track: ThumbnailTrackState | undefined): void; abstract get theme(): T; abstract get themeConfig(): Partial | undefined; setVideoPoster(poster: string): void; showLoading(): void; showLoaded(): void; private updateCssClassesAndVariables; showError(): void; isLoading(): boolean; prepareForAttaching(hasMainMedia: boolean): void; prepareForDetaching(): void; setAttachDetachButtonEnabled(enabled: boolean): void; setPlayer(playerInternal: PlayerInternalApi): void; setMainMediaType(type: MainMediaType): void; createMainMediaVideoElement(): void; createTemplateDom(): string; protected createHelpMenuDom(): void; getVuMeterConfig(themeConfig: DefaultThemeConfig | OmakaseThemeConfig, position?: ChromingVuMeterPosition): ChromingVuMeterConfig; protected applyNordicScale(config: ChromingVuMeterConfig): ChromingVuMeterConfig; protected createVuMeter(theme: ChromingTheme, themeConfig: DefaultThemeConfig | OmakaseThemeConfig, container: HTMLElement, position: ChromingVuMeterPosition): void; protected updateVuMeterConfig(themeConfig: DefaultThemeConfig | OmakaseThemeConfig, position: ChromingVuMeterPosition): void; protected updateFloatingVuMeterToggle(playerAudio: PlayerAudioState): void; protected wireVuMeters(): void; getShadowElement(querySelector: string): T; getShadowElements(querySelector: string): T[] | undefined; getShadowElementByClass(className: string): T; getShadowElementById(id: string): T; destroy(): void; protected wirePlayer(): void; protected wireAudioTextDropdown(audioTextDropdown: OmakaseDropdown): void; protected checkPlayerInternal(): void; setWatermark(watermark: string | undefined): void; clearSafeZones(): void; addSafeZone(videoSafeZone: VideoSafeZoneCreate, allVideoSafeZones: VideoSafeZone[]): VideoSafeZone; removeSafeZone(videoSafeZone: VideoSafeZone): void; updateHelpMenu(helpMenuGroups: HelpMenuGroup[]): void; toggleFullScreen(): Observable; enablePiP(): Observable; disablePiP(): Observable; isPiPSupported(): boolean; protected togglePiP(): Observable; protected addPiPListeners(): void; getPlayerChromingElement(querySelector: string): T; clearMarkerTracks(): void; addMarkerTrack(destination: ChromingTrackDestination): OmakaseMarkerTrack | OmakaseTimeRange; deleteMarkerTrack(idOrDestination: string | ChromingTrackDestination.PROGRESS_BAR): void; setMarkerTrackVisible(element: OmakaseMarkerTrack | OmakaseTimeRange, visible: boolean): void; hideMarkerTrack(idOrDestination: string | ChromingTrackDestination.PROGRESS_BAR): void; addMarker(trackId: string, marker: MarkerState): void; updateMarker(trackId: string, marker: MarkerState): void; removeMarker(trackId: string, marker: MarkerState): void; updateMarkerTrackState(trackId: string, markerTrack: MarkerTrackState): void; setAudioTracks(type: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR, tracks: ChromingAudioTrack[]): void; updateAudioTracks(type: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR, tracks: ChromingAudioTrackUpdateAttrs[]): void; updateAudioTrackRouters(): void; updateAudioTrackLabel(type: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR, track: AudioState): void; addAudioTrack(type: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR, track: ChromingAudioTrack): void; removeAudioTrack(type: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR, trackId: AudioState['id']): void; setTextTracks(tracks: ChromingTextTrack[]): void; updateTextTracks(tracks: PlayerTextTrackState[]): void; updateTextTrackLabel(track: TextTrackState): void; addTextTrack(track: ChromingTextTrack): void; removeTextTrack(trackId: TextTrackState['id']): void; protected getTextTrackIndex(track: ChromingTextTrack): number | undefined; private clearShowTemporaryOnMouseMoveTimeoutId; private clearShowTemporaryBackgroundTimeoutId; private clearShowSeekLoadingAnimationTimeoutId; protected getControlBarClass(element: string): string; protected includeAudioRouter(): boolean; protected getAudioDropdownOptionActionClass(type: PlayerAudioType, track: PlayerAudioTrackState): string; protected getDefaultAudioLabel(type: PlayerAudioType, index: number): string; protected getDefaultTextLabel(index: number): string; protected getAudioDropdownOption(track: ChromingAudioTrack, defaultLabel: string): OmakaseDropdownListItem; protected getTextDropdownOption(track: ChromingTextTrack, defaultLabel: string): OmakaseDropdownListItem; protected registerAudioTextDropdown(dropdown: OmakaseDropdown): void; protected setDropdownOptions(dropdownList: OmakaseDropdownList, options: OmakaseDropdownListItem[]): void; protected addDropdownOption(dropdownList: OmakaseDropdownList, option: OmakaseDropdownListItem, index?: number): void; protected removeDropdownOption(dropdownList: OmakaseDropdownList, value: any): void; protected updateDropdownOptions(dropdownList: OmakaseDropdownList, options: Partial[]): void; protected setAudioTextDropdownMaxWidth(audioTextDropdown: OmakaseDropdown): void; protected displayAudioRouter(trackId: string, audioType: PlayerAudioType.MAIN | PlayerAudioType.SIDECAR, audioTextDropdown: OmakaseDropdown, player: PlayerInternalApi): void; protected hideAudioRouter(audioTextDropdown: OmakaseDropdown): void; protected isAudioRouterUpdated(handler: AudioHandlerApi): boolean; protected isMainAudioRouterSupported(): boolean; resetMainMediaVideoElement(): void; setAlerts(alerts: AlertState[]): void; addAlert(alert: AlertState): void; removeAlert(alertId: AlertState['id']): void; private _stackAlertsInDom; private _createAlertInDom; extractVideoKeyframe(options?: VideoKeyframeOptions): Observable; get mainMediaVideoElement(): HTMLVideoElement; get textMediaCaptionsElement(): HTMLElement; get textImscElement(): HTMLElement; get alertClosed$(): Observable; get themeConfigChange$(): Observable; } export declare type ChromingEvent = { [K in ChromingEventType]: { type: K; data: ChromingEventTypeDataMap[K]; }; }[keyof ChromingEventTypeDataMap]; export declare enum ChromingEventType { CHROMING_SESSION_RESTORED = "CHROMING_SESSION_RESTORED", CHROMING_CHANGE = "CHROMING_CHANGE", CHROMING_WATERMARK_UPDATE = "CHROMING_WATERMARK_UPDATE", CHROMING_SAFE_ZONES_CHANGE = "CHROMING_SAFE_ZONES_CHANGE", CHROMING_HELP_MENU_CHANGE = "CHROMING_HELP_MENU_CHANGE", CHROMING_MARKER_BAR_CHANGE = "CHROMING_MARKER_BAR_CHANGE", CHROMING_THUMBNAIL_TRACK_CHANGE = "CHROMING_THUMBNAIL_TRACK_CHANGE", CHROMING_THEME_CONFIG_CHANGE = "CHROMING_THEME_CONFIG_CHANGE" } export declare type ChromingEventTypeDataMap = { [ChromingEventType.CHROMING_CHANGE]: ChromingChangeEventData; [ChromingEventType.CHROMING_SESSION_RESTORED]: ChromingSessionRestoredEventData; [ChromingEventType.CHROMING_WATERMARK_UPDATE]: ChromingWatermarkUpdateEventData; [ChromingEventType.CHROMING_SAFE_ZONES_CHANGE]: ChromingSafeZoneChangeEventData; [ChromingEventType.CHROMING_HELP_MENU_CHANGE]: ChromingHelpMenuChangeEventData; [ChromingEventType.CHROMING_MARKER_BAR_CHANGE]: ChromingMarkerBarChangeEventData; [ChromingEventType.CHROMING_THUMBNAIL_TRACK_CHANGE]: ChromingThumbnailTrackChangeEventData; [ChromingEventType.CHROMING_THEME_CONFIG_CHANGE]: ChromingThemeConfigChangeEventData; }; export declare interface ChromingHelpMenuChangeEventData extends Serializable { helpMenuGroups: HelpMenuGroup[]; } export declare interface ChromingInternalApi extends ChromingCommonApi { domController: ChromingDomController; setPlayerInternal(playerInternal: PlayerInternalApi): void; addMarkerBar(id: Track['id'], destination: ChromingTrackDestination, config?: Partial): Observable; setThumbnailTrack(id: Track['id'] | undefined): Observable; } export declare interface ChromingInternalConfig extends CommonChromingConfig { } export declare interface ChromingLocalApi extends ChromingInternalApi, Destroyable { prepareDomForAttaching(isMainMediaLoaded: boolean): void; prepareDomForDetaching(): void; getPlayerChromingElement(querySelector: string): T; loadTrack(trackType: TrackType.MARKER_TRACK, urlOrSource: string | Source, options?: TrackLoadOptions): Observable; loadTrack(trackType: TrackType.THUMBNAIL_TRACK, urlOrSource: string | Source, options?: TrackLoadOptions): Observable; } export declare interface ChromingLocalConfig extends ChromingConfigLocalAndDetached { } export declare interface ChromingMarkerBarAddedEventData extends Serializable { trackId: MarkerTrackState['id']; } export declare interface ChromingMarkerBarChangeEventData extends Serializable { progressBarMarkerBar: ChromingMarkerBarState | undefined; markerBars: ChromingMarkerBarState[]; } /** * Configuration for a marker track in the player chroming. */ export declare interface ChromingMarkerBarConfig { /** * Unique identifier for the marker track. If not provided, a random id will be generated. The id is used to identify the marker track when updating or deleting it. */ id: string; /** * Initial visibility of the marker track. If not provided, the marker track will be visible by default. */ visible: boolean; } export declare interface ChromingMarkerBarElementApi { onEvent$: Observable; destroy$: Observable; get config(): ChromingMarkerBarConfig; set config(config: Partial); get markerTracks(): MarkerTrackState[] | undefined; set markerTracks(markerTracks: MarkerTrackState[]); show(): void; hide(): void; addTrack(track: MarkerTrackState): void; removeTrack(track: MarkerTrackState): void; updateTrack(track: MarkerTrackState): void; hasTrack(trackId: string): boolean; addMarker(marker: MarkerState, trackId: MarkerTrackState['id']): void; updateMarker(marker: MarkerState): void; removeMarker(markerId: MarkerState['id']): void; removeAllMarkers(): void; } export declare type ChromingMarkerBarElementEvent = { [K in ChromingMarkerBarElementEventType]: { type: K; data: ChromingMarkerBarElementEventTypeDataMap[K]; }; }[keyof ChromingMarkerBarElementEventTypeDataMap]; export declare enum ChromingMarkerBarElementEventType { CHROMING_MARKER_UPDATE = "CHROMING_MARKER_UPDATE", CHROMING_MARKER_CLICK = "CHROMING_MARKER_CLICK", CHROMING_MARKER_FOCUS = "CHROMING_MARKER_FOCUS", CHROMING_MARKER_UNFOCUS = "CHROMING_MARKER_UNFOCUS" } export declare type ChromingMarkerBarElementEventTypeDataMap = { [ChromingMarkerBarElementEventType.CHROMING_MARKER_UPDATE]: ChromingMarkerUpdateData; [ChromingMarkerBarElementEventType.CHROMING_MARKER_CLICK]: ChromingMarkerBarItemEventData; [ChromingMarkerBarElementEventType.CHROMING_MARKER_FOCUS]: ChromingMarkerBarItemEventData; [ChromingMarkerBarElementEventType.CHROMING_MARKER_UNFOCUS]: ChromingMarkerBarItemEventData; }; export declare type ChromingMarkerBarEvent = { [K in ChromingMarkerBarEventType]: { type: K; data: ChromingMarkerBarEventTypeDataMap[K]; }; }[keyof ChromingMarkerBarEventTypeDataMap]; export declare enum ChromingMarkerBarEventType { CHROMING_MARKER_BAR_CHANGE = "CHROMING_MARKER_BAR_CHANGE", CHROMING_MARKER_BAR_ITEM_CLICK = "CHROMING_MARKER_BAR_ITEM_CLICK", CHROMING_MARKER_BAR_ITEM_MOUSE_ENTER = "CHROMING_MARKER_BAR_ITEM_MOUSE_ENTER", CHROMING_MARKER_BAR_ITEM_MOUSE_LEAVE = "CHROMING_MARKER_BAR_ITEM_MOUSE_LEAVE", CHROMING_MARKER_BAR_TRACK_ADDED = "CHROMING_MARKER_BAR_TRACK_ADDED", CHROMING_MARKER_BAR_TRACK_REMOVED = "CHROMING_MARKER_BAR_TRACK_REMOVED" } export declare type ChromingMarkerBarEventTypeDataMap = { [ChromingMarkerBarEventType.CHROMING_MARKER_BAR_CHANGE]: ChromingMarkerBarStateChangeEventData; [ChromingMarkerBarEventType.CHROMING_MARKER_BAR_TRACK_ADDED]: ChromingMarkerBarAddedEventData; [ChromingMarkerBarEventType.CHROMING_MARKER_BAR_TRACK_REMOVED]: ChromingMarkerBarRemovedEventData; [ChromingMarkerBarEventType.CHROMING_MARKER_BAR_ITEM_CLICK]: ChromingMarkerBarItemEventData; [ChromingMarkerBarEventType.CHROMING_MARKER_BAR_ITEM_MOUSE_ENTER]: ChromingMarkerBarItemEventData; [ChromingMarkerBarEventType.CHROMING_MARKER_BAR_ITEM_MOUSE_LEAVE]: ChromingMarkerBarItemEventData; }; export declare class ChromingMarkerBarHandler implements ChromingMarkerBarHandlerApi, Destroyable { protected readonly _onEvent$: Subject; private _id; private _tracks; private _visible; private _destroyBreaker; private _elementBreaker; constructor(id: string, tracks: string[], visible: boolean); wireElement(markerBarElement: ChromingMarkerBarElementApi): void; setVisibility(visible: boolean): Observable; addTrack(track: MarkerTrack | MarkerTrack['id']): Observable; removeTrack(trackId: string): Observable; getTrackIds(): string[]; restoreState(state: ChromingMarkerBarState): Observable; protected emitChangeEvent(): void; destroy(): void; get id(): string; get onEvent$(): Observable; get state(): ChromingMarkerBarState; } export declare interface ChromingMarkerBarHandlerApi { onEvent$: Observable; id: string; /** * Current state of the marker bar. */ state: ChromingMarkerBarState; /** * Hide or show the marker bar. * @param visible Marker bar visibility */ setVisibility(visible: boolean): Observable; /** * Add another marker track. * @param track Marker track or marker track id */ addTrack(track: MarkerTrack | MarkerTrack['id']): Observable; /** * Remove marker track. * @param trackId Marker track id */ removeTrack(trackId: string): Observable; /** * Returns a list of track ids associated with the marker bar */ getTrackIds(): string[]; /** * Internal method. Restores the state of the marker track from the session. * @param state Marker track state */ restoreState(state: ChromingMarkerBarState): Observable; } declare interface ChromingMarkerBarHandlerMessageChannel { onEvent$: Observable; state(): Observable; setVisibility(visible: boolean): Observable; addTrack(trackId: string): Observable; removeTrack(trackId: string): Observable; } declare class ChromingMarkerBarHandlerProxy extends BaseMessageChannelProxy implements ChromingMarkerBarHandlerApi { protected _remoteNode: RemoteNode; private _chromingMarkerTrackHandlerState?; protected _destroyBreaker: ObserverBreaker; constructor(messageChannel: MessageChannel_2, remoteNode: RemoteNode, state: ChromingMarkerBarState); protected _router: AudioRouterProxy | undefined; get router(): AudioRouterProxy | undefined; updateFromState(markerTrackHandlerState: ChromingMarkerBarState): void; private checkLateInitialization; get onEvent$(): Observable; get state(): ChromingMarkerBarState; get id(): string; setVisibility(visible: boolean): Observable; getTrackIds(): string[]; addTrack(track: MarkerTrack | MarkerTrack['id']): Observable; removeTrack(trackId: string): Observable; restoreState(state: ChromingMarkerBarState): Observable; destroy(): void; } export declare type ChromingMarkerBarHandlers = { [ChromingTrackDestination.PROGRESS_BAR]: ChromingMarkerBarHandlerApi | undefined; [ChromingTrackDestination.MARKER_BARS]: ChromingMarkerBarHandlerApi[]; }; export declare interface ChromingMarkerBarItemEventData extends Serializable { item: MarkerState; } export declare interface ChromingMarkerBarRemovedEventData extends Serializable { trackId: MarkerTrackState['id']; } export declare interface ChromingMarkerBarState { id: string; tracks: string[]; visible: boolean; } export declare interface ChromingMarkerBarStateChangeEventData extends Serializable { state: ChromingMarkerBarState; } export declare interface ChromingMarkerUpdateData extends Serializable { track: MarkerTrackState; item: MarkerState; attrs: MarkerUpdateableAttrs; } export declare interface ChromingSafeZoneChangeEventData extends Serializable { safeZones: VideoSafeZone[]; } export declare type ChromingSession = ChromingState; export declare interface ChromingSessionRestoredEventData extends Serializable { chromingSession: ChromingSession; } export declare interface ChromingState { theme: ChromingTheme; themeConfig: Partial | undefined; watermark: string | undefined; safeZones: VideoSafeZone[]; helpMenuGroups: HelpMenuGroup[]; progressBarMarkerBar: ChromingMarkerBarState | undefined; markerBars: ChromingMarkerBarState[]; thumbnailTrackId: Track['id'] | undefined; } declare interface ChromingTextTrack { playerTrack: PlayerTextTrackState; textTrack: TextTrackState; } export declare enum ChromingTheme { DEFAULT = "DEFAULT", STAMP = "STAMP", CHROMELESS = "CHROMELESS", CUSTOM = "CUSTOM", AUDIO = "AUDIO", OMAKASE = "OMAKASE" } export declare interface ChromingThemeConfigChangeEventData extends Serializable { theme: ChromingTheme; themeConfig: Partial | undefined; } export declare type ChromingThemeConfigMap = { [ChromingTheme.DEFAULT]: DefaultThemeConfig; [ChromingTheme.AUDIO]: AudioThemeConfig; [ChromingTheme.CHROMELESS]: ChromelessThemeConfig; [ChromingTheme.OMAKASE]: OmakaseThemeConfig; [ChromingTheme.STAMP]: StampThemeConfig; [ChromingTheme.CUSTOM]: CustomThemeConfig; }; export declare type ChromingThemeConfigTypes = DefaultThemeConfig | StampThemeConfig | ChromelessThemeConfig | AudioThemeConfig | OmakaseThemeConfig | CustomThemeConfig; export declare type ChromingThemeTypes = ChromingTheme.DEFAULT | ChromingTheme.AUDIO | ChromingTheme.CHROMELESS | ChromingTheme.STAMP | ChromingTheme.OMAKASE | ChromingTheme.CUSTOM; export declare interface ChromingThumbnailTrackChangeEventData extends Serializable { thumbnailTrackId: Track['id'] | undefined; } export declare enum ChromingTimeFormat { TIMECODE = "TIMECODE", COUNTDOWN_MEDIA_TIME = "COUNTDOWN_MEDIA_TIME", MEDIA_TIME = "MEDIA_TIME" } export declare enum ChromingTrackDestination { MARKER_BARS = "MARKER_BARS", PROGRESS_BAR = "PROGRESS_BAR" } export declare type ChromingVuMeterConfig = Pick; export declare enum ChromingVuMeterPosition { CONTROL_BAR = "CONTROL_BAR", FLOATING = "FLOATING" } export declare type ChromingVuMeterStyle = Pick; export declare interface ChromingWatermarkUpdateEventData extends Serializable { watermark: string | undefined; } export declare interface ClassStyleRule { className: string; style: Partial; } declare interface ClickEvent extends OmpMouseEvent { } export declare type Color = `#${string}` | `rgb(${string})` | `rgba(${string})` | `hsl(${string})` | (string & {}); /** * Default player configuration values. */ export declare const COMMON_PLAYER_CONFIG_DEFAULT: PlayerCommonConfig; declare interface CommonChromingConfig extends ChromingDomConfig { } declare interface Comparable { compareTo(o: T): number; } declare interface ComponentConfig { style: S; } export declare type ConfigAndStyle = Partial & { style?: Partial; }; /** * Intended to be used in component constructors. 'style' property is made optional, style type 'S' type is made Partial */ declare type ConfigWithOptionalStyle> = WithOptionalPartial; export declare enum ControlBarVisibility { ENABLED = "ENABLED", DISABLED = "DISABLED", FULLSCREEN_ONLY = "FULLSCREEN_ONLY" } export declare type Cursor = 'default' | 'pointer' | 'grab' | 'grabbing' | 'ew-resize' | 'col-resize'; /** Authentication data with a custom header factory. */ export declare interface CustomAuthenticationData { type: 'custom'; /** Returns request headers to apply for the given URL. */ headers: (url: string) => { headers: Record; }; } export declare interface CustomThemeConfig extends CustomThemeConfigUpdateableAttrs { /** * Id of the custom web component used for Player chroming */ htmlTemplateId: string; } export declare interface CustomThemeConfigUpdateableAttrs { } declare interface DataMessage extends Message { action: string; data: DataType; } declare type DeepPartial = { [P in keyof T]?: T[P] extends object ? DeepPartial : T[P]; }; export declare const DEFAULT_AUDIO_PLAYER_CHROMING_CONFIG: AudioThemeConfig; export declare const DEFAULT_CHROMELESS_PLAYER_CHROMING_CONFIG: ChromelessThemeConfig; export declare const DEFAULT_CHROMING_VU_METER_CONFIG: ChromingVuMeterConfig; export declare const DEFAULT_CHROMING_VU_METER_STYLE: Omit; export declare const DEFAULT_DOWNSAMPLE_OPTIONS: Required; export declare const DEFAULT_ELEMENT_STYLES: { [K in ElementStyleName]: ElementStyleByName[K]; }; export declare const DEFAULT_INTERPOLATION_OPTIONS: Required>; export declare const DEFAULT_OMAKASE_PLAYER_CHROMING_CONFIG: OmakaseThemeConfig; export declare const DEFAULT_PLAYER_CHROMING: PlayerChromingConfig; export declare const DEFAULT_PLAYER_CHROMING_CONFIG: DefaultThemeConfig; export declare const DEFAULT_STAMP_PLAYER_CHROMING_CONFIG: StampThemeConfig; export declare const DEFAULT_VU_METER_CONFIG: VuMeterConfig; export declare const DEFAULT_VU_METER_DEFAULT_THEME_COLORS: { maxValueDb: number; color: string; holdColor: string; }[]; export declare const DEFAULT_VU_METER_LED_THEME_COLORS: { maxValueDb: number; color: string; holdColor: string; }[]; export declare const DEFAULT_VU_METER_STYLE: Omit; export declare class DefaultMarker extends BaseMarker implements Marker { constructor(args: MarkerArgs); } export declare class DefaultObservation extends BaseObservation implements Observation { constructor(args: ObservationArgs); } export declare class DefaultTextCue extends BaseTextCue implements TextCue { constructor(args: TextCueArgs); } export declare interface DefaultTextCueState extends TextCueState { } export declare enum DefaultThemeActionIcon { TRACK_SELECTOR = "TRACK_SELECTOR", HELP_MENU = "HELP_MENU", ROUTER = "ROUTER" } export declare interface DefaultThemeConfig extends DefaultThemeConfigUpdateableAttrs { /** * Specifies list of enabled floating controls */ floatingControls: DefaultThemeFloatingControl[]; /** * Specifies list of enabled floating controls */ alwaysOnFloatingControls: DefaultThemeFloatingControl[]; /** * Specifies list of enabled action icons */ actionIcons: DefaultThemeActionIcon[]; /** * Sets the available playback rates in menu */ playbackRates: number[]; /** * If false, track selection menu will keep open until explicitly closed. * If true it will close on track selection or when clicking outside of the menu */ trackSelectorAutoClose: boolean; /** * Id of the custom web component used for Player chroming */ htmlTemplateId?: string; } export declare interface DefaultThemeConfigUpdateableAttrs { /** * Specifies controls visibility */ controlBarVisibility: ControlBarVisibility; /** * Specifies list of enabled controls in control bar */ controlBar: DefaultThemeControl[]; /** * Specifies which time format will be used in the timer control */ timeFormat: ChromingTimeFormat; /** * Specifies if the time control can be used for seeking. It is activated by double clicking the time. */ timeInteractive: boolean; /** * Shared configuration for floating and control bar VU meters */ vuMeterConfig: Partial; /** * Specifies if the floating VU meter is displayed */ isFloatingVuMeterVisible: boolean; /** * Override values for the floating VU meter configuration */ floatingVuMeterConfig?: Partial | undefined; /** * Override values for the control bar VU meter configuration */ controlBarVuMeterConfig?: Partial | undefined; } export declare enum DefaultThemeControl { PLAY = "PLAY", FRAME_FORWARD = "FRAME_FORWARD", TEN_FRAMES_FORWARD = "TEN_FRAMES_FORWARD", FRAME_BACKWARD = "FRAME_BACKWARD", TEN_FRAMES_BACKWARD = "TEN_FRAMES_BACKWARD", TIME_TOGGLE = "TIME_TOGGLE", FULLSCREEN = "FULLSCREEN", TEXT_TOGGLE = "TEXT_TOGGLE", VOLUME = "VOLUME", SCRUBBER = "SCRUBBER", TRACK_SELECTOR = "TRACK_SELECTOR", PLAYBACK_RATE = "PLAYBACK_RATE", DETACH_TOGGLE = "DETACH_TOGGLE", ROUTER = "ROUTER", VU_METER = "VU_METER", VU_METER_TOGGLE = "VU_METER_TOGGLE" } export declare enum DefaultThemeFloatingControl { PLAYBACK_CONTROLS = "PLAYBACK_CONTROLS", TIME = "TIME", ACTION_ICONS = "ACTION_ICONS", VU_METER = "VU_METER" } export declare class DefaultThumbnail extends BaseThumbnail implements Thumbnail { constructor(args: ThumbnailArgs); } /** * Serializable snapshot of a default thumbnail with a URL and time range. */ export declare interface DefaultThumbnailState extends ThumbnailState { } /** * Delay effect */ export declare class DelayEffect implements AudioEffect { private _delayNode; private _def; readonly id: string; readonly effectType: string; attrs: Map; onReady$: ReplaySubject; constructor(def: AudioEffectState); private extractDelayTimeParamFromDef; getInputNodes(): AudioNode[]; getOutputNode(): AudioNode; getNodes(): AudioNode[]; getParams(): AudioEffectParamType[] | undefined; toState(): AudioEffectState; setParam(param: AudioEffectParam): void; private updateDefParam; destroy(): void; static createDef(id: string, delayTime: number): AudioEffectDef; } declare interface Destroyable { destroy(): void; } export declare type Dimension = { width: number; height: number; }; declare interface DomMediaElementConfig { crossOrigin?: string | undefined; loop?: boolean; preload?: 'none' | 'metadata' | 'auto'; } export declare interface DownsampleOptions { /** * Period for downsampling in milliseconds */ downsamplePeriod?: number; /** * Strategy for downsampling (supported values: none, drop, min, max, avg, max_abs, and min_abs) */ downsampleStrategy?: DownsampleStrategy; } export declare type DownsampleStrategy = 'none' | 'drop' | 'max' | 'min' | 'avg' | 'max_abs' | 'min_abs'; declare interface DragConditions { positionBeforeDrag: Position | undefined; playbackState: MediaElementPlaybackState | undefined; isPlayheadDrag: boolean; } export declare type ElementStyleByName = { Marker: MarkerStyle; MarkerTrack: Omit; Timeline: TimelineStyle; TimelineLane: TimelineLaneStyle; ScrubberLane: ScrubberLaneStyle; ThumbnailTrackLane: ThumbnailTrackLaneStyle; MarkerTrackLane: Omit; TextTrackLane: TextTrackLaneStyle; LabelLane: Omit; ScrollbarLane: Omit; ObservationTrackLane: Omit; MarkerTrackOnMarkerTrackLane: Omit; MarkerOnMarkerTrackLane: Omit; Scrollbar: ScrollbarStyle; MarkerOnChroming: Omit; MarkerOnMarkerList: Omit; }; export declare type ElementStyleName = keyof ElementStyleByName; declare type ExtractActions = { [K in keyof T]: T[K] extends (...args: any[]) => any ? ExtractMethodTypes : ExtractPropertyTypes; }; declare type ExtractActionType> = Extract; declare type ExtractMethodTypes = { requestData: ExtractParameterTypes; responseData: ExtractReturnType; }; declare type ExtractParameterTypes = T[K] extends (...args: infer A) => any ? A : never; declare type ExtractPropertyTypes = { requestData: UnwrapObservable; responseData: T[K]; }; declare type ExtractReturnType = T[K] extends (...args: any[]) => infer R ? R : never; export declare enum FallbackFormat { NONE = "NONE", VTT = "VTT", SRT = "SRT", TTML = "TTML" } export declare class FileFormat { readonly type: FileFormatType; readonly mimeTypes: readonly string[]; readonly extensions: readonly string[]; constructor(type: FileFormatType, mimeTypes: readonly string[], extensions: readonly string[]); static readonly HLS: FileFormat; static readonly DASH: FileFormat; static readonly MP4: FileFormat; static readonly MKV: FileFormat; static readonly WEBM: FileFormat; static readonly AVI: FileFormat; static readonly MOV: FileFormat; static readonly MP4_AUDIO: FileFormat; static readonly MP3: FileFormat; static readonly AAC: FileFormat; static readonly OGG: FileFormat; static readonly OPUS: FileFormat; static readonly WAV: FileFormat; static readonly FLAC: FileFormat; static readonly VTT: FileFormat; static readonly SRT: FileFormat; static readonly SSA: FileFormat; static readonly ASS: FileFormat; static readonly TTML: FileFormat; static readonly SCC: FileFormat; static readonly STL: FileFormat; /** All supported streaming formats (HLS, DASH). */ static readonly STREAMING: readonly FileFormat[]; /** All supported video file formats (MP4, MKV, WEBM, AVI, MOV). */ static readonly VIDEO: readonly FileFormat[]; /** All supported audio file formats (MP4_AUDIO, MP3, AAC, OGG, OPUS, WAV, FLAC). */ static readonly AUDIO: readonly FileFormat[]; /** All supported text/subtitle formats (VTT, SRT, SSA, ASS, TTML, SCC, STL). */ static readonly TEXT: readonly FileFormat[]; /** All supported input formats across all categories. */ static readonly ALL: readonly FileFormat[]; private static _typeIndex; private static _extensionIndex; private static _mimeIndex; static fromType(type: FileFormatType): FileFormat | undefined; static fromExtension(ext: string): FileFormat | undefined; static fromMimeType(mime: string): FileFormat | undefined; } export declare enum FileFormatType { HLS = "HLS", DASH = "DASH", MP4 = "MP4", MKV = "MKV", WEBM = "WEBM", AVI = "AVI", MOV = "MOV", MP4_AUDIO = "MP4_AUDIO", MP3 = "MP3", AAC = "AAC", OGG = "OGG", OPUS = "OPUS", WAV = "WAV", FLAC = "FLAC", VTT = "VTT", SRT = "SRT", SSA = "SSA", ASS = "ASS", TTML = "TTML", SCC = "SCC", STL = "STL" } declare type FlexAlign = 'ALIGN_AUTO' | 'ALIGN_BASELINE' | 'ALIGN_CENTER' | 'ALIGN_FLEX_END' | 'ALIGN_FLEX_START' | 'ALIGN_SPACE_AROUND' | 'ALIGN_SPACE_BETWEEN' | 'ALIGN_STRETCH'; declare interface FlexContentNode extends Destroyable { updateLayout(layout: Layout): void; } declare type FlexDirection = 'FLEX_DIRECTION_COLUMN' | 'FLEX_DIRECTION_COLUMN_REVERSE' | 'FLEX_DIRECTION_ROW' | 'FLEX_DIRECTION_ROW_REVERSE'; declare type FlexEdge = 'EDGE_LEFT' | 'EDGE_TOP' | 'EDGE_RIGHT' | 'EDGE_BOTTOM' | 'EDGE_START' | 'EDGE_END' | 'EDGE_HORIZONTAL' | 'EDGE_VERTICAL' | 'EDGE_ALL'; declare interface FlexGroupConfig extends FlexNodeConfig { flexWrap?: FlexWrap; flexDirection?: FlexDirection; justifyContent?: FlexJustifyContent; alignItems?: FlexAlign; alignContent?: FlexAlign; } declare interface FlexGroupContentNode extends FlexContentNode { addContentChild(flexContentNode: T, index: number): void; removeContentChild(flexContentNode: T): void; } declare type FlexJustifyContent = 'JUSTIFY_CENTER' | 'JUSTIFY_FLEX_END' | 'JUSTIFY_FLEX_START' | 'JUSTIFY_SPACE_AROUND' | 'JUSTIFY_SPACE_BETWEEN' | 'JUSTIFY_SPACE_EVENLY'; declare interface FlexNode extends Destroyable { setWidth(value: number | string | 'auto'): void; setHeight(value: number | string | 'auto'): void; setHeightAndMargins(value: number | string | 'auto', margins: FlexSpacing[], refreshLayout: boolean): void; setDimension(width: number | string | 'auto', height: number | string | 'auto'): void; setPositions(positions: FlexSpacing[]): void; setDimensionAndPositions(width: number | string | 'auto', height: number | string | 'auto', positions: FlexSpacing[]): void; setMargins(margins: FlexSpacing[]): void; getLayout(): Layout; refreshLayout(): void; applyLayout(): void; refreshLayoutFromRoot(): void; setParent(parent: FlexNode): void; get name(): string; get parent(): FlexNode | undefined; get yogaNode(): Node_2; get yogaConfig(): Config; get contentNode(): T; } declare interface FlexNodeConfig { name?: string | undefined; flexGrow?: number | undefined; flexShrink?: number | undefined; positionType?: PositionType | undefined; overflow?: FlexOverflow | undefined; margins?: { value: number; flexEdge: FlexEdge; }[] | undefined; paddings?: { value: number; flexEdge: FlexEdge; }[] | undefined; width?: number | string | 'auto' | undefined; height?: number | string | 'auto' | undefined; minWidth?: number | string | undefined; minHeight?: number | string | undefined; maxWidth?: number | string | undefined; maxHeight?: number | string | undefined; } declare type FlexOverflow = 'OVERFLOW_VISIBLE' | 'OVERFLOW_HIDDEN' | 'OVERFLOW_SCROLL'; declare interface FlexSpacing { value: number; flexEdge: FlexEdge; } declare type FlexWrap = 'WRAP_NO_WRAP' | 'WRAP_WRAP' | 'WRAP_WRAP_REVERSE'; export declare type FontWeight = number & {}; declare interface FrameRateModel extends Serializable { value: number; fraction: { numerator: number; denominator: number; }; frameDuration: number; /** * Indicates number of frames to drop on minute mark */ dropFrames?: number; } export declare enum FullscreenChroming { ENABLED = "ENABLED", DISABLED = "DISABLED" } /** * Gain effect */ export declare class GainEffect implements AudioEffect { private _gainNode; private _def; readonly id: string; readonly effectType: string; attrs: Map; onReady$: ReplaySubject; constructor(def: AudioEffectState); private extractGainParamFromDef; getInputNodes(): AudioNode[]; getOutputNode(): AudioNode; getNodes(): AudioNode[]; getParams(): AudioEffectParamType[] | undefined; toState(): AudioEffectState; setParam(param: AudioEffectParam): void; private updateDefParam; destroy(): void; static createDef(id: string, gain: number): AudioEffectDef; } declare const getMessageChannelProxyMap: () => { Ui: typeof UiProxy; MainMediaRepository: typeof MainMediaRepositoryProxy; TrackRepository: typeof TrackRepositoryProxy; SessionStore: typeof SessionStoreProxy; OmakaseTrackApi: typeof OmakaseTrackApiProxy; TrackUtils: typeof TrackUtilsProxy; MainMedia: typeof MainMediaProxy; Track: typeof TrackProxy; MarkerTrack: typeof MarkerTrackProxy; ThumbnailTrack: typeof ThumbnailTrackProxy; PlayerDetached: typeof PlayerDetachedProxy; PlayerAudioInternal: typeof PlayerAudioInternalProxy; PlayerTextInternal: typeof PlayerTextInternalProxy; ChromingDetached: typeof ChromingDetachedProxy; ChromingMarkerBarHandler: typeof ChromingMarkerBarHandlerProxy; TextTrackHandler: typeof TextTrackHandlerProxy; AudioHandler: typeof AudioHandlerProxy; AudioEffects: typeof AudioEffectsProxy; AudioRouter: typeof AudioRouterProxy; AlertsManager: typeof AlertsManagerProxy; }; declare function getSlotTemplateHTML(_attrs: Record): string; declare function getTooltipContentHTML(): string; declare interface HasRectMeasurement { getRect(): RectMeasurement; } /** * Help menu group represents a group of help menu items in the player chroming help menu. */ export declare interface HelpMenuGroup { /** * Name of the help menu group. Will be displayed as the header of the group in the help menu. */ name: string; /** * Array of help menu items in the help menu group. Each item represents a feature or functionality of the player and should have a name and description that will be displayed in the help menu. */ items: HelpMenuItem[]; } export declare enum HelpMenuGroupInsertPosition { APPEND = "APPEND", PREPEND = "PREPEND" } /** * Help menu item represents a feature or functionality of the player that will be displayed in the help menu. */ export declare interface HelpMenuItem { /** * Text to display on the right side of the help menu item. (i.e. functionality name)) */ name: string; /** * Text to display on the left side of the help menu item. (i.e. Keyboard shortcut) */ description: string; } declare class HlsAudio extends Audio_2 { protected _audioType: AudioType; protected _mediaPlaylist: HlsMediaPlaylistArgs; constructor(args: HlsAudioArgs); protected getState(): HlsAudioState; get mediaPlaylist(): HlsAudioArgs['mediaPlaylist']; } declare interface HlsAudioArgs extends Omit { mediaPlaylist: HlsMediaPlaylistArgs; } declare interface HlsAudioState extends AudioState { mediaPlaylist: HlsMediaPlaylistArgs; } declare type HlsLicenseXhrSetupFn = (xhr: XMLHttpRequest, url: string, keyContext: MediaKeySessionContext, licenseChallenge: Uint8Array) => void | Uint8Array | Promise; declare class HlsMainMedia extends BaseMainMedia { protected _mainMediaType: MainMediaType; protected readonly _destroyBreaker: ObserverBreaker; constructor(args: HlsMainMediaArgs); protected getState(): HlsMainMediaState; } declare interface HlsMainMediaArgs extends BaseMainMediaArgs { } declare interface HlsMainMediaState extends MainMediaState { } declare type HlsMediaPlaylistArgs = { type: MediaPlaylist['type']; id: MediaPlaylist['id']; url: MediaPlaylist['url']; audioCodec: MediaPlaylist['audioCodec']; channels: MediaPlaylist['channels']; name: MediaPlaylist['name']; default: MediaPlaylist['default']; autoselect: MediaPlaylist['autoselect']; lang: MediaPlaylist['lang']; forced: MediaPlaylist['forced']; instreamId: MediaPlaylist['instreamId']; characteristics: MediaPlaylist['characteristics']; }; declare interface HlsPlayerControllerConfig extends PlayerControllerConfig { /** * HLS config */ hlsConfig: Partial; /** * Function that creates hls.js pre-processor function {@link HlsConfig.licenseXhrSetup} for modifying license requests (https://github.com/video-dev/hls.js/blob/master/docs/API.md#licensexhrsetup) * If set, created function takes precedence over {@link licenseXhrSetup} * * @param sourceUrl * @param options */ loadVideoLicenseXhrSetup?: (sourceUrl: string, loadOptions?: MainMediaLoadOptions | undefined) => HlsLicenseXhrSetupFn; } declare interface HlsPlayerPlaybackEngine extends PlayerPlaybackEngine { get hls(): default_2 | undefined; } declare class HlsTextTrack extends BaseTextTrack { protected _textTrackType: TextTrackType; protected _mediaPlaylist: HlsMediaPlaylistArgs; constructor(args: HlsTextTrackArgs); get mediaPlaylist(): HlsMediaPlaylistArgs; static resolveKind(playlistType: HlsMediaPlaylistArgs['type']): TextTrackKind_2; protected getState(): HlsTextTrackState; } declare interface HlsTextTrackArgs extends Omit { mediaPlaylist: HlsMediaPlaylistArgs; } declare interface HlsTextTrackState extends TextTrackState { mediaPlaylist: HlsMediaPlaylistArgs; } export declare type Horizontals = { x: number; width: number; }; export declare interface IdStyleRule { id: string; style: Partial; } /** * Timeline image button. Can be added to timeline lane. {@link TimelineLaneApi} */ export declare class ImageButton extends BaseTimelineNode { protected _konvaImage?: default_3.Image; protected _loadImageQueue: Subject; protected _currentImageConfig?: ImageButtonImageConfig | undefined; constructor(config: ConfigWithOptionalStyle); private loadImage; /** * Sets new image to display * @param config */ setImage(config: ImageButtonImageConfig): void; /** * Gets current image config * @returns ImageButtonImageConfig */ getImage(): { /** * Image source */ src: string; /** * Image width */ width?: number; /** * Image height */ height?: number; } | undefined; } export declare interface ImageButtonConfig extends TimelineNodeConfig, ImageButtonImageConfig { /** * Image source */ src: string; /** * Image width */ width?: number; /** * Image height */ height?: number; } export declare type ImageButtonImageConfig = { /** * Image source */ src: string; /** * Image width */ width?: number; /** * Image height */ height?: number; }; export declare interface ImageButtonStyle extends TimelineNodeStyle { } export declare type InferUpdateAttrs = T extends MutableTimedItem ? U : TimedItemUpdateableAttrs; export declare interface InternalAudioRouterApi extends AudioRouterApi, Destroyable { onEvent$: Observable; load(): Observable; connectSource(audioNode: AudioNode): void; disconnectSource(): void; destroy(): void; } export declare interface InterpolationOptions { /** * Period for interpolation in milliseconds */ interpolationPeriod?: number; /** * Strategy for interpolation */ interpolationStrategy?: InterpolationStrategy; /** * Optional time range (in seconds) to restrict which source items are included. * Items whose start time falls outside [start, end] are ignored. */ timeRange?: { start?: number; end?: number; }; } export declare type InterpolationStrategy = 'max' | 'min' | 'avg' | 'max_abs' | 'min_abs'; declare interface KonvaComponent, S, T extends default_3.Node> extends Destroyable { get konvaNode(): T; get config(): C; get style(): S; set style(value: Partial); } declare interface KonvaComponent2 extends Destroyable { konvaNode: K; } /** * Used as content node in flex layouting */ declare class KonvaComponentFlexContentNode2 & OnMeasurementsChange> extends KonvaFlexContentNode { protected _component: T; constructor(component: T); updateLayout(layout: Layout): void; destroy(): void; get component(): T; } declare class KonvaFlexContentNode implements FlexContentNode { private _konvaNode; constructor(konvaNode: default_3.Group | default_3.Shape); updateLayout(layout: Layout): void; destroy(): void; get konvaNode(): default_3.Group | default_3.Shape; } declare class KonvaFlexGroup extends BaseFlexGroup { constructor(config: FlexGroupConfig, contentNode: KonvaFlexGroupContentNode); static of(config: KonvaFlexGroupConfig): KonvaFlexGroup; } declare interface KonvaFlexGroupConfig extends FlexGroupConfig, KonvaFlexGroupContentNodeConfig { } declare class KonvaFlexGroupContentNode implements FlexGroupContentNode { private _config; private _konvaNode; private _konvaBgNode?; constructor(config: KonvaFlexGroupContentNodeConfig); updateLayout(layout: Layout): void; addContentChild(flexContentNode: KonvaFlexContentNode, index: number): void; removeContentChild(flexContentNode: KonvaFlexContentNode): void; destroy(): void; get konvaNode(): default_3.Group; get konvaBgNode(): default_3.Rect | undefined; } declare interface KonvaFlexGroupContentNodeConfig { konvaNode: default_3.Group; konvaBgNode?: default_3.Rect; clip?: boolean; } declare class KonvaFlexItem extends BaseFlexNode { constructor(config: FlexNodeConfig, contentNode: T); static of(config: FlexNodeConfig, konvaNode: default_3.Group | default_3.Shape): KonvaFlexItem; } export declare const LABEL_LANE_STYLE_DEFAULT: LabelLaneStyle; export declare class LabelLane extends BaseTimelineLane { protected _contentFlexGroup?: KonvaFlexGroup; protected _textLabel?: TextLabel; constructor(configAndStyle: ConfigAndStyle & Pick); prepareForTimeline(timeline: TimelineImpl, player: PlayerApi, ompProvider: OmpProvider): void; protected createStyledElement(): StyledElementWithId; protected settleLayout(): void; destroy(): void; clearContent(): void; } export declare interface LabelLaneConfig extends TimelineLaneConfig { text: string; } export declare interface LabelLaneStyle extends TimelineLaneStyle { textFill: string; textFontSize: number; textFontStyle?: string; textAreaStretch?: boolean; } declare interface Layout { readonly left: number; readonly right: number; readonly top: number; readonly bottom: number; readonly width: number; readonly height: number; } export declare class LineChartLane extends BaseObservationTrackLane { protected _downsamplers: Map; private _typedTrackViews; constructor(configAndStyle?: ConfigAndStyle); addTrack(track: ObservationTrack, config?: LineChartLaneTrackConfig): void; addTrack(id: ObservationTrack['id'], config?: LineChartLaneTrackConfig): void; protected renderTrack(track: ObservationTrack, config: LineChartLaneTrackConfig | undefined): ObservationTrackView; protected onTrackRemoved(trackId: ObservationTrack['id']): void; protected hasVisualElements(): boolean; protected createLoadingGroupContent(width: number, height: number): default_3.Animation; destroy(): void; } export declare interface LineChartLaneConfig extends ObservationTrackLaneConfig { } export declare interface LineChartLaneLaneStyle extends ObservationTrackLaneStyle { } /** * Per-track configuration for {@link LineChartLane}. * Each track added via `addTrack()` can carry its own scale, baseline, interpolation * settings, and visual style that override lane-level defaults. */ export declare interface LineChartLaneTrackConfig extends ObservationTrackLaneTrackConfig { /** Value domain for this track. Auto-derived from data when omitted. */ scale?: LineChartLaneTrackScale; /** Value that maps to the line baseline (zero-crossing). Defaults to 0. */ scaleBaseline?: number; /** Aggregation strategy used when multiple samples fall in the same interpolation bucket. */ interpolationStrategy?: InterpolationStrategy; /** Width in pixels of a single interpolation bucket. Smaller = more detail */ interpolationWidth?: number; style?: LineChartLaneTrackStyle; } /** * Visual style for a single measurement series within a line-chart track. * Matched to data by `measurement`; unmatched measurements use defaults. */ export declare interface LineChartLaneTrackMeasurementStyle { /** Measurement this style applies to (matches {@link ObservationItem.measurement}). When omitted, acts as a wildcard fallback for any measurement that has no specific entry. */ measurement?: ObservationItem['measurement']; /** Radius of each data-point circle in pixels. */ pointRadius: Size; /** Fill color of data-point circles. */ pointFill: Color; /** Opacity of data-point circles (0–1). */ pointOpacity: Size; /** Stroke color of data-point circles. */ pointStroke: Color; /** Stroke width of data-point circles in pixels. */ pointStrokeWidth: Size; /** Color of the connecting polyline. */ lineStroke: Color; /** Width of the connecting polyline in pixels. */ lineStrokeWidth: Size; /** Dash pattern for the connecting polyline (Konva format). */ lineDash: Size[]; /** Opacity of the connecting polyline (0–1). */ lineOpacity: Size; /** Solid fill color for the area below the line. Mutually exclusive with `fillBelowLinearGradientColorStops`. */ fillBelow: Color; /** Gradient color stops (Konva format, top→bottom) for the area below the line. */ fillBelowLinearGradientColorStops: (number | string)[]; /** Solid fill color for the area above the line. Mutually exclusive with `fillAboveLinearGradientColorStops`. */ fillAbove: Color; /** Gradient color stops (Konva format, bottom→top) for the area above the line. */ fillAboveLinearGradientColorStops: (number | string)[]; } declare type LineChartLaneTrackScale = { min: number; max: number; }; export declare interface LineChartLaneTrackStyle { paddingTop?: number; paddingBottom?: number; baselineFill?: Color; baselineThickness?: Size; baselineDash?: Size[]; measurements?: Partial[]; } export declare type LineChartViewComponentEvent = { [K in LineChartViewComponentEventType]: { type: K; data: LineChartViewComponentEventTypeDataMap[K]; }; }[keyof LineChartViewComponentEventTypeDataMap]; export declare interface LineChartViewComponentEventData { item: ObservationState; pointerPosition: Position; } export declare enum LineChartViewComponentEventType { CLICK = "CLICK", MOUSE_MOVE = "MOUSE_MOVE", MOUSE_ENTER = "MOUSE_ENTER", MOUSE_LEAVE = "MOUSE_LEAVE" } export declare type LineChartViewComponentEventTypeDataMap = { [LineChartViewComponentEventType.CLICK]: LineChartViewComponentEventData; [LineChartViewComponentEventType.MOUSE_MOVE]: LineChartViewComponentEventData; [LineChartViewComponentEventType.MOUSE_ENTER]: LineChartViewComponentEventData; [LineChartViewComponentEventType.MOUSE_LEAVE]: LineChartViewComponentEventData; }; export declare type LoadMainMediaArgsType = { url: string; loadOptions?: MainMediaLoadOptions | undefined; mainMediaEssentialArgsHook: MainMediaEssentialArgsHookType; tracksCreatedHook: (tracks: Track[]) => Observable; /** * If provided it will be used to identify possible known properties which we can take automatically instead of resolving them (ie. initSegmentTimeOffset etc.) */ providedMainMedia?: MainMediaState; }; /** * Primary media entity representing the loaded video or audio source. * * A `MainMedia` holds the media source, its associated tracks, load lifecycle * state, and runtime attributes (DRM, duration, frame rate, timecode model). * Extends {@link MediaEntity} with `mediaType` always set to {@link MediaEntityType.MAIN_MEDIA}. */ export declare interface MainMedia extends MediaEntity { /** Observable stream of lifecycle events (loading, loaded, error, updated). */ onEvent$: Observable; /** The format of the media source (HLS, MP4, or AUDIO_FILE). */ mainMediaType: MainMediaType; /** Serializable state snapshot. */ state: MainMediaState; /** The resolved media source. */ source: Source; /** The resolved file format type of the source. */ sourceFileFormatType: FileFormatType | undefined; /** Tracks associated with this media (video, audio, text, markers, etc.). */ tracks: Track[]; /** Current load lifecycle stage (idle → loading → success / failure). */ loadStage: OpStage; /** Transition the load stage to "loading" and emit a {@link MainMediaEventType.MAIN_MEDIA_LOADING} event. */ loadStart(): void; /** Transition the load stage to "success" and emit a {@link MainMediaEventType.MAIN_MEDIA_LOADED} event. */ loadSuccess(): void; /** Transition the load stage to "failure" and emit a {@link MainMediaEventType.MAIN_MEDIA_LOAD_ERROR} event. */ loadError(error: string | undefined): void; /** Register a single track with this media. */ addTrack(track: Track): void; /** Register multiple tracks with this media. */ addTracks(tracks: Track[]): void; /** The duration originally reported at load time, before any runtime updates. */ get initialDuration(): number | undefined; /** Current media duration in seconds. May be updated at runtime. */ get duration(): number | undefined; /** Frame rate model derived from load options or the media source. */ get frameRateModel(): FrameRateModel | undefined; /** FFOM (First Frame of Media) timecode model derived from load options. */ get ffomTimecodeModel(): TimecodeModel | undefined; /** Time offset of the initialization segment, if applicable. */ get initSegmentTimeOffset(): number | undefined; /** Whether the media source is DRM-protected. */ get hasDrm(): boolean | undefined; /** Indicates whether media has video tracks. */ get hasVideo(): boolean | undefined; /** Indicates whether media has audio tracks. */ get hasAudio(): boolean | undefined; /** * Partially update mutable media attributes and emit a * {@link MainMediaEventType.MAIN_MEDIA_UPDATED} event. */ updateAttrs(attrs: MainMediaUpdateableAttrs): void; } /** * Payload carried by the {@link MainMediaEventType.MAIN_MEDIA_LOAD_ERROR} event. */ export declare interface MainMediaErrorEventData extends MainMediaEventData { error: string | undefined; } export declare type MainMediaEssentialArgsHookType = (args: MainMediaUpdateableAttrs) => Observable; /** * Discriminated union of all main media lifecycle events. * Subscribe via {@link MainMedia.onEvent$}. */ export declare type MainMediaEvent = { [K in MainMediaEventType]: { type: K; data: MainMediaEventTypeDataMap[K]; }; }[keyof MainMediaEventTypeDataMap]; /** * Payload carried by {@link MainMediaEvent} for non-error lifecycle events. */ export declare interface MainMediaEventData extends Serializable { mainMediaState: MainMediaState; } /** * Lifecycle event types emitted by a {@link MainMedia} instance. */ export declare enum MainMediaEventType { MAIN_MEDIA_LOADING = "MAIN_MEDIA_LOADING", MAIN_MEDIA_LOADED = "MAIN_MEDIA_LOADED", MAIN_MEDIA_LOAD_ERROR = "MAIN_MEDIA_LOAD_ERROR", MAIN_MEDIA_UPDATED = "MAIN_MEDIA_UPDATED" } /** * Maps each {@link MainMediaEventType} to its corresponding event data type. */ export declare type MainMediaEventTypeDataMap = { [MainMediaEventType.MAIN_MEDIA_LOADING]: MainMediaEventData; [MainMediaEventType.MAIN_MEDIA_LOADED]: MainMediaEventData; [MainMediaEventType.MAIN_MEDIA_LOAD_ERROR]: MainMediaErrorEventData; [MainMediaEventType.MAIN_MEDIA_UPDATED]: MainMediaEventData; }; /** * Configuration provided when loading a main media source via * {@link OmakasePlayerApi.loadMainMedia} or {@link PlayerApi.loadMainMedia}. */ export declare interface MainMediaLoadOptions extends Serializable { /** * Media frame rate. Can be a numeric value or a fraction string in the form `"numerator/denominator"`. */ frameRate?: number | string; /** * Whether the frame rate uses drop-frame counting. */ dropFrame?: boolean; /** * Explicit media duration in seconds. Overrides the duration reported by the source. */ duration?: number; /** * FFOM (First Frame of Media) timecode string used to offset time display. */ ffom?: string; /** * Arbitrary key-value data provided on media load. Can be used to store values such as DRM tokens. */ data?: Record; /** * Explicitly set the media type instead of auto-detecting from the source URL. */ mainMediaType?: MainMediaType; /** * Explicitly set the file format instead of auto-detecting from the source URL. * Takes precedence over {@link mainMediaType} for resolving both format and media type. */ fileFormatType?: FileFormatType; /** * URL for a poster image displayed before the video starts playing. */ poster?: string; } declare interface MainMediaMessageChannel { loadStart(): Observable; loadSuccess(): Observable; loadError(error: string | undefined): Observable; addTrack(trackState: TrackState): Observable; addTracks(trackStates: TrackState[]): Observable; updateAttributes(attrs: MainMediaUpdateableAttrs): Observable; state(): Observable; } declare class MainMediaProxy extends BaseMessageChannelProxy implements MainMediaMessageChannel { constructor(messageChannel: MessageChannel_2); loadStart(): Observable; loadSuccess(): Observable; loadError(error: string | undefined): Observable; addTrack(trackState: TrackState): Observable; addTracks(trackStates: TrackState[]): Observable; updateAttributes(attrs: MainMediaUpdateableAttrs): Observable; state(): Observable; } export declare class MainMediaRepository extends BaseRepository implements Destroyable { private readonly _trackRepository; private readonly _onEvent$; private readonly _onMainMediaEvent$; constructor(trackRepository: TrackRepository); get onEvent$(): Observable; get onMainMediaEvent$(): Observable; onMainMediaDeleted$(mainMediaId: MainMedia['id']): Observable>; add(mainMedia: MainMedia): MainMedia; _add(mediaEntity: MainMedia): MainMedia; getFirstOrFail(): MainMedia; addAll(entities: MainMedia[]): MainMedia[]; delete(id: MainMedia['id']): boolean; deleteAll(ids: MainMedia['id'][]): boolean; destroy(): void; } export declare interface MainMediaRepositoryEvent extends Serializable { type: T; data: MainMediaRepositoryEventTypeDataMap[T]; } export declare interface MainMediaRepositoryEventData extends Serializable { mainMediaState: MainMediaState; } export declare enum MainMediaRepositoryEventType { MAIN_MEDIA_ADDED = "MAIN_MEDIA_ADDED", MAIN_MEDIA_DELETED = "MAIN_MEDIA_DELETED" } export declare type MainMediaRepositoryEventTypeDataMap = { [MainMediaRepositoryEventType.MAIN_MEDIA_ADDED]: MainMediaRepositoryEventData; [MainMediaRepositoryEventType.MAIN_MEDIA_DELETED]: MainMediaRepositoryEventData; }; declare interface MainMediaRepositoryMessageChannel { /** * {@link MainMediaRepository.onEvent$} */ onEvent$: Observable; /** * {@link MainMediaRepository.onMainMediaEvent$} */ onMainMediaEvent$: Observable; /** * {@link MainMediaRepository.get} */ get(id: MainMediaState['id']): Observable; /** * {@link MainMediaRepository.getOrFail} */ getOrFail(id: MainMediaState['id']): Observable; getFirstOrFail(): Observable; /** * {@link MainMediaRepository.findFirst} */ findFirst(): Observable; /** * {@link MainMediaRepository.add} */ add(mainMedia: MainMediaState): Observable; /** * {@link MainMediaRepository.delete} */ delete(id: MainMediaState['id']): Observable; /** * {@link MainMediaRepository.clear} */ clear(): Observable; } declare class MainMediaRepositoryProxy extends BaseMessageChannelProxy implements MainMediaRepositoryMessageChannel { constructor(remoteNode: RemoteNode); get onEvent$(): Observable; get onMainMediaEvent$(): Observable; get(id: MainMediaState['id']): Observable; getOrFail(id: MainMediaState['id']): Observable; getFirstOrFail(): Observable; findFirst(): Observable; add(mainMedia: MainMediaState): Observable; delete(id: MainMediaState['id']): Observable; clear(): Observable; } /** * Serializable snapshot of a {@link MainMedia} instance. * * Extends {@link MediaEntityState} with media-specific fields such as source, * tracks, DRM flag, duration, frame rate, FFOM timecode, and init segment offset. * Used for cross-boundary transfer (e.g. attached ↔ detached mode) and session persistence. */ export declare interface MainMediaState extends MediaEntityState { mainMediaType: MainMedia['mainMediaType']; source: SourceState; sourceFileFormatType?: FileFormatType | undefined; loadOptions: MainMediaLoadOptions | undefined; loadStage: OpStageState; tracks: TrackState[]; duration?: number | undefined; initialDuration?: number | undefined; frameRateModel?: FrameRateModel | undefined; ffomTimecodeModel?: TimecodeModel | undefined; initSegmentTimeOffset?: number | undefined; hasDrm?: boolean | undefined; hasVideo?: boolean | undefined; hasAudio?: boolean | undefined; } /** * Supported main media source types. */ export declare enum MainMediaType { HLS = "HLS", MP4 = "MP4", AUDIO_FILE = "AUDIO_FILE" } /** * Subset of {@link MainMediaState} fields that can be updated at runtime * via {@link MainMedia.updateAttrs}. */ export declare type MainMediaUpdateableAttrs = Pick; /** * Functions without internal controller (only PlayerController) */ export declare class MainTextTrackHandler extends BasePlayerTextTrackHandler { constructor(trackState: TextTrackState, playerController: PlayerController); get handlerType(): PlayerTextHandlerType; switch(active: boolean): Observable; show(): Observable; hide(): Observable; } declare class ManagedBroadcastChannel implements Destroyable { readonly onMessage$: Subject; protected _channelId: string; protected _broadcastChannel: BroadcastChannel; protected _messageListener: (messageEvent: MessageEvent) => void; protected _messageerrorListener: (error: any) => void; protected _destroyBreaker: ObserverBreaker; constructor(channelId: string); postMessage(message: Message): void; get channelId(): string; get broadcastChannel(): BroadcastChannel; destroy(): void; } export declare interface Marker extends TimedItem { /** Whether this is a moment or period marker. */ markerType: MarkerType; label?: string | undefined; } export declare const MARKER_ON_MARKER_TRACK_LANE_STYLE_DEFAULT: MarkerOnMarkerTrackLaneStyle; export declare const MARKER_STYLE_DEFAULT: MarkerStyle; export declare const MARKER_TRACK_LANE_STYLE_DEFAULT: MarkerTrackLaneStyle; export declare const MARKER_TRACK_STYLE_DEFAULT: MarkerTrackStyle; /** * Construction arguments shared by all marker types. */ export declare interface MarkerArgs extends TimedItemArgs { label?: string | undefined; } /** * Payload carried by marker-specific events (added, deleted, updating, updated). */ export declare interface MarkerEventData { trackId: Track['id']; markerState: MarkerState; } export declare class MarkerList implements Destroyable, MarkerListApi { protected _onEvent$: Subject; private _markerListDomController; private _markerListComponent; private _config; private _markerTracks; private _thumbnailTrack?; private _player; private readonly _destroyBreaker; private readonly _thumbnailBreaker; private _trackRemove$; private _markerRemove$; constructor(config: MarkerListConfig, player: OmakasePlayerApi); get onEvent$(): Observable; get markers(): MarkerState[]; get config(): MarkerListConfig; get thumbnailTrack(): ThumbnailTrack | undefined; set thumbnailTrack(thumbnailTrack: ThumbnailTrack | undefined); addTrack(trackOrId: MarkerTrack | MarkerTrack['id']): void; removeTrack(trackId: MarkerTrack['id']): void; getTracks(): MarkerTrack[]; reorderMarker(id: string, index: number): void; destroy(): void; protected removeMarkerFromDom(markerId: string): void; private resolveTrackSource; private wireMarkerTrack; private addMarkerToComponent; private resolveThumbnail; private resolveThumbnails; } export declare interface MarkerListActionEventData extends Serializable { action: string; item: MarkerState; } export declare interface MarkerListApi extends Destroyable { onEvent$: Observable; /** * Links another Marker Track to the Marker List * @param track Marker Track or Marker Track id */ addTrack(track: MarkerTrack | MarkerTrack['id']): void; /** * Unlinks a Marker Track from the Marker List * @param trackId Marker Track id */ removeTrack(trackId: MarkerTrack['id']): void; /** * @returns all linked Marker Tracks */ getTracks(): MarkerTrack[]; } export declare interface MarkerListConfig { markerListHTMLElementId: string; templateHTMLElementId?: string; headerHTMLElementId?: string; emptyHTMLElementId?: string; loadingHTMLElementId?: string; styleUrl?: string | string[]; timeEditable?: boolean; labelEditable?: boolean; labelOptions?: string[]; labelValidationFn?: (name: string | undefined) => boolean; markerTrack?: MarkerListSource | MarkerListSource[] | undefined; thumbnailTrack?: MarkerListSource | undefined; mode?: MarkerListMode; } export declare interface MarkerListDeleteEventData extends Serializable { item: MarkerState; source?: MarkerTrack | undefined; } export declare type MarkerListEvent = { [K in MarkerListEventType]: { type: K; data: MarkerListEventTypeDataMap[K]; }; }[keyof MarkerListEventTypeDataMap]; export declare enum MarkerListEventType { MARKER_LIST_ITEM_ACTION = "MARKER_LIST_ITEM_ACTION", MARKER_LIST_ITEM_CLICK = "MARKER_LIST_ITEM_CLICK", MARKER_LIST_ITEM_MOUSE_ENTER = "MARKER_LIST_ITEM_MOUSE_ENTER", MARKER_LIST_ITEM_MOUSE_LEAVE = "MARKER_LIST_ITEM_MOUSE_LEAVE", MARKER_LIST_ITEM_DELETE = "MARKER_LIST_ITEM_DELETE", MARKER_LIST_TRACKS_LOADED = "MARKER_LIST_TRACKS_LOADED" } export declare type MarkerListEventTypeDataMap = { [MarkerListEventType.MARKER_LIST_ITEM_ACTION]: MarkerListActionEventData; [MarkerListEventType.MARKER_LIST_ITEM_CLICK]: MarkerListMouseEventData; [MarkerListEventType.MARKER_LIST_ITEM_MOUSE_ENTER]: MarkerListMouseEventData; [MarkerListEventType.MARKER_LIST_ITEM_MOUSE_LEAVE]: MarkerListMouseEventData; [MarkerListEventType.MARKER_LIST_ITEM_DELETE]: MarkerListDeleteEventData; [MarkerListEventType.MARKER_LIST_TRACKS_LOADED]: MarkerListTracksLoadedEventData; }; export declare class MarkerListItem { private readonly _markerId; private _label; private _thumbnailUrl?; private _start?; private _end?; private _data?; private _track; private _markerType; private _styledElement; private _ui; constructor(marker: MarkerState, track: MarkerTrack, ui: UiApi); get markerId(): string; get track(): MarkerTrack; get label(): string | undefined; set label(label: string | undefined); get data(): Record | undefined; set data(data: Record | undefined); get thumbnailUrl(): string | undefined; set thumbnailUrl(thumbnail: string | undefined); get start(): string | undefined; get numStart(): number | undefined; set start(start: string | undefined); get end(): string | undefined; get numEnd(): number | undefined; set end(end: number | undefined); get duration(): number | undefined; get markerType(): MarkerType; get styledElement(): StyledElement; get style(): MarkerOnMarkerListStyle; get state(): MarkerState; } declare enum MarkerListMode { TIMELINE = "TIMELINE", CUTLIST = "CUTLIST" } export declare interface MarkerListMouseEventData extends Serializable { item: MarkerState; trackId: MarkerTrack['id']; } export declare interface MarkerListSource { url?: string; source?: Source; loadOptions?: TrackLoadOptions | undefined; } export declare interface MarkerListTracksLoadedEventData extends Serializable { tracks: MarkerTrack[]; } declare interface MarkerMouseEvent { markerId: MarkerState['id']; } export declare interface MarkerOnChromingStyle extends MarkerTrackStyle { active: boolean; } export declare interface MarkerOnMarkerListStyle extends MarkerStyle { highlightMarker: boolean; canDeleteMarker: boolean; } export declare interface MarkerOnMarkerTrackLaneStyle extends MarkerTrackStyle { markerSymbol: 'none' | 'circle' | 'square' | 'triangle'; markerRenderType: 'default' | 'spanning-over-all-lanes'; markerSymbolSize: Size; markerLineStrokeWidth: Size; markerLineOpacity: Size; markerAreaOpacity: Size; markerHandleAreaOpacity: Size; markerHandleMouseOverScale: Size; markerHandleMouseOverCursor: Cursor | undefined; markerHandleMouseLeaveCursor: Cursor | undefined; } /** * Serializable snapshot of a {@link Marker}. */ export declare interface MarkerState extends TimedItemState { markerType: MarkerType; label?: string | undefined; } export declare interface MarkerStyle { markerColor: Color; } export declare class MarkerTrack extends BaseTimedItemsTrack { protected _trackType: TrackType; constructor(args?: MarkerTrackArgs); protected getState(): MarkerTrackState; updateAttrs(attrs: MarkerTrackUpdateableAttrs): void; addTimedItems(timedItems: BaseMarker | BaseMarker[]): void; addTimedItems(timedItems: MarkerArgs | MarkerArgs[]): void; } /** * Construction arguments for marker track instances. */ export declare interface MarkerTrackArgs extends TimedItemsTrackArgs { } /** * Union of base {@link TrackEventType} and marker-specific {@link MarkerTrackEventType}. */ export declare type MarkerTrackCommonEventTypes = TrackEventType | MarkerTrackEventType; /** * Discriminated union of all events emitted by a marker track. */ export declare type MarkerTrackEvent = OmpEventGroup; /** * Event types specific to marker operations within a {@link MarkerTrack}. */ export declare enum MarkerTrackEventType { MARKER_SPECIFIC_EVENT_PLACEHOLDER = "MARKER_SPECIFIC_EVENT_PLACEHOLDER" } /** * Maps each marker track event type to its corresponding data payload. */ export declare type MarkerTrackEventTypeDataMap = TrackEventTypeDataMap & { [MarkerTrackEventType.MARKER_SPECIFIC_EVENT_PLACEHOLDER]: MarkerEventData; }; export declare class MarkerTrackLane extends BaseMultiTrackLane { private readonly _onEvent$; protected readonly _visibleTimedItems: Set; protected readonly _markerViewComponents: Map; protected readonly _markerToTrack: Map; private _itemInForeground; protected _timecodedSpanningGroup?: default_3.Group; protected _markerViewComponentsGroup?: default_3.Group; protected _eventCatcher?: default_3.Rect; private _timecodedClick$; private _timecodedMouseMove$; protected _hoveredTimedItems: Set; protected _handleTimelineZoom$: Subject; protected _handleTimelineScroll$: Subject; constructor(configAndStyle?: ConfigAndStyle); get onEvent$(): Observable; protected createStyledElement(): StyledElementWithId; addTrack(track: MarkerTrack, config?: MarkerTrackLaneTrackConfig): void; addTrack(id: MarkerTrack['id'], config?: MarkerTrackLaneTrackConfig): void; protected render(): void; protected updatePositions(): void; protected onTrackRemoved(trackId: MarkerTrack['id']): void; protected handleTimelineZoom(): void; protected handleTimelineScroll(): void; clearContent(): void; setMarkerViewStyle(style: Partial, ids?: TimedItem['id'][]): void; moveToForeground(id?: Marker['id']): void; private createMarkerViewComponents; static formatTrackOnLaneStyleId(markerTrackLane: MarkerTrackLane, trackId: MarkerTrack['id']): string; private updateVisibleTimedItems; private refreshMarkerViewComponentsPosition; prepareForTimeline(timeline: TimelineImpl, player: PlayerApi, ompProvider: OmpProvider): void; private handleTimecodeMouseMove; private setHoveredItems; private appendHoveredItems; private handleTimecodeClick; private handleTimedItemsUpdated; private handleTimedItemsDeleted; protected hasVisualElements(): boolean; protected settleLayout(): void; destroy(): void; } export declare interface MarkerTrackLaneConfig extends MultiTrackLaneConfig { } export declare type MarkerTrackLaneEvent = { [K in MarkerTrackLaneEventType]: { type: K; data: MarkerTrackLaneEventTypeDataMap[K]; }; }[keyof MarkerTrackLaneEventTypeDataMap]; export declare interface MarkerTrackLaneEventData { item: MarkerState; } export declare enum MarkerTrackLaneEventType { TIMELINE_MARKER_TRACK_LANE_ITEM_CLICK = "TIMELINE_MARKER_TRACK_LANE_ITEM_CLICK", TIMELINE_MARKER_TRACK_LANE_ITEM_MOUSE_ENTER = "TIMELINE_MARKER_TRACK_LANE_ITEM_MOUSE_ENTER", TIMELINE_MARKER_TRACK_LANE_ITEM_MOUSE_LEAVE = "TIMELINE_MARKER_TRACK_LANE_ITEM_MOUSE_LEAVE", TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_CLICK = "TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_CLICK", TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_MOUSE_ENTER = "TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_MOUSE_ENTER", TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_MOUSE_LEAVE = "TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_MOUSE_LEAVE", TIMELINE_MARKER_TRACK_LANE_ITEM_IN_FOREGROUND_CHANGE = "TIMELINE_MARKER_TRACK_LANE_ITEM_IN_FOREGROUND_CHANGE" } export declare type MarkerTrackLaneEventTypeDataMap = { [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_CLICK]: MarkerTrackLaneMarkerEventData; [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_MOUSE_ENTER]: MarkerTrackLaneMarkerEventData; [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_MOUSE_LEAVE]: MarkerTrackLaneMarkerEventData; [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_CLICK]: MarkerTrackLaneEventData; [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_MOUSE_ENTER]: MarkerTrackLaneEventData; [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_HANDLE_MOUSE_LEAVE]: MarkerTrackLaneEventData; [MarkerTrackLaneEventType.TIMELINE_MARKER_TRACK_LANE_ITEM_IN_FOREGROUND_CHANGE]: { itemInForeground: MarkerState | undefined; }; }; export declare interface MarkerTrackLaneMarkerEventData { item: MarkerState; itemInForeground: MarkerState | undefined; } export declare interface MarkerTrackLaneStyle extends TimelineLaneStyle, MarkerOnMarkerTrackLaneStyle { } export declare interface MarkerTrackLaneTrackConfig extends MultiTrackLaneTrackConfig { style?: Partial | undefined; } /** Load options for marker tracks. */ export declare interface MarkerTrackLoadOptions extends BaseTrackLoadOptions { args?: MarkerTrackArgs; } declare interface MarkerTrackMessageChannel extends TrackMessageChannel { updateTimedItem(id: MarkerState['id'], attrs: MarkerUpdateableAttrs): Observable; } declare class MarkerTrackProxy extends BaseMessageChannelProxy implements MarkerTrackMessageChannel { constructor(messageChannel: MessageChannel_2); get onEvent$(): Observable; loadStart(): Observable; loadSuccess(): Observable; loadError(error: string | undefined): Observable; updateAttrs(attrs: TrackUpdateableAttrs): Observable; updateTimedItem(id: MarkerState['id'], attrs: MarkerUpdateableAttrs): Observable; } /** * Serializable snapshot of a marker {@link Track}. */ export declare interface MarkerTrackState extends TimedItemsTrackState { } export declare interface MarkerTrackStyle extends MarkerStyle { /** * Threshold in seconds for considering a marker to render as a MOMENT_MARKER instead of SPANNING_MARKER. */ momentToSpanningThreshold?: number | undefined; } /** * Subset of marker track fields that can be updated at runtime. */ export declare type MarkerTrackUpdateableAttrs = TrackUpdateableAttrs; export declare class MarkerTrackVttFetcher extends VttTimedItemsFetcher { map(index: number, cue: ParsedVttCue): TimedItemOf; } /** * Discriminator for marker variants. */ export declare enum MarkerType { /** A marker that references a single point in time. */ MOMENT_MARKER = "MOMENT_MARKER", /** A marker that spans a time range (start and/or end). */ SPANNING_MARKER = "SPANNING_MARKER" } /** * Fields that can be updated on any {@link Marker} at runtime. */ export declare interface MarkerUpdateableAttrs extends TimedItemUpdateableAttrs { label?: string | undefined; } declare class MarkerViewComponent extends BaseKonvaComponent2 { private readonly _onEvent$; protected _ui: Ui; protected _editable: boolean; protected _styledElement: StyledElement; protected _style: MarkerOnMarkerTrackLaneStyle; protected _markerState: MarkerState; protected _timeline: TimelineImpl; protected _markerTrackLane: MarkerTrackLane; protected _updateHook: (attrs: MarkerUpdateableAttrs) => void; protected _innerComponent?: BaseMarkerViewInnerComponent; protected _group: default_3.Group; protected _innerGroup: default_3.Group; protected _renderBreaker: ObserverBreaker; constructor(args: { editable: boolean; markerState: MarkerState; markerTrackId: MarkerTrack['id']; timeline: TimelineImpl; ui: Ui; markerTrackLane: MarkerTrackLane; updateHook: (attrs: MarkerUpdateableAttrs) => void; }); get onEvent$(): Observable; get style(): MarkerOnMarkerTrackLaneStyle; private getRelativePointerPosition; setStyle(style: Partial): void; update(markerState: MarkerState): void; refreshTimelinePosition(): void; get editable(): boolean; protected styleChanged(): void; protected render(): void; protected provideKonvaNode(): default_3.Group; destroy(): void; } declare interface MarkerViewComponentDragEventData { item: MarkerState; } declare type MarkerViewComponentEvent = { [K in MarkerViewComponentEventType]: { type: K; data: MarkerViewComponentEventTypeDataMap[K]; }; }[keyof MarkerViewComponentEventTypeDataMap]; declare interface MarkerViewComponentEventData { item: MarkerState; pointerPosition: Position; } declare enum MarkerViewComponentEventType { HANDLE_CLICK = "HANDLE_CLICK", HANDLE_MOUSE_MOVE = "HANDLE_MOUSE_MOVE", HANDLE_MOUSE_ENTER = "HANDLE_MOUSE_ENTER", HANDLE_MOUSE_LEAVE = "HANDLE_MOUSE_LEAVE", HANDLE_DRAG_START = "HANDLE_DRAG_START", HANDLE_DRAG_END = "HANDLE_DRAG_END" } declare type MarkerViewComponentEventTypeDataMap = { [MarkerViewComponentEventType.HANDLE_CLICK]: MarkerViewComponentEventData; [MarkerViewComponentEventType.HANDLE_MOUSE_MOVE]: MarkerViewComponentEventData; [MarkerViewComponentEventType.HANDLE_MOUSE_ENTER]: MarkerViewComponentEventData; [MarkerViewComponentEventType.HANDLE_MOUSE_LEAVE]: MarkerViewComponentEventData; [MarkerViewComponentEventType.HANDLE_DRAG_START]: MarkerViewComponentDragEventData; [MarkerViewComponentEventType.HANDLE_DRAG_END]: MarkerViewComponentDragEventData; }; declare interface MarkerViewHandleVerticals { area: Verticals; handle: Verticals; } declare class MediaDeserializer implements Destroyable { constructor(); static createMainMedia(state: MainMediaState): MainMedia; protected static createAudioFileMainMedia(state: MainMediaState): AudioMainMedia; protected static createHlsMainMedia(state: HlsMainMediaState): HlsMainMedia; protected static createMp4MainMedia(state: MainMediaState): Mp4MainMedia; protected static createBaseMainMediaArgs(state: MainMediaState): BaseMainMediaArgs; static createTrack(state: TrackState): Track; protected static createVideo(state: VideoState): Video; protected static createAudio(state: AudioState): Audio_2; protected static createMarkerTrack(state: MarkerTrackState): MarkerTrack; protected static createTextTrack(state: TextTrackState): TextTrackFile | HlsTextTrack; protected static createThumbnailTrack(state: ThumbnailTrackState): ThumbnailTrack; protected static createBaseMediaEntityArgs(state: MediaEntityState): BaseMediaEntityArgs; protected static createBaseTrackArgs(state: TrackState): BaseTrackArgs; protected static createAudioArgs(state: AudioState): AudioArgs; protected static createVideoArgs(state: VideoState): VideoArgs; protected static createTextTrackArgs(state: TextTrackState): TextTrackArgs; protected static createBaseMarkerTrackArgs(state: MarkerTrackState): MarkerTrackArgs; protected static createBaseTimedItemsTrackArgs(state: TimedItemsTrackState): TimedItemsTrackArgs; static createSource(state: SourceState): Source; static createLoadStage(state: OpStageState): OpStage; destroy(): void; } declare class MediaElementPlayback implements Destroyable { private readonly _onChange$; private _state; constructor(); private updateState; private compare; get onChange$(): Observable; get state(): MediaElementPlaybackState; setPlaying(): void; setPaused(): void; get pausing(): boolean; setPausing(value: boolean): void; setEnded(): void; get waiting(): boolean; set waiting(value: boolean); get seeking(): boolean; get playing(): boolean; get paused(): boolean; get ended(): boolean; set seeking(value: boolean); get buffering(): boolean; set buffering(value: boolean); get waitingSyncedMedia(): boolean; set waitingSyncedMedia(value: boolean); destroy(): void; } declare interface MediaElementPlaybackState { playing: boolean; pausing: boolean; paused: boolean; waiting: boolean; seeking: boolean; buffering: boolean; ended: boolean; waitingSyncedMedia: boolean; } /** * Base contract shared by all media entities ({@link MainMedia}, {@link Track}). * * Every entity carries a unique identifier, a discriminated {@link MediaEntityType}, * and can produce a serializable {@link MediaEntityState} snapshot via {@link state}. */ export declare interface MediaEntity { /** Unique identifier (UUID). */ id: string; /** Discriminator indicating whether this entity is a main media or a track. */ mediaType: MediaEntityType; /** Serializable state snapshot of this entity. */ state: MediaEntityState; } /** * Serializable snapshot of a {@link MediaEntity}, suitable for transfer across * worker boundaries or persistence in session storage. */ export declare interface MediaEntityState extends Serializable { id: MediaEntity['id']; mediaType: MediaEntity['mediaType']; } /** * Discriminator for the two kinds of media entities managed by the player. */ export declare enum MediaEntityType { MAIN_MEDIA = "MAIN_MEDIA", TRACK = "TRACK" } export declare interface MediaLoadRequest { id: string; mediaId: MediaEntityState['id'] | undefined; playerMainMediaId: MainMediaState['id'] | undefined; } declare interface MediaMetadata_2 { mimeType?: string | undefined; videoTracks?: { id: number; }[] | undefined; audioTracks?: { id: number; }[] | undefined; firstVideoTrackFrameRate?: number | undefined; firstVideoTrackInitSegmentTime?: number | undefined; firstAudioTrackChannelsNumber?: number | undefined; firstAudioTrackAudioCodec?: string | undefined; } export declare class MediaMetadataResolver { static getMediaMetadata(src: string, keys: K[]): Observable>; private static getMediaMetadataWithMediabunny; } declare interface MediaProbeMetadata { contentType: string; contentLength: number; video: Partial; audio: Partial; } export declare interface MediaProbeResult { fileFormat: FileFormat; metadata: Partial; } /** * Identifies the strategy used to probe a media URL. * * - `EXTENSION_PROBE`: Infers the format from the URL file extension. Returns candidates for ambiguous extensions (e.g. `.mp4`). * - `HEAD_REQUEST_PROBE`: Sends an HTTP HEAD request and reads the `Content-Type` header. * - `MEDIA_METADATA_RESOLVER_PROBE`: Partially downloads the file to resolve its actual MIME type via mediabunny. * Use this to disambiguate formats the server's `Content-Type` header misreports (e.g. audio-only MP4 served as `video/mp4`). */ export declare enum MediaProbeToolType { EXTENSION_PROBE = "EXTENSION_PROBE", HEAD_REQUEST_PROBE = "HEAD_REQUEST_PROBE", MEDIA_METADATA_RESOLVER_PROBE = "MEDIA_METADATA_RESOLVER_PROBE" } /** * Discriminated union of all `{ format, value }` temporal representations. */ export declare type MediaTemporal = MediaTemporalByFormat[MediaTemporalFormat]; /** * Discriminated map that pairs each {@link MediaTemporalFormat} with a * `{ format, value }` object carrying the correctly-typed value. */ export declare type MediaTemporalByFormat = { [K in MediaTemporalFormat]: { format: K; value: MediaTemporalFormatValueMap[K]; }; }; export declare class MediaTemporalConverter { protected _duration?: number | undefined; protected _frameRateModel?: FrameRateModel | undefined; protected _ffomTimecodeModel?: TimecodeModel | undefined; protected _initSegmentTimeOffset?: number | undefined; protected _hasVideo?: boolean | undefined; protected _hasAudio?: boolean | undefined; private constructor(); static create(args?: MediaTemporalConverterArgs): MediaTemporalConverter; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat.SECONDS): MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat.FRAME_COUNT): MediaTemporalFormatValueMap[MediaTemporalFormat.FRAME_COUNT]; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat.PERCENT): MediaTemporalFormatValueMap[MediaTemporalFormat.PERCENT]; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat.TIMECODE): MediaTemporalFormatValueMap[MediaTemporalFormat.TIMECODE]; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat.MEDIA_TIME): MediaTemporalFormatValueMap[MediaTemporalFormat.MEDIA_TIME]; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat.COUNTDOWN_MEDIA_TIME): MediaTemporalFormatValueMap[MediaTemporalFormat.COUNTDOWN_MEDIA_TIME]; convert(sourceValue: MediaTemporalFormatValueMap[S], sourceFormat: S, destinationFormat: MediaTemporalFormat): MediaTemporalFormatValueMap[MediaTemporalFormat]; convertMediaTemporal(sourceTemporal: MediaTemporal, destinationFormat: MediaTemporalFormat): MediaTemporal; private convertToSecondsTemporal; private convertToFrameTemporal; private frameToTime; private timeToFrame; private constrainTime; private constrainFrame; private timecodeToFrame; private _framesPerDay; } /** * Construction arguments for {@link MediaTemporalConverter}. * All fields are optional; omitting a field disables conversions that depend on it. */ export declare interface MediaTemporalConverterArgs { /** Total media duration in seconds. Required for {@link MediaTemporalFormat.PERCENT} and {@link MediaTemporalFormat.COUNTDOWN_MEDIA_TIME} conversions. */ duration?: number | undefined; /** Frame-rate model (rational fps + drop-frame flag). Required for {@link MediaTemporalFormat.FRAME_COUNT} and {@link MediaTemporalFormat.TIMECODE} conversions. */ frameRateModel?: FrameRateModel | undefined; /** First-frame-of-media (FFOM) timecode model. When present, timecode output is offset so that `0 s` maps to this timecode value instead of `00:00:00:00`. */ ffomTimecodeModel?: TimecodeModel | undefined; /** HLS init-segment time offset in seconds. Applied as a base offset when converting absolute media time to presentation time. */ initSegmentTimeOffset?: number | undefined; /** Indicates if main media has video. **/ hasVideo?: boolean | undefined; /** Indicates if main media has audio. **/ hasAudio?: boolean | undefined; } /** * Supported temporal formats for expressing media time values. */ export declare enum MediaTemporalFormat { /** Absolute time in seconds (number). */ SECONDS = "SECONDS", /** Zero-based frame index (number). Requires a known frame rate. */ FRAME_COUNT = "FRAME_COUNT", /** Percentage of total duration, 0–100 (number). Requires a known duration. */ PERCENT = "PERCENT", /** SMPTE-style timecode string (e.g. `"01:00:00:00"`). Requires a known frame rate. */ TIMECODE = "TIMECODE", /** ISO 8601 time-of-day string without date, milliseconds to 3 decimal places (string). */ MEDIA_TIME = "MEDIA_TIME", /** Countdown variant of {@link MEDIA_TIME}, counting down from the end of the media (string). Requires a known duration. */ COUNTDOWN_MEDIA_TIME = "COUNTDOWN_MEDIA_TIME" } /** * Maps each {@link MediaTemporalFormat} to its TypeScript value type * (`number` for numeric formats, `string` for textual formats). */ export declare type MediaTemporalFormatValueMap = { [MediaTemporalFormat.SECONDS]: number; [MediaTemporalFormat.FRAME_COUNT]: number; [MediaTemporalFormat.PERCENT]: number; [MediaTemporalFormat.TIMECODE]: string; [MediaTemporalFormat.MEDIA_TIME]: string; [MediaTemporalFormat.COUNTDOWN_MEDIA_TIME]: string; }; /** Shorthand for a frame-count-typed `{ format, value }` pair. */ export declare type MediaTemporalFrame = MediaTemporalByFormat[MediaTemporalFormat.FRAME_COUNT]; /** Shorthand for a seconds-typed `{ format, value }` pair. */ export declare type MediaTemporalSeconds = MediaTemporalByFormat[MediaTemporalFormat.SECONDS]; /** * Extracts the `{ format, value }` pair for a specific {@link MediaTemporalFormat}. */ export declare type MediaTemporalValueByFormat = MediaTemporalByFormat[F]; declare interface Message { topic: string; type: MessageType; messageId: string; } declare class MessageChannel_2 extends BaseMessageChannel> { constructor(managedBroadcastChannel: ManagedBroadcastChannel, topic?: string); get topic(): string; get managedBroadcastChannel(): ManagedBroadcastChannel; } export declare class MessageChannelClosedError extends OmpError { constructor(topic: string); } declare type MessageChannelFactoryMap = { [K in keyof MessageChannelProxyFactoryArgs]: (...args: MessageChannelProxyFactoryArgs[K]) => MessageChannelProxyInstance; }; declare type MessageChannelName = keyof MessageChannelTypeMap; declare interface MessageChannelProxy extends Destroyable { onInitialized$: Observable; messageChannel: MessageChannel_2; } declare type MessageChannelProxyFactoryArgs = { AudioHandler: [mainMediaId: MainMedia['id'], playerAudioType: PlayerAudioType, trackId: Audio_2['id'] | undefined, state: AudioHandlerState]; TextTrackHandler: [mainMediaId: MainMedia['id'], trackId: Track['id'], state: TextTrackHandlerState]; AudioEffects: [topic: string]; AudioRouter: [topic: string, state: AudioRouterState]; MainMedia: [mainMediaId: MainMedia['id']]; Track: [trackId: Track['id']]; MarkerTrack: [trackId: MarkerTrack['id']]; ThumbnailTrack: [trackId: ThumbnailTrack['id']]; ChromingMarkerBarHandler: [state: ChromingMarkerBarState]; }; declare type MessageChannelProxyInstance = MessageChannelProxyInstanceMap[K]; declare type MessageChannelProxyInstanceMap = { [K in MessageChannelName]: InstanceType; }; declare type MessageChannelProxyMapType = ReturnType; declare type MessageChannelType = MessageChannelTypeMap[MessageChannelName]; /** * Name - Type mappings for supported message channels */ declare type MessageChannelTypeMap = { Ui: UiMessageChannel; MainMediaRepository: MainMediaRepositoryMessageChannel; TrackRepository: TrackRepositoryMessageChannel; SessionStore: SessionStoreMessageChannel; OmakaseTrackApi: OmakaseTrackApiMessageChannel; TrackUtils: TrackUtilsMessageChannel; MainMedia: MainMediaMessageChannel; Track: TrackMessageChannel; MarkerTrack: MarkerTrackMessageChannel; ThumbnailTrack: ThumbnailTrackMessageChannel; PlayerDetached: PlayerDetachedMessageChannel; PlayerAudioInternal: PlayerAudioInternalMessageChannel; PlayerTextInternal: PlayerTextInternalMessageChannel; ChromingDetached: ChromingDetachedMessageChannel; ChromingMarkerBarHandler: ChromingMarkerBarHandlerMessageChannel; TextTrackHandler: TextTrackHandlerMessageChannel; AudioHandler: AudioHandlerMessageChannel; AudioEffects: AudioEffectsMessageChannel; AudioRouter: AudioRouterMessageChannel; AlertsManager: AlertsManagerMessageChannel; }; declare enum MessageType { REQUEST = "REQUEST", RESPONSE = "RESPONSE" } export declare interface MomentTemporal { type: TimedItemTemporalType.MOMENT; time: string; } declare interface MouseEnterEvent extends OmpMouseEvent { } declare interface MouseLeaveEvent extends OmpMouseEvent { } declare interface MouseMoveEvent extends OmpMouseEvent { } declare interface MouseOutEvent extends OmpMouseEvent { } declare interface MouseOverEvent extends OmpMouseEvent { } declare class Mp4MainMedia extends BaseMainMedia { protected getState(): Mp4MainMediaState; protected _mainMediaType: MainMediaType; protected _source: Source; protected readonly _destroyBreaker: ObserverBreaker; constructor(args: Mp4MainMediaArgs); protected _state(): Mp4MainMediaState; } declare interface Mp4MainMediaArgs extends BaseMainMediaArgs { } declare interface Mp4MainMediaState extends MainMediaState { } declare interface Mp4PlayerControllerConfig extends PlayerControllerConfig { } declare interface Mp4PlayerPlaybackEngine extends PlayerPlaybackEngine { } export declare interface MultiTrackLaneConfig extends TimelineLaneConfig { } export declare interface MultiTrackLaneTrackConfig { /** Zero-based index at which to insert the track into the lane's track list. When omitted, the track is appended at the end. */ trackOrderIndex?: number | undefined; } /** * Marks a timeline lane that manages multiple tracks. * Use this type when you need to accept any multi-track lane without caring about its concrete type. */ export declare interface MultiTrackTimelineLane extends TimelineLaneApi { /** * Adds a track to this lane. Accepts either the track object itself or its ID, in which case * the track is resolved from the track repository. * * @param trackOrId - The track to add, or the ID of a track already registered in the track repository. * @param config - Optional per-track configuration (insertion index, style overrides, etc.). * @throws If a track with the same ID has already been added to this lane. * @throws If an ID is provided but no matching track exists in the track repository. */ addTrack(track: T, config?: TC): void; addTrack(id: T['id'], config?: TC): void; /** Returns a shallow copy of all tracks currently added to this lane, in insertion order. */ getTracks(): T[]; } export declare interface MutableTimedItem extends TimedItem { update(attrs: U): void; } /** * A single observation entry within an {@link ObservationTrack}. */ export declare interface Observation extends TimedItem { label: string | undefined; items: ObservationItem[]; } export declare const OBSERVATION_TRACK_LANE_STYLE_DEFAULT: ObservationTrackLaneStyle; /** * Construction arguments for {@link Observation} instances. */ export declare interface ObservationArgs extends TimedItemArgs { label?: string | undefined; items: ObservationItem[]; } export declare interface ObservationItem { value?: string | undefined; measurement?: string | undefined; comment?: string | undefined; } /** * Serializable snapshot of an {@link Observation}. */ export declare interface ObservationState extends TimedItemState { label: string | undefined; items: ObservationItem[]; } /** * An observation track — a timed-items track carrying {@link Observation} entries. */ export declare interface ObservationTrack = never> extends TimedItemsTrack { observationTrackType: ObservationTrackType; } /** * Construction arguments for observation track instances. */ export declare interface ObservationTrackArgs extends TimedItemsTrackArgs { } export declare class ObservationTrackAudioLevelSource extends AudioLevelSource { protected _track?: ObservationTrack | undefined; protected _playerBreaker: ObserverBreaker; protected _trackBreaker: ObserverBreaker; protected _eventEmitter?: TimedItemsTrackEventEmitter; protected _timeProvider$: Subject; private _exactObservations; private _nearObservations; private _channelTracks; private _channelEventEmitters; private _channelExactObservations; private _channelNearObservations; private _sampleTime; private _eventEmitterTreshold; constructor(player: OmakasePlayerApi, track: ObservationTrack | ObservationTrack[]); wirePlayer(player: OmakasePlayerApi): void; setTrack(track: ObservationTrack | ObservationTrack[]): void; destroy(): void; private _subscribeChannelEmitter; private getDbValuesAtTime; private getChannelMaxValueAtTime; private extractDbValues; private isObservationValid; } export declare class ObservationTrackDownsampler extends TimedItemsTrackDownsampler> { constructor(sourceTrack: ObservationTrack, options: DownsampleOptions); protected createDownsampledTrack(): ObservationTrack; protected resolveDownsampledTimedItem(_index: number, start: number, end: number, timedItems: TrackTimedItem>[]): TrackTimedItem>; private _getAggregateValue; } export declare type ObservationTrackEvent = OmpEventGroup; export declare interface ObservationTrackEventData { } export declare enum ObservationTrackEventType { OBSERVATION_TRACK_SPECIFIC_EVENT_PLACEHOLDER = "OBSERVATION_TRACK_SPECIFIC_EVENT_PLACEHOLDER" } export declare type ObservationTrackEventTypeDataMap = { [ObservationTrackEventType.OBSERVATION_TRACK_SPECIFIC_EVENT_PLACEHOLDER]: ObservationTrackEventData; }; export declare class ObservationTrackFile extends BaseObservationTrack { protected _observationTrackType: ObservationTrackType; constructor(args?: ObservationTrackArgs); protected getState(): ObservationTrackState; } export declare class ObservationTrackInterpolator extends TimedItemsInterpolator> { constructor(sourceTrack: ObservationTrack, options: InterpolationOptions); protected createInterpolatedTrack(): ObservationTrack; protected resolveInterpolatedTimedItem(_index: number, start: number, end: number, timedItems: TrackTimedItem>[]): TrackTimedItem>; private _getAggregateValue; } export declare interface ObservationTrackLaneConfig extends TrackLaneConfig { downsampleOptions?: DownsampleOptions; } export declare type ObservationTrackLaneEvent = { [K in ObservationTrackLaneEventType]: { type: K; data: ObservationTrackLaneEventTypeDataMap[K]; }; }[keyof ObservationTrackLaneEventTypeDataMap]; export declare enum ObservationTrackLaneEventType { TIMELINE_OBSERVATION_TRACK_LANE_ITEM_CLICK = "TIMELINE_OBSERVATION_TRACK_LANE_ITEM_CLICK" } export declare type ObservationTrackLaneEventTypeDataMap = { [ObservationTrackLaneEventType.TIMELINE_OBSERVATION_TRACK_LANE_ITEM_CLICK]: ObservationTrackLaneObservationEventData; }; export declare interface ObservationTrackLaneObservationEventData { item: ObservationState; } export declare interface ObservationTrackLaneStyle extends TimelineLaneStyle { } /** Per-track configuration for lanes that render observation data (bar charts, line charts, etc.). */ export declare interface ObservationTrackLaneTrackConfig extends MultiTrackLaneTrackConfig { } /** * Load options for an observation track. */ export declare interface ObservationTrackLoadOptions extends BaseTrackLoadOptions { args?: ObservationTrackArgs; } /** * Serializable snapshot of an observation {@link Track}. */ export declare interface ObservationTrackState extends TimedItemsTrackState { observationTrackType: ObservationTrackType; } /** * Discriminator for the origin of an observation track. */ export declare enum ObservationTrackType { /** Standalone observation track file loaded as a sidecar. */ OBSERVATION_TRACK_FILE = "OBSERVATION_TRACK_FILE" } /** * Subset of observation track fields that can be updated at runtime. */ export declare type ObservationTrackUpdateableAttrs = TrackUpdateableAttrs; declare interface ObservationTrackView extends KonvaComponent2 { render(timeRange: { start: number; end: number; }): void; updatePositions(timeRange: { start: number; end: number; }): void; clearContent(): void; } export declare class ObservationTrackVttFetcher extends VttTimedItemsFetcher { map(index: number, cue: ParsedVttCue): TimedItemOf; private fetchItems; private fetchLabel; } /** * Fields that can be updated on an {@link Observation} at runtime. */ export declare interface ObservationUpdateableAttrs extends TimedItemUpdateableAttrs { label?: string | undefined; } declare class ObserverBreaker implements Destroyable { private _observer; break(): void; error(error: any): void; get observer(): Observable; destroy(): void; } declare const OMAKASE_VTT_CUE_DATA_KEY_MAPPING: { readonly OMAKASE_VTT_VERSION_1_0: "ompVttV1CueRows"; }; export declare class OmakaseAudioVisualization extends HTMLElement { private _peakArray; private _historyArray; private _barElements; protected _destroyBreaker: ObserverBreaker; private _silenceBreaker$; protected _viewboxWidth: number; protected _viewboxHeight: number; protected _barCount: number; protected _initialBars: number[]; protected _maxHistoryCount: number; protected _sampleTime: number; protected _maxHeight: number; protected _smoothingFactor: number; protected _dbRangeMin: number; protected _dbRangeMax: number; protected _fillColors: string[]; protected _strokeColor: string; connectedCallback(): void; showInitialSvg(): void; disconnectedCallback(): void; wirePlayer(player: PlayerInternalApi): void; private addPeakValue; private draw; private getScaledValue; } export declare enum OmakaseControlBarVisibility { ENABLED = "ENABLED", DISABLED = "DISABLED", ALWAYS_ON = "ALWAYS_ON" } export declare class OmakaseDropdown extends HTMLElement { private _toggle; private _displayLabel; private _subscriptions; private _documentClickListener; private _onClose$; constructor(); get width(): number; get toggle(): OmakaseDropdownToggle | undefined; set toggle(toggle: OmakaseDropdownToggle | undefined); get displayLabel(): string | undefined; set displayLabel(displayLabel: string | undefined); get isFloating(): boolean; set isFloating(isFloating: boolean); get position(): OmakaseDropdownPosition; set position(position: OmakaseDropdownPosition); get alignment(): OmakaseDropdownAlignment; set alignment(alignment: OmakaseDropdownAlignment); get onClose$(): Observable; connectedCallback(): void; disconnectedCallback(): void; closeDropdown(): void; } declare type OmakaseDropdownAlignment = 'left' | 'center' | 'right'; export declare class OmakaseDropdownList extends HTMLElement implements OmakaseDropdownListApi { private _title?; private _list?; private _options; private _optionElements; private _selectedOption$; private _selectedAction$; private _selectedOptionSubscription; constructor(); set width(width: number); get width(): number; set maxWidth(width: number | undefined); get maxWidth(): number | undefined; get selectedOption$(): BehaviorSubject; get selectedAction$(): Observable; set type(type: OmakaseDropdownListType); get type(): OmakaseDropdownListType; get options(): OmakaseDropdownListItem[]; setTitle(title: string): void; setOptions(options: OmakaseDropdownListItem[]): void; updateOptions(options: Partial[]): void; addOption(option: OmakaseDropdownListItem, insertAtIndex?: number): void; removeOption(value: any): void; connectedCallback(): void; disconnectedCallback(): void; private _selectOption; private _updateDropdownLabel; private _getDropdown; } /** * Omakase dropdown component API */ export declare interface OmakaseDropdownListApi { /** * Width of the dropdown list in pixels. If the width is not set, the dropdown list will have a default width defined in CSS. */ get width(): number; set width(width: number); /** * Type of icons displayed next to each dropdown list item. Can be 'radio' for radio button icons, 'checkbox' for checkbox icons, or 'default' for no icons. Default value is 'default'. */ get type(): OmakaseDropdownListType; set type(type: OmakaseDropdownListType); /** * Observable that emits the currently selected dropdown list item whenever the selection changes. Emits undefined if no item is selected. */ selectedOption$: BehaviorSubject; /** * Observable that emits the dropdown list item whenever the action icon on the right side of the dropdown list item is clicked. */ selectedAction$: Observable; /** * Sets the dropdown list items and their configuration. The configuration includes the label to display for each item, the internal value of each item, and whether the item is active (selected) or not. The internal value can be used to determine which item is selected when subscribing to the selectedOption$ observable. * @param options Array of dropdown list items and their configuration */ setOptions(options: OmakaseDropdownListItem[]): void; } /** * Single item in the dropdown list. */ export declare interface OmakaseDropdownListItem extends Record { /** * Internal value of the dropdown list item that can be used to determine which item is selected. Can be of any type and is not displayed in the UI. */ value: any; /** * Label of the dropdown list item that will be displayed in the UI. */ label: string; /** * If true, the dropdown list item will be displayed as selected in the UI. */ active?: boolean; /** * Class(es) to add to the element displayed after the label text */ actionClass?: string; } declare type OmakaseDropdownListType = 'radio' | 'checkbox' | 'default'; export declare class OmakaseDropdownOption extends HTMLElement { value?: any; private _textElement?; private _iconElement?; private _actionElement?; onSelect$: Subject; onAction$: Subject; constructor(); setActionClass(classNames: string): void; setLabel(label: string): void; connectedCallback(): void; } declare type OmakaseDropdownPosition = 'above' | 'below'; export declare class OmakaseDropdownToggle extends HTMLElement { static get observedAttributes(): string[]; private _dropdown?; private _span?; get span(): HTMLSpanElement | undefined; get isDisabled(): boolean; set isDisabled(isDisabled: boolean); constructor(); connectedCallback(): void; private _bindDropdown; } export declare class OmakaseFullscreenButton extends MediaFullscreenButton { private _player; get player(): PlayerInternalApi | undefined; set player(player: PlayerInternalApi | undefined); handleClick(e: Event): void; } export declare class OmakaseMarkerBar extends HTMLElement { private _markerBars; private _mediaDuration?; private _containerSize?; set mediaDuration(mediaDuration: number); set containerSize(containerSize: number); get markerBars(): OmakaseMarkerTrack[]; get isOmakase(): boolean; set isOmakase(isOmakase: boolean); addMarkerBar(): OmakaseMarkerTrack; deleteMarkerBar(barId: string): void; addMarker(trackId: string, marker: MarkerState): void; updateMarker(trackId: string, marker: MarkerState): void; removeMarker(trackId: string, markerId: string): void; updateMarkerTrackState(trackId: string, markerTrackState: MarkerTrackState): void; clearMarkerTracks(): void; protected findAffectedMarkerTracks(trackId: string): OmakaseMarkerTrack[]; } export declare class OmakaseMarkerTrack extends HTMLElement implements ChromingMarkerBarElementApi { protected readonly _onEvent$: Subject; private _markers; private _tracks; private _config; private _containerSize?; private _container?; private _draggingPointMarker?; private _draggingPeriodMarker?; private _draggingPeriodMarkerEnd?; private _markerMoved; private _markerDragStartTime?; private _markerDragDelay; private _mouseupListener?; private _mousemoveListener?; private _resizeObserver; private _uiOrUiProxy?; private _destroyBreaker; get config(): ChromingMarkerBarConfig; set config(config: Partial); get markerTracks(): MarkerTrackState[] | undefined; set markerTracks(markerTracks: MarkerTrackState[]); get mediaDuration(): number; set mediaDuration(duration: number); set containerSize(containerSize: number | undefined); get destroy$(): Observable; get onEvent$(): Observable; get isOmakase(): boolean; set isOmakase(isOmakase: boolean); protected get _ui(): Ui | UiProxy; setUiOrUiProxy(ui: UiProxy | Ui): void; connectedCallback(): void; disconnectedCallback(): void; hide(): void; show(): void; addTrack(track: MarkerTrackState): void; removeTrack(track: MarkerTrackState): void; updateTrack(trackState: MarkerTrackState): void; hasTrack(trackId: string): boolean; addMarker(marker: MarkerState, trackId: MarkerTrackState['id']): void; updateMarker(markerState: MarkerState): void; private loadMarkers; private updateMarkers; private addMomentMarker; private addPeriodMarker; private focusMarker; private unfocusMarkers; private clearDraggingMarker; private moveDraggingMarker; private getDraggingPointMarkerTime; private getDraggingPeriodMarkerTime; isMarkerTemporalChanged(id: MarkerState['id'], temporal: TimedItemTemporal): boolean; private updateMomentMarker; private updatePeriodMarker; private updateMarkerStyle; private updateMarkerActive; private updateMarkerEditable; private updateMarkerSize; removeMarker(id: Marker['id']): void; removeAllMarkers(): void; private getMarkerElement; private toObservable; private getMarkerStateOrFail; } export declare class OmakaseMuteButton extends MediaChromeButton { static getSlotTemplateHTML: typeof getSlotTemplateHTML; static getTooltipContentHTML: typeof getTooltipContentHTML; private _player; protected _destroyBreaker: ObserverBreaker; get player(): PlayerInternalApi | undefined; set player(player: PlayerInternalApi | undefined); /** * @type {string | undefined} */ get volumeLevel(): string | undefined; set volumeLevel(value: string | undefined); setVolumeLevel(isMuted: boolean, volume: number): void; handleClick(): void; disconnectedCallback(): void; private updateAriaLabel; } export declare class OmakasePlayButton extends MediaPlayButton { private _player; get player(): PlayerInternalApi | undefined; set player(player: PlayerInternalApi | undefined); handleClick(): void; } export declare class OmakasePlayer extends BaseOmakasePlayer implements OmakasePlayerApi { private _config; private readonly _ompProvider; private readonly _session; private _player; private _playerDetached?; private _chroming; private _chromingDetached?; private _omakaseTrack; private _remoteNode; private _playerDetachedWindow; private _timelines; private _detachingBreaker; private _detachedBreaker; private _attachingBreaker; constructor(config?: Partial); loadMainMedia(url: string, loadOptions?: MainMediaLoadOptions): Observable; detachPlayer(): Observable; protected tryDisconnectDetached(): void; protected openPlayerDetachedWindow(mainMedia: MainMedia): void; protected tryClosePlayerDetachedWindow(): Observable; attachPlayer(): Observable; protected restoreSession(sessionState: SessionState, player: PlayerInternalApi, chroming: ChromingInternalApi): Observable; protected isAttached(): boolean; protected isDetached(): boolean; protected isFailure(): boolean; setAuthentication(authentication: AuthenticationData): Observable; get player(): PlayerApi; get chroming(): ChromingApi; get session(): SessionApi; get track(): OmakaseTrackApi; get tools(): OmakaseToolsApi; get alerts(): AlertsApi; get timeline(): TimelineApi | undefined; get ui(): UiApi; createTimeline(configAndStyle?: ConfigAndStyle): Observable; getTimeline(id?: TimelineApi['id']): TimelineApi | undefined; destroy(): void; } /** * Primary API for the Omakase Player */ export declare interface OmakasePlayerApi extends OmakasePlayerCommonApi { /** * Track management API for adding, removing, loading, and querying marker and thumbnail tracks. */ track: OmakaseTrackApi; /** * Session API for observing session state changes and accessing the current session snapshot */ session: SessionApi; /** * Player control API. */ player: PlayerApi; /** * Chroming (UI) API. */ chroming: ChromingApi; /** * Tools API. */ tools: OmakaseToolsApi; /** * Alerts API. */ alerts: AlertsApi; /** * Timeline API. */ timeline: TimelineApi | undefined; /** * UI API. */ ui: UiApi; /** * Loads the primary media source (HLS, MP4, or audio file). * * @param url - URL of the media source. * @param loadOptions - Optional load configuration (frame rate, DRM data, poster, etc.). * @returns Observable that emits the loaded {@link MainMedia} instance. */ loadMainMedia(url: string, loadOptions?: MainMediaLoadOptions | undefined): Observable; /** * Detaches the player, transitioning it into a remote playback mode. */ detachPlayer(): Observable; /** * Re-attaches a previously detached player. */ attachPlayer(): Observable; createTimeline(configAndStyle?: ConfigAndStyle): Observable; } /** * Shared API surface for both attached and detached player modes. */ declare interface OmakasePlayerCommonApi { /** * Configures authentication for media requests. Supports basic, bearer, and custom header strategies. * * @param authentication - Authentication configuration (basic, bearer, or custom headers). */ setAuthentication(authentication: AuthenticationData): Observable; } export declare type OmakasePlayerConfig = { authentication?: AuthenticationData | undefined; detachedBroadcastChannelId?: string | undefined; detachWindowUrlFn?: (mainMedia: MainMedia) => string; detachWindowFeatures?: string | undefined; } & PrefixKeys & PrefixKeys; export declare class OmakasePlayerDetached extends BaseOmakasePlayer implements OmakasePlayerDetachedApi { protected _config: OmakasePlayerDetachedConfig; private readonly _ompProvider; private _remoteNode; private _sessionStore?; protected _playerDetached: PlayerDetached; protected _chroming: ChromingDetached; protected _destroyBreaker: ObserverBreaker; constructor(config?: Partial); setAuthentication(authentication: AuthenticationData): Observable; get player(): PlayerDetachedApi; destroy(): void; } /** * API for the Omakase Player in detached (remote) mode. */ export declare interface OmakasePlayerDetachedApi extends OmakasePlayerCommonApi { /** * Reduced player control API available in detached mode. */ get player(): PlayerDetachedApi; } export declare type OmakasePlayerDetachedConfig = OmakasePlayerDetachedConfigApi & PrefixKeys & PrefixKeys; export declare interface OmakasePlayerDetachedConfigApi { detachedBroadcastChannelId: string; authentication?: AuthenticationData; } export declare class OmakasePreviewThumbnail extends HTMLElement { private _timeRange?; private _thumbnailTrack?; private _thumbnailFn?; protected _destroyBreaker: ObserverBreaker; constructor(); set thumbnailTrack(thumbnailTrack: ThumbnailTrackState | undefined); set thumbnailFn(thumbnailFn: (trackId: string, time: number) => Observable); set timeRange(timeRange: OmakaseTimeRange); connectedCallback(): void; disconnectedCallback(): void; } export declare enum OmakaseProgressBarPosition { OVER_VIDEO = "OVER_VIDEO", UNDER_VIDEO = "UNDER_VIDEO" } export declare enum OmakaseThemeActionIcon { HELP_MENU = "HELP_MENU", FULLSCREEN = "FULLSCREEN", AUDIO_TOGGLE = "AUDIO_TOGGLE", VOLUME = "VOLUME", CONTROL_BAR_TOGGLE = "CONTROL_BAR_TOGGLE" } export declare interface OmakaseThemeConfig extends OmakaseThemeConfigUpdateableAttrs { /** * Specifies the list of enabled floating controls */ floatingControls: OmakaseThemeFloatingControl[]; /** * Specifies the list of floating controls that are shown when the video is playing */ alwaysOnFloatingControls: OmakaseThemeFloatingControl[]; /** * Specifies the list of enabled action icons */ actionIcons: OmakaseThemeActionIcon[]; /** * Sets the available playback rates in menu */ playbackRates: number[]; /** * Id of the custom web component used for Player chroming */ htmlTemplateId?: string; } export declare interface OmakaseThemeConfigUpdateableAttrs { /** * Specifies which time format will be used in the timer control */ timeFormat: ChromingTimeFormat; /** * Specifies if the time control can be used for seeking. It is activated by double clicking the time. */ timeInteractive: boolean; /** * Specifies control bar visibility */ controlBarVisibility: OmakaseControlBarVisibility; /** * Specifies controls visibility */ controlBar: OmakaseThemeControl[]; /** * Specifies control bar position */ progressBarPosition: OmakaseProgressBarPosition; /** * Specifies if the floating VU meter is displayed */ isFloatingVuMeterVisible: boolean; /** * Shared configuration for control bar and floating VU meters */ vuMeterConfig: Partial; /** * Override values for the floating VU meter configuration */ floatingVuMeterConfig?: Partial | undefined; /** * Override values for the control bar VU meter configuration */ controlBarVuMeterConfig?: Partial | undefined; } export declare enum OmakaseThemeControl { PLAY = "PLAY", FRAME_FORWARD = "FRAME_FORWARD", TEN_FRAMES_FORWARD = "TEN_FRAMES_FORWARD", FRAME_BACKWARD = "FRAME_BACKWARD", TEN_FRAMES_BACKWARD = "TEN_FRAMES_BACKWARD", FULLSCREEN = "FULLSCREEN", VOLUME = "VOLUME", TRACK_SELECTOR = "TRACK_SELECTOR", PLAYBACK_RATE = "PLAYBACK_RATE", DETACH_TOGGLE = "DETACH_TOGGLE", TIME_TOGGLE = "TIME_TOGGLE", CLOSE = "CLOSE", ROUTER = "ROUTER", VU_METER = "VU_METER", VU_METER_TOGGLE = "VU_METER_TOGGLE" } export declare enum OmakaseThemeFloatingControl { PROGRESS_BAR = "PROGRESS_BAR", TIME = "TIME", PLAYBACK_CONTROLS = "PLAYBACK_CONTROLS", ACTION_ICONS = "ACTION_ICONS", VU_METER = "VU_METER" } export declare class OmakaseTimeDisplay extends HTMLElement { static get observedAttributes(): string[]; private _player; private _timeRange?; private _mediaDuration; protected _destroyBreaker: ObserverBreaker; protected _playerBreaker: ObserverBreaker; protected _timeRangeBreaker: ObserverBreaker; private _editBreaker; private _innerSpan; private _inlineEdit; private _isEditingTime; constructor(); get displayFormat(): OmakaseTimeDisplayFormat; set displayFormat(format: OmakaseTimeDisplayFormat); get temporalFormat(): MediaTemporalFormat.TIMECODE | MediaTemporalFormat.MEDIA_TIME | MediaTemporalFormat.COUNTDOWN_MEDIA_TIME; get isCountdown(): boolean; set isCountdown(isCountdown: boolean); get isAudio(): boolean; set isAudio(isAudio: boolean); get includeDuration(): boolean; set includeDuration(includeDuration: boolean); set player(player: PlayerInternalApi | undefined); set timeRange(timeRange: OmakaseTimeRange); updateTime(): void; enableEditMode(): void; disableEditMode(): void; private getTimeString; private displayTime; private setupInlineEditTimecode; private formatMediaTime; connectedCallback(): void; attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void; private _setupDOM; private _teardownDOM; disconnectedCallback(): void; } declare type OmakaseTimeDisplayFormat = 'timecode' | 'standard'; export declare class OmakaseTimeEdit extends HTMLElement { static get observedAttributes(): string[]; private _timeString; private _container; private _input; private _minValue; private _maxValue; private _player?; private _submitHandlerFn?; private _blurHandlerFn?; private _isValid$; constructor(); connectedCallback(): void; attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void; get player(): PlayerCommonApi | undefined; set player(player: PlayerCommonApi); get value(): string | undefined; set value(timecodeText: string); get minValue(): string | undefined; set minValue(minValue: string | undefined); get maxValue(): string | undefined; set maxValue(maxValue: string | undefined); get isValid$(): BehaviorSubject; set submitHandler(submitHandlerFn: (timeString: string) => void); set blurHandler(blurHandlerFn: () => void); focus(options?: FocusOptions): void; private get _format(); private get _isNumericFormat(); private get _maxLength(); private handleKeyUp; private handleKeyDown; private stepTime; private setTime; private validate; isTimeValid(): boolean; } export declare class OmakaseTimeRange extends MediaTimeRange implements ChromingMarkerBarElementApi { protected readonly _onEvent$: Subject; protected readonly _onSeek$: Subject; protected readonly _onMouseOver$: Subject; protected readonly _onMarkerMouseEnter$: Subject; protected readonly _onMarkerMouseLeave$: Subject; protected readonly _onMarkerClick$: Subject; destroy$: Subject; private _player?; private _markerDisplayContainer; private _markerAreaContainer; private _rangeElement; private _lastPreviewTime?; protected _destroyBreaker: ObserverBreaker; private _markers; private _tracks; private _focusedMarkers; private _config; private _uiOrUiProxy?; constructor(); get onEvent$(): Observable; get onMouseOver$(): Observable; get onSeek$(): Observable; get onMarkerMouseEnter$(): Observable; get onMarkerMouseLeave$(): Observable; get onMarkerClick(): Observable; get config(): ChromingMarkerBarConfig; set config(config: Partial); get markerTracks(): MarkerTrackState[] | undefined; set markerTracks(markerTracks: MarkerTrackState[]); get name(): string; get rangeWidth(): number; get isOmakase(): boolean; set isOmakase(isOmakase: boolean); get player(): PlayerInternalApi | undefined; set player(player: PlayerInternalApi); protected get _ui(): UiProxy | Ui; setUiOrUiProxy(ui: UiProxy | Ui): void; show(): void; hide(): void; addTrack(track: MarkerTrackState): void; removeTrack(track: MarkerTrackState): void; updateTrack(track: MarkerTrackState): void; hasTrack(trackId: string): boolean; addMarker(marker: MarkerState, trackId: MarkerTrackState['id']): void; updateMarker(marker: MarkerState): void; removeMarker(markerId: Marker['id']): void; removeAllMarkers(): void; private loadMarkers; handleEvent(evt: Event | MouseEvent): void; attributeChangedCallback(attrName: string, oldValue: string | null, newValue: string | null): void; destroy(): void; private getMarkerStart; private getMarkerEnd; private createMarkerDisplayElement; private createMarkerAreaElement; private updateFocusedMarkers; private unfocusAllMarkers; private updateMarkerPosition; private updateMarkerStyle; private updateClasses; private toObservable; private getRangeValueFromMouseEvent; private getTimeFromRangeValue; } export declare interface OmakaseToolsApi { /** * Probes a media URL to retrieve metadata such as MIME type, codec, and container information. * * Uses the default tool types ({@link MediaProbeToolType.EXTENSION_PROBE} and * {@link MediaProbeToolType.HEAD_REQUEST_PROBE}) when no `toolTypes` are specified. * * @param url - The URL of the media resource to probe. * @param toolTypes - Optional list of probe strategies to use. Defaults to extension and HEAD request probes. * @returns An Observable that emits the {@link MediaProbeResult} or `undefined` if probing was unsuccessful. */ probe(url: string, toolTypes?: MediaProbeToolType[]): Observable; } export declare interface OmakaseTrackApi extends OmakaseTrackCommonApi { /** Utility helpers for working with tracks. */ utils: TrackUtilsApi; /** * Returns the track with the given ID, or `undefined` if not found. * * @param id - The unique identifier of the track. */ get(id: Track['id']): Track | undefined; /** * Registers a pre-constructed track instance. * * @param track - The track to add. * @returns The added track. */ add(track: Track): Track; /** * Removes the track with the given ID. * * @param id - The unique identifier of the track to remove. * @returns `true` if the track was found and removed, `false` otherwise. */ delete(id: Track['id']): boolean; /** * Returns all tracks that satisfy the predicate, or all tracks if no predicate is provided. * * @param predicate - Optional filter function applied to each track. */ find(predicate?: (value: Track, index: number, array: Track[]) => unknown): Track[]; findFirst(predicate?: (value: Track, index: number, array: Track[]) => unknown): Track | undefined; /** * Loads a track from a {@link Source} object or a URL string. * * @param source - A {@link Source} descriptor or a URL string pointing to the track resource. * @param loadOptions - Optional type-specific load options (e.g. marker or thumbnail track options). * @returns An Observable that emits the loaded {@link Track}. */ load(source: Source, loadOptions?: TrackLoadOptions | undefined): Observable; load(url: string, loadOptions?: TrackLoadOptions | undefined): Observable; } declare class OmakaseTrackApiImpl implements OmakaseTrackApi, Destroyable { protected _trackRepository: TrackRepository; protected _trackUtils: TrackUtils; protected _playerInternal: PlayerInternalApi | undefined; protected _destroyBreaker: ObserverBreaker; constructor(trackRepository: TrackRepository, trackUtils: TrackUtils); /* Excluded from this release type: setPlayerInternal */ get utils(): TrackUtils; get(id: Track['id']): Track | undefined; delete(id: Track['id']): boolean; find(predicate?: (value: Track, index: number, array: Track[]) => unknown): Track[]; findFirst(predicate?: (value: Track, index: number, array: Track[]) => unknown): Track | undefined; add(track: Track): Track; load(source: Source, loadOptions?: TrackLoadOptions | undefined): Observable; load(url: string, loadOptions?: TrackLoadOptions | undefined): Observable; loadMarkerTrack(track: MarkerTrack, loadOptions?: MarkerTrackLoadOptions): Observable; loadThumbnailTrack(track: ThumbnailTrack, loadOptions?: ThumbnailTrackLoadOptions): Observable; loadTextTrack(track: TextTrack_2, loadOptions?: TextTrackLoadOptions): Observable; loadObservationTrack(track: ObservationTrack, loadOptions?: ObservationTrackLoadOptions): Observable; destroy(): void; } declare interface OmakaseTrackApiMessageChannel { get(id: TrackState['id']): Observable; delete(id: Track['id']): Observable; add(track: TrackState): Observable; find(): Observable; load(sourceOrUrl: SourceState | string, loadOptions?: TrackLoadOptions | undefined): Observable; } declare class OmakaseTrackApiProxy extends BaseMessageChannelProxy implements OmakaseTrackApiMessageChannel { constructor(remoteNode: RemoteNode); add(track: TrackState): Observable; delete(id: Track['id']): Observable; find(): Observable; get(id: TrackState['id']): Observable; load(sourceOrUrl: SourceState | string, loadOptions?: TrackLoadOptions | undefined): Observable; } declare interface OmakaseTrackCommonApi { } export declare class OmakaseVolumeRange extends MediaChromeRange { private _player; protected _destroyBreaker: ObserverBreaker; get player(): PlayerInternalApi | undefined; set player(player: PlayerInternalApi | undefined); constructor(); setVolume(value: number): void; connectedCallback(): void; disconnectedCallback(): void; } declare type OmakaseVttCueData = { [V in OmakaseVttVersion as (typeof OMAKASE_VTT_CUE_DATA_KEY_MAPPING)[V]]?: OmakaseVttCueDataTypeMap[V]; }; declare type OmakaseVttCueDataTypeMap = { [OmakaseVttVersion.OMAKASE_VTT_VERSION_1_0]: { value?: string | undefined; measurement?: string | undefined; comment?: string | undefined; }[]; }; declare enum OmakaseVttVersion { OMAKASE_VTT_VERSION_1_0 = "OMAKASE_VTT_VERSION_1_0" } declare interface OmpCancelableEvent { cancelableEvent: { cancelBubble: boolean; }; } export declare class OmpError extends Error { constructor(message: string, name?: string); } export declare type OmpEvent = { type: T; data: D; }; export declare type OmpEventGroup> = { [K in ET]: OmpEvent; }[ET]; declare interface OmpMouseEvent extends OmpCancelableEvent { mouseEvent: MouseEvent; } export declare class OmpProvider implements Destroyable { readonly alertsManager: AlertsManager; readonly sessionStore: SessionStore; readonly trackRepository: TrackRepository; readonly mainMediaRepository: MainMediaRepository; readonly trackUtils: TrackUtils; readonly omakaseTrack: OmakaseTrackApiImpl; readonly ui: Ui; readonly audioEffectsRegistry: AudioEffectsRegistry; readonly mediaDeserializer: MediaDeserializer; readonly slateProvider: SlateProvider; constructor(); destroy(): void; } declare interface OnMeasurementsChange { /* Excluded from this release type: onMeasurementsChange */ } declare class OpStage { protected _status: OpStageStatus; protected _error: string | undefined; constructor(args?: { status: OpStageStatus; error: string | undefined; }); static of(status: OpStageStatus, error?: string): OpStage; start(): void; success(): void; failure(error: string | undefined): void; get status(): OpStageStatus; get error(): string | undefined; get state(): OpStageState; } declare interface OpStageState extends Serializable { status: OpStageStatus; error: string | undefined; } declare enum OpStageStatus { NOT_STARTED = "NOT_STARTED", IN_PROGRESS = "IN_PROGRESS", SUCCESS = "SUCCESS", FAILURE = "FAILURE" } export declare type OutputTextFileFormatType = FileFormatType.VTT | FileFormatType.SRT | FileFormatType.TTML; declare interface ParsedVttCue { identifier: string; start: number; end: number; text: string; styles: string; data?: OmakaseVttCueData | undefined; } export declare class PeakProcessorAudioLevelSource extends AudioLevelSource { protected _handlerBreaker: ObserverBreaker; protected _player?: OmakasePlayerApi | undefined; protected _audioType?: PlayerAudioType | undefined; protected _trackId?: Track['id'] | undefined; constructor(player?: OmakasePlayerApi, audioType?: PlayerAudioType, trackId?: Track['id']); setHandler(handler: AudioHandlerApi): void; destroy(): void; private resetHandler; private wireEvents; } export declare class Player implements PlayerApi, Destroyable { protected readonly _alertsManager: AlertsManager; protected readonly _onEvent$: Subject; protected _config: PlayerConfig; protected _sessionStore: SessionStore; protected _mainMediaRepository: MainMediaRepository; protected _trackRepository: TrackRepository; protected _trackUtils: TrackUtils; protected _slateProvider: SlateProvider; private _playerLocal; private _playerDetached?; protected _playerAudio: PlayerAudio; protected _playerText: PlayerText; protected _playerInternalSwitchBreaker: ObserverBreaker; protected _destroyBreaker: ObserverBreaker; constructor(ompProvider: OmpProvider, config?: Partial); setChromingInternal(chromingInternal: ChromingInternalApi): void; wireLocal(): void; wireDetached(playerDetached: PlayerDetachedApi): void; protected wirePlayerInternal(playerInternal: PlayerInternalApi): void; protected isAttached(): boolean; protected isAttaching(): boolean; protected isDetached(): boolean; protected isDetaching(): boolean; get playerLocal(): PlayerLocalApi; get playerDetached(): PlayerDetachedApi | undefined; protected getPlayerInternalOrFail(): PlayerInternalApi; clearPlayerSession(): void; getCurrentTime(): MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]; getCurrentTime(format: F): MediaTemporalFormatValueMap[F]; getDuration(): MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]; getDuration(format: F): MediaTemporalFormatValueMap[F]; get isMainMediaLoaded(): boolean; loadMainMedia(url: string, loadOptions?: MainMediaLoadOptions | undefined): Observable; protected _loadMainMedia(mainMedia: MainMedia): Observable; protected checkIsMediaLoaded(): void; protected checkIsStableWindowPlayback(): void; loadSidecarTrack(source: Source, loadOptions?: TrackLoadOptions | undefined): Observable; loadSidecarTrack(url: string, loadOptions?: TrackLoadOptions | undefined): Observable; loadSlate(slateType: SlateType): Observable; removeSidecarTrack(id: Track['id']): Observable; removeAllSidecarTracks(): Observable; restorePlayerSession(playerSession: PlayerSession): Observable; pause(): Observable; play(): Observable; seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat], format?: MediaTemporalFormat): Observable; seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat], format?: MediaTemporalFormat): Observable; convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: D): MediaTemporalFormatValueMap[D]; setPlaybackRate(playbackRate: number): Observable; unloadMainMedia(): Observable; getPlaybackEngine(mainMediaType: MainMediaType.HLS): PlayerPlaybackEngineMapping[MainMediaType.HLS]; getPlaybackEngine(mainMediaType: MainMediaType.MP4): PlayerPlaybackEngineMapping[MainMediaType.MP4]; getPlaybackEngine(mainMediaType: MainMediaType.AUDIO_FILE): PlayerPlaybackEngineMapping[MainMediaType.AUDIO_FILE]; toggleFullScreen(): Observable; isFullScreen(): boolean; extractVideoKeyframe(options?: VideoKeyframeOptions): Observable; get playerSession(): PlayerSession; get mainMedia(): MainMedia | undefined; get htmlMediaElement(): HTMLMediaElement | undefined; get onEvent$(): Observable; get audio(): PlayerAudioApi; get text(): PlayerTextApi; destroy(): void; } export declare const PLAYER_CONFIG_DEFAULT: PlayerConfig; /** * Player API. */ export declare interface PlayerApi extends PlayerCommonApi { /** * Audio API. */ audio: PlayerAudioApi; /** * Text API. */ text: PlayerTextApi; /** * The currently loaded main media, or `undefined` if nothing is loaded. */ mainMedia: MainMedia | undefined; /** * The underlying HTML element, or `undefined` if not yet created. */ htmlMediaElement: HTMLMediaElement | undefined; /** * Loads the primary media source. * * @param url - URL of the media source. * @param loadOptions - Optional load configuration (frame rate, DRM data, poster, etc.). * @returns Observable that emits the {@link MainMedia} once its load stage reaches success. */ loadMainMedia(url: string, loadOptions?: MainMediaLoadOptions | undefined): Observable; /** * Loads a sidecar track (audio or text) from a {@link Source} object or URL string. * * @param source - A {@link Source} object or URL string pointing to the sidecar data. * @param loadOptions - Optional configuration specifying track type, text, or audio options. * @returns Observable that emits the loaded {@link Track}. */ loadSidecarTrack(source: Source, loadOptions?: TrackLoadOptions | undefined): Observable; loadSidecarTrack(url: string, loadOptions?: TrackLoadOptions | undefined): Observable; /** * Replaces the current media with a slate (e.g. a black frame placeholder). * * @param slateType - The type of slate to load. * @returns Observable that emits the slate as a {@link MainMedia} instance. */ loadSlate(slateType: SlateType): Observable; /** Removes a single sidecar track by its id. */ removeSidecarTrack(id: Track['id']): Observable; /** Removes all sidecar tracks. */ removeAllSidecarTracks(): Observable; /** * Restores a previously persisted player session (playback position, audio/text state, etc.). */ restorePlayerSession(playerSession: PlayerSession): Observable; /** @ignore */ getPlaybackEngine(mainMediaType: MainMediaType.HLS): PlayerPlaybackEngineMapping[MainMediaType.HLS]; /** @ignore */ getPlaybackEngine(mainMediaType: MainMediaType.MP4): PlayerPlaybackEngineMapping[MainMediaType.MP4]; /** @ignore */ getPlaybackEngine(mainMediaType: MainMediaType.AUDIO_FILE): PlayerPlaybackEngineMapping[MainMediaType.AUDIO_FILE]; /** * Returns the playback engine instance for the given media type, providing * access to engine-specific configuration (e.g. HLS.js internals). */ getPlaybackEngine(mainMediaType: T): PlayerPlaybackEngineMapping[T]; /** Whether the player is currently in fullscreen mode. */ isFullScreen(): boolean; /** * Extracts video frame from current playhead position * @param options */ extractVideoKeyframe(options?: VideoKeyframeOptions): Observable; } export declare class PlayerAudio implements PlayerAudioApi, Destroyable { protected readonly _onEvent$: Subject; protected _sessionStore: SessionStore; protected _trackRepository: TrackRepository; protected _audioEffectsRegistry: AudioEffectsRegistry; protected _player: PlayerInternalApi; protected _playerBreaker: ObserverBreaker; protected _destroyBreaker: ObserverBreaker; constructor(ompProvider: OmpProvider, player: PlayerInternalApi); get audioEffects(): AudioEffectsRegistry; wirePlayer(player: PlayerInternalApi): void; protected isAttached(): boolean; protected isDetached(): boolean; get audioContext(): AudioContext; get onEvent$(): Observable; get state(): PlayerAudioState; getHandler(playerAudioType: PlayerAudioType, id?: Audio_2['id']): AudioHandlerApi | undefined; getTracks(): Audio_2[]; switchTrack(trackId: Audio_2['id'], activate?: boolean): Observable; private getOutputHandlerOrFail; get muted(): boolean; get volume(): number; mute(): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; toggleMuted(): Observable; unmute(): Observable; destroy(): void; } export declare interface PlayerAudioApi extends PlayerAudioCommonApi { /** * Returns tracks loaded by player */ getTracks(): Audio_2[]; getTracks(playerAudioType: PlayerAudioType.MAIN): Audio_2[]; getTracks(playerAudioType: PlayerAudioType.SIDECAR): Audio_2[]; audioContext: AudioContext; /** * Audio effects registry — use to register custom audio effect implementations. */ audioEffects: AudioEffectsRegistry; } export declare interface PlayerAudioChangeEventData extends Serializable { playerAudio: PlayerAudioState; } export declare interface PlayerAudioCommonApi { /** * Observable that emits audio events as they occur. */ onEvent$: Observable; /** * Current audio state snapshot. */ state: PlayerAudioState; /** * Switches the active audio track. * @param trackId - ID of the track to switch to. * @param activate - Whether to immediately activate the track. Defaults to `true`. */ switchTrack(trackId: Audio_2['id'], activate?: boolean): Observable; /** * Returns the audio handler for the given OUTPUT or MAIN audio type. * @param playerAudioType - The audio type (`OUTPUT` or `MAIN`). */ getHandler(playerAudioType: PlayerAudioType.OUTPUT | PlayerAudioType.MAIN): AudioHandlerApi | undefined; /** * Returns the audio handler for a specific SIDECAR track. * @param playerAudioType - Must be `SIDECAR`. * @param id - ID of the sidecar audio track. */ getHandler(playerAudioType: PlayerAudioType.SIDECAR, id: Audio_2['id']): AudioHandlerApi | undefined; /** * Current volume level, in the range `[0, 1]`. */ volume: number; /** * Whether audio is currently muted. */ muted: boolean; /** * Mutes audio output. */ mute(): Observable; /** * Unmutes audio output. */ unmute(): Observable; /** * Toggles mute and unmute. */ toggleMuted(): Observable; /** * Mutes or unmutes audio output. * @param muted - `true` to mute, `false` to unmute. */ setMuted(muted: boolean): Observable; /** * Sets the volume level. * @param volume - A value in the range `[0, 1]`. */ setVolume(volume: number): Observable; } export declare interface PlayerAudioConfig { audioMode: PlayerAudioMode; } export declare interface PlayerAudioErrorEventData extends PlayerAudioEventData { error: string | undefined; } export declare type PlayerAudioEvent = { [K in PlayerAudioEventType]: { type: K; data: PlayerAudioEventTypeDataMap[K]; }; }[keyof PlayerAudioEventTypeDataMap]; export declare interface PlayerAudioEventData extends Serializable { playerAudio: PlayerAudioState; } export declare enum PlayerAudioEventType { /** Audio sub-system is initializing for the current media (start of setup). */ PLAYER_AUDIO_LOADING = "PLAYER_AUDIO_LOADING", /** Audio sub-system is ready; all embedded tracks have been registered. */ PLAYER_AUDIO_LOADED = "PLAYER_AUDIO_LOADED", /** Audio sub-system failed to initialize. */ PLAYER_AUDIO_LOAD_ERROR = "PLAYER_AUDIO_LOAD_ERROR", /** Audio sub-system has been torn down and all tracks removed. */ PLAYER_AUDIO_UNLOADED = "PLAYER_AUDIO_UNLOADED", /** Fired after any change in audio sub-system (catch-all change notification). */ PLAYER_AUDIO_CHANGE = "PLAYER_AUDIO_CHANGE", /** The active audio track has changed. */ PLAYER_AUDIO_TRACK_SWITCHED = "PLAYER_AUDIO_TRACK_SWITCHED", /** An individual sidecar audio track has started loading. */ PLAYER_AUDIO_TRACK_LOADING = "PLAYER_AUDIO_TRACK_LOADING", /** An individual sidecar audio track finished loading successfully. */ PLAYER_AUDIO_TRACK_LOADED = "PLAYER_AUDIO_TRACK_LOADED", /** An individual sidecar audio track failed to load. */ PLAYER_AUDIO_TRACK_LOAD_ERROR = "PLAYER_AUDIO_TRACK_LOAD_ERROR", /** An individual sidecar audio track has been unloaded. */ PLAYER_AUDIO_TRACK_UNLOADED = "PLAYER_AUDIO_TRACK_UNLOADED", /** The set of tracks requesting media buffering has changed (a track started or stopped requesting buffering). */ PLAYER_AUDIO_TRACKS_REQUESTING_BUFFERING_CHANGE = "PLAYER_AUDIO_TRACKS_REQUESTING_BUFFERING_CHANGE" } export declare type PlayerAudioEventTypeDataMap = { [PlayerAudioEventType.PLAYER_AUDIO_CHANGE]: PlayerAudioEventData; [PlayerAudioEventType.PLAYER_AUDIO_LOADING]: PlayerAudioEventData; [PlayerAudioEventType.PLAYER_AUDIO_LOADED]: PlayerAudioEventData; [PlayerAudioEventType.PLAYER_AUDIO_LOAD_ERROR]: PlayerAudioErrorEventData; [PlayerAudioEventType.PLAYER_AUDIO_UNLOADED]: PlayerAudioEventData; [PlayerAudioEventType.PLAYER_AUDIO_TRACK_SWITCHED]: PlayerAudioTrackSwitchedEventData; [PlayerAudioEventType.PLAYER_AUDIO_TRACK_LOADING]: PlayerAudioTrackEventData; [PlayerAudioEventType.PLAYER_AUDIO_TRACK_LOADED]: PlayerAudioTrackEventData; [PlayerAudioEventType.PLAYER_AUDIO_TRACK_LOAD_ERROR]: PlayerAudioTrackErrorEventData; [PlayerAudioEventType.PLAYER_AUDIO_TRACK_UNLOADED]: PlayerAudioTrackEventData; [PlayerAudioEventType.PLAYER_AUDIO_TRACKS_REQUESTING_BUFFERING_CHANGE]: { playerAudioTracks: PlayerAudioTrackState[]; }; }; declare interface PlayerAudioHandlerApi extends AudioHandlerApi, Destroyable { id: string; state: PlayerAudioHandlerState; setChannelCount(channelCount: number): Observable; restoreState(state: PlayerAudioHandlerState): Observable; } declare interface PlayerAudioHandlerState extends AudioHandlerState { id: string; } export declare class PlayerAudioInternal implements PlayerAudioInternalApi, Destroyable { private readonly _onEvent$; private readonly _onEventQueue$; private _config; private _playerController; private _audioMode; private _playerTracks; private _handlers; private _playerTracksRequestingBuffering; private _eventBreaker; private _destroyBreaker; constructor(config: PlayerAudioConfig); teardown(): void; protected checkIsSetup(): void; setup(playerController: PlayerController, mainMediaState: MainMediaState): void; protected emitPlayerAudioChange(): void; switchTrack(trackId: Audio_2['id'], activate?: boolean): Observable; protected switchTrackPrepare(track: PlayerAudioTrack, activate: boolean): Observable; private _getPlayerTracks; updateTrack(trackState: AudioState): void; getTracks(): AudioState[]; getTracks(playerAudioType: PlayerAudioType.MAIN): AudioState[]; getTracks(playerAudioType: PlayerAudioType.SIDECAR): AudioState[]; getHandler(playerAudioType: PlayerAudioType.OUTPUT | PlayerAudioType.MAIN): AudioHandlerApi | undefined; getHandler(playerAudioType: PlayerAudioType.SIDECAR, id: Audio_2['id']): AudioHandlerApi | undefined; loadSidecarTrack(trackState: AudioState, trackUpdater: (attrs: AudioUpdateableAttrs) => Observable, loadOptions?: PlayerAudioLoadOptions | undefined): Observable; removeSidecarTrack(id: TrackState['id']): Observable; protected _removeSidecarTrack(id: TrackState['id']): Observable; removeAllSidecarTracks(): Observable; _removeAllSidecarTracks(): Observable; get state(): PlayerAudioState; restoreState(state: PlayerAudioState): Observable; get onEvent$(): Observable; private getOutputHandlerOrFail; get muted(): boolean; get volume(): number; mute(): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; toggleMuted(): Observable; unmute(): Observable; destroy(): void; } export declare interface PlayerAudioInternalApi extends PlayerAudioCommonApi { loadSidecarTrack(audioState: AudioState, trackUpdater: (attrs: AudioUpdateableAttrs) => Observable, loadOptions?: PlayerAudioLoadOptions | undefined): Observable; removeSidecarTrack(id: TrackState['id']): Observable; removeAllSidecarTracks(): Observable; updateTrack(trackState: AudioState): void; getTracks(): AudioState[]; getTracks(playerAudioType: PlayerAudioType.MAIN): AudioState[]; getTracks(playerAudioType: PlayerAudioType.SIDECAR): AudioState[]; } declare interface PlayerAudioInternalMessageChannel { onEvent$: Observable; switchTrack(trackId: Audio_2['id'], activate?: boolean): Observable; loadSidecarTrack(audioState: AudioState): Observable; removeSidecarTrack(trackId: Audio_2['id']): Observable; removeAllSidecarTracks(): Observable; mute(): Observable; unmute(): Observable; toggleMuted(): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; state(): Observable; } declare class PlayerAudioInternalProxy extends BaseMessageChannelProxy implements PlayerAudioInternalApi, Destroyable { private readonly _trackRepository; private readonly _session; protected _remoteNode: RemoteNode; private _tracks; private _state?; private readonly _onEventQueue$; private _handlers; private _destroyBreaker; constructor(remoteNode: RemoteNode, ompProvider: OmpProvider); private syncStateOperator; protected initialize(): void; protected updateFromState(playerAudioState: PlayerAudioState): void; private updateAudioHandlerProxies; protected resolveHandlerState(playerAudioType: PlayerAudioType, trackId?: Audio_2['id']): AudioHandlerState | undefined; get onEvent$(): Observable; private checkLateInitialization; get state(): PlayerAudioState; switchTrack(trackId: Audio_2['id'], activate?: boolean): Observable; loadSidecarTrack(audioState: AudioState): Observable; removeSidecarTrack(id: TrackState['id']): Observable; removeAllSidecarTracks(): Observable; getHandler(playerAudioType: PlayerAudioType.OUTPUT | PlayerAudioType.MAIN): AudioHandlerApi | undefined; getHandler(playerAudioType: PlayerAudioType.SIDECAR, id: Audio_2['id']): AudioHandlerApi | undefined; updateTrack(trackState: AudioState): void; private _getTracks; getTracks(): AudioState[]; getTracks(playerAudioType: PlayerAudioType.MAIN): AudioState[]; getTracks(playerAudioType: PlayerAudioType.SIDECAR): AudioState[]; private getOutputHandlerOrFail; get muted(): boolean; get volume(): number; mute(): Observable; setMuted(muted: boolean): Observable; setVolume(volume: number): Observable; toggleMuted(): Observable; unmute(): Observable; destroy(): void; } /** Load options for audio tracks. */ export declare interface PlayerAudioLoadOptions extends PlayerTrackLoadOptions { } /** * Defines the audio playback mode for the player. * * - `SINGLE`: Only one audio track can be active at a time. * - `MULTIPLE`: Multiple audio tracks can play simultaneously. */ export declare enum PlayerAudioMode { SINGLE = "SINGLE", MULTIPLE = "MULTIPLE" } export declare interface PlayerAudioState { audioMode: PlayerAudioMode; tracks: { [PlayerAudioType.MAIN]: PlayerAudioTrackState[]; [PlayerAudioType.SIDECAR]: PlayerAudioTrackState[]; }; handlers: { [PlayerAudioType.OUTPUT]: PlayerAudioHandlerState | undefined; [PlayerAudioType.MAIN]: PlayerAudioHandlerState | undefined; [PlayerAudioType.SIDECAR]: PlayerAudioHandlerState[]; }; } export declare interface PlayerAudioTrack extends PlayerTrack, Destroyable { playerAudioHandler: PlayerAudioHandlerApi; active: boolean; setActive(active: boolean): Observable; } export declare interface PlayerAudioTrackErrorEventData extends PlayerAudioTrackEventData { error: string | undefined; } export declare interface PlayerAudioTrackEventData extends Serializable { playerAudioTrack: PlayerAudioTrackState; } export declare interface PlayerAudioTrackState extends PlayerTrackState { handlerId: PlayerAudioHandlerState['id']; active: boolean; } export declare interface PlayerAudioTrackSwitchedEventData extends Serializable { playerAudio: PlayerAudioState; playerAudioTrack: PlayerAudioTrackState; } export declare enum PlayerAudioType { OUTPUT = "OUTPUT", MAIN = "MAIN", SIDECAR = "SIDECAR" } export declare interface PlayerBufferingEventData extends PlayerControllerBufferingEventData { } export declare interface PlayerChromingChangeEventData extends Serializable { chroming: ChromingState; } export declare interface PlayerChromingCommonConfig { /** * Watermark text or svg */ watermark?: string | undefined; /** * Specifies if watermark is shown when the video is playing */ watermarkVisibility?: WatermarkVisibility | undefined; /** * Specifies if chroming is enabled in fullscreen */ fullscreenChroming?: FullscreenChroming | undefined; /** * CSS file url(s) for player chroming styling */ styleUrl?: string | string[] | undefined; } export declare type PlayerChromingConfig = { [K in ChromingTheme]: PlayerChromingThemeConfig; }[keyof ChromingThemeConfigMap] & PlayerChromingCommonConfig; export declare interface PlayerChromingThemeConfig { /** * Chroming theme determines how the player will be chromed. */ readonly theme: T; /** * Chroming theme configuration */ themeConfig?: Partial | undefined; } /** * Shared API surface inherited by all player variants ({@link PlayerApi}, * {@link PlayerInternalApi}, {@link PlayerLocalApi}, {@link PlayerDetachedApi}). * * Provides playback control, seeking (supporting multiple temporal formats), * time conversion, playback rate, and fullscreen toggling. */ export declare interface PlayerCommonApi { /** * Observable stream of player lifecycle and playback events. */ onEvent$: Observable; /** * Current player session state (playback position, audio/text selection, etc.). */ playerSession: PlayerSession; /** * Whether a main media source is currently loaded and ready. */ isMainMediaLoaded: boolean; /** * Unloads the current main media and releases associated resources. */ unloadMainMedia(): Observable; /** * Starts or resumes playback. */ play(): Observable; /** * Pauses playback. */ pause(): Observable; /** @ignore */ getCurrentTime(): MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]; /** * Returns the current playback time. Defaults to seconds; pass a {@link MediaTemporalFormat} * to get the value in another format (frame count, percent, timecode, media time, countdown). */ getCurrentTime(format: F): MediaTemporalFormatValueMap[F]; /** @ignore */ getDuration(): MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]; /** * Returns the media duration. Defaults to seconds; pass a {@link MediaTemporalFormat} * to get the value in another format. */ getDuration(format: F): MediaTemporalFormatValueMap[F]; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]): Observable; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS], format: MediaTemporalFormat.SECONDS): Observable; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.FRAME_COUNT], format: MediaTemporalFormat.FRAME_COUNT): Observable; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.PERCENT], format: MediaTemporalFormat.PERCENT): Observable; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.TIMECODE], format: MediaTemporalFormat.TIMECODE): Observable; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.MEDIA_TIME], format: MediaTemporalFormat.MEDIA_TIME): Observable; /** @ignore */ seekTo(value: MediaTemporalFormatValueMap[MediaTemporalFormat.COUNTDOWN_MEDIA_TIME], format: MediaTemporalFormat.COUNTDOWN_MEDIA_TIME): Observable; /** * Seeks to an absolute position. The value is interpreted according to the given * {@link MediaTemporalFormat} (defaults to seconds). * * @returns Observable that emits `true` if the seek succeeded. */ seekTo(value: MediaTemporalFormatValueMap[F], format: F): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS], format: MediaTemporalFormat.SECONDS): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.FRAME_COUNT], format: MediaTemporalFormat.FRAME_COUNT): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.PERCENT], format: MediaTemporalFormat.PERCENT): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.TIMECODE], format: MediaTemporalFormat.TIMECODE): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.MEDIA_TIME], format: MediaTemporalFormat.MEDIA_TIME): Observable; /** @ignore */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[MediaTemporalFormat.COUNTDOWN_MEDIA_TIME], format: MediaTemporalFormat.COUNTDOWN_MEDIA_TIME): Observable; /** * Seeks by a relative offset from the current playback position. The value is * interpreted according to the given {@link MediaTemporalFormat} (defaults to seconds). * * @returns Observable that emits `true` if the seek succeeded. */ seekFromCurrentTime(value: MediaTemporalFormatValueMap[F], format: F): Observable; /** @ignore */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: MediaTemporalFormat.SECONDS): MediaTemporalFormatValueMap[MediaTemporalFormat.SECONDS]; /** @ignore */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: MediaTemporalFormat.FRAME_COUNT): MediaTemporalFormatValueMap[MediaTemporalFormat.FRAME_COUNT]; /** @ignore */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: MediaTemporalFormat.PERCENT): MediaTemporalFormatValueMap[MediaTemporalFormat.PERCENT]; /** @ignore */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: MediaTemporalFormat.TIMECODE): MediaTemporalFormatValueMap[MediaTemporalFormat.TIMECODE]; /** @ignore */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: MediaTemporalFormat.MEDIA_TIME): MediaTemporalFormatValueMap[MediaTemporalFormat.MEDIA_TIME]; /** @ignore */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: MediaTemporalFormat.COUNTDOWN_MEDIA_TIME): MediaTemporalFormatValueMap[MediaTemporalFormat.COUNTDOWN_MEDIA_TIME]; /** * Converts a time value from one {@link MediaTemporalFormat} to another * (e.g. seconds → timecode, frame count → percent). * * @param value - The time value to convert. * @param valueFormat - The format of the input value. * @param destinationFormat - The desired output format. */ convertTime(value: MediaTemporalFormatValueMap[S], valueFormat: S, destinationFormat: D): MediaTemporalFormatValueMap[D]; /** * Sets the playback rate. * @param playbackRate - Decimal value in the range [0.1, 16]. For example, `2` plays at 2x speed. */ setPlaybackRate(playbackRate: number): Observable; /** * Toggles between fullscreen and windowed display. */ toggleFullScreen(): Observable; } /** * Shared configuration options for all player variants. */ declare interface PlayerCommonConfig { /** DOM element id of the container that hosts the `