import { GizmoManager } from "@babylonjs/core/Gizmos/gizmoManager.js"; import "@babylonjs/core/Layers/effectLayerSceneComponent.js"; import { Color3 } from "@babylonjs/core/Maths/math.color.js"; import type { Node } from "@babylonjs/core/node.js"; import type { Scene } from "@babylonjs/core/scene.js"; export type GizmoMode = "none" | "position" | "rotation" | "scale"; export type GizmoCoordinateMode = "local" | "world"; export interface GizmoSnapConfig { position?: number; rotationDegrees?: number; scale?: number; ground?: number | false; } export interface RuntimeSelectionOptions { onSelectionChange?: (entityId: string | null, additive: boolean) => void; onTransformStart?: (entityId: string, node: Node) => void; onTransformPreview?: (entityId: string, node: Node) => void; onTransformCommit?: (entityId: string, node: Node) => void; canSelect?: (node: Node) => boolean; highlightColor?: Color3; axisGuideLength?: number; } /** Selection/highlight/gizmo behavior with no dependency on a panel or store. */ export declare class RuntimeSelectionController { #private; readonly scene: Scene; readonly gizmos: GizmoManager; constructor(scene: Scene, options?: RuntimeSelectionOptions); get selected(): Node | null; get selectedNodes(): readonly Node[]; get mode(): GizmoMode; get coordinateMode(): GizmoCoordinateMode; /** Retains selection and the requested mode while preview owns transforms. */ setEditingEnabled(enabled: boolean): void; select(node: Node | null, additive?: boolean): void; selectMany(nodes: readonly Node[]): void; clear(): void; setMode(mode: GizmoMode): void; setCoordinateMode(mode: GizmoCoordinateMode): void; setSnapping(config: GizmoSnapConfig): void; setGizmoScale(scaleRatio: number): void; snapSelectedToGround(height?: number): boolean; dispose(): void; } export declare function getRuntimeEntityId(node: Node | null): string | null; //# sourceMappingURL=selection-controller.d.ts.map