/** @packageDocumentation
 * @module CartesianGeometry
 */
import { BeJSONFunctions } from "../Geometry";
import { Angle } from "./Angle";
/**
 * An `AngleAngleNumber` is a pair of angles (named `longitude` and `latitude`) and an additional number.
 * * This is directly intended to support `Ellipsoid` computations, with the two angles used as
 *    * `longitude` is "around the equator"
 *    * `latitude` is "equator to pole"
 *    * `h` is altitude above the `Ellipsoid surface.
 * * The structure may also be used for torus coordinates.
 * @public
 */
export declare class LongitudeLatitudeNumber implements BeJSONFunctions {
    private _longitude;
    private _latitude;
    private _altitude;
    /** (property getter) longitude in radians */
    get longitudeRadians(): number;
    /** (property getter) longitude in degrees */
    get longitudeDegrees(): number;
    /** (property getter) (reference to) longitude as a strongly typed `Angle` */
    get longitudeRef(): Angle;
    /** (property getter) (clone of)  longitude as a strongly typed `Angle` */
    get longitude(): Angle;
    /** (property getter) latitude in radians */
    get latitudeRadians(): number;
    /** (property getter) latitude in degrees */
    get latitudeDegrees(): number;
    /** (property getter) (reference to) latitude as a strongly typed `Angle` */
    get latitudeRef(): Angle;
    /** (property getter) (clone of)  latitude as a strongly typed `Angle` */
    get latitude(): Angle;
    /** Get or set the altitude. */
    get altitude(): number;
    set altitude(value: number);
    /** Constructor: Capture angles and altitude */
    private constructor();
    /** Create with all zero angles and altitude. */
    static createZero(): LongitudeLatitudeNumber;
    /** Create with strongly typed `Angle` inputs */
    static create(longitude: Angle, latitude: Angle, h?: number, result?: LongitudeLatitudeNumber): LongitudeLatitudeNumber;
    /** Create with angles in radians. */
    static createRadians(longitudeRadians: number, latitudeRadians: number, h?: number, result?: LongitudeLatitudeNumber): LongitudeLatitudeNumber;
    /** Create with angles in degrees. */
    static createDegrees(longitudeDegrees: number, latitudeDegrees: number, h?: number, result?: LongitudeLatitudeNumber): LongitudeLatitudeNumber;
    /**
     * Set content from a JSON object.
     * If the json object is undefined or unrecognized, always set a default value.
     *
     */
    setFromJSON(json: any): void;
    /** Return a json object with this object's contents.
     * * Tag names are: longitude, latitude, h
     */
    toJSON(): any;
    /** Test for near equality */
    isAlmostEqual(other: LongitudeLatitudeNumber): boolean;
    /** Return a copy */
    clone(): LongitudeLatitudeNumber;
}
//# sourceMappingURL=LongitudeLatitudeAltitude.d.ts.map