@tomtom-org/maps-sdk 0.53.0 → 0.55.1

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.
@@ -1,5 +1,5 @@
1
1
  import { ZodError, ZodIssue, ZodObject } from "zod";
2
- import { AddressProperties, AreaAnalyticsMetricKey, Avoidable, BBox, ChargingPark, ChargingParkWithAvailability, ChargingStation, ChargingStationsAccessType, ChargingStationsAvailability, ChargingStopProps, CommonPlaceProps, Connector, ConnectorType, CurrentType, EVChargingStationWithAvailabilityPlaceProps, EntryPoint, Fuel, GeographyType, GetPositionEntryPointOption, GlobalConfig, HasBBox, HasLngLat, Instruction, MapcodeType, OpeningHours, OpeningHoursMode, POICategory, Place, PlaceType, Places, PlugType, PolygonFeature, PolygonFeatures, RevGeoAddressProps, RoadShieldReference, Route, RoutePlanningLocation, Routes, SearchPlaceProps, TimeZone, TomTomAPIHeaders, TomTomHeaders, TrafficAreaAnalytics, TrafficIncidentDetails, TrafficIncidentRequestCategory, TrafficIncidentTEC, TrafficIncidentTimeValidity, TravelMode, View, inputSectionTypes } from "@tomtom-org/maps-sdk/core";
2
+ import { AddressProperties, AreaAnalyticsMetricKey, Avoidable, BBox, ChargingPark, ChargingParkWithAvailability, ChargingStation, ChargingStationsAccessType, ChargingStationsAvailability, ChargingStopProps, CommonPlaceProps, Connector, ConnectorType, CurrentType, EVChargingStationWithAvailabilityPlaceProps, EntryPoint, Fuel, GeographyType, GetPositionEntryPointOption, GlobalConfig, HasBBox, HasLngLat, MapcodeType, OpeningHours, OpeningHoursMode, POICategory, Place, PlaceType, Places, PlugType, PolygonFeature, PolygonFeatures, RevGeoAddressProps, RoadShieldReference, Route, RoutePlanningLocation, Routes, SearchPlaceProps, TimeZone, TomTomAPIHeaders, TomTomHeaders, TrafficAreaAnalytics, TrafficIncidentDetails, TrafficIncidentRequestCategory, TrafficIncidentTEC, TrafficIncidentTimeValidity, TravelMode, View, inputSectionTypes } from "@tomtom-org/maps-sdk/core";
3
3
  //#region src/shared/types/apiResponseErrorTypes.d.ts
4
4
  /**
5
5
  * @ignore
@@ -65,6 +65,13 @@ export type FetchInput<PostData = void> = ({
65
65
  } & GetObject) | ({
66
66
  method: 'POST';
67
67
  } & PostObject<PostData>);
68
+ /**
69
+ * Per-call HTTP options threaded from service params down to `fetch`.
70
+ * @ignore
71
+ */
72
+ export type RequestOptions = {
73
+ signal?: AbortSignal;
74
+ };
68
75
  export type ParsedFetchResponse<T> = Promise<{
69
76
  data: Promise<T>;
70
77
  status: number;
@@ -155,6 +162,36 @@ export type CommonServiceParams<ApiRequest = any, ApiResponse = any> = Partial<G
155
162
  * @param apiResponse - The received raw (unparsed) API response
156
163
  */
157
164
  onAPIResponse?: (apiRequest: ApiRequest, apiResponse: ApiResponse) => void;
165
+ /**
166
+ * An `AbortSignal` used to cancel the request.
167
+ *
168
+ * @remarks
169
+ * Aborting rejects the call with an {@link SDKAbortError} (its `name` is `'AbortError'`)
170
+ * and cancels the underlying HTTP request, including while the SDK is waiting to retry
171
+ * a rate-limited (429) response. Aborting a call that already completed has no effect.
172
+ *
173
+ * Compose signals to add a deadline: `AbortSignal.any([mine, AbortSignal.timeout(5000)])`.
174
+ *
175
+ * @example
176
+ * Cancel the previous search whenever a new one starts:
177
+ * ```ts
178
+ * let controller: AbortController | undefined;
179
+ *
180
+ * const searchForQuery = async (query: string) => {
181
+ * controller?.abort();
182
+ * controller = new AbortController();
183
+ * try {
184
+ * return await search({ query, signal: controller.signal });
185
+ * } catch (error) {
186
+ * if (error instanceof SDKAbortError) return;
187
+ * throw error;
188
+ * }
189
+ * };
190
+ * ```
191
+ *
192
+ * @defaultValue `undefined` (the request cannot be cancelled)
193
+ */
194
+ signal?: AbortSignal;
158
195
  };
159
196
  /**
160
197
  * Function type for parsing API error responses into SDK service errors.
@@ -217,9 +254,10 @@ export type ServiceTemplate<Params extends CommonServiceParams<ApiRequest, ApiRe
217
254
  *
218
255
  * @param request - The request object to send
219
256
  * @param headers - Custom TomTom headers to include in the request
257
+ * @param options - Per-call HTTP options, such as the `AbortSignal` used to cancel the request
220
258
  * @returns A promise resolving to the parsed fetch response
221
259
  */
222
- sendRequest: (request: ApiRequest, headers: TomTomHeaders) => ParsedFetchResponse<ApiResponse>;
260
+ sendRequest: (request: ApiRequest, headers: TomTomHeaders, options?: RequestOptions) => ParsedFetchResponse<ApiResponse>;
223
261
  /**
224
262
  * Parses the successful API response into the expected return type.
225
263
  *
@@ -336,6 +374,35 @@ export declare class SDKServiceError extends SDKError {
336
374
  */
337
375
  constructor(message: string, service: string, status?: number);
338
376
  }
