/** * InputManager.ts * * Unified input polling: keyboard, mouse, gamepad state tracking, * action mapping, axis dead zones, and input buffering. * * @module input */ export type InputDeviceType = 'keyboard' | 'mouse' | 'gamepad'; export interface KeyState { pressed: boolean; justPressed: boolean; justReleased: boolean; heldDuration: number; } export interface MouseState { x: number; y: number; deltaX: number; deltaY: number; scrollDelta: number; buttons: Map; } export interface GamepadAxis { value: number; deadZone: number; } export interface GamepadState { connected: boolean; id: string; buttons: Map; axes: GamepadAxis[]; } export interface InputAction { name: string; value: number; pressed: boolean; justPressed: boolean; justReleased: boolean; } export interface InputSnapshot { timestamp: number; keys: Map; mouse: MouseState; gamepads: Map; actions: Map; } export declare class InputManager { private keys; private prevKeys; private mouse; private gamepads; private actionMappings; private actions; private defaultDeadZone; private inputBuffer; private bufferDuration; constructor(); keyDown(key: string): void; keyUp(key: string): void; isKeyPressed(key: string): boolean; isKeyJustPressed(key: string): boolean; isKeyJustReleased(key: string): boolean; getKeyHeldDuration(key: string): number; setMousePosition(x: number, y: number): void; mouseButtonDown(button: number): void; mouseButtonUp(button: number): void; setScrollDelta(delta: number): void; getMousePosition(): { x: number; y: number; }; getMouseDelta(): { x: number; y: number; }; isMouseButtonPressed(button: number): boolean; connectGamepad(index: number, id: string, axisCount?: number): void; disconnectGamepad(index: number): void; setGamepadAxis(padIndex: number, axisIndex: number, value: number): void; getGamepadAxis(padIndex: number, axisIndex: number): number; gamepadButtonDown(padIndex: number, button: number): void; setDeadZone(value: number): void; mapAction(actionName: string, keys: string[]): void; unmapAction(actionName: string): void; getAction(actionName: string): InputAction | undefined; isActionPressed(actionName: string): boolean; isActionJustPressed(actionName: string): boolean; getBufferedAction(actionName: string, withinMs?: number): boolean; setBufferDuration(ms: number): void; update(dt: number): void; getSnapshot(): InputSnapshot; reset(): void; } //# sourceMappingURL=InputManager.d.ts.map