import { Object3D } from 'three';
import { GLTFLoader, GLTF } from 'three/examples/jsm/loaders/GLTFLoader';
import { BaseLoaderLoadOptions } from '../_Base';
import { BaseGeoLoader, BaseObject3DLoaderHandler } from './_BaseLoaderHandler';
interface GLTFLoaderLoadOptions extends BaseLoaderLoadOptions {
    draco: boolean;
    ktx2: boolean;
}
export declare class GLTFLoaderHandler extends BaseObject3DLoaderHandler<GLTF> {
    private _gltfLoader;
    private _gltfdracoLoader;
    private _ktx2gltfLoader;
    private _ktx2gltfdracoLoader;
    private _dracoLoader;
    private _ktx2Loader;
    reset(): void;
    load(options: GLTFLoaderLoadOptions): Promise<Object3D[] | undefined>;
    protected _getLoader(options: GLTFLoaderLoadOptions): Promise<BaseGeoLoader<GLTF>>;
    private _createGLTFLoader;
    private _setupDRACO;
    protected _setupKTX2(gltfLoader: GLTFLoader, options: BaseLoaderLoadOptions): Promise<void>;
    private _createDRACOLoader;
    protected _onLoadSuccess(gltf: GLTF): Object3D[];
}
export {};
