export class MasterPlaylist { version: number; streams: any[]; /** * @readonly */ readonly isMaster: true; } export class MediaStream { id: number; url: string; default: boolean; autoSelect: boolean; forced: boolean; group: string; name: string; lang: string; segments: any[]; endSN: number; } export class AudioStream extends MediaStream { mediaType: string; channels: number; } export class VideoStream extends MediaStream { mediaType: string; } export class SubTitleStream extends MediaStream { mediaType: string; } export class ClosedCaptionsStream extends MediaStream { mediaType: string; } export class MasterStream { id: number; bitrate: number; width: number; height: number; name: string; url: string; audioCodec: string; videoCodec: string; textCodec: string; audioGroup: string; /** @type {AudioStream[]} */ audioStreams: AudioStream[]; /** @type {SubTitleStream[]} */ subtitleStreams: SubTitleStream[]; /** @type {ClosedCaptionsStream[]} */ closedCaptionsStream: ClosedCaptionsStream[]; } export class MediaPlaylist { version: number; url: string; type: string; startCC: number; endCC: number; startSN: number; endSN: number; totalDuration: number; targetDuration: number; partTargetDuration: number; canSkipUntil: number; canSkipDateRanges: boolean; skippedSegments: number; canBlockReload: boolean; partHoldBack: number; live: boolean; lowLatency: boolean; endPartIndex: number; /** @type {Array.} */ segments: Array; dateRanges: {}; } export class MediaSegment { constructor(parentUrl: any); sn: number; cc: number; url: string; parentUrl: string; title: string; start: number; duration: number; dataTime: string; /** @type {?MediaSegmentKey} */ key: MediaSegmentKey | null; byteRange: any; isInitSegment: boolean; /** @type {?MediaSegment} */ initSegment: MediaSegment | null; isLast: boolean; hasAudio: boolean; hasVideo: boolean; independent: boolean; partIndex: number; get end(): number; setTrackExist(v: any, a: any): void; setByteRange(data: any, prevSegment: any): void; } export class MediaSegmentKey { constructor(segKey: any); method: string; url: string; /** @type {?Uint8Array} */ iv: Uint8Array | null; keyFormat: string; keyFormatVersions: string; clone(sn: any): MediaSegmentKey; setIVFromSN(sn: any): void; isSegmentEncrypted(): boolean; isValidKeySystem(): boolean; isSupported(): boolean; } export class HlsUrlParameters { constructor(msn: any, part: any, skip: any); msn: any; part: any; skip: any; addDirectives(uri: any): string; }