import { Object3D } from 'three';
import * as THREE from 'three';
import { MotionController } from './motionHelper';
declare class XRControllerModel extends Object3D {
    motionController: MotionController | null;
    envMap: THREE.Texture | null;
    constructor();
    setEnvironmentMap(envMap: THREE.Texture): this;
    /**
     * Polls data from the XRInputSource and updates the model's components to match
     * the real world data
     */
    updateMatrixWorld(force: boolean): void;
}
declare class XRControllerModelFactory {
    path: string;
    _assetCache: any;
    gltfLoader: {
        load: (url: string, callback: (result: {
            scene: THREE.Object3D;
        }) => void) => any;
    } | null;
    constructor(gltfLoader?: {
        load: () => any;
    } | null);
    createControllerModel(controller: any): XRControllerModel;
}
export { XRControllerModelFactory };
