import * as superagent from 'superagent';
import { IGooglePlacesConfig, GooglePlacesQueryAutocompleteOpts, GooglePlaceAutocompleteResponse, GooglePlaceQueryAutocompleteResponse, GooglePlaceDetailsResponse, GooglePlacesDetailsOpts, GooglePlacesNearbySearchOpts, GooglePlaceNearbySearchResponse, GooglePlaceTextSearchResponse, GooglePlacesTextSearchOpts } from '../types';
import { AutoCompleteSearchRequest, FindByTextSearchRequest, NearbySearchRequest, PlaceDetailsSearchRequest, TextSearchRequest } from '../search';
export declare const GOOGLE_MAPS_API_TARGET = "https://maps.googleapis.com/maps/api/place";
export declare class GooglePlaces {
    private _apiKey?;
    private _debug;
    constructor(opts?: IGooglePlacesConfig);
    query(type: 'queryautocomplete', opts: AutoCompleteSearchRequest): Promise<superagent.Response>;
    query(type: 'nearbysearch', opts: NearbySearchRequest): Promise<superagent.Response>;
    query(type: 'textsearch', opts: TextSearchRequest): Promise<superagent.Response>;
    query(type: 'details', opts: PlaceDetailsSearchRequest): Promise<superagent.Response>;
    query(type: 'findplacefromtext', opts: FindByTextSearchRequest): Promise<superagent.Response>;
    autocomplete(opts?: GooglePlacesQueryAutocompleteOpts): Promise<GooglePlaceAutocompleteResponse>;
    queryautocomplete(opts?: GooglePlacesQueryAutocompleteOpts): Promise<GooglePlaceQueryAutocompleteResponse>;
    details(opts?: GooglePlacesDetailsOpts): Promise<GooglePlaceDetailsResponse>;
    nearbysearch(opts?: GooglePlacesNearbySearchOpts): Promise<GooglePlaceNearbySearchResponse>;
    textsearch(opts?: GooglePlacesTextSearchOpts): Promise<GooglePlaceTextSearchResponse>;
    set apiKey(apiKey: string | undefined);
    get apiKey(): string | undefined;
    set debug(isDebug: boolean);
    private _googleApiRequest;
    private _permitParams;
    private _log;
    private _query;
}
declare const _default: GooglePlaces;
export default _default;
