import { T as ToolHost } from '../tool-host-BqJRPr_T.js'; import { B as Bridge } from '../types-D_TzdBsK.js'; import '../types-ITRQFAir.js'; /** * Loose Scene types — mirror the public surface of fancy-3d's Scene * descriptor (engine-agnostic JSON the package's adapters consume). */ type SceneObjectKind = "box" | "sphere" | "cylinder" | "plane" | "screen" | "group" | "custom"; type SceneObject = { id: string; kind: SceneObjectKind | string; position?: [number, number, number]; rotation?: [number, number, number]; scale?: [number, number, number]; color?: string; /** Free-form per-kind config (e.g. text content for screens). */ props?: Record; children?: SceneObject[]; }; type SceneCamera = { position?: [number, number, number]; target?: [number, number, number]; fov?: number; }; type SceneState = { objects: SceneObject[]; camera?: SceneCamera; background?: string; }; type SceneBridgeAdapter = { id: string; title?: string; screenId?: string; getScene: () => SceneState; setScene: (next: SceneState) => void; /** Convenience: set just the camera without touching objects. */ setCamera?: (next: SceneCamera) => void; }; type SceneBridgeOptions = { adapter: SceneBridgeAdapter; agent?: { id: string; name?: string; color?: string; }; }; /** * registerSceneBridge — schema-aware MCP access to a fancy-3d Scene. * Tools cover read, add/update/delete object, set camera, set background. */ declare function registerSceneBridge(host: ToolHost, options: SceneBridgeOptions): Bridge; export { type SceneBridgeAdapter, type SceneBridgeOptions, type SceneCamera, type SceneObject, type SceneObjectKind, type SceneState, registerSceneBridge };