import { InputSnapshot } from "./InputSnapshot";
export type ActionBinding = {
    readonly type: "keyboard";
    readonly code: string;
} | {
    readonly type: "keyboard-chord";
    readonly codes: readonly string[];
} | {
    readonly type: "pointer";
    readonly button: number;
} | {
    readonly type: "gamepad-button";
    readonly gamepad?: number;
    readonly button: number;
};
export type AxisBinding = {
    readonly type: "keyboard-axis";
    readonly negative: string;
    readonly positive: string;
    readonly scale?: number;
} | {
    readonly type: "pointer-axis";
    readonly axis: "x" | "y" | "wheelX" | "wheelY";
    readonly scale?: number;
} | {
    readonly type: "gamepad-axis";
    readonly gamepad?: number;
    readonly axis: number;
    readonly scale?: number;
};
export declare class ActionMap {
    private readonly actions;
    private readonly axes;
    private snapshot;
    bind(name: string, bindings: readonly ActionBinding[]): void;
    bindAxis(name: string, bindings: readonly AxisBinding[]): void;
    useSnapshot(snapshot: InputSnapshot): void;
    down(name: string, snapshot?: InputSnapshot): boolean;
    pressed(name: string, snapshot?: InputSnapshot): boolean;
    released(name: string, snapshot?: InputSnapshot): boolean;
    axis(name: string, snapshot?: InputSnapshot): number;
    private evaluate;
}
//# sourceMappingURL=ActionMap.d.ts.map