@googlemaps/places
Version:
Places API (New) client for Node.js
664 lines (663 loc) • 38.2 kB
TypeScript
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>;
}