/**
 * useGamepad — Hook for gamepad/controller support
 *
 * Supports Xbox, PlayStation, and generic controllers.
 * Provides button mapping, axis input, and action binding.
 */
export type GamepadButton = 'A' | 'B' | 'X' | 'Y' | 'LB' | 'RB' | 'LT' | 'RT' | 'Back' | 'Start' | 'LS' | 'RS' | 'DpadUp' | 'DpadDown' | 'DpadLeft' | 'DpadRight' | 'Home';
export type GamepadAxis = 'LeftX' | 'LeftY' | 'RightX' | 'RightY';
export interface GamepadState {
    connected: boolean;
    id: string;
    buttons: Record<GamepadButton, boolean>;
    axes: Record<GamepadAxis, number>;
    leftTrigger: number;
    rightTrigger: number;
    vibrate: (duration: number, weakMagnitude?: number, strongMagnitude?: number) => void;
}
export interface GamepadAction {
    button?: GamepadButton;
    buttons?: GamepadButton[];
    axis?: GamepadAxis;
    axisDirection?: 'positive' | 'negative';
    trigger?: 'LT' | 'RT';
    onPress?: () => void;
    onRelease?: () => void;
    onHold?: () => void;
    onAxisChange?: (value: number) => void;
    repeatDelay?: number;
    repeatRate?: number;
}
export interface UseGamepadOptions {
    /** Gamepad index to use (default: 0) */
    index?: number;
    /** Deadzone for analog sticks (default: 0.15) */
    deadzone?: number;
    /** Polling rate in ms (default: 16 = ~60fps) */
    pollRate?: number;
    /** Action bindings */
    actions?: Record<string, GamepadAction>;
    /** Enable/disable (default: true) */
    enabled?: boolean;
}
export declare const PS_BUTTON_ALIASES: Record<string, GamepadButton>;
export declare function useGamepad(options?: UseGamepadOptions): GamepadState;
export interface NavigationActions {
    onNavigateUp?: () => void;
    onNavigateDown?: () => void;
    onNavigateLeft?: () => void;
    onNavigateRight?: () => void;
    onConfirm?: () => void;
    onCancel?: () => void;
    onTabNext?: () => void;
    onTabPrev?: () => void;
    onMenu?: () => void;
}
/** Create standard UI navigation action map */
export declare function createNavigationActions(handlers: NavigationActions): Record<string, GamepadAction>;
export interface GamepadIndicatorProps {
    connected: boolean;
    id?: string;
    showId?: boolean;
}
/** Simple indicator showing gamepad connection status */
export declare const GamepadIndicator: ({ connected, id, showId }: GamepadIndicatorProps) => import("react/jsx-runtime").JSX.Element | null;
