import type { BoundsIJK, Point3, PixelDataTypedArray, IImage, RGB, CPUImageData, IVoxelManager, IRLEVoxelMap, Point2 } from '../types'; import type vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData'; export default class VoxelManager { modifiedSlices: Set; private boundsIJK; map: Map | IRLEVoxelMap; sourceVoxelManager: IVoxelManager; isInObject: (pointLPS: any, pointIJK: any) => boolean; readonly dimensions: Point3; readonly numberOfComponents: number; getCompleteScalarDataArray?: () => ArrayLike; setCompleteScalarDataArray?: (scalarData: ArrayLike) => void; getRange: () => [number, number]; private scalarData; private _sliceDataCache; readonly _id: string; points: Set; width: number; frameSize: number; readonly _get: (index: number) => T; readonly _set: (index: number, v: T) => boolean; readonly _getConstructor?: () => new (length: number) => PixelDataTypedArray; _getScalarDataLength?: () => number; _getScalarData?: () => ArrayLike; _updateScalarData?: (scalarData: ArrayLike) => PixelDataTypedArray; _getSliceData: (args: { sliceIndex: number; slicePlane: number; }) => PixelDataTypedArray; get id(): string; constructor(dimensions: any, options: { _get: (index: number) => T; _set?: (index: number, v: T) => boolean; _getScalarData?: () => ArrayLike; _id?: string; _updateScalarData?: (scalarData: ArrayLike) => PixelDataTypedArray; numberOfComponents?: number; scalarData?: ArrayLike; _getConstructor?: () => new (length: number) => PixelDataTypedArray; }); getAtIJK: (i: any, j: any, k: any) => T; setAtIJK: (i: number, j: number, k: number, v: any) => boolean; getAtIJKPoint: ([i, j, k]: [any, any, any]) => T; setAtIJKPoint: ([i, j, k]: Point3, v: any) => void; getAtIndex: (index: any) => T; getMinMax(): { min: any; max: any; }; setAtIndex: (index: any, v: any) => boolean; toIJK(index: number): Point3; getMiddleSliceData: () => PixelDataTypedArray; toIndex(ijk: Point3): number; getDefaultBounds(): BoundsIJK; getBoundsIJK(): BoundsIJK; forEach: (callback: (args: { value: unknown; index: number; pointIJK: Point3; pointLPS: Point3; }) => void, options?: { boundsIJK?: BoundsIJK; isInObject?: (pointLPS: any, pointIJK: any) => boolean; returnPoints?: boolean; imageData?: vtkImageData | CPUImageData; }) => void | any[]; rleForEach(callback: any, options?: any): void; getScalarData(storeScalarData?: boolean): PixelDataTypedArray; setScalarData(newScalarData: PixelDataTypedArray): void; getScalarDataLength(): number; get sizeInBytes(): number; get bytePerVoxel(): number; clearBounds(): void; clear(): void; getConstructor(): new (length: number) => PixelDataTypedArray; getArrayOfModifiedSlices(): number[]; resetModifiedSlices(): void; setBounds(bounds: BoundsIJK): void; static addBounds(bounds: BoundsIJK, point: Point3): void; addPoint(point: Point3 | number): void; getPoints(): Point3[]; getSliceData: ({ sliceIndex, slicePlane, }: { sliceIndex: number; slicePlane: number; }) => PixelDataTypedArray; private setSliceDataValue; private toNumber; private static _createRGBScalarVolumeVoxelManager; static createImageVolumeVoxelManager({ dimensions, imageIds, numberOfComponents, id, }: { dimensions: Point3; imageIds: string[]; numberOfComponents: number; id?: string; }): IVoxelManager | IVoxelManager; static createScalarVolumeVoxelManager({ dimensions, scalarData, numberOfComponents, id, }: { dimensions: Point3; scalarData: any; numberOfComponents?: number; id?: string; }): IVoxelManager | IVoxelManager; static createScalarDynamicVolumeVoxelManager({ imageIdGroups, dimensions, dimensionGroupNumber, timePoint, numberOfComponents, id, }: { imageIdGroups: string[][]; dimensions: Point3; dimensionGroupNumber?: number; timePoint?: number; numberOfComponents?: number; id?: string; }): IVoxelManager | IVoxelManager; static createImageVoxelManager({ width, height, scalarData, numberOfComponents, id, }: { width: number; height: number; scalarData: PixelDataTypedArray; numberOfComponents?: number; id?: string; }): IVoxelManager | IVoxelManager; private static _createNumberVolumeVoxelManager; static createMapVoxelManager({ dimension, id, }: { dimension: Point3; id?: string; }): IVoxelManager; static createHistoryVoxelManager(sourceVoxelManager: VoxelManager, id?: string): VoxelManager; static createRLEHistoryVoxelManager(sourceVoxelManager: VoxelManager, id?: string): VoxelManager; static createLazyVoxelManager({ dimensions, planeFactory, id, }: { dimensions: Point3; planeFactory: (width: number, height: number) => T; id?: string; }): VoxelManager; static createRLEVolumeVoxelManager({ dimensions, id, }: { dimensions: Point3; id?: string; }): VoxelManager; static createRLEImageVoxelManager({ dimensions, id, }: { dimensions: Point2; id?: string; }): VoxelManager; static addInstanceToImage(image: IImage): void; static: any; } export type { VoxelManager };