import { BlendModes, OrientationAxis } from '../enums';
import type { FlipDirection, IImageData, IVolumeInput, OrientationVectors, Point2, Point3, VolumeViewportProperties, ViewReferenceSpecifier, ReferenceCompatibleOptions } from '../types';
import type { ViewportInput } from '../types/IViewport';
import type IVolumeViewport from '../types/IVolumeViewport';
import type { ViewReference } from '../types/IViewport';
import Viewport from './Viewport';
declare abstract class BaseVolumeViewport extends Viewport implements IVolumeViewport {
    useCPURendering: boolean;
    useNativeDataType: boolean;
    private _FrameOfReferenceUID;
    protected initialTransferFunctionNodes: any;
    private globalDefaultProperties;
    private perVolumeIdDefaultProperties;
    protected initialViewUp: Point3;
    protected viewportProperties: VolumeViewportProperties;
    constructor(props: ViewportInput);
    static get useCustomRenderingPipeline(): boolean;
    protected applyViewOrientation(orientation: OrientationAxis | OrientationVectors): void;
    private initializeVolumeNewImageEventDispatcher;
    protected resetVolumeViewportClippingRange(): void;
    private setVOILUTFunction;
    private setColormap;
    private setOpacity;
    private setInvert;
    private _getOrCreateColorTransferFunction;
    private setInterpolationType;
    private setVOI;
    private setRotation;
    private rotateCamera;
    setDefaultProperties(ViewportProperties: VolumeViewportProperties, volumeId?: string): void;
    clearDefaultProperties(volumeId?: string): void;
    getViewReference(viewRefSpecifier?: ViewReferenceSpecifier): ViewReference;
    isReferenceViewable(viewRef: ViewReference, options?: ReferenceCompatibleOptions): boolean;
    setProperties({ voiRange, VOILUTFunction, invert, colormap, preset, interpolationType, slabThickness, rotation, }?: VolumeViewportProperties, volumeId?: string, suppressEvents?: boolean): void;
    resetToDefaultProperties(volumeId: string): void;
    private setPreset;
    getDefaultProperties: (volumeId?: string) => VolumeViewportProperties;
    getProperties: (volumeId?: string) => VolumeViewportProperties;
    private getColormap;
    setVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
    addVolumes(volumeInputArray: Array<IVolumeInput>, immediate?: boolean, suppressEvents?: boolean): Promise<void>;
    removeVolumeActors(actorUIDs: Array<string>, immediate?: boolean): void;
    setOrientation(orientation: OrientationAxis, immediate?: boolean): void;
    private _getApplicableVolumeActor;
    private _isValidVolumeInputArray;
    getRotation: () => number;
    getBounds(): number[];
    flip(flipDirection: FlipDirection): void;
    getFrameOfReferenceUID: () => string | undefined;
    hasVolumeId(volumeId: string): boolean;
    getImageData(volumeId?: string): IImageData | undefined;
    private _setVolumeActors;
    canvasToWorld: (canvasPos: Point2) => Point3;
    worldToCanvas: (worldPos: Point3) => Point2;
    hasImageURI: (imageURI: string) => boolean;
    protected _getOrientationVectors(orientation: OrientationAxis | OrientationVectors): OrientationVectors;
    getSlabThickness(): number;
    getIntensityFromWorld(point: Point3): number;
    getImageIds: (volumeId?: string) => Array<string>;
    abstract getCurrentImageId(): string | undefined;
    protected getVolumeId(specifier: ViewReferenceSpecifier): string;
    getReferenceId(specifier?: ViewReferenceSpecifier): string;
    abstract setBlendMode(blendMode: BlendModes, filterActorUIDs?: Array<string>, immediate?: boolean): void;
    abstract setSlabThickness(slabThickness: number, filterActorUIDs?: Array<string>): void;
    abstract resetProperties(volumeId?: string): void;
}
export default BaseVolumeViewport;
//# sourceMappingURL=BaseVolumeViewport.d.ts.map