import { ProjectionDefinition } from 'proj4';
export interface CrsDefinition {
    crsCode: string;
    definition: string | ProjectionDefinition;
}
export interface CrsMapping {
    alias: string;
    mappedCode: string;
}
/**
 * Default proj4 CRS definitions.
 */
export declare const defaultProj4CrsDefinitions: CrsDefinition[];
/**
 * Default mappings for CRS identifiers (e.g. "urn:ogc:def:crs:EPSG::25832").
 */
export declare const defaultProj4CrsMappings: CrsMapping[];
/**
 * Helper class for projection handling. Makes use of
 * [Proj4js](http://proj4js.org/).
 *
 * @class ProjectionUtil
 */
export declare class ProjectionUtil {
    /**
     * Registers custom CRS definitions to the application.
     *
     * @param { CrsDefinition | CrsDefinition[]} customCrsDefs The custom `proj4` definitions
     *   which should be registered additionally to default available CRS (s.
     *   `defaultProj4CrsDefinitions` above) as well.
     *   Further CRS definitions in proj4 format can be checked under
     *   http://epsg.io (e.g. http://epsg.io/3426.proj4).
     * @param {boolean} registerDefaults Whether the default CRS should be
     *   registered or not. Default is true.
     */
    static initProj4Definitions(customCrsDefs?: CrsDefinition | CrsDefinition[], registerDefaults?: boolean): void;
    /**
     * Registers custom CRS mappings to allow automatic CRS detection. Sometimes
     * FeatureCollections returned by the GeoServer may be associated with
     * CRS identifiers (e.g. "urn:ogc:def:crs:EPSG::25832") that aren't
     * supported by `proj4` and `OpenLayers` per default. Add appropriate
     * mappings to allow automatic CRS detection by `OpenLayers` here.
     *
     * @param {CrsMapping | CrsMapping[]} customCrsMappings The custom CRS mappings which will be
     *   added additionally to the by default available (s. `defaultProj4CrsMappings`
     *   above).
     * @param {boolean} useDefaultMappings Whether the default CRS should be mapped
     *   as well or not. Default is true.
     */
    static initProj4DefinitionMappings(customCrsMappings: CrsMapping | CrsMapping[], useDefaultMappings?: boolean): void;
    /**
     * Converts geographic coordinates given in DDD format like `DD.DDDD°` to
     * the degree, minutes, decimal seconds (DMS) format like
     * `DDD° MM' SS.SSS"`.
     *
     * @param {number} value Value to be converted.
     *
     * @return {string} Converted value.
     */
    static toDms(value: number): string;
    /**
     * Converts geographic coordinates given in DDD format like `DD.DDDD°` to
     * the degree, decimal minutes (DMM) format like `DDD° MM.MMMM`.
     *
     * @param {number} value Value to be converted.
     *
     * @return {string} Converted value.
     */
    static toDmm(value: number): string;
    /**
     * Adds leading zero to all values less than 10 and returns this new
     * zerofilled value as String. Values which are greater than 10 are not
     * affected.
     *
     * @param {number|string} value Value to be zerofilled.
     *
     * @return {string} converted value with leading zero if necessary.
     */
    static zerofill(value: number | string): string;
}
export default ProjectionUtil;
