import { Mesh, MeshStandardMaterial, Object3D } from 'three/webgpu';
import { DIVENode } from '../node/Node.ts';
import { MaterialSchema } from 'src/types/index.ts';
/**
 * A basic model class.
 *
 * It does calculate it's own bounding box which is used for positioning on the floor.
 *
 * Can be moved and selected.
 *
 * @module
 */
export declare class DIVEModel extends DIVENode {
    readonly isDIVEModel: true;
    protected _gltf: Object3D | null;
    protected _mesh: Mesh | null;
    protected _material: MeshStandardMaterial | null;
    constructor();
    private _assetLoader;
    private _getAssetLoader;
    setFromURL(url: string): Promise<this>;
    setFromGLTF(gltf: Object3D): this;
    setMaterial(material: Partial<MaterialSchema>): void;
    placeOnFloor(): void;
    dropIt(): void;
}
