import type { Translations } from '@nomercy-entertainment/nomercy-player-core'; import type { NMVideoPlayer } from '../../index.js'; import type { VideoPlaylistItem } from '../../types.js'; import { KeyHandlerPlugin as BaseKeyHandler } from '@nomercy-entertainment/nomercy-player-core/plugins/key-handler'; /** * Video key handler — modifier-aware keyboard bindings for the video player. * Subclasses the kit base for cooldown / scope / `when` / cleanup; adds * video-specific groups on top via `addDefaults()`. * * Group methods are protected so vendors can subclass and override one * group without rewriting the rest. Override `addDefaults()` to drop the * whole video set and start fresh. */ export declare class KeyHandlerPlugin extends BaseKeyHandler> { static readonly id: string; static readonly version: string; static readonly description: string; static readonly translations: Translations; private get cfg(); protected mediaControlsAllowed(): boolean; /** Best-effort OSD message — calls `player.displayMessage(...)` if present, also emits `display-message`. */ protected message(text: string): void; protected addDefaults(): void; protected defaultBindings(): void; protected addPlaybackKeys(): void; protected addNavigationKeys(): void; protected addVolumeKeys(): void; protected addMediaKeys(): void; /** VLC-style modifier seeks: shift = ±3s, alt = ±10s, ctrl = ±60s. */ protected addModifierSeekKeys(): void; /** Numeric quick-skip keys (1/3/6/9) and TV remote color buttons (F0–F3). */ protected addQuickSkipKeys(): void; protected addNextPrevKeys(): void; /** Chapter cycling — Shift+N forward, Shift+P backward. */ protected addChapterKeys(): void; protected addFullscreenKeys(): void; /** VLC-style speed: `]` faster, `[` slower, `=` reset to 1x. */ protected addSpeedKeys(): void; /** Frame-advance (`e`) — only when paused; advances ~1 frame at 30fps. */ protected addFrameAdvanceKey(): void; /** Show current time / remaining time as an OSD message. */ protected addShowTimeKey(): void; /** Subtitle font-size events — UI plugins listen on `subtitle-size-up/down`. */ protected addSubtitleSizeKeys(): void; protected addAspectRatioKeys(): void; protected addStopKey(): void; /** * `?` — toggles the desktop UI's keyboard-shortcuts overlay via a direct * call on the mounted `DesktopUiPlugin` instance. No-op when the plugin * isn't mounted. * * Registered as `'shift+?'` because on standard keyboards pressing `?` sends * `key='?'` with `shiftKey=true`. The kit canonicalizer folds modifier state into * the combo key, so `bind('?')` would store `'?'` but the event arrives as * `'shift+?'` — a miss every time. Binding `'shift+?'` matches the actual event. */ protected addHelpKey(): void; } export declare const keyHandlerPlugin: typeof KeyHandlerPlugin;