@minmaps-dev/mm-web-sdk 1.0.0-rc.47 → 1.0.0-rc.48

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.
package/dist/index.d.ts CHANGED
@@ -277,6 +277,46 @@ type WayfindCenterMode = 'none' | 'destination' | 'route';
277
277
  type RoutingOptions = {
278
278
  avoidStairs?: boolean;
279
279
  };
280
+ /**
281
+ * A spot on a floor that need not be a POI — a tap in the middle of a
282
+ * corridor. Routes and walk times accept one wherever they accept a POI:
283
+ * it's snapped to the closest point along a path on its floor and routed
284
+ * from (or to) there, without any CMS waypoint at that spot.
285
+ *
286
+ * `kind` tells it apart from a `POI`, which also has `floorId` and
287
+ * `coordinates`. Build one with `sdk.snapToPath`, or by hand from a stored
288
+ * point (a shared link) — the SDK snaps it again either way.
289
+ */
290
+ type MapLocation = {
291
+ kind: 'location';
292
+ floorId: string | number;
293
+ /** `[lng, lat]`. */
294
+ coordinates: [number, number];
295
+ /** What the route calls it — the arrive step's landmark and the end
296
+ * flag's label. Omitted, the arrive step reads "You have arrived". */
297
+ label?: string;
298
+ /** Where the visitor actually tapped, when it's off the walking network and
299
+ * `coordinates` (where the route starts or ends) had to be moved onto it.
300
+ * Set by `snapToPath`; a location built from a stored point is snapped from
301
+ * `tapped ?? coordinates`, so store this to rebuild it later. */
302
+ tapped?: [number, number];
303
+ /** The walkable way from `tapped` to `coordinates` — around rooms, back-of-
304
+ * house areas and other obstacles, leaving a room by its door — drawn as a
305
+ * dotted line with a marker on the tap. `tapped` without `approach` means
306
+ * no walkable way was found (a room with no known door, somewhere nothing
307
+ * walks), so the point was simply moved to the nearest path. */
308
+ approach?: [number, number][];
309
+ /** `tapped` is inside a building or room, so `approach` leads to a hallway
310
+ * rather than an outdoor walkway — it picks the approach step's wording.
311
+ * Set by `snapToPath` alongside `approach`. */
312
+ indoors?: boolean;
313
+ /** `tapped` was in a hallway, a little way off its path line: the point was
314
+ * moved to the middle of the hall, with no `approach` to draw. Set by
315
+ * `snapToPath` with `tapped`; a "choose on map" UI can say so. */
316
+ centered?: boolean;
317
+ };
318
+ /** True for a `MapLocation`, false for a `POI`. */
319
+ declare function isMapLocation(value: unknown): value is MapLocation;
280
320
 
281
321
  /**
282
322
  * A single point along the rendered route. `mapId` lets the renderer
@@ -304,7 +344,7 @@ type RoutePoint = {
304
344
  isEndpoint?: boolean;
305
345
  };
306
346
 
307
- type WayfindStep = DepartStep | TurnStep | ContinueStep | TransitionStep$1 | ArriveStep;
347
+ type WayfindStep = DepartStep | TurnStep | ContinueStep | TransitionStep$1 | ApproachStep | ArriveStep;
308
348
  type StepBase = {
309
349
  /** Indices into the input `points` array that this step spans. */
310
350
  pointRange: [startInclusive: number, endInclusive: number];
