import vtkCellPicker from '@kitware/vtk.js/Rendering/Core/CellPicker'; import vtkActor from '@kitware/vtk.js/Rendering/Core/Actor'; import type { Types } from '@cornerstonejs/core'; export interface OrientationControllerConfig { faceColors: { topBottom: number[]; frontBack: number[]; leftRight: number[]; }; letterColors: { zMinus: number[]; zPlus: number[]; yMinus: number[]; yPlus: number[]; xMinus: number[]; xPlus: number[]; }; opacity: number; showEdgeFaces: boolean; showCornerFaces: boolean; highlightColor?: number[]; edgeColor?: number[]; cornerColor?: number[]; restingAmbient?: number; hoverAmbient?: number; } export interface PickResult { pickedActor: vtkActor; cellId: number; actorIndex: number; } export interface PositionConfig { position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; size: number; } export interface MouseHandlersCallbacks { onFacePicked: (result: PickResult) => void; onFaceHover?: (result: PickResult | null) => void; } export declare class vtkOrientationControllerWidget { private actors; private pickers; private overlayRenderers; private renderWindows; private highlightedFace; private mouseHandlers; private _highlightColor; private _restingAmbient; private _hoverAmbient; createActors(config: OrientationControllerConfig): vtkActor[]; addActorsToViewport(viewportId: string, viewport: Types.IVolumeViewport, actors: vtkActor[]): void; removeActorsFromViewport(viewportId: string, _viewport: Types.IVolumeViewport): void; setupPicker(viewportId: string, actors: vtkActor[]): vtkCellPicker; pickAtPosition(evt: MouseEvent, viewportId: string, viewport: Types.IVolumeViewport, element: HTMLDivElement, actors: vtkActor[]): PickResult | null; calculateMarkerPosition(viewport: Types.IVolumeViewport, position: PositionConfig['position'], screenSizePixels: number): [number, number, number] | null; positionActors(viewport: Types.IVolumeViewport, actors: vtkActor[], config: PositionConfig): boolean; highlightFace(actor: vtkActor, cellId: number, viewport: Types.IVolumeViewport, isMainFace?: boolean): void; clearHighlight(): void; setupMouseHandlers(viewportId: string, element: HTMLDivElement, viewport: Types.IVolumeViewport, actors: vtkActor[], callbacks: MouseHandlersCallbacks): { cleanup: () => void; }; getActors(viewportId: string): vtkActor[] | undefined; syncOverlayViewport(viewportId: string, viewport: Types.IVolumeViewport): void; getOrientationForFace(cellId: number): { viewPlaneNormal: number[]; viewUp: number[]; } | null; cleanup(viewportId?: string): void; }