import { Loader } from 'three/webgpu'; import { Model, type Viewer, BaseGroup } from 'u-space'; import { SceneInstancedLayer } from './SceneInstancedLayer'; import { SceneEditableBatchLayer, type SceneEditableBatchOptions } from './SceneEditableBatchLayer'; import type { ITreeData } from '../types'; export declare class SceneGroup extends BaseGroup { isSceneGroup: boolean; type: string; sceneLayer: SceneInstancedLayer | SceneEditableBatchLayer | null; constructor(); setSceneLayer(layer: SceneInstancedLayer | SceneEditableBatchLayer | null): this; getDefaultSceneLayer(): SceneInstancedLayer | SceneEditableBatchLayer | null; } export declare class SceneLoader extends Loader { #private; viewer: Viewer; key: string; cachedIds: Set; editableBatchOptions: SceneEditableBatchOptions | null; protected _resourceData: any; protected _treeData: ITreeData[]; constructor(viewer: Viewer); setKey(key: string): this; /** * Merge mostly-static scene models into editable GPU batches. Logical scene * objects remain addressable; transform or opacity edits materialize only the * edited object back into an ordinary model. */ setEditableBatching(options?: boolean | SceneEditableBatchOptions): this; protected loadModel(url: string): Promise; protected _preareTreeData(): Promise; protected _prepareSemanticIds(): Promise>; /** * 加载场景 * @param options * @returns */ loadAsync(): Promise; clearCache(): void; dispose(): void; }