import type { ContourSegmentationData } from './types'; import type { Types } from '@cornerstonejs/core'; import type { LabelmapSegmentationData } from './types/LabelmapTypes'; import type { SurfaceSegmentationData } from './types/SurfaceTypes'; import type SegmentationRepresentations from './enums/SegmentationRepresentations'; export type SurfacesInfo = { id: string; points: number[]; polys: number[]; segmentIndex: number; }; export type PolySegConversionOptions = { segmentIndices?: number[]; segmentationId?: string; viewport?: Types.IStackViewport | Types.IVolumeViewport; }; type ComputeRepresentationFn = (segmentationId: string, options: PolySegConversionOptions) => Promise; export type SurfaceClipResult = { points: number[]; lines: number[]; numberOfCells: number; }; type PolySegAddOn = { canComputeRequestedRepresentation: (segmentationId: string, representationType: SegmentationRepresentations) => boolean; init: () => void; computeContourData: ComputeRepresentationFn; computeLabelmapData: ComputeRepresentationFn; computeSurfaceData: ComputeRepresentationFn; updateSurfaceData: ComputeRepresentationFn; clipAndCacheSurfacesForViewport: (surfacesInfo: SurfacesInfo[], viewport: Types.IVolumeViewport) => Promise>>; extractContourData: (polyDataCache: Map>) => Map; createAndAddContourSegmentationsFromClippedSurfaces: (rawContourData: Map, viewport: Types.IStackViewport | Types.IVolumeViewport, segmentationId: string) => Map>; }; type AddOns = { polySeg: PolySegAddOn; }; type ComputeWorkerConfig = { autoTerminateOnIdle?: { enabled: boolean; idleTimeThreshold?: number; }; }; export type Config = { addons: AddOns; computeWorker?: ComputeWorkerConfig; }; export declare function getConfig(): Config; export declare function setConfig(newConfig: Config): void; export declare function getAddOns(): AddOns; export declare function getPolySeg(): PolySegAddOn; export {};