import type { ChromeCastMediaCtors, Translations } from '@nomercy-entertainment/nomercy-player-core'; import type { NMVideoPlayer } from '../../index.js'; import type { VideoPlaylistItem } from '../../types.js'; import { CastSenderPlugin as BaseCastSenderPlugin } from '@nomercy-entertainment/nomercy-player-core'; export type { CastSenderEvents, CastSenderOptions } from '@nomercy-entertainment/nomercy-player-core'; /** Mutable subset of the Cast SDK `MediaMetadata` this plugin writes. */ interface CastMediaMetadata extends Record { title?: string; seriesTitle?: string; subtitle?: string; season?: number; episode?: number; images?: Array<{ url: string; }>; } /** * Video Cast sender — thin override of the kit's shared `CastSenderPlugin`. * Specializes only the bits that differ between music and video: * - `'video/mp4'` default content type * - `TvShowMediaMetadata` (when `item.show` is set) or * `GenericMediaMetadata` builder reading `title` / `show` / `season` / * `episode` / `poster` from the video item shape. * * Translations are auto-discovered from the `./i18n/*.ts` folder. Each file * default-exports its language bundle. Each plugin in the chain (kit base, * this subclass) ships ONLY its own keys — the kit's plugin registration * walks the prototype chain so both bundles end up in the table. * * Everything else — SDK probe, session lifecycle, RemotePlayer event * mirroring, forward* helpers, resume-on-disconnect — lives in the kit. */ export declare class CastSenderPlugin extends BaseCastSenderPlugin, T> { static readonly id: string; static readonly description: string; static readonly translations: Translations; /** Returns `'video/mp4'` as the default content type for video items. */ protected defaultContentType(): string; /** Builds a `TvShowMediaMetadata` or `GenericMediaMetadata` from the video item. */ protected buildMetadata(item: T, ctors: ChromeCastMediaCtors & { TvShowMediaMetadata?: new () => CastMediaMetadata; MovieMediaMetadata?: new () => CastMediaMetadata; }): Promise; } /** Plugin alias for the video {@link CastSenderPlugin}. Pass to `addPlugin(castSenderPlugin)`. */ export declare const castSenderPlugin: typeof CastSenderPlugin;