import { ActionMap } from "./ActionMap";
import { GamepadDevice, type GamepadLike } from "./GamepadDevice";
import { InputSnapshot } from "./InputSnapshot";
import { KeyboardDevice } from "./KeyboardDevice";
import { PointerDevice } from "./PointerDevice";
export interface InputEventTargetLike {
    addEventListener(type: string, listener: EventListener): void;
    removeEventListener(type: string, listener: EventListener): void;
}
export declare class InputSystem {
    readonly keyboard: KeyboardDevice;
    readonly pointer: PointerDevice;
    readonly gamepads: GamepadDevice;
    readonly actions: ActionMap;
    private readonly attachedTargets;
    private snapshotRef;
    constructor(target?: InputEventTargetLike);
    get snapshot(): InputSnapshot;
    attach(target: InputEventTargetLike): void;
    update(gamepads?: readonly (GamepadLike | null | undefined)[]): InputSnapshot;
    endFrame(): void;
    dispose(): void;
}
//# sourceMappingURL=InputSystem.d.ts.map