/** * @callback m3u8ParseCallback * @param {string} m3u8 * @returns {string?} */ /** * @typedef {{ * media: HTMLMediaElement, * url?: string, * isLive?: boolean, * softDecode?: boolean, * targetLatency?: number, * maxPlaylistSize?: number, * maxLatency?: number, * bufferBehind?: number, * maxJumpDistance?: number, * startTime?: number, * retryCount?: number, * retryDelay?: number, * loadTimeout?: number, * manifestLoadTimeout?:number, * preloadTime?: number, * disconnectTime?: number, * allowedStreamTrackChange?: boolean, * seiInTime?: boolean, * manifestList?: Array<{url: string, manifest: string}> * fetchOptions?: RequestInit * onPreM3U8Parse?: m3u8ParseCallback, * decryptor?: Decryptor, * minSegmentsStartPlay?: number, * preferMMS?: boolean, * preferMMSStreaming?: boolean, * mseLowLatency?: boolean, * forceFixLargeGap?:boolean, * }} HlsOption */ /** * @param {HlsOption} cfg * @returns {HlsOption} */ export function getConfig(cfg: HlsOption): HlsOption; export type m3u8ParseCallback = (m3u8: string) => string | null; export type HlsOption = { media: HTMLMediaElement; url?: string; isLive?: boolean; softDecode?: boolean; targetLatency?: number; maxPlaylistSize?: number; maxLatency?: number; bufferBehind?: number; maxJumpDistance?: number; startTime?: number; retryCount?: number; retryDelay?: number; loadTimeout?: number; manifestLoadTimeout?: number; preloadTime?: number; disconnectTime?: number; allowedStreamTrackChange?: boolean; seiInTime?: boolean; manifestList?: Array<{ url: string; manifest: string; }>; fetchOptions?: RequestInit; onPreM3U8Parse?: m3u8ParseCallback; decryptor?: Decryptor; minSegmentsStartPlay?: number; preferMMS?: boolean; preferMMSStreaming?: boolean; mseLowLatency?: boolean; forceFixLargeGap?: boolean; };