import { Address, AddressSummary } from './address';
import { AddressLookupFindQuery, AddressLookupRetrieveQuery, AddressLookupService, AddressLookupServiceProvider } from './address-lookup';
import { AutocompletePredictionResponse, PlaceResultResponse } from './address-lookup-proxy-google';
export default class AddressLookupGoogleProxyService implements AddressLookupService {
    protected findPromise: (params: any) => Promise<AutocompletePredictionResponse>;
    protected retrievePromise: (params: any) => Promise<PlaceResultResponse>;
    protected findErrorCallback: (error: ErrorEvent) => void;
    protected retrieveErrorCallback: (error: ErrorEvent) => void;
    serviceProvider: AddressLookupServiceProvider;
    private sessionToken?;
    /**
     * Use this service if you have your own proxy to google. A proxy is useful to keep your googleAPI key secret.
     * @param findUrl https://developers.google.com/places/web-service/autocomplete
     * @param retrieveUrl https://developers.google.com/places/web-service/details
     */
    constructor(findPromise: (params: any) => Promise<AutocompletePredictionResponse>, retrievePromise: (params: any) => Promise<PlaceResultResponse>, findErrorCallback: (error: ErrorEvent) => void, retrieveErrorCallback: (error: ErrorEvent) => void);
    find(query: AddressLookupFindQuery): Promise<AddressSummary[]>;
    retrieve(query: AddressLookupRetrieveQuery): Promise<Address[]>;
    private ensureCreateToken;
    private discardToken;
}
//# sourceMappingURL=address-lookup-proxy-google-service.d.ts.map