import type { OptionInput as LegacyOptionInput, Thumbnails } from '../option' import type { ComponentInput, ControlInput } from './component' import type { MediaSurface } from './media' import type { PluginFactory } from './plugin' import type { Languages } from './services' import type { SettingItem } from './setting' import type { SubtitleOption } from './subtitle' /** Callback receivers are the unchanged player instance selected by this view. */ export interface OptionInput extends Omit { container: string | HTMLDivElement proxy?: (this: Host, art: Host) => MediaSurface | undefined plugins?: PluginFactory[] layers?: ComponentInput[] controls?: ControlInput[] contextmenu?: ComponentInput[] settings?: SettingItem[] customType?: Record unknown) | undefined> i18n?: Languages icons?: Record } /** Defaults are merged once; later setters may replace thumbnails with a partial input. */ export interface Option extends Omit>, 'proxy' | 'subtitle' | 'thumbnails'> { proxy: OptionInput['proxy'] subtitle: SubtitleOption thumbnails: Thumbnails }