import { StackViewport } from '@cornerstonejs/core'; import type { Types } from '@cornerstonejs/core'; import { BaseTool } from '../base'; import type vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData'; import * as LabelmapMemo from '../../utilities/segmentation/createLabelmapMemo'; import type { LabelmapToolOperationData } from '../../types/LabelmapToolOperationData'; export type PreviewData = { preview: unknown; timer?: number; timerStart: number; startPoint: Types.Point2; element: HTMLDivElement; isDrag: boolean; }; type EditDataReturnType = { volumeId: string; referencedVolumeId: string; segmentsLocked: number[]; } | { imageId: string; segmentsLocked: number[]; override?: { voxelManager: Types.IVoxelManager | Types.IVoxelManager; imageData: vtkImageData; }; } | null; type ModifiedLabelmapToolOperationData = Omit & { voxelManager?: Types.IVoxelManager | Types.IVoxelManager; override?: { voxelManager: Types.IVoxelManager | Types.IVoxelManager; imageData: vtkImageData; }; }; export default class LabelmapBaseTool extends BaseTool { protected _editData: { override: { voxelManager: Types.IVoxelManager; imageData: vtkImageData; }; segmentsLocked: number[]; imageId?: string; imageIds?: string[]; volumeId?: string; referencedVolumeId?: string; } | null; protected centerSegmentIndexInfo: { segmentIndex: number; hasSegmentIndex: boolean; hasPreviewIndex: boolean; changedIndices: number[]; }; protected _hoverData?: { brushCursor: any; segmentationId: string; segmentIndex: number; segmentColor: [number, number, number, number]; viewportIdsToRender: string[]; centerCanvas?: Array; viewport: Types.IViewport; }; static previewData?: PreviewData; protected memoMap: Map; protected acceptedMemoIds: Map; protected memo: LabelmapMemo.LabelmapMemo; constructor(toolProps: any, defaultToolProps: any); protected _historyRedoHandler(evt: any): void; protected get _previewData(): PreviewData; hasPreviewData(): boolean; shouldResolvePreviewRequests(): boolean; createMemo(segmentationId: string, segmentationVoxelManager: any): LabelmapMemo.LabelmapMemo; protected createEditData(element: any): EditDataReturnType; protected getEditData({ viewport, representationData, segmentsLocked, segmentationId, }: { viewport: any; representationData: any; segmentsLocked: any; segmentationId: any; }): EditDataReturnType; protected createHoverData(element: any, centerCanvas?: any): { brushCursor: { metadata: { viewPlaneNormal: Types.Point3; viewUp: Types.Point3; FrameOfReferenceUID: string; referencedImageId: string; toolName: string; segmentColor: Types.Color; }; data: {}; }; centerCanvas: any; segmentIndex: number; viewport: StackViewport | import("@cornerstonejs/core").VolumeViewport; segmentationId: string; segmentColor: Types.Color; viewportIdsToRender: string[]; }; protected getActiveSegmentationData(viewport: any): { segmentIndex: number; segmentationId: string; segmentColor: Types.Color; }; protected getOperationData(element?: any): ModifiedLabelmapToolOperationData; addPreview(element?: HTMLDivElement, options?: { acceptReject: boolean; }): any; rejectPreview(element?: HTMLDivElement): void; acceptPreview(element?: HTMLDivElement): void; static viewportContoursToLabelmap(viewport: Types.IViewport, options?: { removeContours: boolean; }): void; } export {};