import { MouseButton } from './input/mouse'; export declare function mouseButton(button: MouseButton): { readonly type: "mouse-button"; readonly button: MouseButton; }; export declare function keycode(code: number): { readonly type: "keycode-button"; readonly code: number; }; export declare function gamepadButton(controllerIndex: number, code: number): { readonly type: "gamepad-button"; readonly controllerIndex: number; readonly code: number; }; export declare function mouseAxis(axis: 'x' | 'y'): { readonly type: "mouse-axis"; readonly axis: "x" | "y"; }; export declare function gamepadAxis(controllerIndex: number, axis: number, threshold?: number): { readonly type: "gamepad-axis"; readonly controllerIndex: number; readonly axis: number; readonly threshold: number; }; declare type ButtonAction = ReturnType | ReturnType | ReturnType; declare type AxisAction = ReturnType | ReturnType; declare type InputMap = { buttons: { [id: string]: ButtonAction[]; }; axes: { [id: string]: AxisAction[]; }; }; export declare function useButtonPressed(inputMap: T, key: keyof T['buttons'], sink: () => void): void; export declare function useButtonReleased(inputMap: T, key: keyof T['buttons'], sink: () => void): void; export declare function useButtonHeld(inputMap: T, key: keyof T['buttons'], intervalMs: number, sink: () => void): void; export declare function useAxis(inputMap: T, key: keyof T['axes'], sink: (v: number) => void): void; export {};