/**
 * @module viw-webgl-viewer/camera
 */
import * as THREE from 'three';
import { Camera } from './camera';
import { Element3D } from '../../loader/element3d';
import { CameraMovementSnap } from './cameraMovementSnap';
import { CameraMovement } from './cameraMovement';
import { CameraSaveState } from './cameraInterface';
export declare class CameraLerp extends CameraMovement {
    _movement: CameraMovementSnap;
    _clock: THREE.Clock;
    onProgress: ((progress: number) => void) | undefined;
    _duration: number;
    constructor(camera: Camera, movement: CameraMovementSnap, savedState: CameraSaveState, getBoundingBox: () => THREE.Box3);
    get isLerping(): boolean;
    init(duration: number): void;
    cancel(): void;
    easeOutCubic(x: number): number;
    update(): void;
    move3(vector: THREE.Vector3): void;
    rotate(angle: THREE.Vector2): void;
    zoom(amount: number): void;
    setDistance(dist: number): void;
    orbit(angle: THREE.Vector2): void;
    target(target: Element3D | THREE.Vector3): Promise<void>;
    set(position: THREE.Vector3, target?: THREE.Vector3): void;
}
