import vtkImageData from '@kitware/vtk.js/Common/DataModel/ImageData';
import type vtkImageSlice from '@kitware/vtk.js/Rendering/Core/ImageSlice';
import vtkColorTransferFunction from '@kitware/vtk.js/Rendering/Core/ColorTransferFunction';
import type vtkRenderer from '@kitware/vtk.js/Rendering/Core/Renderer';
import { InterpolationType, VOILUTFunctionType } from '../../enums/index.js';
import type { ColormapPublic, IImage, Point3, VOIRange } from '../../types/index.js';
export interface PlanarCameraState {
    focalPoint: Point3;
    parallelScale: number;
    position: Point3;
    viewPlaneNormal: Point3;
    viewUp: Point3;
}
export interface PlanarImagePresentation {
    visible?: boolean;
    opacity?: number;
    interpolationType?: InterpolationType;
    colormap?: ColormapPublic;
    voiRange?: VOIRange;
    voiLUTFunction?: VOILUTFunctionType;
    invert?: boolean;
}
export interface PlanarImageViewState {
    zoom?: number;
    pan?: [number, number];
}
export declare function createEmptyVTKImageData(args: {
    dimensions: Point3;
    direction: number[] | ArrayLike<number>;
    numberOfComponents: number;
    origin: Point3;
    pixelArray: ArrayLike<number>;
    spacing: Point3;
}): vtkImageData;
export declare function createVTKImageDataFromImage(image: IImage): vtkImageData;
export declare function updateVTKImageDataGeometryFromImage(imageData: vtkImageData, image: IImage): void;
export declare function getDefaultImageVOIRange(image: IImage): VOIRange | undefined;
export declare function getPlanarCameraState(renderer: vtkRenderer): PlanarCameraState;
export declare function applyPlanarImagePresentation(args: {
    actor: vtkImageSlice;
    defaultVOIRange?: VOIRange;
    defaultVOILUTFunction?: VOILUTFunctionType;
    props?: PlanarImagePresentation;
}): void;
export declare function createPlanarRGBTransferFunction(args: {
    colormap?: ColormapPublic;
    invert?: boolean;
    voiRange: VOIRange;
    voiLUTFunction?: VOILUTFunctionType;
}): vtkColorTransferFunction;
export declare function applyPlanarCameraViewState(args: {
    initialCamera: PlanarCameraState;
    renderer: vtkRenderer;
    viewState?: PlanarImageViewState;
}): void;
