import { HlsJsMedia, HlsSource } from "../hls-js/media.js"; import { MuxContentData, MuxDrmParams, MuxSourceBase } from "./source/source.js"; //#region src/dom/mux/media.d.ts /** * Structured Mux source for the hls.js-backed Media: Mux identity and params * from {@link MuxSourceBase}, plus everything the HLS layer takes — `type`, * `preferPlayback`, and its `engine` config. */ interface MuxSource extends HlsSource, MuxSourceBase { /** * The inherited license servers, or a Mux license `token` to derive them from. * Redeclared because both halves name `drm`, and Mux's is the wider of the two. */ drm?: MuxDrmParams | undefined; } interface MuxMediaProps { src: string; source: MuxSource | null; } declare const muxMediaDefaultProps: MuxMediaProps; /** * @fires sourcechange - Fired when `source` changes, either directly or by parsing a new `src`. Read `source` for the new value. * @fires contentdatachange - Fired when the derived `contentData` changes. Read `contentData` for the new value. */ declare class MuxMedia extends HlsJsMedia implements MuxMediaProps { #private; /** * Media source URL. Setting a Mux stream URL * (`https://stream.mux.com/.m3u8?...`) extracts the playback ID * and query params into `source`; other URLs are kept as a plain `source.src`. * * Only playback options carry over. Mux identity comes from the URL, and the * signed `poster`, `storyboard`, and `drm` tokens are scoped to a playback ID, * so carrying them onto a different source would build rejected URLs. */ get src(): string; set src(value: string); /** * Structured Mux source. Setting it derives `src` from the playback ID, * custom domain, and `playback` params (appended as `snake_case` query * params). A `playback.token` replaces all other params — signed URLs bake * them into the token. Engine options live under `engine`. * * A `drm.token` fills in `drm` itself: Mux's FairPlay, Widevine, and * PlayReady license servers for this playback ID, so protected media plays * whichever path the browser takes. License servers named alongside the token * win, key by key, for content Mux does not license. * * `playback.maxResolution` and `playback.minResolution` are server-side: they * decide which renditions Mux puts in the manifest at all. The inherited * `maxAutoResolution` and `minAutoResolution` only look like their pair — * those are client-side and bound which of the renditions that *do* arrive * adaptive selection reaches for. The two halves are independent. */ get source(): MuxSource | null; set source(value: MuxSource | null); /** * Image URLs `source` describes rather than plays: `poster` from its `poster` * params, `storyboard` from its `storyboard` params. A key is absent when the * URL can't be built — no playback ID, or signed playback without a matching * image token. * * Derived from `source` and nothing else. The same object is handed back * until one of those URLs changes, and `contentdatachange` announces it when * it does. Nothing here is applied for you, apart from the thumbnail track * `` adds from `storyboard` (and drops for live streams). */ get contentData(): MuxContentData; } //#endregion export { MuxMedia, MuxMediaProps, MuxSource, muxMediaDefaultProps }; //# sourceMappingURL=media.d.ts.map