import { Angle, AppObject, AppObjectEntity, AppObjectRepo } from "@vived/core";
import { Transform3D } from "../../Transform3D";
export declare abstract class CameraEntity extends AppObjectEntity {
    static type: string;
    static get: (appObjects: AppObjectRepo) => CameraEntity | undefined;
    abstract get nearClip(): number;
    abstract set nearClip(val: number);
    abstract get farClip(): number;
    abstract set farClip(val: number);
    abstract get fov(): Angle;
    abstract set fov(val: Angle);
    abstract readonly transform: Transform3D;
}
export declare function makeCameraEntity(appObject: AppObject): CameraEntityImp;
declare class CameraEntityImp extends CameraEntity {
    transform: Transform3D;
    private memoizedNearClip;
    get nearClip(): number;
    set nearClip(val: number);
    private memoizedFarClip;
    get farClip(): number;
    set farClip(val: number);
    private memoizedFOV;
    get fov(): Angle;
    set fov(val: Angle);
    constructor(appObject: AppObject);
}
export {};
//# sourceMappingURL=CameraEntity.d.ts.map