import { type Bias, type LatLng, type Location } from './Location.types';
import type { LocationAPI } from './LocationAPI.types';
export default class GoogleMapsAPI implements LocationAPI {
    private version;
    /** Returns coordinations for given input: either coords, address or current position. */
    getCoords: (location: string | "current" | LatLng) => Promise<LatLng>;
    getPlaceById: (placeId: string, sessionToken?: google.maps.places.AutocompleteSessionToken, mapElement?: HTMLDivElement) => Promise<Location>;
    getAddress: (coords: LatLng) => Promise<{
        name: string;
        address?: string;
        latitude: number;
        longitude: number;
    }>;
    getPlacePredictionsUtil: (location: string, bias?: Bias, existingToken?: google.maps.places.AutocompleteSessionToken) => Promise<{
        placeSuggestions: {
            placeId: string;
            mainText: string;
            secondaryText: string;
        }[];
        token: google.maps.places.AutocompleteSessionToken;
    }>;
    getPlaceSuggestionsUtil: (location: string, bias?: Bias, existingToken?: google.maps.places.AutocompleteSessionToken) => Promise<{
        placeSuggestions: {
            placeId: string;
            mainText: string;
            secondaryText: string;
        }[];
        token: google.maps.places.AutocompleteSessionToken;
    }>;
    /** Returns an array of place prediction objects ('place' can be an establishment, geographic location, or prominent point of interest)
     * and  session token (valid for multiple queries, followed by one place selection).
     */
    getPlacePredictions: (location: string, bias?: Bias, sessionToken?: google.maps.places.AutocompleteSessionToken) => Promise<{
        placeSuggestions: {
            placeId: string;
            mainText: string;
            secondaryText: string;
        }[];
        token: google.maps.places.AutocompleteSessionToken;
    }>;
}
//# sourceMappingURL=GoogleMapsAPI.d.ts.map