import { Object3D, Object3DEventMap } from "three";
import { Context } from "../context/context";
import { GLTF } from "three/examples/jsm/loaders/GLTFLoader";
import { PolygonGeometry } from "../types";
export interface GlbModelOptions {
    url: string;
    geometry: PolygonGeometry;
    id: string;
    width: number;
    rotate: number;
    airHeight: number;
    deltaHeight: number;
    center_x: number;
    center_y: number;
}
export type GlbModelEventMap = {
    "load-model-end": {
        object: GLTF;
    };
} & Object3DEventMap;
export declare class GlbModel extends Object3D<GlbModelEventMap> {
    context: Context;
    model: GLTF | null;
    options: GlbModelOptions;
    constructor(context: Context, options: Partial<GlbModelOptions>);
    loadModel(): Promise<void>;
    meshSetMaterial(object: Object3D): void;
    dispose(): void;
}
