import { AppObject, AppObjectEntity } from "@vived/core";
export declare enum GlbModelState {
    INIT = "Initialized",
    LOADING = "Loading",
    READY = "Ready",
    ERROR = "Error"
}
export interface GLBMesh {
    path: string;
    name: string;
    mesh: unknown;
}
export declare abstract class GlbModelEntity extends AppObjectEntity {
    static type: string;
    abstract get id(): string;
    abstract get state(): GlbModelState;
    abstract set state(val: GlbModelState);
    abstract get modelError(): Error | undefined;
    abstract set modelError(val: Error | undefined);
    abstract rootNode?: unknown;
    abstract hasMesh(path: string): boolean;
    abstract getMesh(path: string): GLBMesh | undefined;
    abstract addMesh(mesh: GLBMesh): void;
    abstract getAllMeshes(): GLBMesh[];
}
export declare function makeGlbModelEntity(appObject: AppObject): GlbModelEntity;
//# sourceMappingURL=GlbModelEntity.d.ts.map