UNPKG

m3u8parse

Version:

Structural parsing of Apple HTTP Live Streaming .m3u8 format

32 lines (31 loc) 1.83 kB
import type * as AttrT from './attr-types.js'; import { AttrList } from './attrlist.js'; import { BasePlaylist, ImmutableUriMapFunction, Immutify, IRewritableUris, UriMapFunction } from './playlist-base.js'; import { MediaPlaylist } from './playlist-media.js'; import type { Proto } from './types.js'; interface Variant { uri: string; info?: AttrList<AttrT.StreamInf>; } export type EntryType = 'variant' | 'iframe' | 'group' | 'data' | 'session-key'; export declare class MainPlaylist extends BasePlaylist implements IRewritableUris { static cast(index: MediaPlaylist | MainPlaylist): MainPlaylist | never; readonly master: true; /** @see {@link https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-16#section-4.4.6.1 `EXT-X-MEDIA`} */ groups: Map<string, AttrList<AttrT.Media>[]>; /** @see {@link https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-16#section-4.4.6.2 `EXT-X-STREAM-INF`} */ variants: Variant[]; /** @see {@link https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-16#section-4.4.6.3 `EXT-X-I-FRAME-STREAM-INF`} */ iframes: AttrList<AttrT.IFrameStreamInf>[]; /** @see {@link https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-16#section-4.4.6.4 `EXT-X-SESSION-DATA`} */ data: Map<string, AttrList<AttrT.SessionData>[]>; /** @see {@link https://datatracker.ietf.org/doc/html/draft-pantos-hls-rfc8216bis-16#section-4.4.6.5 `EXT-X-SESSION-KEY`} */ session_keys: AttrList<AttrT.SessionKey>[]; constructor(obj?: Proto<MainPlaylist | ImmutableMainPlaylist>); rewriteUris(mapFn: UriMapFunction<EntryType>): this; } interface _ImmutableMain extends MainPlaylist { rewriteUris(mapFn: ImmutableUriMapFunction<EntryType>): this; } export type ImmutableMainPlaylist = Immutify<_ImmutableMain>; export {};