@tomtom-org/maps-sdk 0.45.12 → 0.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,6 @@ import { ChargingStation } from '@tomtom-org/maps-sdk/core';
6
6
  import { ChargingStationsAccessType } from '@tomtom-org/maps-sdk/core';
7
7
  import { ChargingStationsAvailability } from '@tomtom-org/maps-sdk/core';
8
8
  import { ChargingStopProps } from '@tomtom-org/maps-sdk/core';
9
- import { Classification } from '@tomtom-org/maps-sdk/core';
10
9
  import { CommonPlaceProps } from '@tomtom-org/maps-sdk/core';
11
10
  import { Connector } from '@tomtom-org/maps-sdk/core';
12
11
  import { ConnectorType } from '@tomtom-org/maps-sdk/core';
@@ -39,6 +38,7 @@ import { Places as Places_2 } from '@tomtom-org/maps-sdk/core';
39
38
  import { PlaceType } from '@tomtom-org/maps-sdk/core';
40
39
  import { PlugType } from '@tomtom-org/maps-sdk/core';
41
40
  import { POICategory } from '@tomtom-org/maps-sdk/core';
41
+ import { POICategory as POICategory_2 } from '@tomtom-org/maps-sdk/core';
42
42
  import { Point } from 'geojson';
43
43
  import { Polygon } from 'geojson';
44
44
  import { PolygonFeature } from '@tomtom-org/maps-sdk/core';
@@ -58,6 +58,7 @@ import { SearchPlaceProps as SearchPlaceProps_2 } from '@tomtom-org/maps-sdk/cor
58
58
  import { SideOfStreet } from '@tomtom-org/maps-sdk/core';
59
59
  import { TimeZone } from '@tomtom-org/maps-sdk/core';
60
60
  import { TomTomHeaders } from '@tomtom-org/maps-sdk/core';
61
+ import { TrafficAreaAnalytics } from '@tomtom-org/maps-sdk/core';
61
62
  import { TrafficIncidentCategory } from '@tomtom-org/maps-sdk/core';
62
63
  import { TrafficIncidentDetails } from '@tomtom-org/maps-sdk/core';
63
64
  import { TrafficIncidentTEC } from '@tomtom-org/maps-sdk/core';
@@ -99,6 +100,15 @@ declare type AddressRangesAPI = {
99
100
  to: LatLonAPI;
100
101
  };
101
102
 
103
+ /**
104
+ * @ignore
105
+ */
106
+ declare type AnomalyAPI = {
107
+ startDate: string;
108
+ endDate: string;
109
+ labels: string[];
110
+ };
111
+
102
112
  /**
103
113
  * @ignore
104
114
  */
@@ -129,6 +139,89 @@ declare type APIErrorResponse<T = DefaultAPIResponseErrorBody> = {
129
139
  data?: T;
130
140
  };
131
141
 
142
+ /**
143
+ * @ignore
144
+ */
145
+ declare type AreaAnalyticsCollectionPropertiesAPI = {
146
+ startDate: string;
147
+ endDate: string;
148
+ dataTypes: string[];
149
+ heatmap: boolean;
150
+ frcs: number[];
151
+ };
152
+
153
+ /**
154
+ * A traffic metric that can be requested in an area analytics report.
155
+ *
156
+ * @group Traffic
157
+ */
158
+ export declare type AreaAnalyticsDataType = (typeof areaAnalyticsDataTypes)[number];
159
+
160
+ /**
161
+ * Valid data-type identifiers for area analytics requests.
162
+ *
163
+ * @group Traffic
164
+ */
165
+ export declare const areaAnalyticsDataTypes: readonly ["NETWORK_LENGTH", "CONGESTION_LEVEL", "FREE_FLOW_SPEED", "TRAVEL_TIME", "SPEED"];
166
+
167
+ /**
168
+ * A date value accepted by Traffic Area Analytics — either a `Date` object or
169
+ * an ISO `'YYYY-MM-DD'` string.
170
+ * `Date` objects are automatically converted to `YYYY-MM-DD` format before
171
+ * being sent to the API.
172
+ *
173
+ * @group Traffic
174
+ */
175
+ export declare type AreaAnalyticsDateInput = string | Date;
176
+
177
+ /**
178
+ * @ignore
179
+ */
180
+ declare type AreaAnalyticsFeatureAPI = {
181
+ type: 'Feature';
182
+ id: string;
183
+ geometry: Polygon;
184
+ properties: FeaturePropertiesAPI;
185
+ };
186
+
187
+ /**
188
+ * @ignore
189
+ */
190
+ declare type AreaAnalyticsRequestBody = {
191
+ name?: string;
192
+ /** Continuous range start — mutually exclusive with `days`. */
193
+ startDate?: string;
194
+ /** Continuous range end — mutually exclusive with `days`. */
195
+ endDate?: string;
196
+ /** Specific dates — mutually exclusive with `startDate`/`endDate`. */
197
+ days?: string[];
198
+ dataTypes: string[];
199
+ frcs: number[];
200
+ hours: number[];
201
+ features: AreaAnalyticsRequestBodyFeature[];
202
+ };
203
+
204
+ /**
205
+ * @ignore
206
+ */
207
+ declare type AreaAnalyticsRequestBodyFeature = {
208
+ type: 'Feature';
209
+ properties?: {
210
+ name?: string;
211
+ timezone?: string;
212
+ };
213
+ geometry: Polygon | MultiPolygon;
214
+ };
215
+
216
+ /**
217
+ * @ignore
218
+ */
219
+ declare type AreaAnalyticsResponseAPI = {
220
+ type: 'FeatureCollection';
221
+ properties: AreaAnalyticsCollectionPropertiesAPI;
222
+ features: AreaAnalyticsFeatureAPI[];
223
+ };
224
+
132
225
  /**
133
226
  * Base properties shared across all autocomplete segment types.
134
227
  *
@@ -192,7 +285,6 @@ export declare type AutocompleteGenericSearchSegment = {
192
285
  * ```typescript
193
286
  * // Autocomplete as user types "amster"
194
287
  * const suggestions = await autocompleteSearch({
195
- * key: 'your-api-key',
196
288
  * query: 'amster',
197
289
  * limit: 5
198
290
  * });
@@ -200,18 +292,17 @@ export declare type AutocompleteGenericSearchSegment = {
200
292
  *
201
293
  * // Autocomplete with position bias
202
294
  * const localSuggestions = await autocompleteSearch({
203
- * key: 'your-api-key',
204
295
  * query: 'main st',
205
- * at: [4.9041, 52.3676], // Near Amsterdam
296
+ * position: [4.9041, 52.3676], // Near Amsterdam
206
297
  * limit: 10
207
298
  * });
208
299
  *
209
- * // Autocomplete with category filter
210
- * const restaurantSuggestions = await autocompleteSearch({
211
- * key: 'your-api-key',
300
+ * // Autocomplete restricted to a country with radius
301
+ * const nlSuggestions = await autocompleteSearch({
212
302
  * query: 'pizz',
213
- * categorySet: [7315], // Restaurant category
214
- * at: [4.9041, 52.3676]
303
+ * countries: ['NL'],
304
+ * position: [4.9041, 52.3676],
305
+ * radiusMeters: 5000
215
306
  * });
216
307
  * ```
217
308
  *
@@ -248,12 +339,12 @@ export declare type AutocompleteSearchBrandSegment = AutocompleteGenericSearchSe
248
339
  export declare type AutocompleteSearchCategorySegment = AutocompleteGenericSearchSegment & {
249
340
  type: 'category';
250
341
  /**
251
- * Category identifier for filtering search results.
342
+ * The recognized POI category.
252
343
  *
253
344
  * Use with the poiCategories parameter in other search endpoints
254
345
  * to restrict results to POIs of this category.
255
346
  */
