import { ControllerProfile } from '../models/ControllerProfiles'; import { SequenceMatcherOptions } from '../utils/SequenceMatcher'; export interface UseGamepadSequenceOptions extends SequenceMatcherOptions { /** Controller profile used to resolve button names. Default: 'xbox'. */ controllerProfile?: ControllerProfile; } export interface UseGamepadSequenceReturn { /** Manually reset progress back to the beginning of the sequence. */ reset: () => void; } /** * Detects an arbitrary button sequence and fires a callback when matched. * Works standalone — no `useGamepads` required in the same component. * * Supports button names ("A", "Cross") or raw indices (0, 1, 2…). * * ```tsx * // Konami code (equivalent to onKonamiSuccess) * useGamepadSequence( * ['DPadUp','DPadUp','DPadDown','DPadDown','DPadLeft','DPadRight','DPadLeft','DPadRight','B','A'], * () => activateCheats(), * ); * * // Fighting game combo with 2-second window between inputs * useGamepadSequence(['Down', 'DPadRight', 'A'], () => fireHadouken(), { timeout: 2000 }); * * // PlayStation button names * useGamepadSequence(['Cross', 'Circle', 'Cross'], () => jump(), { controllerProfile: 'playstation' }); * * // Raw indices * useGamepadSequence([0, 1, 0], () => doCombo()); * ``` */ export declare const useGamepadSequence: (sequence: (string | number)[], callback: () => void, options?: UseGamepadSequenceOptions) => UseGamepadSequenceReturn;