export interface MediaTextTrack { id: string; label: string; language: string; kind: string; mode: string; } export interface MediaError { code: number; message: string; } export interface MediaState { paused: boolean; ended: boolean; waiting: boolean; seeking: boolean; /** readyState ≥ HAVE_CURRENT_DATA */ ready: boolean; currentTime: number; duration: number; buffered: [number, number][]; volume: number; muted: boolean; playbackRate: number; pictureInPicture: boolean; textTracks: MediaTextTrack[]; error: MediaError | null; tone: 'light' | 'dark' | undefined; } export declare const SERVER_SNAPSHOT: MediaState; /** Every HTMLMediaElement event the store listens to (PRD-SURF §4.6 plus the * readiness events that move `ready`/`waiting`). Exported for the event-matrix * test only; not part of the ./media barrel. */ export declare const MEDIA_EVENTS: readonly ["play", "playing", "pause", "ended", "waiting", "seeking", "seeked", "timeupdate", "durationchange", "progress", "volumechange", "ratechange", "error", "loadedmetadata", "loadeddata", "canplay", "canplaythrough", "emptied", "enterpictureinpicture", "leavepictureinpicture"]; /** TextTrackList events: tracks added/removed, or a track's mode changed. */ export declare const TEXT_TRACK_EVENTS: readonly ["addtrack", "removetrack", "change"]; interface Store { state: MediaState; listeners: Set<() => void>; abort: AbortController; lastPublish: number; timer: ReturnType | null; } export declare function ensureStore(el: HTMLMediaElement, snapshotHz: number): Store; /** The element's single AbortSignal (creating its store if needed). Every * listener the ./media hook adds to the element must carry it (REQ-SURF-133). */ export declare function getSignal(el: HTMLMediaElement, snapshotHz: number): AbortSignal; export declare function subscribe(el: HTMLMediaElement, cb: () => void, snapshotHz: number): () => void; export declare function getSnapshot(el: HTMLMediaElement, snapshotHz: number): MediaState; export declare function getServerSnapshot(): MediaState; export declare function destroyStore(el: HTMLMediaElement): void; export declare function setError(el: HTMLMediaElement, error: MediaError | null): void; export declare function setTone(el: HTMLMediaElement, tone: MediaState['tone']): void; export {}; //# sourceMappingURL=mediaStore.d.ts.map