import { Scene, type ColorRepresentation } from 'three/webgpu'; export interface SceneSnapshot { name: string; background: ColorRepresentation | null; environmentRotation: { x: number; y: number; z: number; }; children: string[]; } /** * Manages multiple scenes and provides scene-level utilities. */ export declare class SceneManager { private scenes; private _activeSceneKey; /** * Add a scene with a key. */ add(key: string, scene: Scene): void; /** * Create and register a new scene. */ create(key: string, options?: { background?: ColorRepresentation; }): Scene; /** * Get a scene by key. */ get(key: string): Scene | undefined; /** * Remove a scene by key. */ remove(key: string): void; /** * Get the currently active scene key. */ get activeKey(): string | null; /** * Set the active scene key (for external use to track which scene is active). */ set activeKey(key: string | null); /** * List all registered scene keys. */ keys(): string[]; /** * Serialize scene metadata to JSON (children names/ids, background, etc.). */ serialize(key: string): SceneSnapshot | null; /** * Clear all scenes. */ clear(): void; get size(): number; }