import type { ActionOptions, AudioTrack, AudioTrackState, BaseEventMap, BasePlayerConfig, BasePlaylistItem, CurrentAudioTrackSelection, CurrentQualitySelection, CurrentSubtitleSelection, IPlayer, AudioTrack as KitAudioTrack, Chapter as KitChapter, SubtitleTrack as KitSubtitleTrack, LoadOptions, PlayState, QualityLevel, SidecarSubtitleInput, SubtitleStyle, VolumeState } from '@nomercy-entertainment/nomercy-player-core'; import type { IVideoBackend, VideoBackendKind } from './adapters/video-backend/IVideoBackend.js'; export type { QualityLevel }; /** Re-export under domain names so video consumers don't reach into core. */ export type SubtitleTrackRef = KitSubtitleTrack; export type AudioTrackRef = KitAudioTrack; export type ChapterRef = KitChapter; /** * A single font manifest entry for the `fonts` sidecar field on * `VideoPlaylistItem`. Each entry points to a fonts.json manifest URL or a * direct font file URL that the `OctopusPlugin` should pre-fetch for ASS * subtitle rendering. */ export interface FontTrackRef { /** URL of a `fonts.json` manifest or a direct font file URL. */ file: string; /** Human-readable label (optional, for debugging). */ label?: string; } /** * Continue-watching progress state for a playlist item. Consumers ship this * alongside each item so the playlist menu can render a watched-percentage bar * under the thumbnail without requiring the player to maintain watch history. */ export interface WatchProgress { /** Unix epoch milliseconds of the last watch session. Consumer formats for display. */ timestamp: number; /** 0–100 percent watched (0 = unwatched, 100 = fully watched). */ percentage: number; /** Playback position in seconds, used to resume where the last session left off. */ time?: number; } export interface VideoPlaylistItem extends BasePlaylistItem { title?: string; url?: string; /** * Cover art / poster URL. Surfaced on the `