import { BehaviorSubject } from 'rxjs'; import { STAudioQualityEnum } from '../../models/sdk/enums/audio-quality-enum'; import { STContent } from '../../models/sdk/content'; import { STFormData } from '../../models/sdk/form-data'; import { STLocation } from '../../models/sdk/location'; import { STMiddlewareHookInterface } from './middleware-hook-interface'; import { STPlaylist } from '../../models/sdk/playlist'; import { STSite } from '../../models/sdk/site'; import { STTrack } from '../../models/sdk/track'; import { STWidgetConfiguration } from '../../models/sdk/widget-configuration'; export declare class STMiddlewareHook { private static instance; /** * Player observable values */ currentTrack$: BehaviorSubject; currentTrackAudioQuality$: BehaviorSubject; currentPlaylist$: BehaviorSubject; audioDuration$: BehaviorSubject; currentTime$: BehaviorSubject; currentState$: BehaviorSubject; gatedLock$: BehaviorSubject; playRequested$: BehaviorSubject; lastSubscribedMiddlewareHook: STMiddlewareHookInterface; private constructor(); static getInstance(): STMiddlewareHook; /** * Wait untill a middleware hook is available * @param retryAttempts */ private waitForHookAvailability; /** * Get the middleware hook that fits the best requirement * @param preferredHookType */ private getMiddlewareHook; /** * Subscribe to middleware hook observable and unsubscribe to any previous * subscribed middleware observable * Can be called by a new loaded middleware hook (ex: mobile) */ subscribeToObservable(): Promise; /** * Call player load */ load(playable?: STTrack | STPlaylist, index?: number): Promise; /** * Call player play */ play(playable?: STTrack | STPlaylist, index?: number, playbackFromHistory?: boolean): Promise; /** * Call player playAtIndex */ playAtIndex(index: number, playbackFromHistory?: boolean): Promise; /** * Call player next */ next(): Promise; /** * Call player prev */ prev(): Promise; /** * Call player stop */ stop(): Promise; /** * Call player mute */ mute(): Promise; /** * Call player unmute */ unmute(): Promise; /** * Call player seekTo */ seekTo(time: number): Promise; /** * Call player fastForward */ fastForward(time?: number): Promise; /** * Call player rewind */ rewind(time?: number): Promise; /** * Get a content with its key * @param contentKey */ getContent(contentKey: string): Promise; /** * Get a content where the value of the given prop is equal to the given value * @param prop * @param value */ getContentBy(prop: string, value: any): Promise; /** * Get a widget configuration with its key * @param widgetConfigurationKey */ getWidgetConfiguration(widgetConfigurationKey: string): Promise; /** * Get location info */ getLocation(): Promise; /** * Get form data */ getFormData(id: number, formKey: string): Promise; /** * Get cid */ getCid(): Promise; /** * Set cid */ setCid(cid: string): Promise; /** * Get environnement info */ getEnvironment(): Promise; /** * Emit an event */ emitEvent(eventName: string, event?: any): Promise; /** * Subscribe to an event */ onEvent(eventName: string, cb: (event?: any) => any): Promise; /** * Get site info */ getSiteOfLocation(locationKey: string): Promise; }