256
- id: string;
347
+ category: POICategory;
257
348
  /**
258
349
  * Alternative name that matched the user query.
259
350
  *
@@ -265,6 +356,15 @@ export declare type AutocompleteSearchCategorySegment = AutocompleteGenericSearc
265
356
  matchedAlternativeName?: string;
266
357
  };
267
358
 
359
+ /**
360
+ * @ignore
361
+ */
362
+ export declare type AutocompleteSearchCategorySegmentAPI = AutocompleteGenericSearchSegment & {
363
+ type: 'category';
364
+ id: string;
365
+ matchedAlternativeName?: string;
366
+ };
367
+
268
368
  /**
269
369
  * Context information for an autocomplete search request.
270
370
  *
@@ -543,7 +643,7 @@ export declare type AutocompleteSearchResponse = {
543
643
  */
544
644
  export declare type AutocompleteSearchResponseAPI = {
545
645
  context: AutocompleteSearchContextAPI;
546
- results: AutocompleteSearchResult[];
646
+ results: AutocompleteSearchResultAPI[];
547
647
  };
548
648
 
549
649
  /**
@@ -564,6 +664,13 @@ export declare type AutocompleteSearchResult = {
564
664
  segments: AutocompleteSearchSegment[];
565
665
  };
566
666
 
667
+ /**
668
+ * @ignore
669
+ */
670
+ export declare type AutocompleteSearchResultAPI = {
671
+ segments: AutocompleteSearchSegmentAPI[];
672
+ };
673
+
567
674
  /**
568
675
  * Geographic bias parameters for autocomplete search results.
569
676
  *
@@ -605,6 +712,11 @@ export declare type AutocompleteSearchResultGeoBiasAPI = {
605
712
  */
606
713
  export declare type AutocompleteSearchSegment = AutocompleteSearchBrandSegment | AutocompleteSearchCategorySegment | AutocompleteSearchPlaintextSegment;
607
714
 
715
+ /**
716
+ * @ignore
717
+ */
718
+ export declare type AutocompleteSearchSegmentAPI = AutocompleteSearchBrandSegment | AutocompleteSearchCategorySegmentAPI | AutocompleteSearchPlaintextSegment;
719
+
608
720
  /**
609
721
  * Segment type for autocomplete results.
610
722
  *
@@ -834,6 +946,12 @@ export declare const buildResponseError: (error: unknown, serviceName: ServiceNa
834
946
  */
835
947
  declare const buildRevGeoRequest: (params: ReverseGeocodingParams) => URL;
836
948
 
949
+ /**
950
+ * Default method for building a Traffic Area Analytics request from {@link TrafficAreaAnalyticsParams}.
951
+ * @param params The traffic area analytics parameters, with global configuration already merged.
952
+ */
953
+ declare const buildTrafficAreaAnalyticsRequest: (params: TrafficAreaAnalyticsParams) => FetchInput<AreaAnalyticsRequestBody>;
954
+
837
955
  /**
838
956
  * Default method for building a traffic incident details request from {@link TrafficIncidentDetailsParams}.
839
957
  * @param params The traffic incident details parameters, with global configuration already merged into them.
@@ -2025,23 +2143,20 @@ export declare type CommonGeocodeAndFuzzySearchParams = {
2025
2143
  *
2026
2144
  * @example
2027
2145
  * ```typescript
2028
- * // Basic search with position bias
2146
+ * // Search with position bias
2029
2147
  * const searchParams: CommonPlacesParams<URL, Response> = {
2030
- * query: 'pizza restaurant',
2031
2148
  * position: [4.9041, 52.3676], // Near Amsterdam
2032
2149
  * limit: 20
2033
2150
  * };
2034
2151
  *
2035
2152
  * // Search with geography type filter
2036
2153
  * const citySearch: CommonPlacesParams<URL, Response> = {
2037
- * query: 'Paris',
2038
2154
  * geographyTypes: ['Municipality'], // Only cities
2039
2155
  * limit: 10
2040
2156
  * };
2041
2157
  *
2042
2158
  * // Search with mapcodes and specific geopolitical view
2043
2159
  * const detailedSearch: CommonPlacesParams<URL, Response> = {
2044
- * query: 'disputed location',
2045
2160
  * view: 'IN', // India's perspective
2046
2161
  * mapcodes: ['Local', 'International'],
2047
2162
  * extendedPostalCodesFor: ['PAD', 'POI'],
@@ -2050,7 +2165,6 @@ export declare type CommonGeocodeAndFuzzySearchParams = {
2050
2165
  *
2051
2166
  * // Address search with extended postal codes
2052
2167
  * const addressSearch: CommonPlacesParams<URL, Response> = {
2053
- * query: '123 Main Street',
2054
2168
  * geographyTypes: ['Country', 'Municipality'],
2055
2169
  * extendedPostalCodesFor: ['Geo', 'PAD', 'Addr'],
2056
2170
  * limit: 15
@@ -2060,30 +2174,6 @@ export declare type CommonGeocodeAndFuzzySearchParams = {
2060
2174
  * @group Search
2061
2175
  */
