import { CAMERA_TYPE, ICamera, ICameraOptions } from "@shapediver/viewer.rendering-engine.camera-engine";
import { IBox } from "@shapediver/viewer.shared.math";
import { vec2, vec3 } from "gl-matrix";
import { ICameraApi } from "../../interfaces/camera/ICameraApi";
import { IViewportApi } from "../../interfaces/IViewportApi";
export declare abstract class AbstractCameraApi implements ICameraApi {
    #private;
    protected scope: string;
    constructor(viewportApi: IViewportApi, camera: ICamera);
    get autoAdjust(): boolean;
    set autoAdjust(value: boolean);
    get autoRotationSpeed(): number;
    set autoRotationSpeed(value: number);
    get cameraMovementDuration(): number;
    set cameraMovementDuration(value: number);
    get cubePositionRestriction(): {
        min: vec3;
        max: vec3;
    };
    set cubePositionRestriction(value: {
        min: vec3;
        max: vec3;
    });
    get cubeTargetRestriction(): {
        min: vec3;
        max: vec3;
    };
    set cubeTargetRestriction(value: {
        min: vec3;
        max: vec3;
    });
    get damping(): number;
    set damping(value: number);
    get defaultPosition(): vec3;
    set defaultPosition(value: vec3);
    get defaultTarget(): vec3;
    set defaultTarget(value: vec3);
    get enableAutoRotation(): boolean;
    set enableAutoRotation(value: boolean);
    get enableAzimuthRotation(): boolean;
    set enableAzimuthRotation(value: boolean);
    get enableKeyPan(): boolean;
    set enableKeyPan(value: boolean);
    get enableObjectControls(): boolean;
    set enableObjectControls(value: boolean);
    get enablePan(): boolean;
    set enablePan(value: boolean);
    get enablePolarRotation(): boolean;
    set enablePolarRotation(value: boolean);
    get enableRotation(): boolean;
    set enableRotation(value: boolean);
    get enableTurntableControls(): boolean;
    set enableTurntableControls(value: boolean);
    get enableZoom(): boolean;
    set enableZoom(value: boolean);
    get enabled(): boolean;
    set enabled(value: boolean);
    get id(): string;
    get isDefault(): boolean;
    get keyPanSpeed(): number;
    set keyPanSpeed(value: number);
    get movementSmoothness(): number;
    set movementSmoothness(value: number);
    get name(): string | undefined;
    set name(value: string | undefined);
    get objectControlsCenter(): vec3;
    set objectControlsCenter(value: vec3);
    get order(): number | undefined;
    set order(value: number | undefined);
    get panSpeed(): number;
    set panSpeed(value: number);
    get position(): vec3;
    set position(value: vec3);
    get revertAtMouseUp(): boolean;
    set revertAtMouseUp(value: boolean);
    get revertAtMouseUpDuration(): number;
    set revertAtMouseUpDuration(value: number);
    get rotationRestriction(): {
        minPolarAngle: number;
        maxPolarAngle: number;
        minAzimuthAngle: number;
        maxAzimuthAngle: number;
    };
    set rotationRestriction(value: {
        minPolarAngle: number;
        maxPolarAngle: number;
        minAzimuthAngle: number;
        maxAzimuthAngle: number;
    });
    get rotationSpeed(): number;
    set rotationSpeed(value: number);
    get spherePositionRestriction(): {
        center: vec3;
        radius: number;
    };
    set spherePositionRestriction(value: {
        center: vec3;
        radius: number;
    });
    get sphereTargetRestriction(): {
        center: vec3;
        radius: number;
    };
    set sphereTargetRestriction(value: {
        center: vec3;
        radius: number;
    });
    get target(): vec3;
    set target(value: vec3);
    get turntableCenter(): vec3;
    set turntableCenter(value: vec3);
    get type(): CAMERA_TYPE;
    get zoomRestriction(): {
        minDistance: number;
        maxDistance: number;
    };
    set zoomRestriction(value: {
        minDistance: number;
        maxDistance: number;
    });
    get zoomSpeed(): number;
    set zoomSpeed(value: number);
    get zoomToFactor(): number;
    set zoomToFactor(value: number);
    animate(path: {
        position: vec3;
        target: vec3;
    }[], options?: ICameraOptions): Promise<boolean>;
    calculateZoomTo(zoomTarget?: IBox, startingPosition?: vec3, startingTarget?: vec3): {
        position: vec3;
        target: vec3;
    };
    project(p: vec3): vec2;
    reset(options?: ICameraOptions): Promise<boolean>;
    set(position: vec3, target: vec3, options?: ICameraOptions): Promise<boolean>;
    unproject(p: vec3): vec3;
    zoomTo(zoomTarget?: IBox, options?: ICameraOptions): Promise<boolean>;
}
//# sourceMappingURL=AbstractCameraApi.d.ts.map