import type { SceneFocusOptions } from "@skenora/contracts"; import type { RuntimeSession } from "../core/runtime-session.js"; export interface SceneInteractionState { selectedEntityId: string | null; hoveredEntityId: string | null; projectionGeneration: number; } export interface SceneInteractionOptions { /** Explicit document entity IDs; no name-based or imported-part guessing. */ entityIds: readonly string[]; selectedColor?: string; hoverColor?: string; focusOnSelect?: false | SceneFocusOptions; onSelectionChange?: (state: SceneInteractionState) => void; onHoverChange?: (state: SceneInteractionState) => void; onError?: (error: unknown) => void; } /** Optional read-only interaction. Owns input observers/lines; never modifies source materials. */ export declare function createSceneInteraction(runtime: RuntimeSession, options: SceneInteractionOptions): { getState: () => SceneInteractionState; select: (id: string | null) => void; clear: () => void; setEnabled(value: boolean): void; dispose: () => void; }; export type SceneInteraction = ReturnType; //# sourceMappingURL=scene-interaction.d.ts.map