import type { PerspectiveCamera, Scene, WebGLRenderer } from 'three'; import mitt from 'mitt'; import type { TransformControls } from '../control/transformControls'; import type Group from '../group'; import type { ControlsType, UniversalControls } from '../control/UniversalControls'; import { GlobalControl } from './globalControl'; import { EnvManager } from '../scene/envManager'; /** * Store management for instance-level configuration */ declare class StoreManagement { private store; set(key: string, value: any): void; get(key: string): T | undefined; has(key: string): boolean; delete(key: string): boolean; clear(): void; } /** * SceneContext - Instance-level state management * * This class holds all the state that was previously managed globally * by GlobalObjectManage. Each SceneControl instance has its own SceneContext, * enabling true multi-instance support. */ export declare class SceneContext { id: string; scene: Scene; domElement: HTMLElement; renderer: WebGLRenderer; orbitControls: ControlsType; triggerClick: boolean; camera: PerspectiveCamera; transformControls: TransformControls[]; frameCallbacks: Set<(delta: number) => void>; frameCallbacksAfterRender: Set<(delta: number) => void>; frameComposerFrameRender: Set<() => void>; frameSubComposerFrameRender: Set<() => void>; eventCallbacks: Map void)>>; groupCatch: Group[]; universalControls: UniversalControls; envManager: EnvManager; readonly storeManagement: StoreManagement; readonly emitter: ReturnType; readonly globalControl: GlobalControl; constructor(customEmitter?: ReturnType); setId(id: string): void; addScene(object3d: Scene): void; setCamera(camera: PerspectiveCamera): void; setDomElement(domElement: HTMLElement): void; setRenderer(renderer: WebGLRenderer): void; setControls(orbitControls: ControlsType): void; setUniversalControls(universalControls: UniversalControls): void; setTransformControls(transformControls: TransformControls): void; setTriggerClickState(state: boolean): void; setEnvManager(envManager: EnvManager): void; addFrameCallback(cb: (delta: number) => void): () => void; addSubComposerFrameRender(cb: () => void): () => void; removeSubComposerFrameRender(cb: () => void): void; removeFrameCallback(cb: (delta: number) => void): void; addFrameCallbackAfterRender(cb: (delta: number) => void): () => void; addFrameComposerFrameRender(cb: () => void): () => void; removeFrameComposerFrameRender(cb: () => void): void; removeFrameCallbackAfterRender(cb: (delta: number) => void): void; addCatch(group: Group): void; /** * Cleanup all resources when destroying the scene */ destroy(): void; } export {};