///
import AbstractProvider, { EndpointArgument, ParseArgument, ProviderOptions, SearchArgument, SearchResult } from './provider';
export interface RequestResult {
results: google.maps.GeocoderResult[];
status?: google.maps.GeocoderStatus;
}
export interface GeocodeError {
code: Exclude;
endpoint: 'GEOCODER_GEOCODE';
message: string;
name: 'MapsRequestError';
stack: string;
}
export interface GoogleProviderOptions extends ProviderOptions {
apiKey: string;
/** Maps JavaScript API version, sent as `v` */
version?: string;
language?: string;
region?: string;
libraries?: string[];
mapIds?: string[];
authReferrerPolicy?: string;
channel?: string;
client?: string;
solutionChannel?: string;
/** @deprecated not supported by the 2.x loader, ignored */
id?: string;
/** @deprecated ignored, the loader uses the nonce of a script on the page */
nonce?: string;
/** @deprecated not supported by the 2.x loader, ignored */
retries?: number;
/** @deprecated ignored, the API always loads from maps.googleapis.com */
url?: string;
}
export default class GoogleProvider extends AbstractProvider {
loader: Promise | null;
geocoder: google.maps.Geocoder | null;
constructor(options: GoogleProviderOptions);
endpoint(_args: EndpointArgument): never;
parse(response: ParseArgument): SearchResult[];
search(options: SearchArgument): Promise[]>;
}