export declare class M3U8ParseError extends Error { } export interface M3U8Chunk { url: string; sequenceId: number; length: number; isEncrypted: false; } export interface EncryptedM3U8Chunk { url: string; sequenceId: number; length: number; key: string; iv: string; isEncrypted: true; } export interface Stream { url: string; bandwidth: number; codecs?: string; frameRate?: number; resolution?: { width: number; height: number; }; } export declare class MasterPlaylist { m3u8Content: string; m3u8Url: string; streams: Stream[]; constructor({ m3u8Content, m3u8Url }: { m3u8Content: string; m3u8Url: string; }); private parse; } export declare class Playlist { m3u8Content: string; m3u8Url: string; isEnd: boolean; chunks: (M3U8Chunk | EncryptedM3U8Chunk)[]; encryptKeys: string[]; averageChunkLength: number; constructor({ m3u8Content, m3u8Url }: { m3u8Content: string; m3u8Url?: string; }); /** * 解析基本属性 */ private parse; /** * average length of chunks * @returns */ getChunkLength(): number; } export default class M3U8 { m3u8Content: string; m3u8Url: string; constructor({ m3u8Content, m3u8Url }: { m3u8Content: string; m3u8Url?: string; }); parse(): MasterPlaylist | Playlist; }