export declare class M3U8ParseError extends Error { } interface BaseChunk { url: string; } interface NormalChunk extends BaseChunk { length: number; sequenceId: number; isInitialChunk: false; } interface InitialChunk extends BaseChunk { isInitialChunk: true; } interface PlainNormalChunk extends NormalChunk { isEncrypted: false; } interface EncryptedNormalChunk extends NormalChunk { key: string; iv: string; isEncrypted: true; } interface PlainInitialChunk extends InitialChunk { isEncrypted: false; } interface EncryptedInitialChunk extends InitialChunk { key: string; iv: string; isEncrypted: true; } export type M3U8Chunk = PlainNormalChunk | EncryptedNormalChunk | PlainInitialChunk | EncryptedInitialChunk; export interface Stream { url: string; bandwidth: number; codecs?: string; frameRate?: number; resolution?: { width: number; height: number; }; } export declare const isInitialChunk: (chunk: M3U8Chunk) => chunk is PlainInitialChunk | EncryptedInitialChunk; export declare const isNormalChunk: (chunk: M3U8Chunk) => chunk is PlainNormalChunk | EncryptedNormalChunk; export declare const isEncryptedChunk: (chunk: M3U8Chunk) => chunk is EncryptedNormalChunk | EncryptedInitialChunk; export declare class MasterPlaylist { m3u8Content: string; m3u8Url: string; streams: Stream[]; constructor({ m3u8Content, m3u8Url }: { m3u8Content: string; m3u8Url: string; }); private parse; } export interface PlaylistParseParams { m3u8Content: string; m3u8Url?: string; } export declare class Playlist { m3u8Content: string; m3u8Url: string; sequenceId: number; isEnd: boolean; chunks: M3U8Chunk[]; encryptKeys: string[]; averageChunkLength: number; totalChunkLength: number; constructor({ m3u8Content, m3u8Url }: PlaylistParseParams); /** * 解析基本属性 */ private parse; /** * average length of chunks * @returns */ getChunkLength(): number; getTotalChunkLength(): number; } export default class M3U8 { m3u8Content: string; m3u8Url: string; initPrimaryKey: number; constructor({ m3u8Content, m3u8Url, initPrimaryKey, }: { m3u8Content: string; m3u8Url?: string; initPrimaryKey?: number; }); parse(): MasterPlaylist | Playlist; } export {};