import { Box3, Camera, Plane, Raycaster, Vector2, Vector3, type Intersection } from 'three'; import { Measurement } from './Measurement.js'; import { MeasurementData, MeasurementType } from '@speckle/shared/viewer/state'; export declare class PerpendicularMeasurement extends Measurement { private startGizmo; private endGizmo; flipStartNormal: boolean; midPoint: Vector3; set isVisible(value: boolean); get bounds(): Box3; get measurementType(): MeasurementType; constructor(); frameUpdate(camera: Camera, size: Vector2, bounds: Box3): void; locationUpdated(point: Vector3, normal: Vector3): void; locationSelected(): void; update(): Promise; raycast(raycaster: Raycaster, intersects: Array): void; highlight(value: boolean): void; updateClippingPlanes(planes: Plane[]): void; toMeasurementData(): MeasurementData; fromMeasurementData(data: MeasurementData): void; }