import { Vector2 } from "../../cauldron/type_definitions/array_type_definitions.js"; import { Handedness } from "../cauldron/input_types.js"; import { HandPose } from "../pose/hand_pose.js"; import { GamepadAxesEvent, GamepadAxesID, GamepadAxesInfo, GamepadButtonEvent, GamepadButtonID, GamepadButtonInfo, GamepadPulseInfo } from "./gamepad_buttons.js"; export declare class GamepadRawButtonData { myValue: number; myPressed: boolean; myTouched: boolean; reset(): void; } export declare class GamepadRawAxesData { myAxes: Vector2; reset(): void; } export declare abstract class Gamepad { private readonly _myHandedness; private readonly _myButtonInfos; private readonly _myButtonInfosIDs; private readonly _myAxesInfos; private readonly _myAxesInfosIDs; private readonly _myButtonEmitters; private readonly _myAxesEmitters; private readonly _myPulseInfo; private _myActive; private _myMultiplePressMaxDelay; private _myMultipleTouchMaxDelay; private _myDestroyed; constructor(handedness: Handedness); setActive(active: boolean): void; isActive(): boolean; getHandedness(): Handedness; getButtonInfo(buttonID: GamepadButtonID): Readonly; registerButtonEventListener(buttonID: GamepadButtonID, buttonEvent: GamepadButtonEvent, id: unknown, listener: (buttonInfo: Readonly, gamepad: Gamepad) => void): void; unregisterButtonEventListener(buttonID: GamepadButtonID, buttonEvent: GamepadButtonEvent, id: unknown): void; getAxesInfo(axesID: GamepadAxesID): Readonly; registerAxesEventListener(axesID: GamepadAxesID, axesEvent: GamepadAxesEvent, id: unknown, listener: (axesInfo: Readonly, gamepad: Gamepad) => void): void; unregisterAxesEventListener(axesID: GamepadAxesID, axesEvent: GamepadAxesEvent, id: unknown): void; pulse(intensity: number, duration?: number): void; stopPulse(): void; isPulsing(): boolean; getPulseInfo(): Readonly; getMultiplePressMaxDelay(): number; setMultiplePressMaxDelay(maxDelay: number): void; getMultipleTouchMaxDelay(): number; setMultipleTouchMaxDelay(maxDelay: number): void; getHandPose(): HandPose | null; protected _setActiveHook(active: boolean): void; protected _startHook(): void; protected _preUpdate(dt: number): void; protected _postUpdate(dt: number): void; protected _getButtonData(buttonID: GamepadButtonID): Readonly; protected _getAxesData(axesID: GamepadAxesID): Readonly; protected _getHapticActuators(): GamepadHapticActuator[]; protected _destroyHook(): void; start(): void; update(dt: number): void; private _preUpdateButtonInfos; private _updateButtonInfos; private _updateSingleButtonInfo; private _postUpdateButtonInfos; private _preUpdateAxesInfos; private _updateAxesInfos; private _updateSingleAxesInfo; private _postUpdateAxesInfos; private _updatePulse; destroy(): void; isDestroyed(): boolean; }