import { Group, Vector3, Plane, Scene } from 'three'; export declare class PathMeasure3d { group: Group; private pointsGizmo; private pathLines; private projLines; /** Fixed path vertices. */ points: Vector3[]; firstNormal: Vector3; projectionPlane: Plane; /** Last confirmed or mouse-hover point — used to anchor the label callout. */ lastActivePoint: Vector3; /** Total path length in mm (for the UI label). */ totalLengthText: number; /** Projected path length in mm (for the UI label). */ totalProjLengthText: number; /** Screen position of the UI label. */ labelX: number; labelY: number; lastSegmentCenter: Vector3; constructor(helpersScene: Scene); setProjectionPlane(plane: Plane): void; /** Reset geometry via .clear() without destroying the underlying geometry objects. */ reset(): void; /** Add a confirmed click point to the path. */ addPoint(point: Vector3, normal?: Vector3): void; private renderPath; /** Update the UI label position to the midpoint of the last path segment. */ updateLabel(viewerElement: any, camera: any): void; /** Release all GPU resources. */ dispose(): void; }