/// <reference types="google.maps" />
import type { FieldValueListItemProps } from '../FieldValueList';
export declare type LatLng = {
    /** The latitude representation. */
    latitude: ReturnType<google.maps.LatLng['lat']>;
    /** The longitude representation. */
    longitude: ReturnType<google.maps.LatLng['lng']>;
};
export declare type Bias = {
    /** Predictions will be biased towards, but not restricted to, the given bounds. Both location and radius will be ignored if bounds is set.
     * Array stores south-west coordinate of bounding box and north-east coordinate of bounding box. */
    bounds?: [LatLng, LatLng];
    /** Predictions will be biased towards the given location and radius. */
    location?: {
        /** Must to provide both center and radius. */
        /** Location coordinate or current (means user current location). */
        center: LatLng | 'current';
        /** The radius is specified in meters. */
        radius: number;
    };
};
export declare type ProviderOpts = {
    [key: string]: any;
};
export interface MapsProvider {
    name: string;
    loadAPI: (options: ProviderOpts) => Promise<void>;
    loadedPromise: Promise<void> | null;
    loadedApiKey: string;
}
export declare const QUERY_FIELDS: string[];
export declare const QUERY_TYPES: string[];
export declare const LocationNotFoundError = "Location not found";
export declare const GeolocationUnsupportedError = "Geolocation unsupported";
export declare const GoogleMapsAPINotFoundError = "Cannot load Google Maps API";
export declare const IsNotAnObjectError = "Provider data given is not an object";
export declare const ProviderNotSupportedError = "Not supported maps provider given";
export declare const CoordsCannotBeParsedError = "Coords cannot be parsed!";
export declare const GeocoderFailedError = "Geocoder failed due to";
export interface Location {
    name?: google.maps.places.PlaceResult['name'];
    address?: google.maps.places.PlaceResult['formatted_address'];
    latitude?: ReturnType<google.maps.LatLng['lat']>;
    longitude?: ReturnType<google.maps.LatLng['lng']>;
}
export interface Pin extends LatLng {
    title?: string;
    additionalInfo?: FieldValueListItemProps[];
    selected?: boolean;
}
//# sourceMappingURL=Location.types.d.ts.map