import * as rc from "../rive_advanced.mjs"; export interface GamepadInteractionsParams { /** Hold button/axis input at rest unless DOM focus is within the canvas/overlay. Pads still connect. */ requireFocus: boolean; isFocusWithin: () => boolean; } /** * Per-Rive-instance gamepad bridge driving a single state machine. Tracks what that state * machine has been sent and submits only the difference, so after a pause it catches up * without duplicate connected events. */ export declare class GamepadInteractions { private params; private encoder; private stateMachine; private lastSentPads; private submitFailures; constructor(params: GamepadInteractionsParams); /** Poll, diff and submit one batch. Call once per frame before advancing. */ handleGamepadInputs(time: number, stateMachine: rc.StateMachineInstance | undefined): void; dispose(): void; /** Writes records that bring `lastSentPads` up to `pads`, updating it as it goes. */ private encodeDiff; private encodeChanges; }