377
+ /**
378
+ * Error class for cancelled service calls.
379
+ *
380
+ * Thrown when the `signal` passed to a service call is aborted, either before the
381
+ * request is sent or while it is in flight. Its `name` is `'AbortError'`, matching
382
+ * the convention used by `fetch`, and the original abort reason — including a custom
383
+ * value passed to `AbortController.abort(reason)` — is available on `cause`.
384
+ *
385
+ * @example
386
+ * ```typescript
387
+ * try {
388
+ * await search({ query: 'cafe', signal: controller.signal });
389
+ * } catch (error) {
390
+ * if (error instanceof SDKAbortError) return; // superseded by a newer search
391
+ * throw error;
392
+ * }
393
+ * ```
394
+ *
395
+ * @group Errors
396
+ */
397
+ export declare class SDKAbortError extends SDKError {
398
+ /**
399
+ * Creates a new SDKAbortError instance.
400
+ *
401
+ * @param service - Name of the service whose call was cancelled
402
+ * @param cause - The abort reason carried by the signal
403
+ */
404
+ constructor(service: string, cause?: unknown);
405
+ }
339
406
  /**
340
407
  * @ignore
341
408
  * @param error
@@ -348,8 +415,9 @@ export declare const parseDefaultResponseError: ParseResponseError<DefaultAPIRes
348
415
  * @param error The error captured by a catch function.
349
416
  * @param serviceName The name of the service.
350
417
  * @param parseResponseError
418
+ * @param signal The signal given to the call, used to recognise a cancellation.
351
419
  */
352
- export declare const buildResponseError: (error: unknown, serviceName: ServiceName, parseResponseError?: ParseResponseError<unknown>) => SDKError;
420
+ export declare const buildResponseError: (error: unknown, serviceName: ServiceName, parseResponseError?: ParseResponseError<unknown>, signal?: AbortSignal) => SDKError;
353
421
  /**
354
422
  * @ignore
355
423
  * @param error
@@ -357,6 +425,66 @@ export declare const buildResponseError: (error: unknown, serviceName: ServiceNa
357
425
  */
358
426
  export declare const buildValidationError: (error: ValidationError, serviceName: ServiceName) => SDKError;
359
427
  //#endregion
428
+ //#region src/shared/types/geoBias.d.ts
429
+ /**
430
+ * A point to search around, optionally bounded by a radius.
431
+ *
432
+ * @remarks
433
+ * Without `radiusMeters` the point biases the ranking without restricting results; with it, results
434
+ * are confined to that circle.
435
+ *
436
+ * @group Search
437
+ */
438
+ export type PointGeoBias = {
439
+ /**
440
+ * The point to search around, as `[longitude, latitude]` or any GeoJSON form carrying one.
441
+ */
442
+ position: HasLngLat;
443
+ /**
444
+ * Radius around `position`, in metres. Values of zero or less are ignored by the API.
445
+ */
446
+ radiusMeters?: number;
447
+ };
448
+ /**
449
+ * A rectangle to confine results to.
450
+ *
451
+ * @group Search
452
+ */
453
+ export type BoundingBoxGeoBias = {
454
+ /**
455
+ * The rectangle, as `[minLongitude, minLatitude, maxLongitude, maxLatitude]` or any GeoJSON
456
+ * value a bounding box can be derived from — a `bbox` property, a Feature, or a geometry.
457
+ */
458
+ boundingBox: HasBBox;
459
+ };
460
+ /**
461
+ * Where to look: a point with an optional radius, or a bounding box — one or the other.
462
+ *
463
+ * @remarks
464
+ * The two cannot be combined, which is why they are a union rather than separate options: an
465
+ * endpoint applies exactly one geographic bias per request.
466
+ *
467
+ * @example
468
+ * ```typescript
469
+ * // Around a point, ranking bias only
470
+ * const nearAmsterdam: GeoBias = { position: [4.9, 52.3] };
471
+ *
472
+ * // Around a point, confined to 2 km
473
+ * const within2km: GeoBias = { position: [4.9, 52.3], radiusMeters: 2000 };
474
+ *
475
+ * // Inside the visible map area
476
+ * const inViewport: GeoBias = { boundingBox: map.getBounds().toArray().flat() as BBox };
477
+ * ```
478
+ *
479
+ * @group Search
480
+ */
481
+ export type GeoBias = (PointGeoBias & {
482
+ boundingBox?: never;
483
+ }) | (BoundingBoxGeoBias & {
484
+ position?: never;
485
+ radiusMeters?: never;
486
+ });
487
+ //#endregion
360
488
  //#region src/shared/types/commonGeocodeAndFuzzySearchParams.d.ts
361
489
  /**
362
490
  * Common parameters shared between fuzzy search and geocoding services.
@@ -433,86 +561,19 @@ export type CommonGeocodeAndFuzzySearchParams = {
433
561
  */
434
562
  offset?: number;
