/**
 * GamepadNavigationContext — React context for UI-level spatial
 * gamepad/keyboard navigation (focus management, focus traps, game-mode lock).
 *
 * For in-game input, use InputManager from `./input`.
 * This context is for navigating UI elements (menus, buttons, selects)
 * with a gamepad d-pad or analog stick.
 */
import React, { type ReactNode } from "react";
export interface FocusableMeta {
    id: string;
    ref: React.RefObject<HTMLElement>;
    x: number;
    y: number;
    width: number;
    height: number;
    isDropdown?: boolean;
}
export interface GamepadNavigationContextType {
    register: (meta: FocusableMeta) => void;
    unregister: (id: string) => void;
    moveFocus: (dx: number, dy: number) => void;
    setActive: (id: string) => void;
    activeId: string | null;
    focusables: FocusableMeta[];
    pushFocusTrap: (prefix: string, onDismiss?: () => void) => void;
    popFocusTrap: () => void;
    enterGameMode: () => void;
    exitGameMode: () => void;
}
export declare function GamepadNavigationProvider({ children }: {
    children: ReactNode;
}): import("react/jsx-runtime").JSX.Element;
export declare function useGamepadNavigation(): GamepadNavigationContextType;
