import type { Nullable } from "../types"; import { Scene } from "../scene"; import type { ISceneComponent } from "../sceneComponent"; import { GamepadManager } from "./gamepadManager"; declare module "../scene" { interface Scene { /** @internal */ _gamepadManager: Nullable; /** * Gets the gamepad manager associated with the scene * @see https://doc.babylonjs.com/features/featuresDeepDive/input/gamepads */ gamepadManager: GamepadManager; } } declare module "../Cameras/freeCameraInputsManager" { /** * Interface representing a free camera inputs manager */ interface FreeCameraInputsManager { /** * Adds gamepad input support to the FreeCameraInputsManager. * @returns the FreeCameraInputsManager */ addGamepad(): FreeCameraInputsManager; } } declare module "../Cameras/arcRotateCameraInputsManager" { /** * Interface representing an arc rotate camera inputs manager */ interface ArcRotateCameraInputsManager { /** * Adds gamepad input support to the ArcRotateCamera InputManager. * @returns the camera inputs manager */ addGamepad(): ArcRotateCameraInputsManager; } } /** * Defines the gamepad scene component responsible to manage gamepads in a given scene */ export declare class GamepadSystemSceneComponent implements ISceneComponent { /** * The component name helpfull to identify the component in the list of scene components. */ readonly name = "Gamepad"; /** * The scene the component belongs to. */ scene: Scene; /** * Creates a new instance of the component for the given scene * @param scene Defines the scene to register the component in */ constructor(scene: Scene); /** * Registers the component in a given scene */ register(): void; /** * Rebuilds the elements related to this component in case of * context lost for instance. */ rebuild(): void; /** * Disposes the component and the associated resources */ dispose(): void; private _beforeCameraUpdate; }