435
563
  /**
436
- * Search radius in meters around the specified position.
437
- *
438
- * When used with `position`, constrains results to locations within
439
- * this distance from the position. Creates a circular search area.
440
- *
441
- * @remarks
442
- * **Behavior:**
443
- * - Must be used with `position` parameter
444
- * - Values ≤ 0 are ignored (parameter has no effect)
445
- * - Mutually exclusive with `boundingBox` (radius takes precedence)
446
- *
447
- * **Typical Values:**
448
- * - 500m: Immediate vicinity (walking distance)
449
- * - 2000m: Neighborhood area
450
- * - 5000m: City district
451
- * - 10000m: Greater city area
452
- *
453
- * @example
454
- * ```typescript
455
- * // Search within 1km radius
456
- * radiusMeters: 1000
457
- *
458
- * // Search within 5km radius
459
- * radiusMeters: 5000
460
- *
461
- * // Combined with position
462
- * position: [4.9, 52.3],
463
- * radiusMeters: 2000 // Within 2km of Amsterdam center
464
- * ```
465
- */
466
- radiusMeters?: number;
467
- /**
468
- * Bounding box to constrain search results to a rectangular area.
469
- *
470
- * Filters results to only include locations within the specified bounding box.
471
- * Accepts various GeoJSON formats that contain or can derive a bounding box.
564
+ * Where to look: a point with an optional radius, or a bounding box.
472
565
  *
473
566
  * @remarks
474
- * **Accepted Formats:**
475
- * - Direct BBox array: `[minLng, minLat, maxLng, maxLat]`
476
- * - GeoJSON Feature/FeatureCollection with bbox property
477
- * - Any GeoJSON geometry (bbox calculated automatically)
478
- *
479
- * **Important:**
480
- * - Mutually exclusive with Point-Radius parameters
481
- * - Point-Radius (`position` + `radiusMeters`) takes precedence if both provided
482
- * - Useful for map viewport filtering
483
- *
484
- * **Use Cases:**
485
- * - "Search in visible map area"
486
- * - City/region boundary filtering
487
- * - Custom geographic restrictions
567
+ * A point without `radiusMeters` biases the ranking; with one, or with a `boundingBox`, results
568
+ * are confined to that area. Leave it out to search without a geographic bias.
488
569
  *
489
570
  * @example
490
571
  * ```typescript
491
- * // Direct bounding box (Amsterdam area)
492
- * boundingBox: [4.8, 52.3, 5.0, 52.4]
493
- *
494
- * // From GeoJSON Feature
495
- * boundingBox: {
496
- * type: 'Feature',
497
- * bbox: [4.8, 52.3, 5.0, 52.4],
498
- * geometry: { ... },
499
- * properties: {}
500
- * }
501
- *
502
- * // From Polygon (bbox calculated)
503
- * boundingBox: {
504
- * type: 'Polygon',
505
- * coordinates: [[
506
- * [4.8, 52.3],
507
- * [5.0, 52.3],
508
- * [5.0, 52.4],
509
- * [4.8, 52.4],
510
- * [4.8, 52.3]
511
- * ]]
512
- * }
572
+ * geoBias: { position: [4.9, 52.3], radiusMeters: 2000 }
573
+ * geoBias: { boundingBox: [4.8, 52.3, 5.0, 52.4] }
513
574
  * ```
514
575
  */
515
- boundingBox?: HasBBox;
576
+ geoBias?: GeoBias;
516
577
  /**
517
578
  * Restrict search to specific countries.
518
579
  *
@@ -3960,28 +4021,19 @@ type AutocompleteSearchParams = CommonServiceParams<URL, AutocompleteSearchRespo
3960
4021
  */
3961
4022
  query: string;
3962
4023
  /**
3963
- * Position to bias results towards.
3964
- *
3965
- * Results closer to this location will be ranked higher in suggestions.
4024
+ * The point to bias suggestions towards, and how far around it to look.
3966
4025
  *
3967
4026
  * @remarks
3968
- * Can be provided as:
3969
- * - Object with `lon` and `lat` properties
3970
- * - Array `[longitude, latitude]`
3971
- *
3972
- * When used without `radiusMeters`, biases results but doesn't restrict them.
3973
- * When used with `radiusMeters`, constrains results to that area.
4027
+ * This endpoint biases by point only — it takes no bounding box. Without `radiusMeters` the
4028
+ * point ranks nearer suggestions higher without restricting them.
3974
4029
  *
3975
4030
  * @example
3976
4031
  * ```typescript
3977
- * // Object format
3978
- * position: { lon: 4.9041, lat: 52.3676 }
3979
- *
3980
- * // Array format
3981
- * position: [4.9041, 52.3676]
4032
+ * geoBias: { position: [4.9041, 52.3676] }
4033
+ * geoBias: { position: [4.9041, 52.3676], radiusMeters: 5000 }
3982
4034
  * ```
3983
4035
  */
3984
- position?: HasLngLat;
4036
+ geoBias?: PointGeoBias;
3985
4037
  /**
3986
4038
  * Maximum number of suggestions to return.
3987
4039
  *
@@ -3995,24 +4047,6 @@ type AutocompleteSearchParams = CommonServiceParams<URL, AutocompleteSearchRespo
3995
4047
  * ```
3996
4048
  */
3997
4049
  limit?: number;
3998
- /**
3999
- * Search radius in meters from the position.
4000
- *
4001
- * When combined with `position`, restricts results to within this radius.
4002
- * Without `position`, this parameter is ignored.
4003
- *
4004
- * @remarks
4005
- * Only results within this distance from `position` will be returned.
4006
- * Values ≤ 0 are ignored.
4007
- *
4008
- * @example
4009
- * ```typescript
4010
- * // Search within 5km of position
4011
- * position: [4.9, 52.3],
4012
- * radiusMeters: 5000
4013
- * ```
4014
- */
4015
- radiusMeters?: number;
4016
4050
  /**
4017
4051
  * Restrict results to specific countries.
4018
4052
  *
@@ -4422,31 +4456,6 @@ type GeocodingParams = Omit<CommonPlacesParams<URL, GeocodingResponseAPI> & Comm
4422
4456
  * ```
4423
4457
  */
4424
4458
  query: string;
4425
- /**
4426
- * Geographic position to bias geocoding results toward.
4427
- *
4428
- * When provided, results closer to this position are ranked higher.
4429
- * Useful for resolving ambiguous queries (e.g. "Main Street") to
4430
- * the right city or region.
4431
- *
4432
- * Accepts any {@link HasLngLat}-compatible value:
4433
- * - `[longitude, latitude]` coordinate pair
4434
- * - GeoJSON `Point` geometry
4435
- * - GeoJSON `Feature<Point>` — pass a {@link Place} directly
4436
- *
4437
- * @example
4438
- * ```typescript
4439
- * // Coordinate pair
4440
- * position: [4.9041, 52.3676]
4441
- *
4442
- * // Place result from a previous search (e.g. user's selected location)
4443
- * position: selectedPlace
4444
- *
4445
- * // GeoJSON Point
4446
- * position: { type: 'Point', coordinates: [4.9041, 52.3676] }
4447
- * ```
4448
- */
4449
- position?: HasLngLat;
4450
4459
  /**
4451
4460
  * Indexes for which extended postal codes should be included in the results.
4452
4461
  *
@@ -5345,12 +5354,12 @@ type ReachableRangeRequestAPI = FetchInput;
5345
5354
  //#endregion
5346
5355
  //#region src/routing/types/apiResponseTypes.d.ts
5347
5356
  /**
5348
- * V3 traffic section icon categories.
5357
+ * Traffic section icon categories.
5349
5358
  * @ignore
5350
5359
  */
