import { Vector2 } from "../../cauldron/type_definitions/array_type_definitions.js"; import { Handedness } from "../cauldron/input_types.js"; export declare enum GamepadButtonID { /** Trigger */ SELECT = 0, /** Grip */ SQUEEZE = 1, THUMBSTICK = 2, /** B or Y button on oculus quest gamepad, reverts to `TOUCHPAD` button for gamepads that does not support `TOP_BUTTON` */ TOP_BUTTON = 3, /** A or X button on oculus quest gamepad */ BOTTOM_BUTTON = 4, /** Square button on a playstation gamepad */ LEFT_BUTTON = 5, /** Circle button on a playstation gamepad */ RIGHT_BUTTON = 6, MENU = 7, TOUCHPAD = 8, THUMB_REST = 9 } export declare enum GamepadButtonEvent { PRESS_START = 0, PRESS_END = 1, /** Every frame that it is pressed */ PRESSED = 2, /** Every frame that it is not pressed */ NOT_PRESSED = 3, TOUCH_START = 4, TOUCH_END = 5, /** Every frame that it is touched */ TOUCHED = 6, /** Every frame that it is not touched */ NOT_TOUCHED = 7, VALUE_CHANGED = 8, /** Every frame */ ALWAYS = 9 } export declare enum GamepadAxesID { THUMBSTICK = 0 } export declare enum GamepadAxesEvent { X_CHANGED = 0, Y_CHANGED = 1, AXES_CHANGED = 2, ALWAYS = 3 } export declare class GamepadButtonInfo { myID: GamepadButtonID; myHandedness: Handedness; myPressed: boolean; myPrevIsPressed: boolean; myTouched: boolean; myPrevIsTouched: boolean; myValue: number; myPrevValue: number; myTimePressed: number; myPrevTimePressed: number; myTimeNotPressed: number; myPrevTimeNotPressed: number; myTimeTouched: number; myPrevTimeTouched: number; myTimeNotTouched: number; myPrevTimeNotTouched: number; myMultiplePressStartCount: number; myPrevMultiplePressStartCount: number; myMultiplePressEndCount: number; myPrevMultiplePressEndCount: number; myMultipleTouchStartCount: number; myPrevMultipleTouchStartCount: number; myMultipleTouchEndCount: number; myPrevMultipleTouchEndCount: number; constructor(id: GamepadButtonID, handedness: Handedness); getID(): GamepadButtonID; getHandedness(): Handedness; getValue(): number; isPressed(): boolean; isTouched(): boolean; isPressStart(multiplePressCount?: number | null): boolean; isPressEnd(multiplePressCount?: number | null): boolean; isTouchStart(multipleTouchCount?: number | null): boolean; isTouchEnd(multipleTouchCount?: number | null): boolean; reset(): void; clone(): GamepadButtonInfo; } export declare class GamepadAxesInfo { myID: GamepadAxesID; myHandedness: Handedness; /** `myAxes[0]` is X, `myAxes[1]` is Y */ myAxes: Vector2; /** `myPrevAxes[0]` is X, `myPrevAxes[1]` is Y */ myPrevAxes: Vector2; constructor(id: GamepadAxesID, handedness: Handedness); getID(): GamepadAxesID; getAxes(): Readonly; getHandedness(): Handedness; reset(): void; clone(): GamepadAxesInfo; } export declare class GamepadPulseInfo { myIntensity: number; myDuration: number; /** `true` if the gamepad actually sent a request to pulse to the device */ myDevicePulsing: boolean; clone(): GamepadPulseInfo; }