import { Scene, type Mesh, type MeshOptions } from "@aura3d/scene";
import type { RenderSource, Geometry, RenderMaterial, MorphTargetDelta } from "@aura3d/rendering";
export interface A3DSceneMeshOptions extends Omit<MeshOptions, "renderable"> {
    readonly geometry: string | Geometry;
    readonly material: string | RenderMaterial;
    readonly geometryId?: string;
    readonly materialId?: string;
}
export interface A3DSceneRenderSourceOptions extends Omit<RenderSource, "scene" | "geometryLibrary" | "materialLibrary" | "morphTargetLibrary"> {
    readonly geometryLibrary?: RenderSource["geometryLibrary"];
    readonly materialLibrary?: RenderSource["materialLibrary"];
    readonly morphTargetLibrary?: RenderSource["morphTargetLibrary"];
}
export declare class A3DScene extends Scene {
    readonly geometryLibrary: Map<string, Geometry>;
    readonly materialLibrary: Map<string, RenderMaterial>;
    readonly morphTargetLibrary: Map<string, readonly MorphTargetDelta[]>;
    private generatedGeometryId;
    private generatedMaterialId;
    addGeometry(id: string, geometry: Geometry): this;
    addMaterial(id: string, material: RenderMaterial): this;
    addMorphTargets(id: string, morphTargets: readonly MorphTargetDelta[]): this;
    createRenderableMesh(options: A3DSceneMeshOptions): Mesh;
    toRenderSource(options?: A3DSceneRenderSourceOptions): RenderSource;
    dispose(): void;
    private resolveGeometryHandle;
    private resolveMaterialHandle;
}
//# sourceMappingURL=A3DScene.d.ts.map