import type * as gax from 'google-gax';
import type { Callback, CallOptions, Descriptors, ClientOptions } from 'google-gax';
import * as protos from '../../protos/protos';
/**
 *  Service definition for the Places API.
 *  Note: every request (except for Autocomplete requests) requires a field mask
 *  set outside of the request proto (`all/*`, is not assumed). The field mask
 *  can be set via the HTTP header `X-Goog-FieldMask`. See:
 *  https://developers.google.com/maps/documentation/places/web-service/choose-fields
 * @class
 * @memberof v1
 */
export declare class PlacesClient {
    private _terminated;
    private _opts;
    private _providedCustomServicePath;
    private _gaxModule;
    private _gaxGrpc;
    private _protos;
    private _defaults;
    private _universeDomain;
    private _servicePath;
    private _log;
    auth: gax.GoogleAuth;
    descriptors: Descriptors;
    warn: (code: string, message: string, warnType?: string) => void;
    innerApiCalls: {
        [name: string]: Function;
    };
    pathTemplates: {
        [name: string]: gax.PathTemplate;
    };
    placesStub?: Promise<{
        [name: string]: Function;
    }>;
    /**
     * Construct an instance of PlacesClient.
     *
     * @param {object} [options] - The configuration object.
     * The options accepted by the constructor are described in detail
     * in [this document](https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#creating-the-client-instance).
     * The common options are:
     * @param {object} [options.credentials] - Credentials object.
     * @param {string} [options.credentials.client_email]
     * @param {string} [options.credentials.private_key]
     * @param {string} [options.email] - Account email address. Required when
     *     using a .pem or .p12 keyFilename.
     * @param {string} [options.keyFilename] - Full path to the a .json, .pem, or
     *     .p12 key downloaded from the Google Developers Console. If you provide
     *     a path to a JSON file, the projectId option below is not necessary.
     *     NOTE: .pem and .p12 require you to specify options.email as well.
     * @param {number} [options.port] - The port on which to connect to
     *     the remote host.
     * @param {string} [options.projectId] - The project ID from the Google
     *     Developer's Console, e.g. 'grape-spaceship-123'. We will also check
     *     the environment variable GCLOUD_PROJECT for your project ID. If your
     *     app is running in an environment which supports
     *     {@link https://cloud.google.com/docs/authentication/application-default-credentials Application Default Credentials},
     *     your project ID will be detected automatically.
     * @param {string} [options.apiEndpoint] - The domain name of the
     *     API remote host.
     * @param {gax.ClientConfig} [options.clientConfig] - Client configuration override.
     *     Follows the structure of {@link gapicConfig}.
     * @param {boolean} [options.fallback] - Use HTTP/1.1 REST mode.
     *     For more information, please check the
     *     {@link https://github.com/googleapis/gax-nodejs/blob/main/client-libraries.md#http11-rest-api-mode documentation}.
     * @param {gax} [gaxInstance]: loaded instance of `google-gax`. Useful if you
     *     need to avoid loading the default gRPC version and want to use the fallback
     *     HTTP implementation. Load only fallback version and pass it to the constructor:
     *     ```
     *     const gax = require('google-gax/build/src/fallback'); // avoids loading google-gax with gRPC
     *     const client = new PlacesClient({fallback: true}, gax);
     *     ```
     */
    constructor(opts?: ClientOptions, gaxInstance?: typeof gax | typeof gax.fallback);
    /**
     * Initialize the client.
     * Performs asynchronous operations (such as authentication) and prepares the client.
     * This function will be called automatically when any class method is called for the
     * first time, but if you need to initialize it before calling an actual method,
     * feel free to call initialize() directly.
     *
     * You can await on this method if you want to make sure the client is initialized.
     *
     * @returns {Promise} A promise that resolves to an authenticated service stub.
     */
    initialize(): Promise<{
        [name: string]: Function;
    }>;
    /**
     * The DNS address for this API service.
     * @deprecated Use the apiEndpoint method of the client instance.
     * @returns {string} The DNS address for this service.
     */
    static get servicePath(): string;
    /**
     * The DNS address for this API service - same as servicePath.
     * @deprecated Use the apiEndpoint method of the client instance.
     * @returns {string} The DNS address for this service.
     */
    static get apiEndpoint(): string;
    /**
     * The DNS address for this API service.
     * @returns {string} The DNS address for this service.
     */
    get apiEndpoint(): string;
    get universeDomain(): string;
    /**
     * The port for this API service.
     * @returns {number} The default port for this service.
     */
    static get port(): number;
    /**
     * The scopes needed to make gRPC calls for every method defined
     * in this service.
     * @returns {string[]} List of default scopes.
     */
    static get scopes(): string[];
    getProjectId(): Promise<string>;
    getProjectId(callback: Callback<string, undefined, undefined>): void;
    /**
     * Search for places near locations.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.languageCode
     *   Place details will be displayed with the preferred language if available.
     *   If the language code is unspecified or unrecognized, place details of any
     *   language may be returned, with a preference for English if such details
     *   exist.
     *
     *   Current list of supported languages:
     *   https://developers.google.com/maps/faq#languagesupport.
     * @param {string} request.regionCode
     *   The Unicode country/region code (CLDR) of the location where the
     *   request is coming from. This parameter is used to display the place
     *   details, like region-specific place name, if available. The parameter can
     *   affect results based on applicable law.
     *
     *   For more information, see
     *   https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.
     *
     *
     *   Note that 3-digit region codes are not currently supported.
     * @param {string[]} request.includedTypes
     *   Included Place type (eg, "restaurant" or "gas_station") from
     *   https://developers.google.com/maps/documentation/places/web-service/place-types.
     *
     *   Up to 50 types from [Table
     *   A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
     *   may be specified.
     *
     *   If there are any conflicting types, i.e. a type appears in both
     *   included_types and excluded_types, an INVALID_ARGUMENT error is
     *   returned.
     *
     *   If a Place type is specified with multiple type restrictions, only places
     *   that satisfy all of the restrictions are returned. For example, if we
     *   have {included_types = ["restaurant"], excluded_primary_types =
     *   ["restaurant"]}, the returned places provide "restaurant"
     *   related services but do not operate primarily as "restaurants".
     * @param {string[]} request.excludedTypes
     *   Excluded Place type (eg, "restaurant" or "gas_station") from
     *   https://developers.google.com/maps/documentation/places/web-service/place-types.
     *
     *   Up to 50 types from [Table
     *   A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
     *   may be specified.
     *
     *   If the client provides both included_types (e.g. restaurant) and
     *   excluded_types (e.g. cafe), then the response should include places that
     *   are restaurant but not cafe. The response includes places that match at
     *   least one of the included_types and none of the excluded_types.
     *
     *   If there are any conflicting types, i.e. a type appears in both
     *   included_types and excluded_types, an INVALID_ARGUMENT error is returned.
     *
     *   If a Place type is specified with multiple type restrictions, only places
     *   that satisfy all of the restrictions are returned. For example, if we
     *   have {included_types = ["restaurant"], excluded_primary_types =
     *   ["restaurant"]}, the returned places provide "restaurant"
     *   related services but do not operate primarily as "restaurants".
     * @param {string[]} request.includedPrimaryTypes
     *   Included primary Place type (e.g. "restaurant" or "gas_station") from
     *   https://developers.google.com/maps/documentation/places/web-service/place-types.
     *   A place can only have a single primary type from the supported types table
     *   associated with it.
     *
     *   Up to 50 types from [Table
     *   A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
     *   may be specified.
     *
     *   If there are any conflicting primary types, i.e. a type appears in both
     *   included_primary_types and excluded_primary_types, an INVALID_ARGUMENT
     *   error is returned.
     *
     *   If a Place type is specified with multiple type restrictions, only places
     *   that satisfy all of the restrictions are returned. For example, if we
     *   have {included_types = ["restaurant"], excluded_primary_types =
     *   ["restaurant"]}, the returned places provide "restaurant"
     *   related services but do not operate primarily as "restaurants".
     * @param {string[]} request.excludedPrimaryTypes
     *   Excluded primary Place type (e.g. "restaurant" or "gas_station") from
     *   https://developers.google.com/maps/documentation/places/web-service/place-types.
     *
     *   Up to 50 types from [Table
     *   A](https://developers.google.com/maps/documentation/places/web-service/place-types#table-a)
     *   may be specified.
     *
     *   If there are any conflicting primary types, i.e. a type appears in both
     *   included_primary_types and excluded_primary_types, an INVALID_ARGUMENT
     *   error is returned.
     *
     *   If a Place type is specified with multiple type restrictions, only places
     *   that satisfy all of the restrictions are returned. For example, if we
     *   have {included_types = ["restaurant"], excluded_primary_types =
     *   ["restaurant"]}, the returned places provide "restaurant"
     *   related services but do not operate primarily as "restaurants".
     * @param {number} request.maxResultCount
     *   Maximum number of results to return. It must be between 1 and 20 (default),
     *   inclusively. If the number is unset, it falls back to the upper limit. If
     *   the number is set to negative or exceeds the upper limit, an
     *   INVALID_ARGUMENT error is returned.
     * @param {google.maps.places.v1.SearchNearbyRequest.LocationRestriction} request.locationRestriction
     *   Required. The region to search.
     * @param {google.maps.places.v1.SearchNearbyRequest.RankPreference} request.rankPreference
     *   How results will be ranked in the response.
     * @param {google.maps.places.v1.RoutingParameters} [request.routingParameters]
     *   Optional. Parameters that affect the routing to the search results.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.maps.places.v1.SearchNearbyResponse|SearchNearbyResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/places.search_nearby.js</caption>
     * region_tag:places_v1_generated_Places_SearchNearby_async
     */
    searchNearby(request?: protos.google.maps.places.v1.ISearchNearbyRequest, options?: CallOptions): Promise<[
        protos.google.maps.places.v1.ISearchNearbyResponse,
        protos.google.maps.places.v1.ISearchNearbyRequest | undefined,
        {} | undefined
    ]>;
    searchNearby(request: protos.google.maps.places.v1.ISearchNearbyRequest, options: CallOptions, callback: Callback<protos.google.maps.places.v1.ISearchNearbyResponse, protos.google.maps.places.v1.ISearchNearbyRequest | null | undefined, {} | null | undefined>): void;
    searchNearby(request: protos.google.maps.places.v1.ISearchNearbyRequest, callback: Callback<protos.google.maps.places.v1.ISearchNearbyResponse, protos.google.maps.places.v1.ISearchNearbyRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Text query based place search.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.textQuery
     *   Required. The text query for textual search.
     * @param {string} request.languageCode
     *   Place details will be displayed with the preferred language if available.
     *   If the language code is unspecified or unrecognized, place details of any
     *   language may be returned, with a preference for English if such details
     *   exist.
     *
     *   Current list of supported languages:
     *   https://developers.google.com/maps/faq#languagesupport.
     * @param {string} request.regionCode
     *   The Unicode country/region code (CLDR) of the location where the
     *   request is coming from. This parameter is used to display the place
     *   details, like region-specific place name, if available. The parameter can
     *   affect results based on applicable law.
     *
     *   For more information, see
     *   https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.
     *
     *
     *   Note that 3-digit region codes are not currently supported.
     * @param {google.maps.places.v1.SearchTextRequest.RankPreference} request.rankPreference
     *   How results will be ranked in the response.
     * @param {string} request.includedType
     *   The requested place type. Full list of types supported:
     *   https://developers.google.com/maps/documentation/places/web-service/place-types.
     *   Only support one included type.
     * @param {boolean} request.openNow
     *   Used to restrict the search to places that are currently open.  The default
     *   is false.
     * @param {number} request.minRating
     *   Filter out results whose average user rating is strictly less than this
     *   limit. A valid value must be a float between 0 and 5 (inclusively) at a
     *   0.5 cadence i.e. [0, 0.5, 1.0, ... , 5.0] inclusively. The input rating
     *   will round up to the nearest 0.5(ceiling). For instance, a rating of 0.6
     *   will eliminate all results with a less than 1.0 rating.
     * @param {number} request.maxResultCount
     *   Maximum number of results to return. It must be between 1 and 20,
     *   inclusively. The default is 20.  If the number is unset, it falls back to
     *   the upper limit. If the number is set to negative or exceeds the upper
     *   limit, an INVALID_ARGUMENT error is returned.
     * @param {number[]} request.priceLevels
     *   Used to restrict the search to places that are marked as certain price
     *   levels. Users can choose any combinations of price levels. Default to
     *   select all price levels.
     * @param {boolean} request.strictTypeFiltering
     *   Used to set strict type filtering for included_type. If set to true, only
     *   results of the same type will be returned. Default to false.
     * @param {google.maps.places.v1.SearchTextRequest.LocationBias} request.locationBias
     *   The region to search. This location serves as a bias which means results
     *   around given location might be returned. Cannot be set along with
     *   location_restriction.
     * @param {google.maps.places.v1.SearchTextRequest.LocationRestriction} request.locationRestriction
     *   The region to search. This location serves as a restriction which means
     *   results outside given location will not be returned. Cannot be set along
     *   with location_bias.
     * @param {google.maps.places.v1.SearchTextRequest.EVOptions} [request.evOptions]
     *   Optional. Set the searchable EV options of a place search request.
     * @param {google.maps.places.v1.RoutingParameters} [request.routingParameters]
     *   Optional. Additional parameters for routing to results.
     * @param {google.maps.places.v1.SearchTextRequest.SearchAlongRouteParameters} [request.searchAlongRouteParameters]
     *   Optional. Additional parameters proto for searching along a route.
     * @param {boolean} [request.includePureServiceAreaBusinesses]
     *   Optional. Include pure service area businesses if the field is set to true.
     *   Pure service area business is a business that visits or delivers to
     *   customers directly but does not serve customers at their business address.
     *   For example, businesses like cleaning services or plumbers. Those
     *   businesses do not have a physical address or location on Google Maps.
     *   Places will not return fields including `location`, `plus_code`, and other
     *   location related fields for these businesses.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.maps.places.v1.SearchTextResponse|SearchTextResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/places.search_text.js</caption>
     * region_tag:places_v1_generated_Places_SearchText_async
     */
    searchText(request?: protos.google.maps.places.v1.ISearchTextRequest, options?: CallOptions): Promise<[
        protos.google.maps.places.v1.ISearchTextResponse,
        protos.google.maps.places.v1.ISearchTextRequest | undefined,
        {} | undefined
    ]>;
    searchText(request: protos.google.maps.places.v1.ISearchTextRequest, options: CallOptions, callback: Callback<protos.google.maps.places.v1.ISearchTextResponse, protos.google.maps.places.v1.ISearchTextRequest | null | undefined, {} | null | undefined>): void;
    searchText(request: protos.google.maps.places.v1.ISearchTextRequest, callback: Callback<protos.google.maps.places.v1.ISearchTextResponse, protos.google.maps.places.v1.ISearchTextRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Get a photo media with a photo reference string.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The resource name of a photo media in the format:
     *   `places/{place_id}/photos/{photo_reference}/media`.
     *
     *   The resource name of a photo as returned in a Place object's `photos.name`
     *   field comes with the format
     *   `places/{place_id}/photos/{photo_reference}`. You need to append `/media`
     *   at the end of the photo resource to get the photo media resource name.
     * @param {number} [request.maxWidthPx]
     *   Optional. Specifies the maximum desired width, in pixels, of the image. If
     *   the image is smaller than the values specified, the original image will be
     *   returned. If the image is larger in either dimension, it will be scaled to
     *   match the smaller of the two dimensions, restricted to its original aspect
     *   ratio. Both the max_height_px and max_width_px properties accept an integer
     *   between 1 and 4800, inclusively. If the value is not within the allowed
     *   range, an INVALID_ARGUMENT error will be returned.
     *
     *   At least one of max_height_px or max_width_px needs to be specified. If
     *   neither max_height_px nor max_width_px is specified, an INVALID_ARGUMENT
     *   error will be returned.
     * @param {number} [request.maxHeightPx]
     *   Optional. Specifies the maximum desired height, in pixels, of the image. If
     *   the image is smaller than the values specified, the original image will be
     *   returned. If the image is larger in either dimension, it will be scaled to
     *   match the smaller of the two dimensions, restricted to its original aspect
     *   ratio. Both the max_height_px and max_width_px properties accept an integer
     *   between 1 and 4800, inclusively. If the value is not within the allowed
     *   range, an INVALID_ARGUMENT error will be returned.
     *
     *   At least one of max_height_px or max_width_px needs to be specified. If
     *   neither max_height_px nor max_width_px is specified, an INVALID_ARGUMENT
     *   error will be returned.
     * @param {boolean} [request.skipHttpRedirect]
     *   Optional. If set, skip the default HTTP redirect behavior and render a text
     *   format (for example, in JSON format for HTTP use case) response. If not
     *   set, an HTTP redirect will be issued to redirect the call to the image
     *   media. This option is ignored for non-HTTP requests.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.maps.places.v1.PhotoMedia|PhotoMedia}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/places.get_photo_media.js</caption>
     * region_tag:places_v1_generated_Places_GetPhotoMedia_async
     */
    getPhotoMedia(request?: protos.google.maps.places.v1.IGetPhotoMediaRequest, options?: CallOptions): Promise<[
        protos.google.maps.places.v1.IPhotoMedia,
        protos.google.maps.places.v1.IGetPhotoMediaRequest | undefined,
        {} | undefined
    ]>;
    getPhotoMedia(request: protos.google.maps.places.v1.IGetPhotoMediaRequest, options: CallOptions, callback: Callback<protos.google.maps.places.v1.IPhotoMedia, protos.google.maps.places.v1.IGetPhotoMediaRequest | null | undefined, {} | null | undefined>): void;
    getPhotoMedia(request: protos.google.maps.places.v1.IGetPhotoMediaRequest, callback: Callback<protos.google.maps.places.v1.IPhotoMedia, protos.google.maps.places.v1.IGetPhotoMediaRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Get the details of a place based on its resource name, which is a string
     * in the `places/{place_id}` format.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.name
     *   Required. The resource name of a place, in the `places/{place_id}` format.
     * @param {string} [request.languageCode]
     *   Optional. Place details will be displayed with the preferred language if
     *   available.
     *
     *   Current list of supported languages:
     *   https://developers.google.com/maps/faq#languagesupport.
     * @param {string} [request.regionCode]
     *   Optional. The Unicode country/region code (CLDR) of the location where the
     *   request is coming from. This parameter is used to display the place
     *   details, like region-specific place name, if available. The parameter can
     *   affect results based on applicable law.
     *   For more information, see
     *   https://www.unicode.org/cldr/charts/latest/supplemental/territory_language_information.html.
     *
     *
     *   Note that 3-digit region codes are not currently supported.
     * @param {string} [request.sessionToken]
     *   Optional. A string which identifies an Autocomplete session for billing
     *   purposes. Must be a URL and filename safe base64 string with at most 36
     *   ASCII characters in length. Otherwise an INVALID_ARGUMENT error is
     *   returned.
     *
     *   The session begins when the user starts typing a query, and concludes when
     *   they select a place and a call to Place Details or Address Validation is
     *   made. Each session can have multiple queries, followed by one Place Details
     *   or Address Validation request. The credentials used for each request within
     *   a session must belong to the same Google Cloud Console project. Once a
     *   session has concluded, the token is no longer valid; your app must generate
     *   a fresh token for each session. If the `session_token` parameter is
     *   omitted, or if you reuse a session token, the session is charged as if no
     *   session token was provided (each request is billed separately).
     *
     *   We recommend the following guidelines:
     *
     *   * Use session tokens for all Place Autocomplete calls.
     *   * Generate a fresh token for each session. Using a version 4 UUID is
     *     recommended.
     *   * Ensure that the credentials used for all Place Autocomplete, Place
     *     Details, and Address Validation requests within a session belong to the
     *     same Cloud Console project.
     *   * Be sure to pass a unique session token for each new session. Using the
     *     same token for more than one session will result in each request being
     *     billed individually.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.maps.places.v1.Place|Place}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/places.get_place.js</caption>
     * region_tag:places_v1_generated_Places_GetPlace_async
     */
    getPlace(request?: protos.google.maps.places.v1.IGetPlaceRequest, options?: CallOptions): Promise<[
        protos.google.maps.places.v1.IPlace,
        protos.google.maps.places.v1.IGetPlaceRequest | undefined,
        {} | undefined
    ]>;
    getPlace(request: protos.google.maps.places.v1.IGetPlaceRequest, options: CallOptions, callback: Callback<protos.google.maps.places.v1.IPlace, protos.google.maps.places.v1.IGetPlaceRequest | null | undefined, {} | null | undefined>): void;
    getPlace(request: protos.google.maps.places.v1.IGetPlaceRequest, callback: Callback<protos.google.maps.places.v1.IPlace, protos.google.maps.places.v1.IGetPlaceRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Returns predictions for the given input.
     *
     * @param {Object} request
     *   The request object that will be sent.
     * @param {string} request.input
     *   Required. The text string on which to search.
     * @param {google.maps.places.v1.AutocompletePlacesRequest.LocationBias} [request.locationBias]
     *   Optional. Bias results to a specified location.
     *
     *   At most one of `location_bias` or `location_restriction` should be set. If
     *   neither are set, the results will be biased by IP address, meaning the IP
     *   address will be mapped to an imprecise location and used as a biasing
     *   signal.
     * @param {google.maps.places.v1.AutocompletePlacesRequest.LocationRestriction} [request.locationRestriction]
     *   Optional. Restrict results to a specified location.
     *
     *   At most one of `location_bias` or `location_restriction` should be set. If
     *   neither are set, the results will be biased by IP address, meaning the IP
     *   address will be mapped to an imprecise location and used as a biasing
     *   signal.
     * @param {string[]} [request.includedPrimaryTypes]
     *   Optional. Included primary Place type (for example, "restaurant" or
     *   "gas_station") in Place Types
     *   (https://developers.google.com/maps/documentation/places/web-service/place-types),
     *   or only `(regions)`, or only `(cities)`. A Place is only returned if its
     *   primary type is included in this list. Up to 5 values can be specified. If
     *   no types are specified, all Place types are returned.
     * @param {string[]} [request.includedRegionCodes]
     *   Optional. Only include results in the specified regions, specified as up to
     *   15 CLDR two-character region codes. An empty set will not restrict the
     *   results. If both `location_restriction` and `included_region_codes` are
     *   set, the results will be located in the area of intersection.
     * @param {string} [request.languageCode]
     *   Optional. The language in which to return results. Defaults to en-US. The
     *   results may be in mixed languages if the language used in `input` is
     *   different from `language_code` or if the returned Place does not have a
     *   translation from the local language to `language_code`.
     * @param {string} [request.regionCode]
     *   Optional. The region code, specified as a CLDR two-character region code.
     *   This affects address formatting, result ranking, and may influence what
     *   results are returned. This does not restrict results to the specified
     *   region. To restrict results to a region, use `region_code_restriction`.
     * @param {google.type.LatLng} [request.origin]
     *   Optional. The origin point from which to calculate geodesic distance to the
     *   destination (returned as `distance_meters`). If this value is omitted,
     *   geodesic distance will not be returned.
     * @param {number} [request.inputOffset]
     *   Optional. A zero-based Unicode character offset of `input` indicating the
     *   cursor position in `input`. The cursor position may influence what
     *   predictions are returned.
     *
     *   If empty, defaults to the length of `input`.
     * @param {boolean} [request.includeQueryPredictions]
     *   Optional. If true, the response will include both Place and query
     *   predictions. Otherwise the response will only return Place predictions.
     * @param {string} [request.sessionToken]
     *   Optional. A string which identifies an Autocomplete session for billing
     *   purposes. Must be a URL and filename safe base64 string with at most 36
     *   ASCII characters in length. Otherwise an INVALID_ARGUMENT error is
     *   returned.
     *
     *   The session begins when the user starts typing a query, and concludes when
     *   they select a place and a call to Place Details or Address Validation is
     *   made. Each session can have multiple queries, followed by one Place Details
     *   or Address Validation request. The credentials used for each request within
     *   a session must belong to the same Google Cloud Console project. Once a
     *   session has concluded, the token is no longer valid; your app must generate
     *   a fresh token for each session. If the `session_token` parameter is
     *   omitted, or if you reuse a session token, the session is charged as if no
     *   session token was provided (each request is billed separately).
     *
     *   We recommend the following guidelines:
     *
     *   * Use session tokens for all Place Autocomplete calls.
     *   * Generate a fresh token for each session. Using a version 4 UUID is
     *     recommended.
     *   * Ensure that the credentials used for all Place Autocomplete, Place
     *     Details, and Address Validation requests within a session belong to the
     *     same Cloud Console project.
     *   * Be sure to pass a unique session token for each new session. Using the
     *     same token for more than one session will result in each request being
     *     billed individually.
     * @param {boolean} [request.includePureServiceAreaBusinesses]
     *   Optional. Include pure service area businesses if the field is set to true.
     *   Pure service area business is a business that visits or delivers to
     *   customers directly but does not serve customers at their business address.
     *   For example, businesses like cleaning services or plumbers. Those
     *   businesses do not have a physical address or location on Google Maps.
     *   Places will not return fields including `location`, `plus_code`, and other
     *   location related fields for these businesses.
     * @param {object} [options]
     *   Call options. See {@link https://googleapis.dev/nodejs/google-gax/latest/interfaces/CallOptions.html|CallOptions} for more details.
     * @returns {Promise} - The promise which resolves to an array.
     *   The first element of the array is an object representing {@link protos.google.maps.places.v1.AutocompletePlacesResponse|AutocompletePlacesResponse}.
     *   Please see the {@link https://github.com/googleapis/gax-nodejs/blob/master/client-libraries.md#regular-methods | documentation }
     *   for more details and examples.
     * @example <caption>include:samples/generated/v1/places.autocomplete_places.js</caption>
     * region_tag:places_v1_generated_Places_AutocompletePlaces_async
     */
    autocompletePlaces(request?: protos.google.maps.places.v1.IAutocompletePlacesRequest, options?: CallOptions): Promise<[
        protos.google.maps.places.v1.IAutocompletePlacesResponse,
        protos.google.maps.places.v1.IAutocompletePlacesRequest | undefined,
        {} | undefined
    ]>;
    autocompletePlaces(request: protos.google.maps.places.v1.IAutocompletePlacesRequest, options: CallOptions, callback: Callback<protos.google.maps.places.v1.IAutocompletePlacesResponse, protos.google.maps.places.v1.IAutocompletePlacesRequest | null | undefined, {} | null | undefined>): void;
    autocompletePlaces(request: protos.google.maps.places.v1.IAutocompletePlacesRequest, callback: Callback<protos.google.maps.places.v1.IAutocompletePlacesResponse, protos.google.maps.places.v1.IAutocompletePlacesRequest | null | undefined, {} | null | undefined>): void;
    /**
     * Return a fully-qualified photo resource name string.
     *
     * @param {string} place
     * @param {string} photo
     * @returns {string} Resource name string.
     */
    photoPath(place: string, photo: string): string;
    /**
     * Parse the place from Photo resource.
     *
     * @param {string} photoName
     *   A fully-qualified path representing Photo resource.
     * @returns {string} A string representing the place.
     */
    matchPlaceFromPhotoName(photoName: string): string | number;
    /**
     * Parse the photo from Photo resource.
     *
     * @param {string} photoName
     *   A fully-qualified path representing Photo resource.
     * @returns {string} A string representing the photo.
     */
    matchPhotoFromPhotoName(photoName: string): string | number;
    /**
     * Return a fully-qualified photoMedia resource name string.
     *
     * @param {string} place_id
     * @param {string} photo_reference
     * @returns {string} Resource name string.
     */
    photoMediaPath(placeId: string, photoReference: string): string;
    /**
     * Parse the place_id from PhotoMedia resource.
     *
     * @param {string} photoMediaName
     *   A fully-qualified path representing PhotoMedia resource.
     * @returns {string} A string representing the place_id.
     */
    matchPlaceIdFromPhotoMediaName(photoMediaName: string): string | number;
    /**
     * Parse the photo_reference from PhotoMedia resource.
     *
     * @param {string} photoMediaName
     *   A fully-qualified path representing PhotoMedia resource.
     * @returns {string} A string representing the photo_reference.
     */
    matchPhotoReferenceFromPhotoMediaName(photoMediaName: string): string | number;
    /**
     * Return a fully-qualified place resource name string.
     *
     * @param {string} place_id
     * @returns {string} Resource name string.
     */
    placePath(placeId: string): string;
    /**
     * Parse the place_id from Place resource.
     *
     * @param {string} placeName
     *   A fully-qualified path representing Place resource.
     * @returns {string} A string representing the place_id.
     */
    matchPlaceIdFromPlaceName(placeName: string): string | number;
    /**
     * Return a fully-qualified review resource name string.
     *
     * @param {string} place
     * @param {string} review
     * @returns {string} Resource name string.
     */
    reviewPath(place: string, review: string): string;
    /**
     * Parse the place from Review resource.
     *
     * @param {string} reviewName
     *   A fully-qualified path representing Review resource.
     * @returns {string} A string representing the place.
     */
    matchPlaceFromReviewName(reviewName: string): string | number;
    /**
     * Parse the review from Review resource.
     *
     * @param {string} reviewName
     *   A fully-qualified path representing Review resource.
     * @returns {string} A string representing the review.
     */
    matchReviewFromReviewName(reviewName: string): string | number;
    /**
     * Terminate the gRPC channel and close the client.
     *
     * The client will no longer be usable and all future behavior is undefined.
     * @returns {Promise} A promise that resolves when the client is closed.
     */
    close(): Promise<void>;
}
