import { type Mat4, type Vec3 } from "@aura3d/scene";
import type { PerspectiveCameraFrame } from "./CameraFraming";
export type StereoEye = "left" | "right";
export type StereoLayout = "side-by-side" | "over-under";
export interface StereoViewport {
    readonly x: number;
    readonly y: number;
    readonly width: number;
    readonly height: number;
}
export interface StereoCameraRigOptions {
    readonly frame: Pick<PerspectiveCameraFrame, "cameraPosition" | "near" | "projectionMatrix" | "viewMatrix">;
    readonly viewport: StereoViewport;
    readonly eyeSeparation?: number;
    readonly convergenceDistance?: number;
    readonly layout?: StereoLayout;
}
export interface StereoEyeView {
    readonly eye: StereoEye;
    readonly eyeOffset: number;
    readonly cameraPosition: Vec3;
    readonly viewport: StereoViewport;
    readonly viewMatrix: Mat4;
    readonly projectionMatrix: Mat4;
    readonly viewProjectionMatrix: Mat4;
}
export interface StereoCameraRig {
    readonly layout: StereoLayout;
    readonly eyeSeparation: number;
    readonly convergenceDistance: number;
    readonly views: readonly [StereoEyeView, StereoEyeView];
}
export declare function createStereoCameraRig(options: StereoCameraRigOptions): StereoCameraRig;
//# sourceMappingURL=StereoCameraRig.d.ts.map