/** Schema identifier of the optional scroll shortcut file. */ export declare const SHORTCUTS_SCHEMA = "pi-workflows.shortcuts.v1"; /** File name of the optional scroll shortcut file inside the config directory. */ export declare const SHORTCUTS_FILENAME = "shortcuts.json"; /** Resolved scroll shortcuts; `null` means the direction stays unregistered. */ export type ScrollShortcuts = { scrollUp: string | null; scrollDown: string | null; }; /** Behavior with no configuration file, which is also the historical default. */ export declare const DEFAULT_SCROLL_SHORTCUTS: ScrollShortcuts; export type LoadedScrollShortcuts = { shortcuts: ScrollShortcuts; notices: string[]; path: string; }; /** Reads the shortcut file; injectable so tests never touch the real config directory. */ export type ShortcutReader = (filePath: string) => string; /** * Normalize one shortcut to the canonical lowercase `modifier+key` form Pi * matches, or return `null` when Pi's documented key format rejects it. */ export declare function normalizeScrollShortcut(value: string): string | null; /** * Label for the widget controls line. Both directions share one arrow hint when * they use the same modifiers and the up/down arrows, and are listed in full * otherwise. `undefined` means scrolling is off in both directions. */ export declare function scrollShortcutHint(shortcuts: ScrollShortcuts): string | undefined; /** * Read the optional scroll shortcut configuration. A missing file keeps the * defaults, a broken file registers nothing, and a broken field unregisters * only that direction. A failure never falls back to a default. */ export declare function loadScrollShortcuts(options?: { configDir?: string; read?: ShortcutReader; }): LoadedScrollShortcuts;