import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
import { Angle, Vector3 } from "@vived/core";
export interface CameraVM {
    target: Vector3;
    position: Vector3;
    nearClip: number;
    farClip: number;
    fov: Angle;
}
export declare const defaultCameraVM: CameraVM;
export declare abstract class CameraPM extends AppObjectPM<CameraVM> {
    static readonly type = "CameraPM";
    static get: (appObjects: AppObjectRepo) => CameraPM | undefined;
}
export declare function makeCameraPM(appObject: AppObject): CameraPMImp;
declare class CameraPMImp extends CameraPM {
    private cameraEntity?;
    onCameraChange: () => void;
    vmsAreEqual: (a: CameraVM, b: CameraVM) => boolean;
    dispose: () => void;
    constructor(appObject: AppObject);
}
export {};
//# sourceMappingURL=CameraPM.d.ts.map