import { InterpolationType } from '../../../enums/index.js';
import type { IImage, IImageVolume, Point3 } from '../../../types/index.js';
import type { PlanarViewState } from './PlanarViewportTypes.js';
export interface PlanarSliceBasis {
    sliceCenterWorld: Point3;
    viewPlaneNormal: Point3;
    viewUp: Point3;
    fitParallelScale: number;
    sliceWidthWorld: number;
    sliceHeightWorld: number;
    cameraDistance: number;
}
export declare function createPlanarImageSliceBasis(args: {
    image: IImage;
    canvasWidth: number;
    canvasHeight: number;
}): PlanarSliceBasis;
export declare function createPlanarCpuImageSliceBasis(args: {
    image: IImage;
    canvasWidth: number;
    canvasHeight: number;
}): PlanarSliceBasis;
export declare function getVolumeImageIdIndexWorldPoint(imageVolume: IImageVolume | undefined, imageIdIndex: number): Point3 | undefined;
export declare function resolvePlanarVolumeImageIdIndex(args: {
    viewState?: PlanarViewState;
    fallbackImageIdIndex?: number;
}): number | undefined;
export declare function createPlanarVolumeSliceBasis(args: {
    canvasWidth: number;
    canvasHeight: number;
    imageIdIndex?: number;
    imageVolume: IImageVolume;
    orientation?: PlanarViewState['orientation'];
    viewState?: PlanarViewState;
}): {
    sliceBasis: PlanarSliceBasis;
    currentImageIdIndex: number;
    maxImageIdIndex: number;
};
export declare function createPlanarCpuVolumeSliceBasis(args: {
    canvasWidth: number;
    canvasHeight: number;
    imageIdIndex?: number;
    imageVolume: IImageVolume;
    orientation?: PlanarViewState['orientation'];
    viewState?: PlanarViewState;
}): {
    sliceBasis: PlanarSliceBasis;
    currentImageIdIndex: number;
    maxImageIdIndex: number;
};
export declare function shouldUsePlanarCpuVolumeSliceBasis(interpolationType?: InterpolationType): boolean;