@@ -340,15 +380,39 @@ type TransitionStep$1 = StepBase & {
340
380
  type ArriveStep = StepBase & {
341
381
  type: 'arrive';
342
382
  };
383
+ /**
384
+ * The walk between a tapped spot and the walking network (`MapLocation.approach`):
385
+ * `'start'` from where the visitor tapped to the hallway, before the depart
386
+ * step; `'end'` from the hallway to the tapped destination, before arrive.
387
+ * Its geometry isn't on the route line, so it carries its own `path` (in
388
+ * walking order) — highlight and frame that, not `pointRange`, which only
389
+ * marks the route point it joins.
390
+ */
391
+ type ApproachStep = StepBase & {
392
+ type: 'approach';
393
+ approach: 'start' | 'end';
394
+ path: [number, number][];
395
+ };
343
396
 
344
397
  interface MapEvent {
345
398
  floor?: Floor;
399
+ /** `routeReady`: the destination routed to — the exact instance, so for
400
+ * `navigateFromKioskToClosestAmenity` it carries the picked `waypointId`. */
346
401
  poi?: POI;
347
402
  /** All POIs co-located at a clicked point (overlapping pins / a shared
348
403
  * suite). Emitted by `poiSelected`; length ≥ 1, and `poi` mirrors
349
404
  * `pois[0]` for single-POI consumers. */
350
405
  pois?: POI[];
351
406
  coordinates?: [number, number];
407
+ /** `locationPicked`: the tap snapped to the closest point along a path, or
408
+ * `null` when no path on the floor was within reach (`coordinates` is the
409
+ * raw tap either way). `routeFailed`: the location that didn't resolve.
410
+ * `routeReady`: the tapped spot routed to, in place of `poi`. */
411
+ location?: MapLocation | null;
412
+ /** `locationPicked`: the tap was outside every building and room on the
413
+ * floor. With `hasOutdoorPaths(floor.id)` false, nothing outdoors on this
414
+ * floor is walkable — the visitor wants a floor that has outdoor paths. */
415
+ outdoors?: boolean;
352
416
  error?: any;
353
417
  venue?: any;
354
418
  camera?: CameraState;
@@ -527,6 +591,16 @@ interface SDKOptions {
527
591
  * zoom.
528
592
  */
529
593
  initialZoom?: number;
594
+ /**
595
+ * Zoom floor for selecting a place — a map tap or `selectPOI` (default
596
+ * `19.25`, one level into the Kiosk view). A selection made from further out
597
+ * zooms in to this; a closer zoom is kept. At the Kiosk view's edge (18.25)
598
+ * the selected dot and name are drawn but still lose collision to their
599
+ * neighbours, and in the Building view (a room tapped from 16.5 up) they
600
+ * aren't drawn at all — either way the visitor selects a place they can't
601
+ * see. `0` keeps the current zoom on every selection.
602
+ */
603
+ selectionZoom?: number;
530
604
  /**
531
605
  * Clamp zoom-out relative to the opening view. When set, the map's
532
606
  * `minZoom` becomes `(initialZoom − this)`, so visitors can nudge out by
@@ -661,6 +735,12 @@ type SDKConfig = {
661
735
  options?: SDKOptions;
662
736
  };
663
737
 
738
+ /** The chosen ends; either may be missing. */
739
+ type RouteEndPreview = {
740
+ start?: POI | MapLocation | null;
741
+ destination?: POI | MapLocation | null;
742
+ };
743
+
664
744
  type Visibility = 'visible' | 'none';
665
745
  type DebugLayersDeps = {
666
746
  getMap: () => Map | null;
@@ -1129,6 +1209,9 @@ type RouteImageOptions = {
1129
1209
  pixelRatio?: number;
1130
1210
  /** Padding around each floor's route segment, in CSS px. Default 40. */
1131
1211
  padding?: number;
1212
+ /** Draw in flat (2D) mode, which reads better on paper. The previous mode
1213
+ * is put back afterwards. Default `true`. */
1214
+ flat?: boolean;
1132
1215
  /** Image MIME type passed to `toDataURL`. Default `'image/png'`. */
1133
1216
  type?: string;
1134
1217
  /** Encoder quality for lossy types (`'image/jpeg'`, `'image/webp'`). */
@@ -1524,7 +1607,15 @@ declare class MinuteMaps {
1524
1607
  /** The destination of the last successfully computed route — kept so
1525
1608
  * `setLocale()` can rebuild + re-emit `routeReady` with retranslated
1526
1609
  * step text without recomputing the path. Cleared on route failure. */
1527
- private lastRouteDestinationPoi;
1610
+ private lastRouteDestination;
1611
+ /** `setLocationPicking` is on: a tap snaps to a path and emits
1612
+ * `locationPicked` instead of selecting what's under it. */
1613
+ private locationPicking;
1614
+ /** The active route's two ends, for redrawing its approaches after a
1615
+ * location-pick preview borrowed their source. */
1616
+ private routeApproachEnds;
1617
+ /** The running "moved to the nearest path" animation frame, if any. */
1618
+ private pickAnimationFrame;
1528
1619
  /** Waypoint ids (stringified) of the connector(s) the active transition
1529
1620
  * step rides — empty unless `setActiveStep` is on a transition. Drives
1530
1621
  * `applyRouteConnectorHighlight`. */
@@ -1566,8 +1657,9 @@ declare class MinuteMaps {
1566
1657
  * `clearHighlight`. */
1567
1658
  private selectedCoordinates;
1568
1659
  /** Zoom floor for the current selection's camera move, or `null` to keep
1569
- * the current zoom. Set by `selectPOI` (a list pick can arrive from the
1570
- * Campus view, where the roof still covers the room); kept beside
1660
+ * the current zoom. Set by `selectPOI` and map taps (`selectionZoom()` — a
1661
+ * pick can arrive from the Campus or Building view, where the selected
1662
+ * marker isn't drawn); kept beside
1571
1663
  * `selectedCoordinates` so a `setBoundsPadding` re-nudge carries the same
1572
1664
  * zoom instead of cancelling the zoom-in halfway. Cleared with it. */
1573
1665
  private selectedMinZoom;
@@ -2149,22 +2241,128 @@ declare class MinuteMaps {
2149
2241
  /**
2150
2242
  * Route between two arbitrary POIs — the browser/mobile counterpart of
2151
2243
  * `navigateFromKioskToPOI`, for visitors who aren't standing at a kiosk
2152
- * and pick their own starting point. Same events (`routeReady` /
2153
- * `routeFailed`) and the same `centerMode: 'route'` framing. Switches to
2154
- * the origin's floor first, because the route starts there.
2155
- *
2156
- * Emits `routeFailed` with `origin_unavailable` / `destination_unavailable`
2157
- * when either POI has no waypoint, `no_route` when no path connects them.
2244
+ * and pick their own starting point. `navigateBetween` with POIs only.
2158
2245
  */
2159
2246
  navigateBetweenPOIs(from: POI, to: POI, options?: {
2160
2247
  avoidStairs?: boolean;
2161
2248
  }): Promise<any>;
2162
2249
  /**
2163
- * Distance + walking time between two arbitrary POIs over the path graph —
2164
- * `getWalkTimeFromKiosk` with a caller-chosen origin. `null` when either POI
2165
- * has no waypoint on the graph or no path resolves.
2250
+ * Route between two picks, each a POI or a `MapLocation` (a tapped spot
2251
+ * that isn't a POI — see `snapToPath`). A location is snapped to the
2252
+ * closest point along a path on its floor and routed from there, so a
2253
+ * visitor can start mid-corridor with no waypoint authored at that spot.
2254
+ * Same events (`routeReady` / `routeFailed`) and the same
2255
+ * `centerMode: 'route'` framing as the kiosk routes. Switches to the
2256
+ * origin's floor first, because the route starts there.
2257
+ *
2258
+ * Emits `routeFailed` with `origin_unavailable` / `destination_unavailable`
2259
+ * when a POI has no waypoint or a location has no path within reach,
2260
+ * `no_route` when no path connects them.
2166
2261
  */
2167
- getWalkTimeBetween(from: POI, target: Parameters<MinuteMaps['getWalkTimeFromKiosk']>[0], opts?: {
2262
+ navigateBetween(from: POI | MapLocation, to: POI | MapLocation, options?: {
2263
+ avoidStairs?: boolean;
2264
+ }): Promise<any>;
2265
+ /**
2266
+ * What a tap on the map stands for as one end of a route — the rule "choose
2267
+ * on map" (`setLocationPicking`) applies, and the one to apply to a stored
2268
+ * tap so it resolves the same way:
2269
+ *
2270
+ * - **Inside a room that holds a destination** → that destination (`POI`),
2271
+ * routed to its entrance. A clinic's examination rooms and the like aren't
2272
+ * somewhere to walk a visitor through, so a tap there never becomes a spot
2273
+ * with an approach (`destinationInRoomAt`: smallest such room, nearest
2274
+ * destination in it).
2275
+ * - **Anywhere else** — an unplotted corridor, outdoors, a room with no
2276
+ * destination → `snapToPath`.
2277
+ *
2278
+ * `null` when the floor is unknown or no path is within reach.
2279
+ */
2280
+ resolveMapTap(location: Omit<MapLocation, 'kind'> | MapLocation): POI | MapLocation | null;
2281
+ /** `destinationInRoomAt` against a floor's own geometry and destinations. */
2282
+ private destinationInRoomAtTap;
2283
+ /**
2284
+ * Move a spot on a floor onto the walking network — where a route from (or
2285
+ * to) it will actually start (or end). The path point chosen is the one
2286
+ * closest **to walk to**, not the closest in a straight line: rooms,
2287
+ * back-of-house areas, stairs, elevators, obstacles and other buildings are
2288
+ * walked around, and a tap inside a room leaves by its door (inferred where
2289
+ * a path crosses the room's outline) rather than through the wall to the
2290
+ * corridor behind it. See `data/wayfinding/approach.ts`.
2291
+ *
2292
+ * Returns a `MapLocation` with `coordinates` on a path (`label` carried
2293
+ * over) and, when the tap was off the network, `tapped` plus — if a
2294
+ * walkable way was found — `approach`, the dotted line to draw. `tapped`
2295
+ * without `approach` means the point was simply moved (a room with no known
2296
+ * door, somewhere nothing walks) — or, with `centered`, moved from the side
2297
+ * of a hallway to its middle. `null` when the floor is unknown or no path
2298
+ * is within `maxDistanceMeters` (default 30 m).
2299
+ *
2300
+ * Planned from `tapped ?? coordinates`, so re-snapping a result (or a stored
2301
+ * tap) gives the same answer. Until the floor's geometry has loaded it's the
2302
+ * plain nearest point. Cross-floor paths are never snapped to.
2303
+ */
2304
+ snapToPath(location: Omit<MapLocation, 'kind'> | MapLocation, opts?: {
2305
+ maxDistanceMeters?: number;
2306
+ }): MapLocation | null;
2307
+ /**
2308
+ * Whether floor `floorId` has walkways outdoors — a path edge outside every
2309
+ * building and room. A multi-storey campus usually draws its outdoor paths
2310
+ * on the ground floor only, so a tap outside on another floor
2311
+ * (`locationPicked`'s `outdoors`) can't reach one: a "choose on map" UI can
2312
+ * point the visitor to a floor where this is `true`. `false` when the floor
2313
+ * is unknown or its geometry hasn't loaded.
2314
+ */
2315
+ hasOutdoorPaths(floorId: Floor['id']): boolean;
2316
+ /**
2317
+ * Turn map taps into location picks — for a "choose on map" control. While
2318
+ * on, a tap selects nothing; it's snapped to the closest point along a path
2319
+ * on the visible floor (`snapToPath`), a ring marks the snapped spot, and
2320
+ * **`locationPicked`** is emitted with `location` (the snapped
2321
+ * `MapLocation`, or `null` when no path was in reach — the ring is taken
2322
+ * down), `coordinates` (the raw tap), `floor`, and `outdoors` (the tap is
2323
+ * outside every building and room — see `hasOutdoorPaths`). Turning it off removes
2324
+ * the ring.
2325
+ */
2326
+ setLocationPicking(enabled: boolean): void;
2327
+ /**
2328
+ * Pin the ends a visitor has chosen for a route that isn't drawn yet — a
2329
+ * route form's start and destination — so each choice reads as saved: the
2330
+ * sprite's `marker-start` on `start`, `marker-destination` on
2331
+ * `destination`. A location tapped off the walking network is pinned where
2332
+ * it was tapped. Shown on the end's own floor only. Replaces the previous
2333
+ * preview; `{}` clears it. Independent of the route — clear it once the
2334
+ * route is drawn, so the route's own markers stand alone.
2335
+ */
2336
+ setRouteEndPreview(ends: RouteEndPreview): void;
2337
+ /**
2338
+ * A pick on the map: the ring on the on-path point, and the approach to it
2339
+ * from the tap. A tap that had to be *moved* (no walkable way) is shown
2340
+ * moving — its marker slides from the tap onto the path before the ring
2341
+ * appears — so the jump reads as deliberate. With reduced motion it's
2342
+ * simply there.
2343
+ */
2344
+ private showPickedLocation;
2345
+ /** A pick that resolved to a destination (`resolveMapTap`): its room
2346
+ * raised and the ring on its pin, as `highlightPOI` locates one. */
2347
+ private showPickedDestination;
2348
+ private stopPickAnimation;
2349
+ /** The floor's path-graph map id: for JACS venues the floor id *is* the
2350
+ * mapId, but read `mapId` first rather than lean on that. */
2351
+ private mapIdForFloorId;
2352
+ /** What the router takes for one end of a route: a POI's waypoint, or a
2353
+ * location's floor + on-path point (spliced in by the provider as a
2354
+ * virtual node). A location must already be through `snapToPath`, so its
2355
+ * `coordinates` are on a path. `null` when it can't be routed. */
2356
+ private routeEndpointWaypoint;
2357
+ /**
2358
+ * Distance + walking time between two arbitrary picks over the path graph —
2359
+ * `getWalkTimeFromKiosk` with a caller-chosen origin. Either end may be a
2360
+ * `MapLocation`, snapped exactly as `navigateBetween` snaps it, and its
2361
+ * `approach` (the walk from the tap to the path) is counted in `feet` /
2362
+ * `seconds` / `effortSeconds`. `null` when a POI has no waypoint on the
2363
+ * graph, a location has no path within reach, or no path resolves.
2364
+ */
2365
+ getWalkTimeBetween(from: POI | MapLocation, target: Parameters<MinuteMaps['getWalkTimeFromKiosk']>[0] | MapLocation, opts?: {
2168
2366
  walkingSpeedFps?: number;
2169
2367
  avoidStairs?: boolean;
2170
2368
  }): {
@@ -2173,10 +2371,17 @@ declare class MinuteMaps {
2173
2371
  effortSeconds: number;
2174
2372
  pathNodeCount: number;
2175
2373
  } | null;
2374
+ /** One end of a walk-time query: a POI's waypoint, or a location's
2375
+ * on-path point (already through `snapToPath`). */
2376
+ private walkTimeRef;
2377
+ /** `routeReady`'s destination: `poi` for a place — the exact instance
2378
+ * routed to, so `navigateFromKioskToClosestAmenity`'s pick is visible —
2379
+ * or `location` for a tapped spot. */
2380
+ private routeDestinationEventField;
2176
2381
  /** Shared tail of the route entry points: path, camera fit, steps, events.
2177
- * `originPoi` is the start a visitor picked (`navigateBetweenPOIs`), which
2382
+ * `originPoi` is the start a visitor picked (`navigateBetween`), which
2178
2383
  * gets a start pin; a kiosk route passes none — "You are here" marks it. */
2179
- private routeToPoi;
2384
+ private routeTo;
2180
2385
  /** Build the landmark / floor-name context the directions module needs.
2181
2386
  * Pulled out so `setLocale()` or `setActiveStep()` can rebuild it on
2182
2387
  * demand if we ever surface a locale-aware variant. */
@@ -2192,6 +2397,9 @@ declare class MinuteMaps {
2192
2397
  * instance under every floor's list.
2193
2398
  */
2194
2399
  private redrawFloorText;
2400
+ /** The route's directions: `buildDirections` over the path, plus a step
2401
+ * for each tapped end's walk on to / off the network (`withApproachSteps`). */
2402
+ private buildRouteSteps;
2195
2403
  private buildDirectionsContext;
2196
2404
  /**
2197
2405
  * Drive the turn-by-turn UI. Two effects:
@@ -2249,8 +2457,9 @@ declare class MinuteMaps {
2249
2457
  * buttons, the floor picker) never appears in them. For the duration the
2250
2458
  * map container is laid out at a fixed `width` × `height`, the camera
2251
2459
  * fits each floor's segment of the route with uniform `padding`, and the
2252
- * line is drawn solid (no draw-on sweep, no step highlight). Afterwards
2253
- * the container size, floor, camera and padding are put back. Hide the
2460
+ * line is drawn solid (no draw-on sweep, no step highlight). The map is
2461
+ * drawn flat (2D) unless `flat: false`. Afterwards the container size,
2462
+ * floor, camera, flat/3D mode and padding are put back. Hide the
2254
2463
  * map behind a loading screen while this runs; the visitor would
2255
2464
  * otherwise see it jump between floors.
2256
2465
  *
@@ -2294,8 +2503,9 @@ declare class MinuteMaps {
2294
2503
  * gesture — it zooms and recenters and draws a pulsing ring, and emits
2295
2504
  * nothing. Selection is the quieter one: no ring, the raised room is the
2296
2505
  * indicator, and the current zoom is kept — unless it is further out than
2297
- * the Kiosk view (`KIOSK_VIEW_MIN_ZOOM`), where the building's roof still
2298
- * hides the room, in which case the camera zooms in to that view.
2506
+ * `options.selectionZoom` (default 19.25, just inside the Kiosk view), where
2507
+ * the room or its marker may not be drawn, in which case the camera zooms in
2508
+ * to it. A map tap gets the same floor.
2299
2509
  *
2300
2510
  * Accepts a `POI` (preferred — its `type` and `waypointId` pin down the exact
2301
2511
  * instance, which matters for an amenity that shares one id across every
@@ -2317,6 +2527,11 @@ declare class MinuteMaps {
2317
2527
  selectPOI(target: POI | string | number, options?: {
2318
2528
  includeCoLocated?: boolean;
2319
2529
  }): Promise<POI[]>;
2530
+ /** Zoom floor for a tap or `selectPOI` camera move (`options.selectionZoom`),
2531
+ * or `null` to keep the current zoom. The default sits a level past the
2532
+ * Kiosk view's edge: right at `KIOSK_VIEW_MIN_ZOOM` the selected dot and
2533
+ * name are drawn but routinely lose collision to amenities and room names. */
2534
+ private selectionZoom;
2320
2535
  /** Remove the POI highlight set by `highlightPOI`, un-dim the other units,
2321
2536
  * and bring back the destination markers hidden by a room selection. */
2322
2537
  clearHighlight(): void;
@@ -2823,5 +3038,5 @@ type ResolvedIconSource = {
2823
3038
  */
2824
3039
  declare function resolveAmenityIconSource(amenity: AmenityLike, preferredLocale?: string): ResolvedIconSource | null;
2825
3040
 
2826
- export { BUILDING_NAME_EXTENSOR_KEY, DAY_KEYS, IMAGE_ALT_EXTENSOR_KEY, MinuteMaps, OPEN_HOURS_EXTENSOR_KEY, OPEN_HOURS_VERSION, PHONE_EXTENSOR_KEY, POINT_OF_INTEREST_EXTENSOR_KEY, RESERVED_EXTENSOR_PREFIX, SNAPSHOT_SCHEMA_VERSION, SnapshotProvider, SnapshotUnavailableError, VenueDirectory, activeSectionIndex, createMinuteMapsSDK, customerDisplayName, dayKeyAt, getOpenStatus, groupStepsIntoFloorSections, isConnectorAmenity, parseBuildingName, parseImageAlt, parseOpenHours, parsePhone, parsePointOfInterest, resolveAmenityIconSource, resolveSnapshotLocale, timeZoneAbbreviation };
2827
- export type { Amenity, AmenityBadgeStyle, AmenityWithFloor, Bounds, BoundsPadding, CameraState, Customer, CustomerVenues, DayKey, Destination, DestinationPhone, EventCallback, Floor, FloorMetadata, HoursRange, JMapAuth, JMapConfig, JacsAuth, JacsConfig, JacsProviderConfig, JacsReader, ListCustomerVenuesOptions, MapEvent, OpenHours, OpenHoursTransition, OpenStatus, OpenStatusOptions, POI, POISearchResult, ResolvedIconSource, RouteFloorImage, RouteFloorSection, RouteImageOptions, RoutePoint, RoutingOptions, SDKConfig, SDKOptions, SnapshotProviderConfig, SnapshotUpdateCheck, SnapshotVersions, ThemeName, TransitionStep, VenueDirectoryConfig, VenueSummary, ViewOptions, WayfindCenterMode, WayfindStep, Waypoint, Zone };
3041
+ export { BUILDING_NAME_EXTENSOR_KEY, DAY_KEYS, IMAGE_ALT_EXTENSOR_KEY, MinuteMaps, OPEN_HOURS_EXTENSOR_KEY, OPEN_HOURS_VERSION, PHONE_EXTENSOR_KEY, POINT_OF_INTEREST_EXTENSOR_KEY, RESERVED_EXTENSOR_PREFIX, SNAPSHOT_SCHEMA_VERSION, SnapshotProvider, SnapshotUnavailableError, VenueDirectory, activeSectionIndex, createMinuteMapsSDK, customerDisplayName, dayKeyAt, getOpenStatus, groupStepsIntoFloorSections, isConnectorAmenity, isMapLocation, parseBuildingName, parseImageAlt, parseOpenHours, parsePhone, parsePointOfInterest, resolveAmenityIconSource, resolveSnapshotLocale, timeZoneAbbreviation };
3042
+ export type { Amenity, AmenityBadgeStyle, AmenityWithFloor, Bounds, BoundsPadding, CameraState, Customer, CustomerVenues, DayKey, Destination, DestinationPhone, EventCallback, Floor, FloorMetadata, HoursRange, JMapAuth, JMapConfig, JacsAuth, JacsConfig, JacsProviderConfig, JacsReader, ListCustomerVenuesOptions, MapEvent, MapLocation, OpenHours, OpenHoursTransition, OpenStatus, OpenStatusOptions, POI, POISearchResult, ResolvedIconSource, RouteEndPreview, RouteFloorImage, RouteFloorSection, RouteImageOptions, RoutePoint, RoutingOptions, SDKConfig, SDKOptions, SnapshotProviderConfig, SnapshotUpdateCheck, SnapshotVersions, ThemeName, TransitionStep, VenueDirectoryConfig, VenueSummary, ViewOptions, WayfindCenterMode, WayfindStep, Waypoint, Zone };