/** * Icon-state mixin — all `apply*` helpers that update button icons, aria-labels, * and visual state in response to player events. * * `buttonState.ts` owns the pure DOM-mutation free functions; this mixin binds * them to the plugin's button refs, player, and state bags. It also holds the * quality-label resolution logic that requires both player and menu state. * * Owns: applyVolume, applyMuted, applyMutedIcon, applyPopupMuteIcon, applyRate, * applyAudioIcon, applyQualityIcon, playingQualityLabel, * resolvePlayingQualityIdx, applyFullscreen, applyTheaterIcon, * applySubsIcon, applyMenuSubsIcon, applyPipIcon, applyAspectRatioIcon. */ import type { DesktopUiInternals } from '../internals.js'; export declare const iconStateMethods: { readonly applyVolume: (this: DesktopUiInternals, level: number) => void; readonly applyMuted: (this: DesktopUiInternals, muted: boolean) => void; readonly applyMutedIcon: (this: DesktopUiInternals) => void; readonly applyPopupMuteIcon: (this: DesktopUiInternals, muted: boolean) => void; readonly applyRate: (this: DesktopUiInternals) => void; readonly applyAudioIcon: (this: DesktopUiInternals) => void; readonly applyQualityIcon: (this: DesktopUiInternals) => void; /** * Human label for the level the backend is actually playing right now * (e.g. "1080p"). Returns `undefined` when no level info is available * (before `level-switched` lands, or non-HLS sources). */ readonly playingQualityLabel: (this: DesktopUiInternals) => string | undefined; /** * The level index the backend is actually playing. Prefers the cached * `playingQualityIdx` (updated on `level-switched`), falls back to peeking * `backend.currentLevel()` before the first `level-switched` fires. * Returns null when no level is known. */ readonly resolvePlayingQualityIdx: (this: DesktopUiInternals) => number | null; readonly applyFullscreen: (this: DesktopUiInternals) => void; readonly applyTheaterIcon: (this: DesktopUiInternals, active: boolean) => void; readonly applySubsIcon: (this: DesktopUiInternals) => void; /** Mirror the bottom-bar subtitle on/off state onto the menu category button. */ readonly applyMenuSubsIcon: (this: DesktopUiInternals) => void; readonly applyPipIcon: (this: DesktopUiInternals, active: boolean) => void; readonly applyAspectRatioIcon: (this: DesktopUiInternals) => void; };