export type EntityTransformInput = { position?: unknown; rotation?: unknown; scale?: unknown; }; export type NewEntityData = { name: string; script: string; properties: Array<{ name: string; type: string; value: unknown; }>; transform: { position: string; rotation: string; scale: string; }; }; /** * In-memory scene state for WebSocket mode. Holds a PhibelleScene and provides * update methods that mirror the push logic without touching the network. */ export declare class SceneState { private scene; constructor(initialJson: string); getJson(): string; /** Current max entity id used in entityStore (for computing next engineId). */ getCurrId(): number; /** Replace in-memory scene with the given JSON (e.g. from FE over WebSocket). */ replaceScene(json: string): void; updateSceneScript(script: string): void; updateSceneProperties(properties: unknown[]): void; updateEntityScript(entityId: string, script: string): void; updateEntityProperties(entityId: string, properties: Array<{ name: string; type: string; value: unknown; }>): void; updateEntityTransforms(entityId: string, data: EntityTransformInput): void; addEntity(engineId: number, data: NewEntityData): void; }