import { HlsConfig } from 'hls.js'; /** Apply a (possibly partial) theme to a player root element as CSS variables. */ export declare function applyTheme(root: HTMLElement, theme?: Partial): void; /** A selectable audio rendition. */ export declare interface AudioTrackInfo { id: number; name: string; lang?: string; default: boolean; } /** * The API base URL for a named environment. * * Mode A takes {@link HavikEnv} directly (`createPlayer({ env: 'production' })`). * Mode B and Mode C still take a `baseUrl`, so call this to get one rather * than copying a hostname into your own config: * * ```ts * resolveStream({ baseUrl: baseUrlForEnv('production'), matchUrn, credential }); * ``` * * Throws on an unrecognized value rather than returning undefined — callers * reach this from plain JS where the type gives no protection, and a silent * undefined becomes a relative URL against the embedding page. */ export declare function baseUrlForEnv(env: HavikEnv): string; /** * Boots the iframe-side player and speaks the postMessage protocol with the host. * The api-key is NEVER accepted over postMessage. The bridge fails CLOSED: with no * trusted parentOrigin it neither accepts commands nor broadcasts events. */ export declare function bootEmbed(): Promise; export declare interface Catalog { tournaments: CatalogTournament[]; /** ETag for a cheap conditional refresh next time. */ etag?: string; /** True when the server returned 304 (the prior etag is still fresh); tournaments is empty. */ notModified: boolean; } export declare interface CatalogMatch { matchUrn: string; matchName: string; status: MatchLiveStatus; datePlannedStart?: string; tournamentUrn: string; tournamentName: string; sport: string; } export declare interface CatalogTournament { urn: string; name: string; sport: string; isOffline: boolean; matches: CatalogMatch[]; } /** * Clear the persisted device id (localStorage + in-memory cache). The next * getDeviceId() generates a fresh one. Provide this to viewers as a privacy / * "reset my device identifier" control — the device id is sent as X-Device-Id * on every DRM license request and persists across sessions. */ export declare function clearDeviceId(): void; /** * Endpoint selection, enforced at COMPILE time. * * `env` and `baseUrl` are both optional on {@link CreatePlayerOptions} so it * stays an interface others can `extend` and `Partial<>`. That alone would * make "neither given" type-check and fail only in the browser, which is a * guarantee this SDK used to have while `baseUrl` was required. These two * overloads put it back at the call site without changing the interface: one * names `env` and forbids `baseUrl`, the other the reverse, so neither and * both are both "no overload matches this call". * * resolveEndpoint still enforces the same rule at runtime — the overloads do * nothing for a JavaScript caller, and that is most of the embed surface. */ export declare function createPlayer(opts: CreatePlayerOptions & { env: HavikEnv; baseUrl?: never; }): Promise; export declare function createPlayer(opts: CreatePlayerOptions & { baseUrl: string; env?: never; }): Promise; export declare interface CreatePlayerOptions { /** The