/** @packageDocumentation
 * @module Views
 */
import { Angle, AngleProps, Point3d, XYAndZ, XYZProps } from "@itwin/core-geometry";
/** JSON representation of a [[Camera]].
 * @public
 * @extensions
 */
export interface CameraProps {
    lens: AngleProps;
    focusDist: number;
    eye: XYZProps;
}
/** The current position (eyepoint), lens angle, and focus distance of a camera.
 * @see [Views]($docs/learning/frontend/Views.md)
 * @public
 */
export declare class Camera implements CameraProps {
    readonly lens: Angle;
    focusDist: number;
    readonly eye: Point3d;
    static isValidLensAngle(val: Angle): boolean;
    static validateLensAngle(val: Angle): void;
    invalidateFocus(): void;
    get isFocusValid(): boolean;
    getFocusDistance(): number;
    setFocusDistance(dist: number): void;
    get isLensValid(): boolean;
    validateLens(): void;
    getLensAngle(): Angle;
    setLensAngle(angle: Angle): void;
    getEyePoint(): Point3d;
    setEyePoint(pt: XYAndZ): void;
    get isValid(): boolean;
    equals(other: Camera): boolean;
    clone(): Camera;
    setFrom(rhs: Camera): void;
    /** Construct a Camera
     * @param props The properties of the new camera. If undefined, create a camera with eye at {0,0,0}, 90 degree lens, 1 meter focus distance.
     */
    constructor(props?: CameraProps);
}
//# sourceMappingURL=Camera.d.ts.map