import { mat4 } from 'gl-matrix';
import type { vtkObject } from '@kitware/vtk.js/interfaces';
import type { Range } from '@kitware/vtk.js/types';
interface ICameraInitialValues {
    position?: number[];
    focalPoint?: number[];
    viewUp?: number[];
    directionOfProjection?: number[];
    parallelProjection?: boolean;
    useHorizontalViewAngle?: boolean;
    viewAngle?: number;
    parallelScale?: number;
    clippingRange?: number[];
    windowCenter?: number[];
    viewPlaneNormal?: number[];
    useOffAxisProjection?: boolean;
    screenBottomLeft?: number[];
    screenBottomRight?: number[];
    screenTopRight?: number[];
    freezeFocalPoint?: boolean;
    physicalTranslation?: number[];
    physicalScale?: number;
    physicalViewUp?: number[];
    physicalViewNorth?: number[];
}
export interface vtkSlabCamera extends vtkObject {
    applyTransform(transformMat4: mat4): void;
    azimuth(angle: number): void;
    computeClippingRange(bounds: number[]): Range;
    computeDistance(): void;
    computeViewParametersFromPhysicalMatrix(mat: mat4): void;
    computeViewParametersFromViewMatrix(vmat: mat4): void;
    deepCopy(sourceCamera: vtkSlabCamera): void;
    dolly(amount: number): void;
    elevation(angle: number): void;
    getCameraLightTransformMatrix(): void;
    getClippingRange(): number[];
    getClippingRangeByReference(): number[];
    getCompositeProjectionMatrix(aspect: number, nearz: number, farz: number): mat4;
    getDirectionOfProjection(): number[];
    getDirectionOfProjectionByReference(): number[];
    getDistance(): number;
    getFocalPoint(): number[];
    getFocalPointByReference(): number[];
    getFreezeFocalPoint(): boolean;
    setFreezeFocalPoint(freeze: boolean): void;
    getFrustumPlanes(aspect: number): void;
    getOrientation(): void;
    getOrientationWXYZ(): void;
    getParallelProjection(): boolean;
    getParallelScale(): number;
    getPhysicalScale(): number;
    getPhysicalToWorldMatrix(result: mat4): void;
    getPhysicalTranslation(): number[];
    getPhysicalTranslationByReference(): number[];
    getPhysicalViewNorth(): number[];
    getPhysicalViewNorthByReference(): number[];
    getPhysicalViewUp(): number[];
    getPhysicalViewUpByReference(): number[];
    getPosition(): number[];
    getPositionByReference(): number[];
    getProjectionMatrix(aspect: number, nearz: number, farz: number): null | mat4;
    getRoll(): void;
    getScreenBottomLeft(): number[];
    getScreenBottomLeftByReference(): number[];
    getScreenBottomRight(): number[];
    getScreenBottomRightByReference(): number[];
    getScreenTopRight(): number[];
    getScreenTopRightByReference(): number[];
    getThickness(): number;
    getUseHorizontalViewAngle(): boolean;
    getUseOffAxisProjection(): boolean;
    getViewAngle(): number;
    getViewMatrix(): null | mat4;
    getViewPlaneNormal(): number[];
    getViewPlaneNormalByReference(): number[];
    getViewUp(): number[];
    getViewUpByReference(): number[];
    getWindowCenter(): number[];
    getWindowCenterByReference(): number[];
    getWorldToPhysicalMatrix(result: mat4): void;
    getIsPerformingCoordinateTransformation(status: boolean): void;
    orthogonalizeViewUp(): void;
    physicalOrientationToWorldDirection(ori: number[]): number[];
    pitch(angle: number): void;
    roll(angle: number): void;
    setClippingRange(near: number, far: number): boolean;
    setClippingRange(clippingRange: number[]): boolean;
    setClippingRangeFrom(clippingRange: number[]): boolean;
    setDeviceAngles(alpha: number, beta: number, gamma: number, screen: number): boolean;
    setDirectionOfProjection(x: number, y: number, z: number): boolean;
    setDistance(distance: number): boolean;
    setFocalPoint(x: number, y: number, z: number): boolean;
    setFocalPointFrom(focalPoint: number[]): boolean;
    setObliqueAngles(alpha: number, beta: number): boolean;
    setOrientationWXYZ(degrees: number, x: number, y: number, z: number): boolean;
    setParallelProjection(parallelProjection: boolean): boolean;
    setParallelScale(parallelScale: number): boolean;
    setPhysicalScale(physicalScale: number): boolean;
    setPhysicalTranslation(x: number, y: number, z: number): boolean;
    setPhysicalTranslationFrom(physicalTranslation: number[]): boolean;
    setPhysicalViewNorth(x: number, y: number, z: number): boolean;
    setPhysicalViewNorthFrom(physicalViewNorth: number[]): boolean;
    setPhysicalViewUp(x: number, y: number, z: number): boolean;
    setPhysicalViewUpFrom(physicalViewUp: number[]): boolean;
    setPosition(x: number, y: number, z: number): boolean;
    setProjectionMatrix(mat: mat4): boolean;
    setRoll(angle: number): boolean;
    setScreenBottomLeft(x: number, y: number, z: number): boolean;
    setScreenBottomLeft(screenBottomLeft: number[]): boolean;
    setScreenBottomLeftFrom(screenBottomLeft: number[]): boolean;
    setScreenBottomRight(x: number, y: number, z: number): boolean;
    setScreenBottomRight(screenBottomRight: number[]): boolean;
    setScreenBottomRightFrom(screenBottomRight: number[]): boolean;
    setScreenTopRight(x: number, y: number, z: number): boolean;
    setScreenTopRight(screenTopRight: number[]): boolean;
    setScreenTopRightFrom(screenTopRight: number[]): boolean;
    setThickness(thickness: number): boolean;
    setThicknessFromFocalPoint(thickness: number): boolean;
    setUseHorizontalViewAngle(useHorizontalViewAngle: boolean): boolean;
    setUseOffAxisProjection(useOffAxisProjection: boolean): boolean;
    setViewAngle(viewAngle: number): boolean;
    setViewMatrix(mat: mat4): boolean;
    setViewUp(x: number, y: number, z: number): boolean;
    setViewUp(viewUp: number[]): boolean;
    setViewUpFrom(viewUp: number[]): boolean;
    setWindowCenter(x: number, y: number): boolean;
    setWindowCenterFrom(windowCenter: number[]): boolean;
    translate(x: number, y: number, z: number): void;
    yaw(angle: number): void;
    zoom(factor: number): void;
    setIsPerformingCoordinateTransformation(status: boolean): void;
    computeCameraLightTransform(): void;
    getAspectRatio(): [x: number, y: number];
    setAspectRatio(aspectRatio: [x: number, y: number]): boolean;
}
declare function extend(publicAPI: any, model: any, initialValues?: ICameraInitialValues): void;
declare const newInstance: (initialValues?: ICameraInitialValues) => vtkSlabCamera;
declare const _default: {
    newInstance: (initialValues?: ICameraInitialValues) => vtkSlabCamera;
    extend: typeof extend;
};
export default _default;
export { newInstance, extend };
