/** * type interfaces * * author: db123 at db * creation: 22/4/2026 */ export interface AdapterAPI { load: () => void; play: () => void; pause: () => void; destroy: () => void; time: number; volume: number; muted: boolean; readonly duration: () => number; } export interface PlayerConfig { type?: "native" | "hls" | "dash"; theme?: "dark" | "light"; accent?: string; controls?: boolean | ControlConfig; preload?: "auto" | "metadata" | "none"; autoplay?: boolean; loop?: boolean; muted?: boolean; adapters?: AdapterConfig; prefixClass: string; } export interface ControlConfig { playToggle: boolean; seekPos: number; seekNeg: number; qualitySelector: boolean; playbackSpeed: Array; fullscreen: boolean; volume: boolean; progressBar: boolean; currentTime: boolean; timeLeft: boolean; } export interface AdapterConfig { native?: boolean; hls?: boolean | HLSOptions; dash?: boolean | DASHOptions; } export interface HLSOptions { enableWorker?: boolean; } export interface DASHOptions { enableWorker?: boolean; } export interface PlayerEvents { onPlay?: () => void; onPause?: () => void; onEnd?: () => void; onError?: () => void; onBuffer?: () => void; }