import type { Types } from '@cornerstonejs/core'; import type { FloodFillIntensityRangeOptions, FloodFillIntensityRangeResult } from '../floodFillIntensityRangeTypes.js'; import type { GetFloodFillIntensityRange } from '../floodFillIntensityRangeTypes.js'; import type { ViewportVoiMappingForTool } from '../getViewportVoiMappingForVolume.js'; export type AdaptiveRegionProbeReason = 'ok' | 'outside-volume' | 'flat-region' | 'too-small' | 'unbounded' | 'off-target'; export type AdaptiveRegionExpandContext = { seedByte: number; polarity: 1 | -1; voiMapping: ViewportVoiMappingForTool | null; rawWindow: { min: number; span: number; }; seedIjk: Types.Point3; seedScalar: number; growthCurve: Array<[number, number]>; chosenToleranceBytes: number; growthEndLevel: number; pxAreaMm2: number; }; export type AdaptiveRegionProbeResult = { viable: boolean; reason: AdaptiveRegionProbeReason; range: FloodFillIntensityRangeResult | null; regionSizePx?: number; regionAreaMm2?: number; toleranceBytes?: number; clickNeighborJoinLevels?: Array; expandContext?: AdaptiveRegionExpandContext; debug?: { growthCurve: Array<[number, number]>; quietRuns: Array<[number, number, number]>; seedByte: number; backgroundByte: number; polarity: number; borderTouchLevel: number; explosionLevel: number; clickJoinLevel: number; minRegionPx: number; maxRegionPx: number; pxAreaMm2: number; }; }; export type AdaptiveRegionCoreInput = { dimensions: Types.Point3; getScalar: (i: number, j: number, k: number) => number; ijkClick: Types.Point3; inPlaneAxes?: [number, number]; inPlaneSpacing?: [number, number]; voiMapping?: ViewportVoiMappingForTool | null; toleranceScale?: number; }; export declare function resolveAdaptiveBandAtTolerance(context: AdaptiveRegionExpandContext, toleranceBytes: number): FloodFillIntensityRangeResult; export declare function probeAdaptiveRegionCore(input: AdaptiveRegionCoreInput): AdaptiveRegionProbeResult; export declare function resolveInPlaneAxes(referencedVolume: Types.IImageVolume, viewport: Types.IViewport | undefined): [number, number]; export declare function probeAdaptiveRegion(referencedVolume: Types.IImageVolume, worldPosition: Types.Point3, options?: FloodFillIntensityRangeOptions): AdaptiveRegionProbeResult; export declare const getAdaptiveRegionIntensityRange: GetFloodFillIntensityRange;