import { AnnotationTool } from './base'; import { type Types } from '@cornerstonejs/core'; import type { Annotation, AnnotationData, Annotations, EventTypes, ToolHandle, PublicToolProps, ToolProps, InteractionTypes, SVGDrawingHelper } from '../types'; export type CrosshairsAnnotationData = AnnotationData & { handles: { rotationPoints: Types.Point3[]; slabThicknessPoints: Types.Point3[]; activeOperation: number | null; toolCenter: Types.Point3; }; activeViewportIds: string[]; viewportId: string; }; export type CrosshairsAnnotation = Annotation & { data: CrosshairsAnnotationData; }; declare class CrosshairsTool extends AnnotationTool { static toolName: any; static minimalModeExamples: Map; toolCenter: Types.Point3; _getReferenceLineColor?: (viewportId: string) => string; _getReferenceLineControllable?: (viewportId: string) => boolean; _getReferenceLineDraggableRotatable?: (viewportId: string) => boolean; _getReferenceLineSlabThicknessControlsOn?: (viewportId: string) => boolean; _volumeViewportNewVolumeListeners: Map; _toolGroupViewportAddedListener: EventListener | null; _toolGroupViewportRemovedListener: EventListener | null; _ignoreFiredEvents: boolean; constructor(toolProps?: PublicToolProps, defaultToolProps?: ToolProps); initializeViewport: ({ renderingEngineId, viewportId, }: Types.IViewportId) => { normal: Types.Point3; point: Types.Point3; }; _getViewportsInfo: () => any[]; _reinitializeListenersAndCenter: () => void; onSetToolActive(): void; onSetToolPassive(): void; onSetToolEnabled(): void; onSetToolDisabled(): void; resetCrosshairs: () => void; computeToolCenter: () => void; _computeToolCenter: (viewportsInfo: any) => void; setToolCenter(toolCenter: Types.Point3, suppressEvents?: boolean): void; addNewAnnotation: (evt: EventTypes.InteractionEventType) => CrosshairsAnnotation; cancel: () => void; getHandleNearImagePoint(element: HTMLDivElement, annotation: Annotation, canvasCoords: Types.Point2, proximity: number): ToolHandle | undefined; handleSelectedCallback: (evt: EventTypes.InteractionEventType, annotation: Annotation) => void; isPointNearTool: (element: HTMLDivElement, annotation: CrosshairsAnnotation, canvasCoords: Types.Point2, proximity: number) => boolean; toolSelectedCallback: (evt: EventTypes.InteractionEventType, annotation: Annotation, interactionType: InteractionTypes) => void; onCameraModified: (evt: any) => void; onResetCamera: (evt: any) => void; mouseMoveCallback: (evt: EventTypes.MouseMoveEventType, filteredToolAnnotations: Annotations) => boolean; filterInteractableAnnotationsForElement: (element: any, annotations: any) => any; renderAnnotation: (enabledElement: Types.IEnabledElement, svgDrawingHelper: SVGDrawingHelper) => boolean; _getAnnotations: (enabledElement: Types.IEnabledElement) => Annotation[]; _onNewVolume: (_evt?: Event) => void; _unsubscribeToViewportNewVolumeSet(_viewportsInfo: any): void; _subscribeToViewportNewVolumeSet(_viewports: any): void; _autoPanViewportIfNecessary(viewportId: string, renderingEngine: Types.IRenderingEngine): void; _areViewportIdArraysEqual: (viewportIdArrayOne: any, viewportIdArrayTwo: any) => boolean; _getAnnotationsForViewportsWithDifferentCameras: (enabledElement: any, annotations: any) => any; _filterViewportWithSameOrientation: (enabledElement: any, referenceAnnotation: any, annotations: any) => any; _filterAnnotationsByUniqueViewportOrientations: (enabledElement: any, annotations: any) => any[]; _checkIfViewportsRenderingSameScene: (viewport: any, otherViewport: any) => any; _jump: (enabledElement: any, jumpWorld: any) => boolean; _activateModify: (element: any) => void; _deactivateModify: (element: any) => void; _endCallback: (evt: EventTypes.InteractionEventType) => void; _dragCallback: (evt: EventTypes.InteractionEventType) => void; setSlabThickness(viewport: any, slabThickness: any): void; _isClockWise(a: any, b: any, c: any): boolean; _applyDeltaShiftToSelectedViewportCameras(renderingEngine: any, viewportsAnnotationsToUpdate: any, delta: any): void; _applyDeltaShiftToViewportCamera(renderingEngine: Types.IRenderingEngine, annotation: any, delta: any): void; _pointNearReferenceLine: (annotation: any, canvasCoords: any, proximity: any, lineViewport: any) => boolean; _getRotationHandleNearImagePoint(viewport: any, annotation: any, canvasCoords: any, proximity: any): any; _getSlabThicknessHandleNearImagePoint(viewport: any, annotation: any, canvasCoords: any, proximity: any): any; _pointNearTool(element: any, annotation: any, canvasCoords: any, proximity: any): boolean; _toViewportKey: (renderingEngineId: string, viewportId: string) => string; _isFinitePoint3: (point: Types.Point3) => boolean; _bindToolGroupViewportListeners: () => void; _unbindToolGroupViewportListeners: () => void; _syncVolumeListenersWithToolGroup: () => void; _clearAllVolumeListenersAndViewportState: () => void; _calculateToolCenterFromAbsoluteCameras: () => Types.Point3 | null; _recomputeToolCenterFromAbsoluteCameras: ({ emitEvent, updateViewportCameras, }?: { emitEvent?: boolean; updateViewportCameras?: boolean; }) => Types.Point3 | null; } export default CrosshairsTool;