import { Vector3 } from '@vertexvis/geometry'; import { Disposable, Listener } from '@vertexvis/utils'; import { MinimumDistanceMeasurementResult } from './results'; export interface LineOverlay extends Disposable { type: 'line'; id: string; start: Vector3.Vector3; end: Vector3.Vector3; } export interface DistanceVectorOverlay extends Disposable { type: 'distance-vector'; id: string; x: { start: Vector3.Vector3; end: Vector3.Vector3; }; y: { start: Vector3.Vector3; end: Vector3.Vector3; }; z: { start: Vector3.Vector3; end: Vector3.Vector3; }; } export type MeasurementOverlay = LineOverlay | DistanceVectorOverlay; export declare class MeasurementOverlayManager { private overlays; private overlaysChanged; addLineFromResult(result: MinimumDistanceMeasurementResult): LineOverlay; addLine(start: Vector3.Vector3, end: Vector3.Vector3): LineOverlay; addDistanceVectorFromResult(result: MinimumDistanceMeasurementResult): DistanceVectorOverlay; addDistanceVector(start: Vector3.Vector3, end: Vector3.Vector3): DistanceVectorOverlay; private addOverlay; getOverlays(): MeasurementOverlay[]; private remove; onOverlaysChanged(listener: Listener): Disposable; }