import { Observable } from 'rxjs'; import { Quality } from './qualities'; export interface Playable { source: string; isPlaying: boolean; playingState$: Observable; loading$: Observable; stats$: Observable; attachMedia(video: HTMLVideoElement): any; loadSource(src: string): any; destroy(): any; play(): any; stop(): any; setVolume(value: number): any; } export interface Seekable extends Playable { currentTime$: Observable; totalTime$: Observable; isSeekable: boolean; seek(position: number): any; } export interface SeekableLive extends Seekable { isLive: boolean; seekToLive(): any; } export interface MultiBitrate extends Playable { qualities$: Observable; currentQuality$: Observable; switchToQuality(quality: Quality): any; } export declare enum PlayingState { PLAYING = "[STATE] playing", STARTED = "[STATE] started", PAUSED = "[STATE] paused", STOPPED = "[STATE] stopped" } export declare enum ContentType { MP4 = "mp4", HLS = "hls", VOD = "vod" } export declare type AnyPlayable = Playable | Seekable | SeekableLive | MultiBitrate;