export type ButtonState = Readonly<{
    down: boolean;
    pressed: boolean;
    released: boolean;
}>;
export interface PointerSnapshot {
    readonly x: number;
    readonly y: number;
    readonly deltaX: number;
    readonly deltaY: number;
    readonly wheelX: number;
    readonly wheelY: number;
    readonly buttons: ReadonlyMap<number, ButtonState>;
    readonly touches: readonly PointerTouch[];
}
export interface PointerTouch {
    readonly id: number;
    readonly x: number;
    readonly y: number;
}
export interface GamepadSnapshot {
    readonly id: string;
    readonly index: number;
    readonly axes: readonly number[];
    readonly buttons: readonly ButtonState[];
}
export interface InputSnapshotOptions {
    readonly keys?: ReadonlySet<string>;
    readonly previousKeys?: ReadonlySet<string>;
    readonly pointer?: Partial<PointerSnapshot>;
    readonly previousPointerButtons?: ReadonlySet<number>;
    readonly gamepads?: readonly GamepadSnapshot[];
}
export declare class InputSnapshot {
    readonly keys: ReadonlySet<string>;
    readonly pointer: PointerSnapshot;
    readonly gamepads: readonly GamepadSnapshot[];
    private readonly previousKeys;
    constructor(options?: InputSnapshotOptions);
    key(code: string): ButtonState;
    button(button: number): ButtonState;
    gamepadButton(gamepadIndex: number, buttonIndex: number): ButtonState;
}
//# sourceMappingURL=InputSnapshot.d.ts.map