import { AppObject } from "@vived/core";
import { AppObjectEntity } from "@vived/core";
import { Matrix, Quaternion, Vector3 } from "@vived/core";
import { Transform3D } from "../../Transform3D";
export interface UpdateDTO {
    position: Vector3;
    rotation: Quaternion;
    projectionMatrix: Matrix;
    view?: XRView;
}
export declare enum ZSpaceViewType {
    CENTER = "Center",
    LEFT = "Left",
    RIGHT = "Right"
}
export declare abstract class ZSpaceViewEntity extends AppObjectEntity {
    static readonly type = "ZSpaceViewEntity";
    abstract update(data: UpdateDTO): void;
    abstract get view(): XRView | undefined;
    abstract readonly transform: Transform3D;
    abstract get projectionMatrix(): Matrix;
    abstract readonly viewType: ZSpaceViewType;
}
export declare function makeZSpaceView(appObj: AppObject, viewType: ZSpaceViewType): ZSpaceViewEntity;
//# sourceMappingURL=ZSpaceViewEntity.d.ts.map