import { Box3, Camera, Plane, Raycaster, Vector2, Vector3, type Intersection } from 'three';
import { Measurement } from './Measurement.js';
import { SpeckleText } from '../../objects/SpeckleText.js';
import { MeasurementPointGizmo } from './MeasurementPointGizmo.js';
export declare class PointMeasurement extends Measurement {
    protected gizmo: MeasurementPointGizmo;
    protected xLabel: SpeckleText;
    protected yLabel: SpeckleText;
    protected zLabel: SpeckleText;
    protected xLabelPosition: Vector3;
    protected yLabelPosition: Vector3;
    protected zLabelPosition: Vector3;
    protected readonly pixelsOffX: number;
    protected readonly pixelsOffY: number;
    set isVisible(value: boolean);
    constructor();
    frameUpdate(camera: Camera, size: Vector2, bounds: Box3): void;
    locationUpdated(point: Vector3, normal: Vector3): void;
    locationSelected(): void;
    protected updateLabelPositions(): void;
    update(): Promise<void>;
    raycast(raycaster: Raycaster, intersects: Array<Intersection>): void;
    highlight(value: boolean): void;
    updateClippingPlanes(planes: Plane[]): void;
}