5351
5360
  type IconCategoryAPI = 'jam' | 'accident' | 'brokenDownVehicle' | 'dangerousConditions' | 'flooding' | 'fog' | 'ice' | 'laneClosed' | 'rain' | 'roadClosed' | 'roadWorks' | 'wind';
5352
5361
  /**
5353
- * V3 delay magnitude values. `'undefined'` is the raw API value mapped to SDK `'indefinite'`.
5362
+ * Delay magnitude values. `'undefined'` is the raw API value mapped to SDK `'indefinite'`.
5354
5363
  * @ignore
5355
5364
  */
5356
5365
  type DelayMagnitudeAPI = 'unknown' | 'minor' | 'moderate' | 'major' | 'undefined';
@@ -5395,7 +5404,7 @@ type ChargingStopAPI = Omit<ChargingStopProps, 'targetChargeInPCT' | 'chargingCo
5395
5404
  };
5396
5405
  };
5397
5406
  /**
5398
- * V3 summary — field names changed from V2.
5407
+ * Route summary as the API returns it.
5399
5408
  * @ignore
5400
5409
  */
5401
5410
  type SummaryAPI = {
@@ -5408,6 +5417,7 @@ type SummaryAPI = {
5408
5417
  deviationDistanceInMeters?: number;
5409
5418
  deviationDurationInSeconds?: number;
5410
5419
  deviationPoint?: Point;
5420
+ originalWaypointIndexAtEndOfLeg?: number;
5411
5421
  historicTrafficTravelTimeInSeconds?: number;
5412
5422
  liveTrafficIncidentsTravelTimeInSeconds?: number;
5413
5423
  noTrafficTravelTimeInSeconds?: number;
@@ -5419,7 +5429,7 @@ type SummaryAPI = {
5419
5429
  chargingInformationAtEndOfLeg?: ChargingStopAPI;
5420
5430
  };
5421
5431
  /**
5422
- * V3 leg — path is now a GeoJSON LineString instead of a points array.
5432
+ * Route leg. Its path is a GeoJSON LineString, not a points array.
5423
5433
  * @ignore
5424
5434
  */
5425
5435
  type LegAPI = {
@@ -5427,7 +5437,7 @@ type LegAPI = {
5427
5437
  summary: SummaryAPI;
5428
5438
  };
5429
5439
  /**
5430
- * V3 basic section — uses pathIndex instead of pointIndex.
5440
+ * Basic section. Spans are expressed with pathIndex, not pointIndex.
5431
5441
  * @ignore
5432
5442
  */
5433
5443
  type BasicSectionAPI = {
@@ -5458,7 +5468,7 @@ type TrafficSectionAPI = BasicSectionAPI & {
5458
5468
  eventId?: string;
5459
5469
  };
5460
5470
  /**
5461
- * V3 speed limit section — speed values live under `speedRestrictions` (typed maximum/minimum)
5471
+ * Speed limit section — speed values live under `speedRestrictions` (typed maximum/minimum)
5462
5472
  * instead of the V2 flat `maxSpeedLimitInKmh`.
5463
5473
  * @ignore
5464
5474
  */
@@ -5469,7 +5479,7 @@ type SpeedLimitSectionAPI = BasicSectionAPI & {
5469
5479
  }[];
5470
5480
  };
5471
5481
  /**
5472
- * V3 lanes section — directions/separators are camelCase strings (mapped to the SDK's
5482
+ * Lanes section — directions/separators are camelCase strings (mapped to the SDK's
5473
5483
  * UPPER_SNAKE enums during parsing), and lanes are objects rather than flat direction lists.
5474
5484
  * @ignore
5475
5485
  */
@@ -5496,7 +5506,7 @@ type ImportantRoadStretchSectionAPI = BasicSectionAPI & {
5496
5506
  }[];
5497
5507
  };
5498
5508
  /**
5499
- * V3 sections object — already grouped by type (no flat array + discriminator).
5509
+ * Sections object, grouped by type rather than a flat array with a discriminator.
5500
5510
  * @ignore
5501
5511
  */
5502
5512
  type SectionsAPI = {
@@ -5518,11 +5528,12 @@ type SectionsAPI = {
5518
5528
  roadShields?: (BasicSectionAPI & {
5519
5529
  roadShieldReferences?: RoadShieldReference[];
5520
5530
  })[];
5531
+ tollRoad?: BasicSectionAPI[];
5521
5532
  tollVignette?: CountrySectionAPI[];
5522
5533
  importantRoadStretch?: ImportantRoadStretchSectionAPI[];
5523
5534
  };
5524
5535
  /**
5525
- * V3 lat/lon point used in guidance instructions (different from GeoJSON used elsewhere).
5536
+ * Lat/lon point used in guidance instructions (different from the GeoJSON used elsewhere).
5526
5537
  * @ignore
5527
5538
  */
5528
5539
  type LatLonPointAPI = {
@@ -5530,7 +5541,7 @@ type LatLonPointAPI = {
5530
5541
  longitude: number;
5531
5542
  };
5532
5543
  /**
5533
- * V3 routePath point — field names changed from V2.
5544
+ * A point on the route path.
5534
5545
  * @ignore
5535
5546
  */
5536
5547
  type RoutePathPointAPI = {
@@ -5539,24 +5550,17 @@ type RoutePathPointAPI = {
5539
5550
  travelTimeFromRouteStartInSeconds: number;
5540
5551
  };
5541
5552
  /**
5542
- * V3 phonetic transcription — an object keyed by phonetic alphabet, not a flat string as in V2.
5543
- * @ignore
5544
- */
5545
- type PhoneticAPI = {
5546
- lhp?: string;
5547
- ipa?: string;
5548
- };
5549
- /**
5550
- * V3 text-with-phonetics — `phonetic` is now an object (mapped to a flat string during parsing).
5553
+ * Text with phonetics. `phonetic` is a flat string, already transcribed in the alphabet the
5554
+ * request asked for via `instructionPhonetics` — there is no per-alphabet object to choose from.
5551
5555
  * @ignore
5552
5556
  */
5553
5557
  type TextWithPhoneticsAPI = {
5554
5558
  text: string;
5555
- phonetic?: PhoneticAPI;
5559
+ phonetic?: string;
5556
5560
  phoneticLanguageCode?: string;
5557
5561
  };
5558
5562
  /**
5559
- * V3 icon reference — same shape as the SDK's RoadShieldReference.
5563
+ * Icon reference — same shape as the SDK's RoadShieldReference.
5560
5564
  * @ignore
5561
5565
  */
5562
5566
  type IconReferenceAPI = {
@@ -5565,7 +5569,7 @@ type IconReferenceAPI = {
5565
5569
  affixes?: string[];
5566
5570
  };
5567
5571
  /**
5568
- * V3 road shield inside an instruction's road information. `iconReference` is EXPLICIT.
5572
+ * Road shield inside an instruction's road information. `iconReference` is EXPLICIT.
5569
5573
  * @ignore
5570
5574
  */
5571
5575
  type InstructionRoadShieldAPI = {
@@ -5575,7 +5579,25 @@ type InstructionRoadShieldAPI = {
5575
5579
  iconReference?: IconReferenceAPI;
5576
5580
  };
5577
5581
  /**
5578
- * V3 road information inside an instruction — field names changed from V2.
5582
+ * Side road. `side` is lowercase on the wire, mapped to the SDK's UPPER_SNAKE `SideRoadSide`.
5583
+ * @ignore
5584
+ */
5585
+ type SideRoadAPI = {
5586
+ side: string;
5587
+ offsetFromManeuverInMeters: number;
5588
+ isDrivable?: boolean;
5589
+ };
5590
+ /**
5591
+ * Maneuver view. Both angle fields are relative-direction strings (`slightLeft`, `back`, …),
5592
+ * not degrees, and are mapped to the SDK's UPPER_SNAKE `ManeuverAngle`.
5593
+ * @ignore
5594
+ */
5595
+ type ManeuverViewAPI = {
5596
+ onRouteAngle?: string;
5597
+ offRouteAngles?: string[];
5598
+ };
5599
+ /**
5600
+ * Road information inside an instruction.
5579
5601
  * @ignore
5580
5602
  */
5581
5603
  type InstructionRoadInformationAPI = {
@@ -5583,13 +5605,16 @@ type InstructionRoadInformationAPI = {
5583
5605
  roadShields?: InstructionRoadShieldAPI[];
5584
5606
  roadNames?: Array<{
5585
5607
  identifier: TextWithPhoneticsAPI;
5608
+ source?: string;
5586
5609
  }>;
5587
5610
  roadNumbers?: Array<{
5588
5611
  identifier: TextWithPhoneticsAPI;
5612
+ source?: string;
5589
5613
  }>;
5614
+ countryCodeIso2?: string;
5590
5615
  };
5591
5616
  /**
5592
- * V3 signpost — adds an EXPLICIT `exitIconReference` (mapped to signpostRoadShieldReferences).
5617
+ * Signpost. Carries an EXPLICIT `exitIconReference`, mapped to signpostRoadShieldReferences.
5593
5618
  * @ignore
5594
5619
  */
5595
5620
  type SignpostAPI = {
@@ -5599,7 +5624,7 @@ type SignpostAPI = {
5599
5624
  exitIconReference?: IconReferenceAPI;
5600
5625
  };
5601
5626
  /**
5602
- * V3 instruction — raw response shape. Coordinates are lat/lon (not GeoJSON), and several field
5627
+ * Instruction — raw response shape. Coordinates are lat/lon (not GeoJSON), and several field
5603
5628
  * names / value casings differ from the SDK's {@link Instruction}; the parser converts them.
5604
5629
  * @ignore
5605
5630
  */
@@ -5625,10 +5650,14 @@ type InstructionAPI = {
5625
5650
  countryCrossingFromCodeIso2?: string;
5626
5651
  countryCrossingToName?: TextWithPhoneticsAPI;
5627
5652
  countryCrossingToCodeIso2?: string;
5628
- sideRoads?: Instruction['sideRoads'];
5653
+ sideRoads?: SideRoadAPI[];
5654
+ /** Generated, localised instruction text. Present on every instruction. */
5655
+ message?: string;
5656
+ maneuverView?: ManeuverViewAPI;
5657
+ roundaboutType?: string;
5629
5658
  };
5630
5659
  /**
5631
- * V3 progress point — field names differ from the SDK's RouteProgressPoint.
5660
+ * Progress point. Its field names differ from the SDK's RouteProgressPoint.
5632
5661
  * @ignore
5633
5662
  */
5634
5663
  type ProgressPointAPI = {
@@ -6294,7 +6323,7 @@ declare const customize$3: {
6294
6323
  //#endregion
6295
6324
  //#region src/routing/types/apiRequestTypes.d.ts
6296
6325
  /**
6297
- * V3 charging model sent in the POST body of the LDEVR endpoint.
6326
+ * Charging model sent in the POST body of the LDEVR endpoint.
6298
6327
  * @ignore
6299
6328
  */
6300
6329
  type ChargingParametersAPI = {
@@ -6311,7 +6340,7 @@ type RoutePlanningLocationsAPI = {
6311
6340
  waypoints?: MultiPoint;
6312
6341
  };
6313
6342
  /**
6314
- * V3 avoid area rectangle expressed as a GeoJSON Feature with a bbox.
6343
+ * Avoid area rectangle expressed as a GeoJSON Feature with a bbox.
6315
6344
  * @ignore
6316
6345
  */
6317
6346
  type AvoidRectangleAPI = {
@@ -6326,7 +6355,7 @@ type AvoidAreasAPI = {
6326
6355
  rectangles: AvoidRectangleAPI[];
6327
6356
  };
6328
6357
  /**
6329
- * V3 per-stop request options, nested under the leg that arrives at the stop.
6358
+ * Per-stop request options, nested under the leg that arrives at the stop.
6330
6359
  * @ignore
6331
6360
  */
6332
6361
  type RouteStopRequestAPI = {
@@ -6335,7 +6364,7 @@ type RouteStopRequestAPI = {
6335
6364
  preferredEntryPointIndex?: number;
6336
6365
  };
6337
6366
  /**
6338
- * V3 per-leg request (used in the `legs` array for route reconstruction and per-stop options).
6367
+ * Per-leg request, used in the `legs` array for route reconstruction and per-stop options.
6339
6368
  * @ignore
6340
6369
  */
6341
6370
  type LegRequestAPI = {
@@ -6347,7 +6376,7 @@ type LegRequestAPI = {
6347
6376
  routeStop?: RouteStopRequestAPI;
6348
6377
  };
6349
6378
  /**
6350
- * V3 POST body for /routing/routes/calculate and (partially) /routing/calculateLongDistanceEVRoute.
6379
+ * POST body for /routing/routes/calculate and (partially) /routing/calculateLongDistanceEVRoute.
6351
6380
  * Consumption model parameters are sent as URL query params, not in the POST body.
6352
6381
  * @ignore
6353
6382
  */
@@ -6437,6 +6466,36 @@ type InputSectionType = (typeof inputSectionTypes)[number];
6437
6466
  * @group Routing
6438
6467
  */
6439
6468
  type InputSectionTypes = InputSectionType[];
6469
+ /**
6470
+ * The phonetic alphabet street names are transcribed in.
6471
+ *
6472
+ * @remarks
6473
+ * - `LHP`: Language-specific phonetic representation
6474
+ * - `IPA`: International Phonetic Alphabet
6475
+ *
6476
+ * @group Routing
6477
+ */
6478
+ type Phonetics = 'LHP' | 'IPA';
6479
+ /**
6480
+ * The accepted values of {@link ChargingStopsStrategy}.
6481
+ * @group Routing
6482
+ */
6483
+ declare const chargingStopsStrategies: readonly ["automaticFastest", "manualFastest", "automaticFastestWithFallbackToManual"];
6484
+ /**
6485
+ * How the routing service should plan charging stops on an electric route.
6486
+ *
6487
+ * @remarks
6488
+ * - `automaticFastest`: the service picks charging stops for the fastest journey. The default.
6489
+ * - `manualFastest`: the service plans no charging stops of its own; only stops you pass as
6490
+ * waypoints are charged at.
6491
+ * - `automaticFastestWithFallbackToManual`: automatic, falling back to manual when no chargeable
6492
+ * route exists.
6493
+ *
6494
+ * Requires `vehicle.preferences.chargingPreferences` to be set as well: the endpoint also needs a
6495
+ * minimum charge at the destination, which only the preferences supply.
6496
+ * @group Routing
6497
+ */
6498
+ type ChargingStopsStrategy = (typeof chargingStopsStrategies)[number];
6440
6499
  /**
6441
6500
  * Configuration for turn-by-turn guidance instructions.
6442
6501
  *
@@ -6469,7 +6528,7 @@ type GuidanceParams = {
6469
6528
  *
6470
6529
  * @default 'IPA'
6471
6530
  */
6472
- phonetics?: 'LHP' | 'IPA';
6531
+ phonetics?: Phonetics;
6473
6532
  };
6474
6533
  /**
6475
6534
  * Extended route representation options.
@@ -6715,6 +6774,21 @@ type CalculateRouteParams = CommonServiceParams<CalculateRouteRequestAPI, Calcul
6715
6774
  * ```
6716
6775
  */
6717
6776
  computeTravelTimeFor?: ComputeTravelTimeFor;
6777
+ /**
6778
+ * How the service should plan charging stops on an electric route.
6779
+ *
6780
+ * Only applies to electric routes, so `vehicle.preferences.chargingPreferences` must be set
6781
+ * too — validation says so before the request is sent.
6782
+ *
6783
+ * @default 'automaticFastest' (the service's own default when unset)
6784
+ *
6785
+ * @example
6786
+ * ```typescript
6787
+ * // Plan the fastest journey, choosing charging stops along the way
6788
+ * chargingStopsStrategy: 'automaticFastest'
6789
+ * ```
6790
+ */
6791
+ chargingStopsStrategy?: ChargingStopsStrategy;
6718
6792
  /**
6719
6793
  * Request extended progress information at route polyline points.
6720
6794
  *
@@ -6809,7 +6883,7 @@ type CalculateRouteTemplate = ServiceTemplate<CalculateRouteParams, FetchInput<C
6809
6883
  //#region src/routing/requestBuilder.d.ts
6810
6884
  /**
6811
6885
  * Default function for building calculate route request from {@link CalculateRouteParams}
6812
- * targeting the OrbisV3 routing API.
6886
+ * targeting the Orbis routing API.
6813
6887
  * @param params The calculate route parameters, with global configuration already merged into them.
6814
6888
  */
6815
6889
  declare const buildCalculateRouteRequest: (params: CalculateRouteParams) => FetchInput<CalculateRoutePOSTDataAPI>;
@@ -7843,8 +7917,8 @@ type ExplorationRecordType = 'POI' | 'PointAddress' | 'Street';
7843
7917
  * - `countries[0]` → `country`
7844
7918
  * - `poiBrands[0]` → `brand`
7845
7919
  * - `poiCategories` → `categories` (mapped to TomTom numeric category ids)
7846
- * - `position` + `radiusMeters` → `near.coordinates` + `near.radius_km`
7847
- * - `boundingBox` / `boundingBoxes` → `bboxes`
7920
+ * - `geoBias` → `near.coordinates` + `near.radius_km`
7921
+ * - `boundingBoxes` → `bboxes`
7848
7922
  * - `geometries` → `geometries` (Polygon/MultiPolygon passed through; Circle
7849
7923
  * buffered to a Polygon; FeatureCollection flattened to its features)
7850
7924
  * - `municipalities` → `municipalities`
@@ -7856,23 +7930,18 @@ type ExplorationRecordType = 'POI' | 'PointAddress' | 'Street';
7856
7930
  * @ignore
7857
7931
  * @experimental
7858
7932
  */
7859
- type ExplorationSearchParams = CommonSearchParams<ExplorationSearchRequestAPI, ExplorationSearchResponseAPI> & CommonGeocodeAndFuzzySearchParams & {
7933
+ type ExplorationSearchParams = CommonSearchParams<ExplorationSearchRequestAPI, ExplorationSearchResponseAPI> & Omit<CommonGeocodeAndFuzzySearchParams, 'geoBias'> & {
7860
7934
  /**
7861
- * Geographic position to restrict results around.
7862
- *
7863
- * Combined with {@link radiusMeters} this maps to the API's `near` filter.
7864
- * Accepts any {@link HasLngLat}-compatible value — a `[lon, lat]` tuple,
7865
- * a GeoJSON `Point`, or a `Feature<Point>`.
7935
+ * The point to search around, and how far. Unlike the other search services, this endpoint
7936
+ * takes a point and {@link boundingBoxes} as separate filters, so both may be given.
7866
7937
  */
7867
- position?: HasLngLat;
7938
+ geoBias?: PointGeoBias;
7868
7939
  /**
7869
7940
  * Exact, case-sensitive municipality/city filters (e.g. `['Amsterdam', 'Utrecht']`).
7870
7941
  */
7871
7942
  municipalities?: string[];
7872
7943
  /**
7873
- * Additional bounding boxes to restrict results to.
7874
- *
7875
- * Merged with {@link boundingBox} and sent as the API's `bboxes` array.
7944
+ * Bounding boxes to restrict results to, sent as the API's `bboxes` array.
7876
7945
  */
7877
7946
  boundingBoxes?: HasBBox[];
7878
7947
  /**
@@ -8476,7 +8545,8 @@ export declare const calculateReachableRange: (params: ReachableRangeParams, cus
8476
8545
  * consider implementing your own parallel processing with appropriate throttling.
8477
8546
  *
8478
8547
  * @param paramsArray Array of reachable range parameters, one for each area to calculate
8479
- * @param options.signal An `AbortSignal` to cancel in-flight requests between iterations.
8548
+ * @param options.signal An `AbortSignal` to cancel the in-flight request and skip the remaining ones.
8549
+ * Composed with any per-entry `signal`, so either one cancels.
8480
8550
  * @param customTemplate Advanced customization for request/response handling
8481
8551
  *
8482
8552
  * @returns Promise resolving to a FeatureCollection of reachable area polygons
@@ -8974,30 +9044,6 @@ type FuzzySearchParams = CommonSearchParams<URL, FuzzySearchResponseAPI> & Commo
8974
9044
  * minFuzzyLevel: 2 // Require at least moderate similarity
8975
9045
  * ```
8976
9046
  */
8977
- /**
8978
- * Geographic position to bias search results toward.
8979
- *
8980
- * When provided, results closer to this position are ranked higher.
8981
- * Does not filter results, only creates a soft bias.
8982
- *
8983
- * Accepts any {@link HasLngLat}-compatible value:
8984
- * - `[longitude, latitude]` coordinate pair
8985
- * - GeoJSON `Point` geometry
8986
- * - GeoJSON `Feature<Point>` — pass a {@link Place} directly
8987
- *
8988
- * @example
8989
- * ```typescript
8990
- * // Coordinate pair
8991
- * position: [4.9041, 52.3676]
8992
- *
8993
- * // Place result from a previous search
8994
- * position: searchResults.features[0]
8995
- *
8996
- * // GeoJSON Point
8997
- * position: { type: 'Point', coordinates: [4.9041, 52.3676] }
8998
- * ```
8999
- */
9000
- position?: HasLngLat;
9001
9047
  minFuzzyLevel?: number;
9002
9048
  /**
9003
9049
  * Maximum fuzziness level to be used.
@@ -9275,4 +9321,4 @@ export declare const trafficAreaAnalytics: (params: TrafficAreaAnalyticsParams,
9275
9321
  */
9276
9322
  export declare const trafficIncidentDetails: (params: TrafficIncidentDetailsParams, customTemplate?: Partial<TrafficIncidentDetailsTemplate>) => Promise<TrafficIncidentDetails>;
9277
9323
  //#endregion
9278
- export type { AdditionalDataAPI, AlongRouteSearchParams, AlongRouteSearchPayloadAPI, AlongRouteSearchRequestAPI, AlongRouteSearchResponse, AlongRouteSearchResponseAPI, AlongRouteSearchResultAPI, AlongRouteSortBy, AreaAnalyticsDateInput, AreaTag, ArrivalSide, AutocompleteGenericSearchSegment, AutocompleteSearchBrandSegment, AutocompleteSearchCategorySegment, AutocompleteSearchCategorySegmentAPI, AutocompleteSearchContext, AutocompleteSearchContextAPI, AutocompleteSearchMatch, AutocompleteSearchMatches, AutocompleteSearchParams, AutocompleteSearchPlaintextSegment, AutocompleteSearchResponse, AutocompleteSearchResponseAPI, AutocompleteSearchResult, AutocompleteSearchResultAPI, AutocompleteSearchResultGeoBias, AutocompleteSearchResultGeoBiasAPI, AutocompleteSearchSegment, AutocompleteSearchSegmentAPI, AutocompleteSearchSegmentType, BookmarkIntent, BookmarkIntentDetails, CalculateRouteParams, CanonicalAreaTag, ChargingStationsAvailabilityParams, Circle, CircleAPI, CommonServiceParamsWithZoom, ComputeTravelTimeFor, CoordinateIntent, CoordinateIntentAPI, CoordinateIntentDetails, CoordinateIntentDetailsAPI, ExplorationBrandAPI, ExplorationChargingParkAPI, ExplorationClassificationAPI, ExplorationOpeningHoursAPI, ExplorationOpeningIntervalAPI, ExplorationPOIAPI, ExplorationPlaceProps, ExplorationRecordType, ExplorationSearchParams, ExplorationSearchPayloadAPI, ExplorationSearchRequestAPI, ExplorationSearchResponse, ExplorationSearchResponseAPI, ExplorationSearchResultAPI, ExplorationViewportAPI, ExtendedRouteRepresentation, FunctionalRoadClass, FuzzySearchParams, FuzzySearchResponse, FuzzySearchResponseAPI, FuzzySearchResultAPI, GeocodingParams, GeocodingProps, GeocodingResponse, GeometriesInput, GeometryAPI, GeometryDataParams, GeometryDataResponseAPI, GeometryParams, GeometryPlaceParams, GeometrySearchFeatureCollectionProps, GeometrySearchParams, GeometrySearchPayloadAPI, GeometrySearchRequestAPI, GeometrySearchResponse, GeometrySearchResponseAPI, GeometrySearchResultAPI, GuidanceParams, InputSectionType, InputSectionTypes, LegCostModel, MaxNumberOfAlternatives, NearAPI, NearbyIntent, NearbyIntentAPI, NearbyIntentDetails, NearbyIntentDetailsAPI, POICategoriesParams, POICategoriesResponse, POICategoryResult, PlaceByIdMandatoryParams, PlaceByIdOptionalParams, PlaceByIdParams, PlaceByIdResponse, PlaceByIdResponseAPI, PlaceByIdResultAPI, PoiCategoriesResponseAPI, PoiCategoryAPI, PolygonAPI, PopulatedAreaTag, QueryIntent, QueryIntentAPI, ReverseGeocodingMandatoryParams, ReverseGeocodingOptionalParams, ReverseGeocodingParams, RoutePointAPI, RouteStopOptions, SearchGeometryInput, TrafficAreaAnalyticsDateRange, TrafficAreaAnalyticsDays, TrafficAreaAnalyticsParams, TrafficIncidentDetailsByBBoxParams, TrafficIncidentDetailsByIdsParams, TrafficIncidentDetailsParams, W3WIntent, W3WIntentDetails, arrivalSides, functionalRoadClasses, metricKeyToApiDataType };
9324
+ export type { AdditionalDataAPI, AlongRouteSearchParams, AlongRouteSearchPayloadAPI, AlongRouteSearchRequestAPI, AlongRouteSearchResponse, AlongRouteSearchResponseAPI, AlongRouteSearchResultAPI, AlongRouteSortBy, AreaAnalyticsDateInput, AreaTag, ArrivalSide, AutocompleteGenericSearchSegment, AutocompleteSearchBrandSegment, AutocompleteSearchCategorySegment, AutocompleteSearchCategorySegmentAPI, AutocompleteSearchContext, AutocompleteSearchContextAPI, AutocompleteSearchMatch, AutocompleteSearchMatches, AutocompleteSearchParams, AutocompleteSearchPlaintextSegment, AutocompleteSearchResponse, AutocompleteSearchResponseAPI, AutocompleteSearchResult, AutocompleteSearchResultAPI, AutocompleteSearchResultGeoBias, AutocompleteSearchResultGeoBiasAPI, AutocompleteSearchSegment, AutocompleteSearchSegmentAPI, AutocompleteSearchSegmentType, BookmarkIntent, BookmarkIntentDetails, CalculateRouteParams, CanonicalAreaTag, ChargingStationsAvailabilityParams, ChargingStopsStrategy, Circle, CircleAPI, CommonServiceParamsWithZoom, ComputeTravelTimeFor, CoordinateIntent, CoordinateIntentAPI, CoordinateIntentDetails, CoordinateIntentDetailsAPI, ExplorationBrandAPI, ExplorationChargingParkAPI, ExplorationClassificationAPI, ExplorationOpeningHoursAPI, ExplorationOpeningIntervalAPI, ExplorationPOIAPI, ExplorationPlaceProps, ExplorationRecordType, ExplorationSearchParams, ExplorationSearchPayloadAPI, ExplorationSearchRequestAPI, ExplorationSearchResponse, ExplorationSearchResponseAPI, ExplorationSearchResultAPI, ExplorationViewportAPI, ExtendedRouteRepresentation, FunctionalRoadClass, FuzzySearchParams, FuzzySearchResponse, FuzzySearchResponseAPI, FuzzySearchResultAPI, GeocodingParams, GeocodingProps, GeocodingResponse, GeometriesInput, GeometryAPI, GeometryDataParams, GeometryDataResponseAPI, GeometryParams, GeometryPlaceParams, GeometrySearchFeatureCollectionProps, GeometrySearchParams, GeometrySearchPayloadAPI, GeometrySearchRequestAPI, GeometrySearchResponse, GeometrySearchResponseAPI, GeometrySearchResultAPI, GuidanceParams, InputSectionType, InputSectionTypes, LegCostModel, MaxNumberOfAlternatives, NearAPI, NearbyIntent, NearbyIntentAPI, NearbyIntentDetails, NearbyIntentDetailsAPI, POICategoriesParams, POICategoriesResponse, POICategoryResult, Phonetics, PlaceByIdMandatoryParams, PlaceByIdOptionalParams, PlaceByIdParams, PlaceByIdResponse, PlaceByIdResponseAPI, PlaceByIdResultAPI, PoiCategoriesResponseAPI, PoiCategoryAPI, PolygonAPI, PopulatedAreaTag, QueryIntent, QueryIntentAPI, ReverseGeocodingMandatoryParams, ReverseGeocodingOptionalParams, ReverseGeocodingParams, RoutePointAPI, RouteStopOptions, SearchGeometryInput, TrafficAreaAnalyticsDateRange, TrafficAreaAnalyticsDays, TrafficAreaAnalyticsParams, TrafficIncidentDetailsByBBoxParams, TrafficIncidentDetailsByIdsParams, TrafficIncidentDetailsParams, W3WIntent, W3WIntentDetails, arrivalSides, chargingStopsStrategies, functionalRoadClasses, metricKeyToApiDataType };