/// <reference types="googlemaps" />
/// <reference types="googlemaps" />
import { RefObject } from 'react';
import { ScriptStatus } from '@cezembre/fronts';
type AutocompleteService = google.maps.places.AutocompleteService;
type PlacesService = google.maps.places.PlacesService;
type AutocompletePrediction = google.maps.places.AutocompletePrediction;
type PlaceResult = google.maps.places.PlaceResult;
export declare function useGoogleMapsApi(googleApiKey: string): ScriptStatus;
export declare function useAutocompleteService(): RefObject<AutocompleteService | undefined>;
export declare function usePlacesService(): RefObject<PlacesService | undefined>;
export type PlacePredictionType = 'geocode' | 'address' | 'establishment' | 'locality' | 'sublocality' | 'postal_code' | 'country' | 'administrative_area_level_1' | 'administrative_area_level_2';
export declare function usePlacePredictions(query?: string | number | null, types?: PlacePredictionType[], country?: string, callback?: (result: AutocompletePrediction[]) => void): AutocompletePrediction[];
export declare function usePlaceDetails(placeId: string, callback?: (result: PlaceResult | undefined) => void): PlaceResult | undefined;
type PlaceDetailsGetter = (placeId: string) => Promise<PlaceResult>;
export declare function usePlaceDetailsGetter(): PlaceDetailsGetter;
export {};
