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; };