/** @packageDocumentation
 * @module Geometry
 */
/** This interface defines the mathematical model of the Earth shape in the form of an ellipsoid.
 *  There are various ways to define an ellipsoid but we have retained the definition based on the polar and equatorial radiuses.
 *  The other ellipsoid properties, such as flattening and inverse flattening, can be obtained using
 *  the simple equations that are defined at:
 *  https://en.wikipedia.org/wiki/Flattening and https://en.wikipedia.org/wiki/Earth_ellipsoid.
 *  @public
 *  @extensions
 */
export interface GeodeticEllipsoidProps {
    /** Ellipsoid key name */
    id?: string;
    /** Description of the ellipsoid */
    description?: string;
    /** If true then indicates the definition is deprecated. It should then be used for backward compatibility only.
     *  If false or undefined then the definition is not deprecated.
     */
    deprecated?: boolean;
    /** The textual description of the source of the ellipsoid definition. */
    source?: string;
    /** The EPSG code of the ellipsoid. If undefined then there is no EPSG code associated. */
    epsg?: number;
    /** The equatorial radius of the ellipsoid in meters */
    equatorialRadius?: number;
    /** The polar radius of the ellipsoid in meters*/
    polarRadius?: number;
}
/** This class defines the mathematical model of the Earth shape in the form of an ellipsoid.
 *  There are various ways to define an ellipsoid but we have retained the definition based on the polar and equatorial radiuses.
 *  The other ellipsoid properties, such as flattening and inverse flattening, can be obtained using
 *  the simple equations that are defined at:
 *  https://en.wikipedia.org/wiki/Flattening and https://en.wikipedia.org/wiki/Earth_ellipsoid.
 *  The present class only implements the definition of the ellipsoid. No processing is performed here. If ellipsoid based computation
 *  are required refer to [[Ellipsoid]] in core/geometry package.
 *  The class only serves to describe a geodetic ellipsoid and can be partially or fully defined.
 *  For a lot of purposes simply setting the id property is sufficient to describe the ellipsoid in most cases
 *  as the mathematical properties (equatorial and polar radiuses) will be often extracted from the dictionary
 *  of commonly known ellipsoids by the reprojection engine used.
 *  @public
 */
export declare class GeodeticEllipsoid implements GeodeticEllipsoidProps {
    /** Ellipsoid key name */
    readonly id?: string;
    /** Description of the ellipsoid */
    readonly description?: string;
    /** If true then indicates the definition is deprecated. It should then be used for backward compatibility only.
     *  If false then the definition is not deprecated. Default is false.
     */
    readonly deprecated: boolean;
    /** The textual description of the source of the ellipsoid definition. */
    readonly source?: string;
    /** The EPSG code of the ellipsoid. If undefined then there is no EPSG code associated. */
    readonly epsg?: number;
    /** The equatorial radius of the ellipsoid in meters. */
    readonly equatorialRadius?: number;
    /** The polar radius of the ellipsoid in meters. */
    readonly polarRadius?: number;
    constructor(data?: GeodeticEllipsoidProps);
    /** Creates a Geodetic Ellipsoid from JSON representation.
     * @public */
    static fromJSON(data: GeodeticEllipsoidProps): GeodeticEllipsoid;
    /** Creates a JSON from the Geodetic Ellipsoid definition
     * @public */
    toJSON(): GeodeticEllipsoidProps;
    /** Compares two Geodetic Ellipsoid. It is a strict compare operation not an equivalence test
     * but it applies a minuscule tolerance for floating point compares.
     * It takes into account descriptive properties not only mathematical definition properties.
     *  @public */
    equals(other: GeodeticEllipsoid): boolean;
}
//# sourceMappingURL=GeodeticEllipsoid.d.ts.map