import { Observable, Subject } from 'rxjs'; export interface IPlayable { id: string; elem: any; time: any; buffer: any; track?: any; canPlay: boolean; canPlayThrough: boolean; isMetadataLoaded: boolean; isWaiting: boolean; isCompleted: boolean; isLive: boolean; textTracks: TextTrackList; state: string; subscriptions: IMediaSubscriptions; duration: number; currentTime: number; play: Function; pause: Function; addTextTrack?: Function; dispatchEvent?: Function; } export interface IMediaSubscriptions { abort: Observable; bufferDetected: Subject; canPlay: Observable; canPlayThrough: Observable; durationChange: Observable; emptied: Observable; encrypted: Observable; ended: Observable; error: Observable; loadedData: Observable; loadedMetadata: Observable; loadStart: Observable; pause: Observable; play: Observable; playing: Observable; progress: Observable; rateChange: Observable; seeked: Observable; seeking: Observable; stalled: Observable; suspend: Observable; timeUpdate: Observable; volumeChange: Observable; waiting: Observable; startAds: Observable; endAds: Observable; }