export type GeolibLongitudeInputValue = number | string;
export type GeolibLatitudeInputValue = number | string;
export type GeolibAltitudeInputValue = number;
export type GeolibGeoJSONPoint = [
    GeolibLongitudeInputValue,
    GeolibLatitudeInputValue,
    GeolibAltitudeInputValue?
];
export type LongitudeKeys = 'lng' | 'lon' | 'longitude' | 0;
export type LatitudeKeys = 'lat' | 'latitude' | 1;
export type AltitudeKeys = 'alt' | 'altitude' | 'elevation' | 'elev' | 2;
export type GeolibInputLongitude = {
    lng: GeolibLongitudeInputValue;
} | {
    lon: GeolibLongitudeInputValue;
} | {
    longitude: GeolibLongitudeInputValue;
};
export type GeolibInputLatitude = {
    lat: GeolibLatitudeInputValue;
} | {
    latitude: GeolibLatitudeInputValue;
};
export type GeolibInputAltitude = {
    alt?: GeolibAltitudeInputValue;
} | {
    altitude?: GeolibAltitudeInputValue;
} | {
    elevation?: GeolibAltitudeInputValue;
} | {
    elev?: GeolibAltitudeInputValue;
};
export type UserInputCoordinates = GeolibInputLongitude & GeolibInputLatitude & GeolibInputAltitude;
export type GeolibInputCoordinates = UserInputCoordinates | GeolibGeoJSONPoint;
export type GeolibDistanceFn = (point: GeolibInputCoordinates, dest: GeolibInputCoordinates) => number;
export type Timestamp = number;
export type GeolibInputCoordinatesWithTime = GeolibInputCoordinates & {
    time: Timestamp;
};
export type GeolibBounds = {
    maxLat: number;
    minLat: number;
    maxLng: number;
    minLng: number;
};
