/**
 * useScreenHints — per-screen KeyHintBar registration (audit 2.3).
 *
 * Screens call `useScreenHints([{ key: 'Enter', label: 'Continue' }, ...])`
 * to declare which keys are active on that screen. ConsoleView reads the
 * atom via `useScreenHintsValue()` and renders them alongside the
 * always-present `/` and `Tab` defaults.
 *
 * Hints are module-scoped (not per-store) because at any moment only one
 * screen is active. On unmount / re-render with a different hint set, the
 * atom is overwritten so stale hints never stick around.
 *
 * Uses vanilla nanostores + useSyncExternalStore — matches the
 * `useWizardStore` convention in this repo and avoids pulling in the
 * `@nanostores/react` peer dep.
 */
import type { KeyHint } from '../components/KeyHintBar.js';
/**
 * Register the calling screen's hint list. Clears when the screen unmounts.
 *
 * Stable-identity callers (e.g. a hoisted `const HINTS = [...]` at module
 * scope) avoid re-writing the atom on every render.
 */
export declare function useScreenHints(hints: readonly KeyHint[] | undefined): void;
/** Subscribe to the current screen's hint list (used by ConsoleView). */
export declare function useScreenHintsValue(): readonly KeyHint[];
/** Test-only — reset the module atom between test cases. */
export declare function __resetScreenHintsForTests(): void;
/** Test-only — read the currently-registered hints synchronously. */
export declare function __getScreenHintsForTests(): readonly KeyHint[];
