import Cursor, { type CursorEvents } from "./cursor.js"; import type Keyboard from "./keyboard.js"; import type { GamepadAction, KeyboardAction, MouseButton } from "./symbols.js"; import type { KeyboardEvents } from "./keyboard.js"; interface InputMapData { keyboard?: KeyboardAction[]; cursor?: MouseButton[]; gamepad?: GamepadAction[]; gamepad_deadzone?: number; /** * Dangerous * @deprecated */ simulated?: boolean; } export declare enum InputSource { KEYBOARD = 1, CURSOR = 2, GAMEPAD = 4 } interface ActionState { sources: number; /** Dangerous */ simulated?: boolean; } type MappedKeys = Record; type Evt = Strict extends true ? keyof K | "*" : keyof K | "*" | (string & {}); export declare class InputMap { current_maps: Map, InputMapData>; current_states: Record, ActionState>; active: boolean; private onceing; /** * This should only be modified by the engine itself */ check_hook?: Function; /** * * @param input * @param parent - unused */ constructor(input?: T); hasSource>(name: K, source: InputSource): boolean; addSource>(name: K, source: InputSource): void; removeSource>(name: K, source: InputSource): void; isPressed>(name: K): boolean; once>(name: K): boolean; } export declare class InputMapHandler { input_map: MP; keyboard?: Keyboard; cursor?: Cursor; hooks: { keyboard?: KeyboardEvents["key-change"]; cursor?: CursorEvents["button-change"]; gamepad_poll?: number; }; allowed_gamepads: number[]; constructor(input_map: MP); tick(): void; tickKeyboard(keyboard: Keyboard): void; setKeyboard(keyboard: Keyboard): this; removeKeyboard(): void; tickCursor(cursor: Cursor): void; setCursor(cursor: Cursor): this; removeCursor(): void; updateGamepads(): void; enableGamepads(poll_interval: number): void; removeGamepads(): void; } export {};