/**
 * @webxr-input-profiles/motion-controllers 1.0.0 https://github.com/immersive-web/webxr-input-profiles
 */
declare const Constants: {
    Handedness: Readonly<{
        NONE: "none";
        LEFT: "left";
        RIGHT: "right";
    }>;
    ComponentState: Readonly<{
        DEFAULT: "default";
        TOUCHED: "touched";
        PRESSED: "pressed";
    }>;
    ComponentProperty: Readonly<{
        BUTTON: "button";
        X_AXIS: "xAxis";
        Y_AXIS: "yAxis";
        STATE: "state";
    }>;
    ComponentType: Readonly<{
        TRIGGER: "trigger";
        SQUEEZE: "squeeze";
        TOUCHPAD: "touchpad";
        THUMBSTICK: "thumbstick";
        BUTTON: "button";
    }>;
    ButtonTouchThreshold: number;
    AxisTouchThreshold: number;
    VisualResponseProperty: Readonly<{
        TRANSFORM: "transform";
        VISIBILITY: "visibility";
    }>;
};
declare function fetchProfilesList(basePath: string): Promise<any>;
declare function fetchProfile(xrInputSource: XRInputSource, basePath: string, defaultProfile?: string | null, getAssetPath?: boolean): Promise<{
    profile: any;
    assetPath: any;
}>;
/**
  * @description Builds a motion controller with components and visual responses based on the
  * supplied profile description. Data is polled from the xrInputSource's gamepad.
  * @author Nell Waliczek / https://github.com/NellWaliczek
*/
declare class MotionController {
    /**
     * @param {Object} xrInputSource - The XRInputSource to build the MotionController around
     * @param {Object} profile - The best matched profile description for the supplied xrInputSource
     * @param {Object} assetUrl
     */
    xrInputSource: XRInputSource;
    assetUrl: string;
    id: any;
    layoutDescription: any;
    components: any;
    constructor(xrInputSource: XRInputSource, profile: any, assetUrl: string);
    get gripSpace(): XRSpace | undefined;
    get targetRaySpace(): XRSpace;
    /**
     * @description Returns a subset of component data for simplified debugging
     */
    get data(): any[];
    /**
     * @description Poll for updated data based on current gamepad state
     */
    updateFromGamepad(): void;
}
export { Constants, MotionController, fetchProfile, fetchProfilesList };
