import { EventDispatcher, Quaternion, Vector3 } from 'three';
import { IUiConfigContainer, UiObjectConfig } from 'uiconfig.js';
import { ICamera } from '../ICamera';
export interface ICameraView extends IUiConfigContainer {
    name: string;
    position: Vector3;
    target: Vector3;
    quaternion: Quaternion;
    zoom: number;
    duration?: number;
    isWorldSpace?: boolean;
    animate?(camera?: ICamera, duration?: number): void;
    set?(camera?: ICamera): void;
    update?(camera?: ICamera): void;
    delete?(camera?: ICamera): void;
    setDirty?: (ops?: any) => void;
}
export interface CameraViewEventMap {
    setView: {
        camera?: ICamera;
        view: ICameraView;
    };
    animateView: {
        camera?: ICamera;
        duration?: number;
        view: ICameraView;
    };
    updateView: {
        camera?: ICamera;
        view: ICameraView;
    };
    deleteView: {
        camera?: ICamera;
        view: ICameraView;
    };
    update: {
        key?: string;
    };
}
export declare class CameraView extends EventDispatcher<CameraViewEventMap> implements ICameraView, IUiConfigContainer {
    uuid: string;
    name: string;
    position: Vector3;
    target: Vector3;
    quaternion: Quaternion;
    zoom: number;
    /**
     * Duration multiplier. Set to 0 for instant camera jump.
     */
    duration: number;
    isWorldSpace: boolean;
    set: (camera?: ICamera) => void;
    update: (camera?: ICamera) => void;
    delete: (camera?: ICamera) => void;
    animate: (camera?: ICamera, duration?: number) => void;
    constructor(name?: string, position?: Vector3, target?: Vector3, quaternion?: Quaternion, zoom?: number, duration?: number, isWoldSpace?: boolean);
    setDirty: (ops?: any) => void;
    clone(): CameraView;
    uiConfig?: UiObjectConfig;
}
export declare function createCameraPath(views: CameraView[]): {
    getPosition: (t: number, viewIndex: number, v?: Vector3) => Vector3;
    getTarget: (t: number, viewIndex: number, v?: Vector3) => Vector3;
};
//# sourceMappingURL=../../src/core/camera/CameraView.d.ts.map