import type { PlayerEventPayloadMap } from '@openplayerjs/core'; import * as CoreExports from '@openplayerjs/core'; import type { Control } from './control'; import type { ControlPlacement } from './controls/base'; declare global { interface Window { OpenPlayerPlugins?: Record; OpenPlayerConfig?: { /** If true, OpenPlayer plugin bundles may extend the CorePlayer prototype lazily. */ extendPlayerPrototype?: boolean; }; /** Internal: tracks which plugin installs were already applied. */ __OpenPlayerInstalledPlugins?: Record; } } export type UMDPluginEntry = { name: string; factory: (config?: any) => any; /** Prototype-level extension hook (optional). */ install?: (PlayerCtor: any) => void; /** Instance-level extension hook (optional). */ extend?: (player: any, plugin: any, cfg?: any) => void; defaults?: any; kind?: 'plugin' | 'extension' | string; }; type Unsubscribe = () => void; export default class Player { private config; private media; private core; private pendingListeners; private createdPlugins; constructor(target: string | HTMLMediaElement, config?: any); getCore(): CoreExports.Core; init(): CoreExports.Core; on(event: keyof PlayerEventPayloadMap, cb: (...args: any[]) => void): Unsubscribe; emit(event: keyof PlayerEventPayloadMap, ...args: any[]): void; play(): Promise; pause(): void; load(): void; destroy(): void; addCaptions(args: { src: string; srclang?: string; label?: string; kind?: 'captions' | 'subtitles'; default?: boolean; }): HTMLTrackElement; addElement(el: HTMLElement, placement?: ControlPlacement): void; addControl(control: Control): void; get currentTime(): number; set currentTime(value: number); get duration(): number; set src(source: string); get src(): string; set volume(vol: number); get volume(): number; set muted(muted: boolean); get muted(): boolean; set playbackRate(rate: number); get playbackRate(): number; private createDetectedPlugins; } export {}; //# sourceMappingURL=umd.d.ts.map