import { SereneRequest, SereneRequestParseOptions, SereneRequestPrepareOptions } from "serene-front";
import { LocationCoordinates } from "serene-front/data";
import { MapsToken } from "./token";
import { PlaceResults } from "./models/places";
declare class MapsGeocodingRequest implements SereneRequest<MapsToken, PlaceResults> {
    constructor();
    prepare({}: SereneRequestPrepareOptions<MapsToken>): Request;
    parse({ fetchResponse }: SereneRequestParseOptions<MapsToken>): Promise<PlaceResults>;
}
export declare class GeocodeAddress extends MapsGeocodingRequest {
    readonly options: Readonly<{
        query: string;
        limitToCountries?: string[];
        language?: string;
        searchLocation?: LocationCoordinates;
        searchRegion?: LocationCoordinates;
        userLocation?: LocationCoordinates;
    }>;
    constructor(options: Readonly<{
        query: string;
        limitToCountries?: string[];
        language?: string;
        searchLocation?: LocationCoordinates;
        searchRegion?: LocationCoordinates;
        userLocation?: LocationCoordinates;
    }>);
    prepare({}: SereneRequestPrepareOptions<MapsToken>): Request;
    toString(): string;
}
export declare class ReverseGeocodeAddress extends MapsGeocodingRequest {
    readonly options: Readonly<{
        location: LocationCoordinates;
        language?: string;
    }>;
    constructor(options: Readonly<{
        location: LocationCoordinates;
        language?: string;
    }>);
    prepare({}: SereneRequestPrepareOptions<MapsToken>): Request;
    toString(): string;
}
export {};