2062
2176
  export declare type CommonPlacesParams<ApiRequest, ApiResponse> = CommonServiceParams<ApiRequest, ApiResponse> & {
2063
- /**
2064
- * Search query string.
2065
- *
2066
- * The text to search for - can be an address, place name, POI, or general location query.
2067
- * Must be properly URL encoded when sent to the API.
2068
- *
2069
- * @remarks
2070
- * **Query Examples:**
2071
- * - Street addresses: "123 Main Street, New York"
2072
- * - Place names: "Eiffel Tower", "Central Park"
2073
- * - POI names: "Starbucks", "McDonald's"
2074
- * - General queries: "pizza near me", "gas station"
2075
- * - Partial inputs: "Amst" (for autocomplete)
2076
- *
2077
- * The query is processed with fuzzy matching to handle typos and variations.
2078
- *
2079
- * @example
2080
- * ```typescript
2081
- * query: "1600 Pennsylvania Avenue, Washington DC"
2082
- * query: "Amsterdam Central Station"
2083
- * query: "coffee shop"
2084
- * ```
2085
- */
2086
- query: string;
2087
2177
  /**
2088
2178
  * Geographic position to bias search results.
2089
2179
  *
@@ -2442,6 +2532,31 @@ export declare type CommonRoutingParams = {
2442
2532
  * @group Search
2443
2533
  */
2444
2534
  export declare type CommonSearchParams<ApiRequest, ApiResponse> = CommonPlacesParams<ApiRequest, ApiResponse> & {
2535
+ /**
2536
+ * Search query string.
2537
+ *
2538
+ * The text to search for — can be a place name, POI, address, or any free-form location query.
2539
+ * When omitted, results are driven entirely by other filters such as {@link poiCategories},
2540
+ * {@link poiBrands}, {@link fuelTypes}, or {@link geometries}.
2541
+ *
2542
+ * @remarks
2543
+ * **Query Examples:**
2544
+ * - Place/POI names: "Eiffel Tower", "Starbucks"
2545
+ * - General queries: "pizza near me", "gas station"
2546
+ * - Partial inputs: "Amst" (for autocomplete / typeahead)
2547
+ *
2548
+ * The query is processed with fuzzy matching to handle typos and variations.
2549
+ *
2550
+ * @example
2551
+ * ```typescript
2552
+ * // Text-driven search
2553
+ * query: 'coffee shop'
2554
+ *
2555
+ * // Omit query to search purely by category
2556
+ * poiCategories: ['ELECTRIC_VEHICLE_STATION']
2557
+ * ```
2558
+ */
2559
+ query?: string;
2445
2560
  /**
2446
2561
  * Specify which search indexes to query.
2447
2562
  *
@@ -2476,35 +2591,31 @@ export declare type CommonSearchParams<ApiRequest, ApiResponse> = CommonPlacesPa
2476
2591
  * Filter results to specific POI categories.
2477
2592
  *
2478
2593
  * Restricts results to Points of Interest belonging to the specified
2479
- * categories. Use category IDs from the POI Categories API.
2594
+ * categories. Use values from the {@link POICategory} type.
2480
2595
  *
2481
2596
  * @remarks
2482
- * **Category Examples:**
2483
- * - 7315: Restaurant
2484
- * - 7311: Petrol/Gas Station
2485
- * - 7313: Hotel/Motel
2486
- * - 7832: ATM
2487
- * - 9361: Parking
2488
- *
2489
2597
  * **Multiple Categories:**
2490
2598
  * Results include POIs matching ANY of the specified categories (OR logic).
2491
2599
  *
2492
- * **Discovery:**
2493
- * Use the POI Categories endpoint to browse all available categories.
2600
+ * **Discovering Categories:**
2601
+ * Use the {@link getPOICategories} service to search and browse available
2602
+ * categories by name or synonym, then pass the resulting `code` values here.
2494
2603
  *
2495
2604
  * @example
2496
2605
  * ```typescript
2497
- * // Restaurants only
2498
- * poiCategories: [7315]
2606
+ * // Filter to specific categories
2607
+ * poiCategories: ['RESTAURANT', 'CAFE']
2499
2608
  *
2500
- * // Restaurants and cafes
2501
- * poiCategories: [7315, 9376]
2609
+ * // Category-only search (no query)
2610
+ * poiCategories: ['ELECTRIC_VEHICLE_STATION']
2502
2611
  *
2503
- * // Gas stations and EV charging
2504
- * poiCategories: [7311, 7309]
2612
+ * // Discovered via getPOICategories() service
2613
+ * import { getPOICategoryCodes } from '@tomtom-org/maps-sdk/services';
2614
+ * const codes = await getPOICategoryCodes({ filters: ['italian'] });
2615
+ * const results = await search({ poiCategories: codes, position });
2505
2616
  * ```
2506
2617
  */
2507
- poiCategories?: (number | POICategory)[];
2618
+ poiCategories?: POICategory[];
2508
2619
  /**
2509
2620
  * Filter results to specific POI brands.
2510
2621
  *
@@ -3134,6 +3245,12 @@ declare const customize: {
3134
3245
  };
3135
3246
 
3136
3247
  declare const customize_10: {
3248
+ buildPlaceByIdRequest: typeof buildPlaceByIdRequest;
3249
+ parsePlaceByIdResponse: typeof parsePlaceByIdResponse;
3250
+ placeByIdTemplate: PlaceByIdTemplate;
3251
+ };
3252
+
3253
+ declare const customize_11: {
3137
3254
  autocompleteSearch: typeof autocompleteSearch;
3138
3255
  buildAutocompleteSearchRequest: typeof buildAutocompleteSearchRequest;
3139
3256
  parseAutocompleteSearchResponse: typeof parseAutocompleteSearchResponse;
@@ -3178,15 +3295,15 @@ declare const customize_7: {
3178
3295
  };
3179
3296
 
3180
3297
  declare const customize_8: {
3181
- buildTrafficIncidentDetailsRequest: typeof buildTrafficIncidentDetailsRequest;
3182
- parseTrafficIncidentDetailsResponse: typeof parseTrafficIncidentDetailsResponse;
3183
- trafficIncidentDetailsTemplate: TrafficIncidentDetailsTemplate;
3298
+ buildTrafficAreaAnalyticsRequest: typeof buildTrafficAreaAnalyticsRequest;
3299
+ parseTrafficAreaAnalyticsResponse: typeof parseTrafficAreaAnalyticsResponse;
3300
+ trafficAreaAnalyticsTemplate: TrafficAreaAnalyticsTemplate;
3184
3301
  };
3185
3302
 
3186
3303
  declare const customize_9: {
3187
- buildPlaceByIdRequest: typeof buildPlaceByIdRequest;
3188
- parsePlaceByIdResponse: typeof parsePlaceByIdResponse;
3189
- placeByIdTemplate: PlaceByIdTemplate;
3304
+ buildTrafficIncidentDetailsRequest: typeof buildTrafficIncidentDetailsRequest;
3305
+ parseTrafficIncidentDetailsResponse: typeof parseTrafficIncidentDetailsResponse;
3306
+ trafficIncidentDetailsTemplate: TrafficIncidentDetailsTemplate;
3190
3307
  };
3191
3308
 
3192
3309
  /**
@@ -3239,9 +3356,10 @@ export declare const customizeService: {
3239
3356
  calculateRoute: typeof customize_5;
3240
3357
  reachableRange: typeof customize_6;
3241
3358
  evChargingStationsAvailability: typeof customize_7;
3242
- trafficIncidentDetails: typeof customize_8;
3243
- placeByID: typeof customize_9;
3244
- autocompleteSearch: typeof customize_10;
3359
+ trafficAreaAnalytics: typeof customize_8;
3360
+ trafficIncidentDetails: typeof customize_9;
3361
+ placeByID: typeof customize_10;
3362
+ autocompleteSearch: typeof customize_11;
3245
3363
  };
3246
3364
 
3247
3365
  /**
@@ -3789,6 +3907,28 @@ declare type ExplicitVehicleModel<E extends VehicleEngineType> = {
3789
3907
  */
3790
3908
  export declare type ExtendedRouteRepresentation = 'distance' | 'travelTime';
3791
3909
 
3910
+ /**
3911
+ * @ignore
3912
+ */
3913
+ declare type FeaturePropertiesAPI = {
3914
+ name: string;
3915
+ timezone: string;
3916
+ level: number;
3917
+ baseData: MetricsAPI;
3918
+ timedData: {
3919
+ yearly?: TimedEntryAPI[];
3920
+ monthly?: TimedEntryAPI[];
3921
+ weekly?: TimedEntryAPI[];
3922
+ daily?: TimedEntryAPI[];
3923
+ hourly?: TimedEntryAPI[];
3924
+ average?: TimedEntryAPI[];
3925
+ };
3926
+ tiledData?: {
3927
+ tiles: TiledEntryAPI[];
3928
+ };
3929
+ anomalies?: Record<string, AnomalyAPI[]>;
3930
+ };
3931
+
3792
3932
  /**
3793
3933
  * Hybrid HTTP fetch input, supporting different HTTP methods such as GET and POST.
3794
3934
  * * GET method comes with a URL.
@@ -3802,6 +3942,38 @@ export declare type FetchInput<PostData = void> = {
3802
3942
  method: 'POST';
3803
3943
  } & PostObject<PostData>);
3804
3944
 
3945
+ /**
3946
+ * A Functional Road Class (FRC) identifier — classifies road segments by their importance
3947
+ * in the road network.
3948
+ *
3949
+ * | Value | Description |
3950
+ * |---|---|
3951
+ * | `'MOTORWAY'` | Motorways, freeways, and major roads |
3952
+ * | `'MAJOR_ROAD'` | Major roads, less important than motorways |
3953
+ * | `'OTHER_MAJOR_ROAD'` | Other major roads connecting neighbouring regions |
3954
+ * | `'SECONDARY_ROAD'` | Secondary roads linking parts of the same region |
3955
+ * | `'LOCAL_CONNECTING_ROAD'` | Local roads providing settlement access |
3956
+ * | `'LOCAL_ROAD_HIGH_IMPORTANCE'` | Local roads of high importance within a settlement |
3957
+ * | `'LOCAL_ROAD'` | Local roads within settlement sections |
3958
+ * | `'LOCAL_ROAD_MINOR_IMPORTANCE'` | Local roads of minor importance (dead-ends, alleys) |
3959
+ * | `'OTHER_ROAD'` | Other roads (paths, cycle routes, pedestrian infrastructure) |
3960
+ *
3961
+ * @group Traffic
3962
+ */
3963
+ export declare type FunctionalRoadClass = (typeof functionalRoadClasses)[number];
3964
+
3965
+ /**
3966
+ * Ordered list of Functional Road Class identifiers, from highest importance (motorways) to lowest.
3967
+ *
3968
+ * @remarks
3969
+ * The index of each class in this array corresponds to its FRC value in the API (0 for 'MOTORWAY', 1 for 'MAJOR_ROAD', ..., 8 for 'OTHER_ROAD').
3970
+ *
3971
+ * @see https://docs.tomtom.com/traffic-stats/documentation/product-information/faq#what-are-functional-road-classes-frc
3972
+ *
3973
+ * @group Traffic
3974
+ */
3975
+ export declare const functionalRoadClasses: readonly ["MOTORWAY", "MAJOR_ROAD", "OTHER_MAJOR_ROAD", "SECONDARY_ROAD", "LOCAL_CONNECTING_ROAD", "LOCAL_ROAD_HIGH_IMPORTANCE", "LOCAL_ROAD", "LOCAL_ROAD_MINOR_IMPORTANCE", "OTHER_ROAD"];
3976
+
3805
3977
  /**
3806
3978
  * Additional properties for fuzzy search feature collection.
3807
3979
  *
@@ -4099,8 +4271,24 @@ export declare type GenericVehicleState = {
4099
4271
  export declare const geocode: (params: GeocodingParams, customTemplate?: Partial<GeocodingTemplate>) => Promise<GeocodingResponse>;
4100
4272
 
4101
4273
  /**
4274
+ * Geocode a query and return the single best-matching place.
4275
+ *
4276
+ * Convenience wrapper around {@link geocode} that returns the top result directly.
4277
+ *
4278
+ * @param query - Address or place name to geocode
4279
+ * @returns Promise resolving to the best-matching place
4280
+ * @throws {Error} If no results are found for the query
4281
+ *
4282
+ * @remarks
4283
+ * Use {@link geocode} with a `limit` parameter when you need to handle the case
4284
+ * where no results are found without throwing.
4285
+ *
4286
+ * @example
4287
+ * ```typescript
4288
+ * const place = await geocodeOne('Amsterdam Centraal');
4289
+ * console.log(place.geometry.coordinates); // [lng, lat]
4290
+ * ```
4102
4291
  *
4103
- * @param query
4104
4292
  * @group Geocoding
4105
4293
  */
4106
4294
  export declare const geocodeOne: (query: string) => Promise<Place<GeocodingProps>>;
@@ -4144,6 +4332,29 @@ declare type GeocodingIndexTypesAbbreviation = Exclude<SearchIndexType, 'POI'>;
4144
4332
  * @group Geocoding
4145
4333
  */
4146
4334
  export declare type GeocodingParams = Omit<CommonPlacesParams<URL, GeocodingResponseAPI> & CommonGeocodeAndFuzzySearchParams, 'extendedPostalCodesFor'> & {
4335
+ /**
4336
+ * Address or location query to geocode.
4337
+ *
4338
+ * The text to convert into geographic coordinates — typically a street address,
4339
+ * intersection, city name, or landmark. The service is tolerant of typos and
4340
+ * incomplete inputs.
4341
+ *
4342
+ * @remarks
4343
+ * **Query Examples:**
4344
+ * - Full street address: "1600 Pennsylvania Avenue NW, Washington, DC"
4345
+ * - City name: "Amsterdam"
4346
+ * - Intersection: "Broadway & 42nd St, New York"
4347
+ * - Landmark: "Eiffel Tower, Paris"
4348
+ * - Partial address: "Dam Square" (city context resolved via `position` or `countries`)
4349
+ *
4350
+ * @example
4351
+ * ```typescript
4352
+ * query: '1600 Pennsylvania Avenue NW, Washington, DC'
4353
+ * query: 'Museumplein, Amsterdam'
4354
+ * query: 'Buckingham Palace, London'
4355
+ * ```
4356
+ */
4357
+ query: string;
4147
4358
  /**
4148
4359
  * Indexes for which extended postal codes should be included in the results.
4149
4360
  *
@@ -4505,7 +4716,6 @@ export declare type GeometryPlaceParams = CommonServiceParamsWithZoom & {
4505
4716
  * ```typescript
4506
4717
  * // Search within a polygon (neighborhood boundaries)
4507
4718
  * const inArea = await geometrySearch({
4508
- * key: 'your-api-key',
4509
4719
  * query: 'coffee shop',
4510
4720
  * geometries: [{
4511
4721
  * type: 'Polygon',
@@ -4519,20 +4729,15 @@ export declare type GeometryPlaceParams = CommonServiceParamsWithZoom & {
4519
4729
  * }]
4520
4730
  * });
4521
4731
  *
4522
- * // Find POIs along a route corridor
4732
+ * // Find POIs along a route (pass the route LineString as geometry)
4523
4733
  * const alongRoute = await geometrySearch({
4524
- * key: 'your-api-key',
4525
4734
  * query: 'gas station',
4526
- * geometries: [routeLineString], // From calculateRoute result
4527
- * geometryList: [{
4528
- * position: 0,
4529
- * radius: 5000 // 5km corridor along route
4530
- * }]
4735
+ * geometries: [routeLineString], // LineString from calculateRoute result
4736
+ * limit: 10
4531
4737
  * });
4532
4738
  *
4533
4739
  * // Search multiple areas at once
4534
4740
  * const multiArea = await geometrySearch({
4535
- * key: 'your-api-key',
4536
4741
  * query: 'pharmacy',
4537
4742
  * geometries: [polygonA, polygonB, polygonC],
4538
4743
  * limit: 20
@@ -4540,8 +4745,7 @@ export declare type GeometryPlaceParams = CommonServiceParamsWithZoom & {
4540
4745
  *
4541
4746
  * // Category search within geometry
4542
4747
  * const restaurants = await geometrySearch({
4543
- * key: 'your-api-key',
4544
- * categorySet: [7315], // Restaurant category
4748
+ * poiCategories: ['ITALIAN_RESTAURANT'],
4545
4749
  * geometries: [cityBoundary]
4546
4750
  * });
4547
4751
  * ```
@@ -4818,6 +5022,60 @@ export declare function getPlacesWithEVAvailability<P extends CommonPlaceProps =
4818
5022
  */
4819
5023
  export declare const getPlaceWithEVAvailability: <P extends CommonPlaceProps = CommonPlaceProps>(place: Place<P>) => Promise<Place<EVChargingStationWithAvailabilityPlaceProps> | undefined>;
4820
5024
 
5025
+ /**
5026
+ * Retrieve the list of POI category types supported by the TomTom Search API.
5027
+ *
5028
+ * The returned `code` values (`POICategory`) serve two purposes:
5029
+ * - Pass to `search({ poiCategories })` to filter search results by category.
5030
+ * - Pass to `POIsModule.filterCategories()` to filter the map's built-in POI icons.
5031
+ * Generic parent codes (e.g. `'RESTAURANT'`) are supported there; overly specific child
5032
+ * codes (e.g. `'ITALIAN_RESTAURANT'`) are not — use a parent or a `POICategoryGroup` instead.
5033
+ *
5034
+ * Results are cached in memory per language. The first call fetches from the API;
5035
+ * all subsequent calls — including filtered ones — are served from the cache.
5036
+ *
5037
+ * @param params - Optional parameters. Uses global `TomTomConfig` by default.
5038
+ *
5039
+ * @example
5040
+ * ```typescript
5041
+ * // All categories
5042
+ * const { poiCategories: all } = await getPOICategories();
5043
+ *
5044
+ * // Filtered by keyword, merged and deduplicated
5045
+ * const { poiCategories: gyms } = await getPOICategories({ filters: ['gym'] });
5046
+ * gyms.forEach(c => console.log(c.code, c.name, c.childCategoryCodes));
5047
+ * ```
5048
+ *
5049
+ * @group POI Categories
5050
+ */
5051
+ export declare const getPOICategories: (params?: POICategoriesParams) => Promise<POICategoriesResponse>;
5052
+
5053
+ /**
5054
+ * Convenience wrapper around {@link getPOICategories} that returns a flat array of `POICategory` codes.
5055
+ *
5056
+ * The returned codes serve two purposes:
5057
+ * - Pass to `search({ poiCategories })` to filter search results by category.
5058
+ * - Pass to `POIsModule.filterCategories()` to filter the map's built-in POI icons.
5059
+ * Generic parent codes (e.g. `'RESTAURANT'`) are supported there; overly specific child
5060
+ * codes (e.g. `'ITALIAN_RESTAURANT'`) are not — use a parent or a `POICategoryGroup` instead.
5061
+ *
5062
+ * Accepts the same parameters as {@link getPOICategories} — use `filters` to narrow by keyword.
5063
+ *
5064
+ * @param params - Optional parameters. Uses global `TomTomConfig` by default.
5065
+ *
5066
+ * @example
5067
+ * ```typescript
5068
+ * // All category codes
5069
+ * const codes = await getPOICategoryCodes();
5070
+ *
5071
+ * // Codes matching 'restaurant' — for search or generic map POI filtering
5072
+ * const restaurantCodes = await getPOICategoryCodes({ filters: ['restaurant'] });
5073
+ * ```
5074
+ *
5075
+ * @group POI Categories
5076
+ */
5077
+ export declare const getPOICategoryCodes: (params?: POICategoriesParams) => Promise<POICategory_2[]>;
5078
+
4821
5079
  /**
4822
5080
  * @ignore
4823
5081
  */
@@ -5103,6 +5361,18 @@ declare const loadTypes: readonly ["USHazmatClass1", "USHazmatClass2", "USHazmat
5103
5361
  */
5104
5362
  export declare type MaxNumberOfAlternatives = 0 | 1 | 2 | 3 | 4 | 5;
5105
5363
 
5364
+ /**
5365
+ * @ignore
5366
+ * Abbreviated metric fields as returned by the Area Analytics API.
5367
+ */
5368
+ declare type MetricsAPI = {
5369
+ v?: number;
5370
+ fv?: number;
5371
+ c?: number;
5372
+ t?: number;
5373
+ l?: number;
5374
+ };
5375
+
5106
5376
  /**
5107
5377
  * @ignore
5108
5378
  */
@@ -5286,6 +5556,12 @@ export declare type ParseResponseError<T = DefaultAPIResponseErrorBody> = (apiEr
5286
5556
  */
5287
5557
  declare const parseRevGeoResponse: (apiResponse: ReverseGeocodingResponseAPI, params: ReverseGeocodingParams) => ReverseGeocodingResponse;
5288
5558
 
5559
+ /**
5560
+ * Default method for parsing a Traffic Area Analytics API response.
5561
+ * @param apiResponse The raw Area Analytics API response.
5562
+ */
5563
+ declare const parseTrafficAreaAnalyticsResponse: (apiResponse: AreaAnalyticsResponseAPI) => TrafficAreaAnalytics;
5564
+
5289
5565
  /**
5290
5566
  * Default method for parsing a traffic incident details API response.
5291
5567
  * @param apiResponse The raw Traffic Incident Details API response.
@@ -5567,10 +5843,106 @@ declare type POIAPI = {
5567
5843
  categorySet?: CategoryAPI[];
5568
5844
  categories?: string[];
5569
5845
  openingHours?: OpeningHoursAPI;
5570
- classifications?: Classification[];
5571
5846
  timeZone?: TimeZone;
5572
5847
  };
5573
5848
 
5849
+ /**
5850
+ * Parameters for the POI categories service.
5851
+ *
5852
+ * Results are cached in memory per language — the first call for a given language
5853
+ * fetches from the API; subsequent calls are served from the cache.
5854
+ *
5855
+ * @group POI Categories
5856
+ */
5857
+ export declare type POICategoriesParams = CommonServiceParams<URL, PoiCategoriesResponseAPI> & {
5858
+ /**
5859
+ * One or more filter strings applied client-side against the text index.
5860
+ *
5861
+ * Each filter string is normalized (lowercased, spaces removed) and matched against
5862
+ * the normalized form of every `name` and synonym. A category matches when any of its
5863
+ * normalized texts contains the normalized filter as a substring.
5864
+ *
5865
+ * For example, `'gym'` matches a category whose name or synonym normalizes to `'gym'`
5866
+ * or `'fitnessandgym'`. `'italian restaurant'` normalizes to `'italianrestaurant'` and
5867
+ * matches `'Italian Restaurant'` but not `'Mexican Restaurant'`.
5868
+ *
5869
+ * Results from all filter strings are merged and deduplicated by `code`.
5870
+ * Omit to return all categories.
5871
+ *
5872
+ * @example
5873
+ * ```ts
5874
+ * // All categories (no filters)
5875
+ * {}
5876
+ *
5877
+ * // Categories matching "gym"
5878
+ * { filters: ['gym'] }
5879
+ *
5880
+ * // Categories matching either "gym" or "italian restaurant"
5881
+ * { filters: ['gym', 'italian restaurant'] }
5882
+ * ```
5883
+ */
5884
+ filters?: string[];
5885
+ };
5886
+
5887
+ /**
5888
+ * Response from the POI categories service.
5889
+ *
5890
+ * @group POI Categories
5891
+ */
5892
+ export declare type POICategoriesResponse = {
5893
+ poiCategories: POICategoryResult[];
5894
+ };
5895
+
5896
+ /**
5897
+ * @ignore
5898
+ */
5899
+ export declare type PoiCategoriesResponseAPI = {
5900
+ poiCategories: PoiCategoryAPI[];
5901
+ };
5902
+
5903
+ /**
5904
+ * @ignore
5905
+ */
5906
+ export declare type PoiCategoryAPI = {
5907
+ id: number;
5908
+ name: string;
5909
+ childCategoryIds: number[];
5910
+ synonyms: string[];
5911
+ };
5912
+
5913
+ /**
5914
+ * A single POI category entry returned by the POI categories service.
5915
+ *
5916
+ * @group POI Categories
5917
+ */
5918
+ export declare type POICategoryResult = {
5919
+ /**
5920
+ * The standardized enum value identifying this category.
5921
+ *
5922
+ * Use this value in search `poiCategories` parameters to filter results by category,
5923
+ * or to cross-reference with `Place.properties.poi.categories` on search results.
5924
+ */
5925
+ code: POICategory;
5926
+ /**
5927
+ * Codes of sub-categories that also matched the current filter result set.
5928
+ *
5929
+ * Only contains codes present in the filtered result set — not the full list of
5930
+ * possible sub-categories — so you can understand the category hierarchy without
5931
+ * additional lookups.
5932
+ *
5933
+ * Use these values directly in search `poiCategories` parameters.
5934
+ */
5935
+ childCategoryCodes: POICategory[];
5936
+ /**
5937
+ * Human-readable category name in the requested language.
5938
+ */
5939
+ name: string;
5940
+ /**
5941
+ * Alternative names and synonyms for this category in the requested language.
5942
+ */
5943
+ synonyms: string[];
5944
+ };
5945
+
5574
5946
  /**
5575
5947
  * @ignore
5576
5948
  */
@@ -6494,15 +6866,13 @@ export declare class SDKServiceError extends SDKError {
6494
6866
  * ```typescript
6495
6867
  * // Free-text search near a location
6496
6868
  * const results = await search({
6497
- * key: 'your-api-key',
6498
6869
  * query: 'pizza restaurant',
6499
- * at: [4.9041, 52.3676], // Amsterdam
6870
+ * position: [4.9041, 52.3676], // Amsterdam
6500
6871
  * limit: 10
6501
6872
  * });
6502
6873
  *
6503
6874
  * // Search within a specific area
6504
6875
  * const areaResults = await search({
6505
- * key: 'your-api-key',
6506
6876
  * query: 'coffee shop',
6507
6877
  * geometries: [polygon], // Search within this polygon
6508
6878
  * limit: 20
@@ -6510,11 +6880,9 @@ export declare class SDKServiceError extends SDKError {
6510
6880
  *
6511
6881
  * // Category search
6512
6882
  * const restaurants = await search({
6513
- * key: 'your-api-key',
6514
- * query: 'restaurant',
6515
- * categorySet: [7315], // Restaurant category
6516
- * at: [4.9041, 52.3676],
6517
- * radius: 5000 // Within 5km
6883
+ * poiCategories: ['ITALIAN_RESTAURANT'],
6884
+ * position: [4.9041, 52.3676],
6885
+ * radiusMeters: 5000 // Within 5km
6518
6886
  * });
6519
6887
  * ```
6520
6888
  *
@@ -6972,6 +7340,26 @@ declare type SummaryAPI_2 = Omit<RouteSummary & LegSummary, 'arrivalTime' | 'dep
6972
7340
  */
6973
7341
  declare type SummaryQueryType = 'NEARBY' | 'NON_NEAR';
6974
7342
 
7343
+ /**
7344
+ * @ignore
7345
+ */
7346
+ declare type TiledEntryAPI = MetricsAPI & {
7347
+ lat: number;
7348
+ lon: number;
7349
+ };
7350
+
7351
+ /**
7352
+ * @ignore
7353
+ */
7354
+ declare type TimedEntryAPI = MetricsAPI & {
7355
+ date?: string;
7356
+ year?: number;
7357
+ month?: number;
7358
+ week?: number;
7359
+ hour?: number;
7360
+ day?: number;
7361
+ };
7362
+
6975
7363
  /**
6976
7364
  * @ignore
6977
7365
  */
@@ -7007,6 +7395,231 @@ declare type TimeRangeAPI = {
7007
7395
  */
7008
7396
  export declare type TimeZoneRequest = 'iana';
7009
7397
 
7398
+ /**
7399
+ * Run a synchronous traffic area analytics report for a polygon region.
7400
+ *
7401
+ * Submits a single Polygon region with a date range and requested metrics, and
7402
+ * receives the full analysis result immediately (no polling required).
7403
+ *
7404
+ * @remarks
7405
+ * **Lite report constraints:**
7406
+ * - Only a single region (Polygon Feature) may be submitted per request.
7407
+ * - The date range (`startDate` → `endDate`) must not exceed 31 days.
7408
+ *
7409
+ * **Key data returned per region:**
7410
+ * - `baseData`: overall aggregated metrics for the full analysis period
7411
+ * - `timedData`: time-series breakdown at yearly / monthly / weekly / daily / hourly granularity
7412
+ * - `tiledData`: per-tile heatmap metrics (when available)
7413
+ * - `anomalies`: detected traffic anomalies keyed by data type
7414
+ *
7415
+ * **Available metrics (`dataTypes`):**
7416
+ * - `SPEED` — average speed on the road network (km/h)
7417
+ * - `FREE_FLOW_SPEED` — average speed under uncongested conditions (km/h)
7418
+ * - `CONGESTION_LEVEL` — percentage increase in travel time above free-flow
7419
+ * - `TRAVEL_TIME` — average travel time per 10 km (minutes)
7420
+ * - `NETWORK_LENGTH` — total length of road segments with data (meters)
7421
+ *
7422
+ * @param params - Traffic Area Analytics parameters
7423
+ * @param customTemplate - Advanced customization for request/response handling
7424
+ *
7425
+ * @returns Promise resolving to a {@link TrafficAreaAnalytics} FeatureCollection
7426
+ *
7427
+ * @example
7428
+ * ```typescript
7429
+ * // Basic speed and congestion analysis for Amsterdam
7430
+ * const result = await trafficAreaAnalytics({
7431
+ * startDate: new Date('2024-08-06'),
7432
+ * endDate: new Date('2024-08-06'),
7433
+ * functionalRoadClasses: ['MOTORWAY', 'MAJOR_ROAD', 'OTHER_MAJOR_ROAD', 'SECONDARY_ROAD', 'LOCAL_CONNECTING_ROAD', 'LOCAL_ROAD_HIGH_IMPORTANCE'],
7434
+ * hours: [7, 8, 9, 17, 18],
7435
+ * dataTypes: ['SPEED', 'CONGESTION_LEVEL'],
7436
+ * geometry: {
7437
+ * type: 'Polygon',
7438
+ * coordinates: [
7439
+ * [[4.896128, 52.382402], [4.875701, 52.368459], [4.923611, 52.36341], [4.896128, 52.382402]]
7440
+ * ]
7441
+ * }
7442
+ * });
7443
+ *
7444
+ * const region = result.features[0];
7445
+ * console.log(region.properties.baseData.speed); // avg speed (km/h)
7446
+ * console.log(region.properties.baseData.congestionLevel); // congestion %
7447
+ * console.log(region.properties.timedData.hourly); // hourly breakdown
7448
+ * ```
7449
+ *
7450
+ * @example
7451
+ * ```typescript
7452
+ * // Full metrics over a multi-day period
7453
+ * const result = await trafficAreaAnalytics({
7454
+ * startDate: new Date('2024-08-01'),
7455
+ * endDate: new Date('2024-08-07'),
7456
+ * functionalRoadClasses: 'all',
7457
+ * hours: 'all',
7458
+ * dataTypes: ['SPEED', 'FREE_FLOW_SPEED', 'CONGESTION_LEVEL', 'TRAVEL_TIME', 'NETWORK_LENGTH'],
7459
+ * geometry: {
7460
+ * type: 'Polygon',
7461
+ * coordinates: [[[4.89, 52.37], [4.91, 52.37], [4.91, 52.39], [4.89, 52.39], [4.89, 52.37]]]
7462
+ * }
7463
+ * });
7464
+ *
7465
+ * result.features[0].properties.timedData.daily?.forEach(day => {
7466
+ * console.log(day.date, day.congestionLevel);
7467
+ * });
7468
+ * ```
7469
+ *
7470
+ * @see [Area Analytics API Documentation](https://developer.tomtom.com/area-analytics/documentation/api/analysis-lite)
7471
+ *
7472
+ * @group Traffic
7473
+ */
7474
+ export declare const trafficAreaAnalytics: (params: TrafficAreaAnalyticsParams, customTemplate?: Partial<TrafficAreaAnalyticsTemplate>) => Promise<TrafficAreaAnalytics>;
7475
+
7476
+ /**
7477
+ * @ignore
7478
+ */
7479
+ declare type TrafficAreaAnalyticsBaseParams = {
7480
+ /**
7481
+ * Optional name for the analysis report.
7482
+ */
7483
+ name?: string;
7484
+ /**
7485
+ * Traffic metrics to include in the analysis.
7486
+ *
7487
+ * @remarks
7488
+ * At least one data type must be provided.
7489
+ *
7490
+ * @example ['SPEED', 'CONGESTION_LEVEL', 'FREE_FLOW_SPEED']
7491
+ */
7492
+ dataTypes: AreaAnalyticsDataType[];
7493
+ /**
7494
+ * Functional road classes to include in the analysis, or `'all'` to include every class.
7495
+ *
7496
+ * @remarks
7497
+ * At least one value must be provided, or pass `'all'` as a shorthand for all nine classes.
7498
+ *
7499
+ * @example ['MOTORWAY', 'MAJOR_ROAD', 'OTHER_MAJOR_ROAD']
7500
+ * @example 'all'
7501
+ */
7502
+ functionalRoadClasses: FunctionalRoadClass[] | 'all';
7503
+ /**
7504
+ * Hours of the day to include in the analysis (0–23), or `'all'` to include every hour.
7505
+ *
7506
+ * @remarks
7507
+ * Provide at least one hour, or pass `'all'` as a shorthand for `[0, 1, 2, ..., 23]`.
7508
+ *
7509
+ * @example [7, 8, 9, 17, 18]
7510
+ * @example 'all'
7511
+ */
7512
+ hours: number[] | 'all';
7513
+ /**
7514
+ * The GeoJSON Polygon or MultiPolygon geometry defining the analysis region.
7515
+ *
7516
+ * @remarks
7517
+ * The lite endpoint accepts exactly one region. For multi-region analysis,
7518
+ * use the standard (async) report creation endpoint.
7519
+ */
7520
+ geometry: Polygon | MultiPolygon;
7521
+ };
7522
+
7523
+ /**
7524
+ * Continuous date-range variant: analyse traffic between `startDate` and `endDate`.
7525
+ *
7526
+ * - `endDate` is optional; when omitted it defaults to **today**.
7527
+ * - The range must not exceed **31 days**.
7528
+ * - Mutually exclusive with {@link TrafficAreaAnalyticsDays}.
7529
+ *
7530
+ * @group Traffic
7531
+ */
7532
+ export declare type TrafficAreaAnalyticsDateRange = {
7533
+ /**
7534
+ * Start date of the analysis period.
7535
+ * Accepts a `Date` object or an ISO `'YYYY-MM-DD'` string.
7536
+ *
7537
+ * @example '2024-08-01'
7538
+ * @example new Date('2024-08-01')
7539
+ */
7540
+ startDate: AreaAnalyticsDateInput;
7541
+ /**
7542
+ * End date of the analysis period (inclusive).
7543
+ * Accepts a `Date` object or an ISO `'YYYY-MM-DD'` string.
7544
+ * When omitted, defaults to **today**.
7545
+ *
7546
+ * @remarks Must be within 31 days from `startDate`.
7547
+ *
7548
+ * @example '2024-08-07'
7549
+ * @example new Date('2024-08-07')
7550
+ */
7551
+ endDate?: AreaAnalyticsDateInput;
7552
+ days?: never;
7553
+ };
7554
+
7555
+ /**
7556
+ * Specific-dates variant: analyse traffic on an explicit list of dates.
7557
+ *
7558
+ * Useful for non-consecutive dates such as "all Mondays in August".
7559
+ * Mutually exclusive with {@link TrafficAreaAnalyticsDateRange}.
7560
+ *
7561
+ * @group Traffic
7562
+ */
7563
+ export declare type TrafficAreaAnalyticsDays = {
7564
+ /**
7565
+ * List of specific dates to include in the analysis.
7566
+ * Accepts `Date` objects or ISO `'YYYY-MM-DD'` strings.
7567
+ *
7568
+ * @example ['2024-08-05', '2024-08-12', '2024-08-19', '2024-08-26']
7569
+ */
7570
+ days: AreaAnalyticsDateInput[];
7571
+ startDate?: never;
7572
+ endDate?: never;
7573
+ };
7574
+
7575
+ /**
7576
+ * Parameters for the Traffic Area Analytics Lite service.
7577
+ *
7578
+ * @remarks
7579
+ * Supply **either** `startDate` (+ optional `endDate`) **or** `days` — these
7580
+ * two options are mutually exclusive.
7581
+ *
7582
+ * The lite endpoint runs analysis synchronously and returns results immediately,
7583
+ * with the constraint that the date range must not exceed 31 days and only a
7584
+ * single region may be submitted.
7585
+ *
7586
+ * @example
7587
+ * ```typescript
7588
+ * // Continuous range — endDate defaults to today when omitted
7589
+ * const result = await trafficAreaAnalytics({
7590
+ * startDate: '2024-08-01',
7591
+ * functionalRoadClasses: ['MOTORWAY', 'MAJOR_ROAD', 'OTHER_MAJOR_ROAD', 'SECONDARY_ROAD', 'LOCAL_CONNECTING_ROAD', 'LOCAL_ROAD_HIGH_IMPORTANCE'],
7592
+ * hours: [7, 8, 9, 17, 18],
7593
+ * dataTypes: ['SPEED', 'CONGESTION_LEVEL'],
7594
+ * geometry: {
7595
+ * type: 'Polygon',
7596
+ * coordinates: [[[4.896128, 52.382402], [4.875701, 52.368459], [4.923611, 52.36341], [4.896128, 52.382402]]]
7597
+ * }
7598
+ * });
7599
+ * ```
7600
+ *
7601
+ * @example
7602
+ * ```typescript
7603
+ * // Specific dates
7604
+ * const result = await trafficAreaAnalytics({
7605
+ * days: ['2024-08-05', '2024-08-12', '2024-08-19', '2024-08-26'],
7606
+ * functionalRoadClasses: ['MOTORWAY', 'MAJOR_ROAD', 'OTHER_MAJOR_ROAD'],
7607
+ * hours: [8, 9, 17, 18],
7608
+ * dataTypes: ['SPEED'],
7609
+ * geometry: polygon
7610
+ * });
7611
+ * ```
7612
+ *
7613
+ * @group Traffic
7614
+ */
7615
+ export declare type TrafficAreaAnalyticsParams = CommonServiceParams & TrafficAreaAnalyticsBaseParams & (TrafficAreaAnalyticsDateRange | TrafficAreaAnalyticsDays);
7616
+
7617
+ /**
7618
+ * Traffic Area Analytics service template type.
7619
+ * @ignore
7620
+ */
7621
+ declare type TrafficAreaAnalyticsTemplate = ServiceTemplate<TrafficAreaAnalyticsParams, FetchInput<AreaAnalyticsRequestBody>, AreaAnalyticsResponseAPI, TrafficAreaAnalytics>;
7622
+
7010
7623
  /**
7011
7624
  * @ignore
7012
7625
  */