import { Coords, EventData, HandlePosition, Handles, MeasurementMouseEvent, VHSAnnotationData, VHSCachedStats } from "../types"; declare const BaseAnnotationTool: any; export default class VHSAnnotationTool extends BaseAnnotationTool { private currentState; private currentAnnotation; private isDragging; private _throttledMouseMove; private _throttledMouseDrag; constructor(props?: Record); createNewMeasurement(eventData: EventData): VHSAnnotationData | null; calculateDistance(point1: Coords, point2: Coords): number; addNewMeasurement(evt: MeasurementMouseEvent): VHSAnnotationData | null; mouseMoveCallback(evt: MeasurementMouseEvent): void; private _mouseMoveImpl; mouseDragCallback(evt: MeasurementMouseEvent): void; private _mouseDragImpl; private _completeSegment; mouseUpCallback(evt: MeasurementMouseEvent): void; preMouseDownCallback(evt: MeasurementMouseEvent): void; private _autoPositionTextBox; renderToolData(evt: MeasurementMouseEvent): void; drawProjectionVisualization(context: CanvasRenderingContext2D, element: HTMLElement, handles: Handles, label: string, color: string, offset: number, cachedStats: VHSCachedStats): void; drawTick(context: CanvasRenderingContext2D, element: HTMLElement, point: Coords, angle: number, color: string): void; updateCachedStats(image: unknown, element: HTMLElement, data: VHSAnnotationData): VHSCachedStats; pointNearTool(element: HTMLElement, data: VHSAnnotationData, coords: Coords, interactionType: string): boolean; isPointNearHandle(element: HTMLElement, handle: HandlePosition, coords: Coords, distance: number): boolean; isPointNearLine(element: HTMLElement, startHandle: HandlePosition, endHandle: HandlePosition, coords: Coords, distance: number): boolean; distanceToLineSegment(point: Coords, lineStart: Coords, lineEnd: Coords): number; getHandleNearImagePoint(element: HTMLElement, data: VHSAnnotationData, coords: Coords, interactionType: string): HandlePosition | null; } export {};