@mappedin/react-native-sdk 4.1.0-beta.1 → 4.1.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.
package/dist/index.d.ts CHANGED
@@ -5,9 +5,8 @@
5
5
  // ../react-native-webview/lib/WebViewTypes
6
6
  // ../three
7
7
  // ../@tweenjs/tween.js
8
- // ../three/src/math/Color
9
- // ../three/src/core/Object3D
10
- // ../three/src/math/Vector3
8
+ // ../minisearch
9
+ // ../geojson
11
10
 
12
11
  declare module '@mappedin/react-native-sdk' {
13
12
  export { MiMapView } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView';
@@ -16,19 +15,21 @@ declare module '@mappedin/react-native-sdk' {
16
15
  export type { TMiMiniMapProps } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap';
17
16
  export type { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
18
17
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
19
- export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
18
+ export type { TGetVenueOptions, TGetVenueBundleOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchAllOptions, TMappedinOfflineAllSearchMatch } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
20
19
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
21
- export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
20
+ export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
22
21
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
23
22
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
24
- export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
23
+ export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions, TBlueDotPositionUpdate, TBlueDotStateChange } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
25
24
  export type { TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptionsBase };
26
25
  export type TEnableBlueDotOptions = Omit<TEnableBlueDotOptionsBase, 'positionUpdater' | 'geolocationSource'>;
27
26
  export type TLabelAllLocationCommonOptions = Omit<TLabelAllLocationCommonOptionsBase, 'sortFunction' | 'translationMap'>;
27
+ export type { TMapViewRNOptions } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
28
+ export type { TMiMapViewVenueOptions } from '@mappedin/react-native-sdk/wrappers/common';
28
29
  export type { IDirectionsResult, MappedinDirections, TMappedinDirective } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
29
- export type { TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
30
+ export type { TShowVenueOptions, E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
30
31
  export { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
31
- export { E_GET_DIRECTIONS_MESSAGES, BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
32
+ export { BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
32
33
  }
33
34
 
34
35
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView' {
@@ -38,6 +39,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
38
39
  import { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
39
40
  import type { TBlueDotPositionUpdate, TBlueDotStateChange, MappedinPolygon, MappedinMap, Mappedin } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
40
41
  import { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
42
+ import { TMapViewRNOptions } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
41
43
  export type TMiMapViewProps = {
42
44
  /**
43
45
  * The MapViewStore instance will be returned here
@@ -46,18 +48,12 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
46
48
  /**
47
49
  * Options to initialze MiMapView with
48
50
  */
49
- options: TMiMapViewOptions & {
50
- /**
51
- * Use a bundle for venue loading and cache it for faster subsequent loading
52
- * @beta
53
- */
54
- useBundle?: boolean;
55
- };
51
+ options: TMiMapViewOptions & TMapViewRNOptions;
56
52
  /**
57
53
  * Venue Data to render inside the MapView. This is returned by {@link getVenue} or {@link getVenueBundle}
58
54
  */
59
55
  venueData?: Mappedin;
60
- style?: any;
56
+ style?: React.CSSProperties;
61
57
  /**
62
58
  * Called when an interactive polygon is clicked
63
59
  */
@@ -120,7 +116,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
120
116
  /**
121
117
  * @category Component
122
118
  */
123
- export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "options" | "style" | "onFirstMapLoaded" | "onDataLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
119
+ export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "onFirstMapLoaded" | "style" | "options" | "onDataLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
124
120
  }
125
121
 
126
122
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap' {
@@ -171,8 +167,8 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniM
171
167
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store' {
172
168
  import { RNMappedinController } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MappedinController';
173
169
  import { TReactNativeFlatLabelAllLocations, TReactNativeFlatLabelAllLocationsLegacy, TReactNativeFlatLabelPolygonOptions, TReactNativeFloatingLabelPolygonOptions, TSerializableJourneyOptions } from '@mappedin/react-native-sdk/wrappers/common';
174
- import type { TGeolocationObject, TEnableBlueDotOptions, TPathOptions, TFocusOnOptions, TAnimatePositionOptions, TLabelAllLocationFloatingLabelOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
175
- import { STATE, Mappedin, MappedinNode, MappedinMap, MappedinLocation, MappedinDirections, MappedinPolygon, TGetVenueOptions, TShowVenueOptions, MappedinCoordinate, MappedinDestinationSet, TCreateMarkerOptions, E_BLUEDOT_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
170
+ import type { TGeolocationObject, TEnableBlueDotOptions, TPathOptions, TFocusOnOptions, TAnimatePositionOptions, TLabelAllLocationFloatingLabelOptions, TMappedinOfflineSearchOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
171
+ import { STATE, Mappedin, MappedinNode, MappedinMap, MappedinLocation, MappedinDirections, MappedinCategory, MappedinPolygon, TGetVenueOptions, TShowVenueOptions, MappedinCoordinate, MappedinDestinationSet, TCreateMarkerOptions, E_BLUEDOT_STATE, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
176
172
  import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
177
173
  export class MapViewStore extends RNMappedinController {
178
174
  #private;
@@ -193,12 +189,18 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
193
189
  /**
194
190
  * @hidden
195
191
  */
196
- loadVenue(options: TGetVenueOptions, showVenueOptions: TShowVenueOptions): Promise<unknown>;
192
+ loadVenue(options: TGetVenueOptions, showVenueOptions: TShowVenueOptions & {
193
+ prepareSearch?: boolean;
194
+ searchOptions?: TMappedinOfflineSearchOptions;
195
+ }): Promise<unknown>;
197
196
  /**
198
197
  *
199
198
  * @hidden
200
199
  */
201
- showVenue(venueData: Mappedin, showVenueOptions: TShowVenueOptions): Promise<unknown>;
200
+ showVenue(venueData: Mappedin, showVenueOptions: TShowVenueOptions & {
201
+ prepareSearch?: boolean;
202
+ searchOptions?: TMappedinOfflineSearchOptions;
203
+ }): Promise<unknown>;
202
204
  /**
203
205
  * Clear any cached venue bundles that were downloaded as part of LOAD_VENUE with useBundle: true
204
206
  * This ensure that the next time keys are passed in, we get a fresh bundle
@@ -387,6 +389,32 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
387
389
  * Draw a path based on a list of Nodes
388
390
  */
389
391
  drawPath(pathNodesOrNodeIds: (MappedinNode | MappedinNode['id'])[], pathOptions: TPathOptions): Promise<unknown>;
392
+ OfflineSearch: {
393
+ /**
394
+ *
395
+ * @param query String to search for
396
+ */
397
+ search: (query: string) => Promise<TMappedinOfflineSearchResult[]>;
398
+ /**
399
+ *
400
+ * @param query Get a list of suggestions for query
401
+ */
402
+ suggest: (query: string) => Promise<TMappedinOfflineSearchSuggestions>;
403
+ addQuery: (params: {
404
+ /**
405
+ * Query string to match for this object
406
+ */
407
+ query: string;
408
+ /**
409
+ * Object that is returned when query matches
410
+ */
411
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
412
+ /**
413
+ * Optional weight to multiply by the score
414
+ */
415
+ weight?: number;
416
+ }) => Promise<unknown>;
417
+ };
390
418
  /**
391
419
  * @hidden
392
420
  */
@@ -403,8 +431,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/index.rn' {
403
431
  export type { TBlueDotPositionUpdate, TBlueDotStateChange, TJourneyOptions, TMapViewOptions, TCreateMarkerOptions, TGeolocationObject, TPathOptions, TCommonLabelOptions, TFlatLabelOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationCommonOptions, TLabelAllLocationFloatingLabelOptions, TLabelAllLocationFlatLabelOptions, TEnableBlueDotOptions, TFloatingLabelAppearance, TFlatLabelAppearance } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
404
432
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
405
433
  export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
406
- export type { TGetVenueBundleOptions, TGetVenueOptions, TMappedinDirective, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
407
- export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings } from '@mappedin/react-native-sdk/core/packages/get-venue';
434
+ export type { TGetVenueBundleOptions, TGetVenueOptions, TMappedinDirective, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineSearchAllOptions, TMappedinOfflineAllSearchMatch } from '@mappedin/react-native-sdk/core/packages/get-venue';
435
+ export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings, MAP_RENDER_MODE, OfflineSearch, MappedinCollectionType } from '@mappedin/react-native-sdk/core/packages/get-venue';
408
436
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
409
437
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
410
438
  }
@@ -416,6 +444,53 @@ declare module '@mappedin/react-native-sdk/wrappers/common' {
416
444
  export { PubSub } from '@mappedin/react-native-sdk/wrappers/common/pub-sub';
417
445
  }
418
446
 
447
+ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types' {
448
+ import { MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
449
+ import { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
450
+ import type { MappedinCategory, MappedinLocation, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult } from '@mappedin/react-native-sdk/core/packages/get-venue';
451
+ import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
452
+ export type TPolygonColorOptions = {
453
+ color: string;
454
+ opacity?: number;
455
+ textColor?: string;
456
+ };
457
+ export type { TFocusOptionsLegacy };
458
+ export type TFocusOptionsLegacySerializable = Omit<TFocusOptionsLegacy, 'nodes' | 'polygons'> & {
459
+ nodes: (MappedinNode | MappedinNode['id'])[];
460
+ polygons: (MappedinPolygon['id'] | MappedinPolygon)[];
461
+ };
462
+ export type TMapViewRNOptions = {
463
+ /**
464
+ * Use a bundle for venue loading and cache it for faster subsequent loading
465
+ * @beta
466
+ */
467
+ useBundle?: boolean;
468
+ loadOptions?: {
469
+ /**
470
+ * By default, the SDK will merge all geometries by material to reduce the number of draw calls to the GPU
471
+ * To rever back to using a single geometry for every polygon, pass `MAP_RENDER_MODE.MULTI_GEOMETRY`
472
+ */
473
+ mapRenderStrategy?: MAP_RENDER_MODE;
474
+ };
475
+ /**
476
+ * Generate a search index for venue when rendering map, instead of deferring to when the first search occurs.
477
+ * @default false
478
+ */
479
+ prepareSearch?: boolean;
480
+ /**
481
+ * Customize search weights
482
+ */
483
+ searchOptions?: TMappedinOfflineSearchOptions;
484
+ };
485
+ export type TMappedinOfflineSearchBridgeResult = Omit<TMappedinOfflineSearchResult, 'object'> & {
486
+ object: {
487
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
488
+ id: string;
489
+ };
490
+ };
491
+ export type TMappedinCustomSearchObject = MappedinLocation | MappedinCategory | Record<string, unknown>;
492
+ }
493
+
419
494
  declare module '@mappedin/react-native-sdk/wrappers/common/errors' {
420
495
  export enum ERROR {
421
496
  LOAD_VENUE_FAILED = "LOAD_VENUE_FAILED",
@@ -437,19 +512,21 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src' {
437
512
  export type { TMiMiniMapProps } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap';
438
513
  export type { MapViewStore } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store';
439
514
  export { getVenue, getVenueBundle } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
440
- export type { TGetVenueOptions, TGetVenueBundleOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
515
+ export type { TGetVenueOptions, TGetVenueBundleOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchAllOptions, TMappedinOfflineAllSearchMatch } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
441
516
  export { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
442
- export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
517
+ export { COLLISION_RANKING_TIERS, MARKER_ANCHOR, E_BLUEDOT_STATE, MappedinCoordinate, labelThemes, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE_REASON, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
443
518
  export type { TSerializableJourneyOptions, TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common';
444
519
  import type { TEnableBlueDotOptions as TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptions as TLabelAllLocationCommonOptionsBase } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
445
- export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
520
+ export type { TJourneyOptions, TGeolocationObject, TPathOptions, TFlatLabelPolygonOptions, TFloatingLabelPolygonOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TFlatLabelAppearance, TFloatingLabelAppearance, TFocusOnCameraOptions, TFocusOnTargets, TCommonLabelOptions, TCameraAnimationOptions, TFocusOnOptions, TAnimatePositionOptions, TBlueDotPositionUpdate, TBlueDotStateChange } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
446
521
  export type { TEnableBlueDotOptionsBase, TLabelAllLocationCommonOptionsBase };
447
522
  export type TEnableBlueDotOptions = Omit<TEnableBlueDotOptionsBase, 'positionUpdater' | 'geolocationSource'>;
448
523
  export type TLabelAllLocationCommonOptions = Omit<TLabelAllLocationCommonOptionsBase, 'sortFunction' | 'translationMap'>;
524
+ export type { TMapViewRNOptions } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types';
525
+ export type { TMiMapViewVenueOptions } from '@mappedin/react-native-sdk/wrappers/common';
449
526
  export type { IDirectionsResult, MappedinDirections, TMappedinDirective } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
450
- export type { TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
527
+ export type { TShowVenueOptions, E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
451
528
  export { ERROR, ERROR_MESSAGES } from '@mappedin/react-native-sdk/wrappers/common/errors';
452
- export { E_GET_DIRECTIONS_MESSAGES, BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
529
+ export { BEARING_TYPE, ACTION_TYPE, MappedinLocation, Mappedin, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
453
530
  }
454
531
 
455
532
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MappedinController' {
@@ -496,26 +573,11 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/Mappedi
496
573
  }
497
574
  }
498
575
 
499
- declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView.store.types' {
500
- import { MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src';
501
- import { TFocusOptionsLegacy } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
502
- export type TPolygonColorOptions = {
503
- color: string;
504
- opacity?: number;
505
- textColor?: string;
506
- };
507
- export type { TFocusOptionsLegacy };
508
- export type TFocusOptionsLegacySerializable = Omit<TFocusOptionsLegacy, 'nodes' | 'polygons'> & {
509
- nodes: (MappedinNode | MappedinNode['id'])[];
510
- polygons: (MappedinPolygon['id'] | MappedinPolygon)[];
511
- };
512
- }
513
-
514
576
  declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
515
577
  import type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
516
578
  import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
517
579
  /** Classes */
518
- export { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
580
+ export { Mappedin, MappedinCollectionType } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
519
581
  export { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
520
582
  export { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolygon';
521
583
  export { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNode';
@@ -535,9 +597,12 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
535
597
  export type { IDirectionsResult } from '@mappedin/react-native-sdk/core/packages/navigator';
536
598
  export type { TOperationHoursMap } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
537
599
  export type { TDirectionToOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavigatable';
600
+ export { OfflineSearch } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch';
601
+ export type { TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch';
538
602
  /** API data types */
539
603
  export type { TLocationType, TNode, TImage, TLogo, TGalleryImage, TPhone, TSocial, TColor, TVortex, TPicture, TOpeningHours, TSiblingGroup, TState, TCategory, TEvent, TGeoReference, TMap, TMapGroup, TBuilding, TLocation, TPolygon, TPolygonRanking, TVenue, TMappedinAPI } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
540
604
  export type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
605
+ import { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
541
606
  export type TShowVenueOptions = {
542
607
  /**
543
608
  * Sets the initial background color of the map, including while loading.
@@ -549,14 +614,24 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
549
614
  */
550
615
  backgroundAlpha?: number;
551
616
  /**
552
- * Whether or not to display labels initially
617
+ * Whether or not to display default styled Floating Labels initially
553
618
  */
554
619
  labelAllLocationsOnInit?: boolean;
555
620
  /**
556
621
  * The id of the first map to show on map load
557
622
  */
558
623
  firstMapId?: string;
624
+ loadOptions?: {
625
+ /**
626
+ * Set the map render strategy in order to optimize FPS
627
+ *
628
+ * @beta
629
+ */
630
+ mapRenderStrategy?: MAP_RENDER_MODE;
631
+ };
559
632
  };
633
+ export { MAP_RENDER_MODE };
634
+ export function getVenueMVF(userOptions: TGetVenueBundleOptions): Promise<Mappedin>;
560
635
  /**
561
636
  * Get Venue Data for a Mappedin Venue
562
637
  */
@@ -593,6 +668,23 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
593
668
  url: any;
594
669
  updated_at: any;
595
670
  }): Promise<Mappedin>;
671
+ /**
672
+ * Get the bundle URL and updated_at time.
673
+ * @internal
674
+ */
675
+ export function getVenueMVFURL(userOptions: TGetVenueBundleOptions): Promise<{
676
+ url: string;
677
+ updated_at: string;
678
+ }>;
679
+ /**
680
+ * @internal
681
+ */
682
+ export function downloadVenueBundleMVF(options: TGetVenueBundleOptions,
683
+ /**
684
+ * use Web Workers to speed up MVF parsing. This is likely only benefitial for larger venues,
685
+ * and may be determental to smaller ones, hence it is off by default
686
+ */
687
+ useWorker?: boolean): Promise<unknown>;
596
688
  }
597
689
 
598
690
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums' {
@@ -625,30 +717,30 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
625
717
  CUSTOM_GEOLOCATION_PROVIDER_ERROR = 3
626
718
  }
627
719
  /**
628
- What we currently know about the user's position, and how confident we are.
720
+ What we currently know about the user's position and how confident we are.
629
721
  */
630
722
  export enum E_BLUEDOT_STATE {
631
723
  /**
632
- * We haven't started listening to position updates
724
+ * Not listening to Blue Dot position updates
633
725
  */
634
726
  NOT_LISTENING = 0,
635
727
  /**
636
- * We have started listening to position updates
728
+ * Listenign for listening to position updates but have not yet received a position
637
729
  */
638
730
  LISTENING = 1,
639
731
  /**
640
- * We've received relevant positions, and user is inside the venue
732
+ * Received relevant positions and user is in the venue
641
733
  */
642
734
  HAS_POSITION = 2,
643
735
  /**
644
736
  * We've received a relevant position, and we have enough information to determine
645
737
  * which floor the user is on - either because we received a floor level, the venue
646
- * only has one floor, or we're allowing implicit floor level.
738
+ * only has one floor or we're allowing implicit floor level detection.
647
739
  */
648
740
  HAS_INDOOR_POSITION = 3,
649
741
  /**
650
742
  * We are uncertain about the user's position, likely because we haven't received
651
- * a relevant position in a while
743
+ * a relevant position in a while. Blue Dot will be rendered grey to indicate uncertainty of the actual position.
652
744
  */
653
745
  LOCATION_UNCERTAIN = 4
654
746
  }
@@ -657,26 +749,29 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
657
749
  */
658
750
  export enum E_BLUEDOT_MARKER_STATE {
659
751
  /**
660
- * BlueDot is hidden
752
+ * Blue Dot is hidden
661
753
  */
662
754
  HIDDEN = 0,
663
755
  /**
664
- * BlueDot is transparent
756
+ * Blue Dot is transparent indicating the position is on a different floor
665
757
  */
666
758
  GHOST = 1,
667
759
  /**
668
- * BlueDot is visible and opaque
760
+ * Blue Dot is visible and opaque indicating accurate positioning on the current floor
669
761
  */
670
762
  NORMAL = 2,
671
763
  /**
672
- * BlueDot is grayed out
764
+ * Blue Dot is grayed out due to uncertainty about user's location, most likely due to not receiving recent position updates.
673
765
  */
674
766
  UNCERTAIN = 3
675
767
  }
676
768
  export enum STATE {
769
+ /**
770
+ * The map is in exploration mode where the user controls the camera position.
771
+ */
677
772
  EXPLORE = "explore",
678
773
  /**
679
- * FOLLOW state follows user's current location (BlueDot)
774
+ * Follows user's current location by keeping the camera centered on the Blue Dot.
680
775
  */
681
776
  FOLLOW = "follow"
682
777
  /**
@@ -692,19 +787,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
692
787
  }
693
788
  export enum E_SDK_EVENT {
694
789
  /**
695
- * Emitted when the map is clicked
790
+ * Emitted when the map is clicked or tapped on a touch screen.
696
791
  */
697
792
  CLICK = "CLICK",
698
793
  /**
699
- * Emitted when the {@link STATE | SDK state} changes
794
+ * Emitted when the {@link STATE | SDK state} changes.
700
795
  */
701
796
  STATE_CHANGE = "STATE_CHANGE",
702
797
  /**
703
- * Emitted when a polygon is clicked
798
+ * Emitted when an interactive {@link MappedinPolygon | polygon} is clicked
704
799
  */
705
800
  POLYGON_CLICKED = "POLYGON_CLICKED",
706
801
  /**
707
- * Emitted when nothing is clicked
802
+ * Emitted when nothing (outside of interactive polygons) is clicked
708
803
  */
709
804
  NOTHING_CLICKED = "NOTHING_CLICKED",
710
805
  /**
@@ -725,6 +820,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
725
820
  ROTATION_CHANGED = "ROTATION_CHANGED",
726
821
  TILT_CHANGED = "TILT_CHANGED"
727
822
  }
823
+ export { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
728
824
  }
729
825
 
730
826
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types' {
@@ -734,7 +830,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
734
830
  import { TBlueDotPositionUpdate, TBlueDotStateChange } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
735
831
  import { TOOLTIP_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
736
832
  import type { Euler, Object3D, Vector3 } from 'three';
737
- import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
833
+ import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
738
834
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance };
739
835
  /**
740
836
  An extension of the GeolocationPosition type.
@@ -1004,19 +1100,27 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1004
1100
  scale?: Vector3;
1005
1101
  };
1006
1102
  export type TMapViewOptions = {
1103
+ /**
1104
+ * Background color of the map in hex number or string e.g. `0x2e2e2e` or `#2e2e2e`.
1105
+ */
1007
1106
  backgroundColor?: number | string;
1008
1107
  /**
1009
1108
  * The opacity of the initial background color.
1010
1109
  */
1011
1110
  backgroundAlpha?: number;
1012
1111
  /**
1013
- * Controls whether antialiasing is on. Defaults to true, as long as devicePixelRatio is 1. This is very expensive on high resolution screens.
1112
+ * Controls whether antialiasing is on. Defaults to `true`, as long as devicePixelRatio is 1. This is very expensive on high resolution screens.
1014
1113
  * @default true
1015
1114
  */
1016
1115
  antialias?: boolean;
1017
1116
  disableHover?: boolean;
1018
1117
  disableZoomOnMapSizeChange?: boolean;
1019
1118
  loadOptions?: {
1119
+ /**
1120
+ * By default, the SDK will merge all geometries by material to reduce the number of draw calls to the GPU
1121
+ * To rever back to using a single geometry for every polygon, pass `MAP_RENDER_MODE.MULTI_GEOMETRY`
1122
+ */
1123
+ mapRenderStrategy?: MAP_RENDER_MODE;
1020
1124
  async?: boolean;
1021
1125
  zoomOverrides?: {
1022
1126
  zoomMultiplier?: number;
@@ -1025,7 +1129,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1025
1129
  };
1026
1130
  };
1027
1131
  /**
1028
- * What map should the SDK initialize to?
1132
+ * First map to be rendered
1029
1133
  */
1030
1134
  firstMap?: MappedinMap | string;
1031
1135
  /**
@@ -1044,6 +1148,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1044
1148
  onWebGLRendererError?: () => void;
1045
1149
  };
1046
1150
  export type TMapViewOptionsLegacy = {
1151
+ /**
1152
+ * Background color of the map in hex number or string e.g. `0x2e2e2e` or `#2e2e2e`.
1153
+ */
1047
1154
  backgroundColor?: number | string;
1048
1155
  /**
1049
1156
  * The opacity of the initial background color.
@@ -1077,7 +1184,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1077
1184
  };
1078
1185
  };
1079
1186
  /**
1080
- * What map should the SDK initialize to?
1187
+ * First map to be rendered
1081
1188
  */
1082
1189
  firstMap?: MappedinMap | string;
1083
1190
  /**
@@ -1147,21 +1254,21 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1147
1254
  */
1148
1255
  height?: number;
1149
1256
  /**
1150
- * The amount of space to leave before starting the text
1257
+ * The amount of space to leave before starting the text in pixels
1151
1258
  * @default 5
1152
1259
  */
1153
1260
  margin?: number;
1154
1261
  /**
1155
- * A optional color
1262
+ * Optional color in hexadecimal string e.g. `#2e2e2e`.
1156
1263
  */
1157
1264
  color?: string;
1158
1265
  /**
1159
- * How big to make the font. Defaults to 12
1266
+ * Size of the font in pixels.
1160
1267
  * @default 12
1161
1268
  */
1162
1269
  fontSize?: number;
1163
1270
  /**
1164
- * A CSS style string font. ie "sans-serif". You can specify your own font via @font-face rule with a font family, and then include that here.
1271
+ * A CSS style string font, e.g. "sans-serif". You can specify your own font via @font-face rule with a font family, and then include that here.
1165
1272
  */
1166
1273
  font?: string;
1167
1274
  /**
@@ -1170,7 +1277,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1170
1277
  */
1171
1278
  scaleMin?: number;
1172
1279
  /**
1173
- * How much to decrement the scale each time it doesn't fit, so we don't end up with too many different font sizes on screen at once. If * you are only labeling a few Polygons rather than everything,
1280
+ * How much to decrement the scale each time it doesn't fit, so we don't end up with too many different font sizes on screen at once. If you are only labeling a few {@link MappedinPolygon}s rather than everything,
1174
1281
  * you can set this and and scaleMin to 0.1 to fit everything except really long names perfectly.
1175
1282
  * @default 0.25
1176
1283
  */
@@ -1180,7 +1287,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1180
1287
  scale?: number;
1181
1288
  flatLabels?: false | undefined;
1182
1289
  /**
1183
- * Custom Rank - this determines how likely a Floating Label will appear
1290
+ * Ranking tier to determine how likely a {@link FloatingLabel} will appear
1184
1291
  */
1185
1292
  rank?: COLLISION_RANKING_TIERS | number;
1186
1293
  /**
@@ -1215,7 +1322,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1215
1322
  [key in string]: string;
1216
1323
  };
1217
1324
  /**
1218
- * Display label despite the polygon having an image on it
1325
+ * Display label despite the {@link MappedinPolygon} having an image on it. Often these images represent store logos.
1219
1326
  * @default false
1220
1327
  */
1221
1328
  createDespiteImage?: boolean;
@@ -1250,7 +1357,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1250
1357
  longitude: number;
1251
1358
  };
1252
1359
  /**
1253
- * A list of MappedinPolygons corresponding to every polygon that a user's
1360
+ * A list of {@link MappedinPolygon}s corresponding to every polygon that a user's
1254
1361
  * click passed through. These are in order of first to last intersected.
1255
1362
  * Will be empty if no interactive polygons were clicked.
1256
1363
  */
@@ -1340,6 +1447,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1340
1447
  zoom?: number;
1341
1448
  tilt?: number;
1342
1449
  rotation?: number;
1450
+ position?: MappedinCoordinate | MappedinNode;
1343
1451
  };
1344
1452
  export const ANIMATION_TWEENS: {
1345
1453
  linear: any;
@@ -1354,6 +1462,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1354
1462
  EASE_IN_OUT = "ease-in-out"
1355
1463
  }
1356
1464
  export type TCameraAnimationOptions = {
1465
+ /**
1466
+ * Animation duration in milliseconds
1467
+ */
1357
1468
  duration?: number;
1358
1469
  easing?: CAMERA_EASING_MODE;
1359
1470
  };
@@ -1390,29 +1501,66 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1390
1501
  */
1391
1502
  get zoom(): number;
1392
1503
  /**
1393
- * Current Camera rotation (in radians)
1504
+ * Current Camera rotation (in radians) from north
1394
1505
  */
1395
1506
  get rotation(): number;
1396
1507
  /**
1397
- * Current Camera tilt
1508
+ * Current camera tilt angle (in radians), relative to a top-down view.
1509
+ *
1510
+ * ex: 0 means the camera is facing top-down, π/2 means the camera is
1511
+ * facing directly from the side.
1398
1512
  */
1399
1513
  get tilt(): number;
1400
1514
  /**
1401
- * Minimum distance (in meters) the camera is allowed to get to the ground.
1515
+ * Get the minimum distance (in meters) the camera is allowed to get to the ground.
1402
1516
  */
1403
1517
  get minZoom(): number;
1404
1518
  /**
1405
- * Minimum distance (in meters) the camera is allowed to get to the ground.
1519
+ * Set the minimum distance (in meters) the camera is allowed to get to the ground.
1406
1520
  */
1407
1521
  set minZoom(meters: number);
1408
1522
  /**
1409
- * Maximum distance (in meters) the camera is allowed to get to the ground.
1523
+ * Get the maximum distance (in meters) the camera is allowed to get from the ground.
1410
1524
  */
1411
1525
  get maxZoom(): number;
1412
1526
  /**
1413
- * Maximum distance (in meters) the camera is allowed to get to the ground.
1527
+ * Set the maximum distance (in meters) the camera is allowed to get from the ground.
1414
1528
  */
1415
1529
  set maxZoom(meters: number);
1530
+ /**
1531
+ * Get the current maximum tilt angle (in radians) the camera is allowed to use.
1532
+ */
1533
+ get maxTilt(): number;
1534
+ /**
1535
+ * Sets the maximum tilt angle (in radians) the camera is allowed to use.
1536
+ *
1537
+ * Tilt angle must be between 0 and π/2 radians. It will be clamped within
1538
+ * this range if it exceeds it on either end.
1539
+ *
1540
+ * As tilt angle approaches π/2 radians, this will impact overall touch controls
1541
+ * and should be used sparingly.
1542
+ */
1543
+ set maxTilt(radians: number);
1544
+ /**
1545
+ * Get the current camera position, which is at the center of the map.
1546
+ * @returns the position as a coordinate
1547
+ */
1548
+ get position(): MappedinCoordinate;
1549
+ /**
1550
+ * User camera interactions
1551
+ */
1552
+ interactions: {
1553
+ /**
1554
+ * Enable all user interactions. This does not affect programmatic
1555
+ * Camera controls, such as `set` and `focusOn`
1556
+ */
1557
+ enable: () => void;
1558
+ /**
1559
+ * Disable all user interactions. This does not affect programmatic
1560
+ * Camera controls, such as `set` and `focusOn`
1561
+ */
1562
+ disable: () => void;
1563
+ };
1416
1564
  setSafeAreaInsets(insets: {
1417
1565
  top: number;
1418
1566
  left: number;
@@ -1421,7 +1569,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1421
1569
  }): void;
1422
1570
  getSafeAreaInsets(): any;
1423
1571
  /**
1424
- * Determine a new Camera view state based on a collection of targets, and start animating to that state.
1572
+ * Focus the Camera view on a collection of targets and animate to that state.
1425
1573
  * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
1426
1574
  */
1427
1575
  focusOn(options: TFocusOnOptions): Promise<any>;
@@ -1431,7 +1579,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1431
1579
  set(positionOptions?: TAnimatePositionOptions): void;
1432
1580
  /**
1433
1581
  * Animate the Camera's view to smoothly transition to a new state over time.
1434
- * Returns a promise that resolves when the animation completes and gets rejected if the animation is cancelled.
1435
1582
  *
1436
1583
  * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
1437
1584
  */
@@ -1520,7 +1667,10 @@ declare module '@mappedin/react-native-sdk/wrappers/common/events' {
1520
1667
  CLEAR_JOURNEY = "CLEAR_JOURNEY",
1521
1668
  SET_COOKIE = "SET_COOKIE",
1522
1669
  GET_NEAREST_NODE_BY_SCREEN_COORDINATES = "GET_NEAREST_NODE_BY_SCREEN_COORDINATES",
1523
- CLEAR_BUNDLE_CACHE = "CLEAR_BUNDLE_CACHE"
1670
+ CLEAR_BUNDLE_CACHE = "CLEAR_BUNDLE_CACHE",
1671
+ SEARCH = "SEARCH",
1672
+ SUGGEST = "SUGGEST",
1673
+ ADD_SEARCH_QUERY = "ADD_SEARCH_QUERY"
1524
1674
  }
1525
1675
  export enum WAYFINDING_EVENT {
1526
1676
  GET_MAPS_IN_NAVIGATION = "GET_MAPS_IN_NAVIGATION",
@@ -1550,7 +1700,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/events' {
1550
1700
  }
1551
1701
 
1552
1702
  declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1553
- import { IDirectionsResult, MappedinMap, MappedinNode, TBlueDotPositionUpdate, TBlueDotStateChange, TGetVenueOptions, TFloatingLabelPolygonOptions, TFlatLabelPolygonOptions, TAnimatePositionOptions, TPathOptions, TShowVenueOptions, STATE, TGeolocationObject, TEnableBlueDotOptions, MappedinLocation, TLabelAllLocationFloatingLabelOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1703
+ import { IDirectionsResult, MappedinMap, MappedinNode, TBlueDotPositionUpdate, TBlueDotStateChange, TGetVenueOptions, TFloatingLabelPolygonOptions, TFlatLabelPolygonOptions, TAnimatePositionOptions, TPathOptions, TShowVenueOptions, STATE, TGeolocationObject, TEnableBlueDotOptions, MappedinLocation, TLabelAllLocationFloatingLabelOptions, TMappedinOfflineSearchOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
1554
1704
  import { TMiMapViewOptions } from '@mappedin/react-native-sdk/wrappers/common/types';
1555
1705
  import { BRIDGE_EVENT, EVENT, MINIMAP_EVENT, TFocusOnOptionsLegacySerializable, TReactNativeFlatLabelAllLocationsLegacy, TReactNativeFlatLabelAllLocations, NATIVE_EVENT } from '@mappedin/react-native-sdk/wrappers/common';
1556
1706
  import { TSerializableJourneyOptions, TFocusOnOptionsSerializable, TSerializedLocation, TSerializedNode, TSerializedPolygon } from '@mappedin/react-native-sdk/wrappers/common/types';
@@ -1624,12 +1774,32 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1624
1774
  options: TGetVenueOptions & {
1625
1775
  useBundle?: boolean;
1626
1776
  };
1627
- showVenueOptions: TShowVenueOptions;
1777
+ showVenueOptions: TShowVenueOptions & {
1778
+ /**
1779
+ * Generate a search index for venue when rendering map, instead of deferring to when the first search occurs.
1780
+ * @default false
1781
+ */
1782
+ prepareSearch?: boolean;
1783
+ /**
1784
+ * Customize search weights
1785
+ */
1786
+ searchOptions?: TMappedinOfflineSearchOptions;
1787
+ };
1628
1788
  };
1629
1789
  [EVENT.SHOW_VENUE]: {
1630
1790
  venueData: string;
1631
1791
  format: 'jsonstring';
1632
- showVenueOptions: TShowVenueOptions;
1792
+ showVenueOptions: TShowVenueOptions & {
1793
+ /**
1794
+ * Generate a search index for venue when rendering map, instead of deferring to when the first search occurs.
1795
+ * @default false
1796
+ */
1797
+ prepareSearch?: boolean;
1798
+ /**
1799
+ * Customize search weights
1800
+ */
1801
+ searchOptions?: TMappedinOfflineSearchOptions;
1802
+ };
1633
1803
  };
1634
1804
  [EVENT.SET_MAP]: {
1635
1805
  mapId: string;
@@ -1756,6 +1926,20 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
1756
1926
  y: number;
1757
1927
  map?: MappedinMap['id'];
1758
1928
  };
1929
+ [EVENT.SEARCH]: {
1930
+ query: string;
1931
+ };
1932
+ [EVENT.SUGGEST]: {
1933
+ query: string;
1934
+ };
1935
+ [EVENT.ADD_SEARCH_QUERY]: {
1936
+ query: string;
1937
+ object: {
1938
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
1939
+ id: string;
1940
+ };
1941
+ weight?: number;
1942
+ };
1759
1943
  };
1760
1944
  }
1761
1945
 
@@ -1790,7 +1974,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/types' {
1790
1974
  departureMarkerTemplateString?: string;
1791
1975
  color?: string;
1792
1976
  };
1793
- export type TMiMapViewOptions = TShowVenueOptions & {
1977
+ export type TMiMapViewVenueOptions = {
1794
1978
  /**
1795
1979
  * Client ID
1796
1980
  */
@@ -1811,6 +1995,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/types' {
1811
1995
  noAuth?: boolean;
1812
1996
  language?: string;
1813
1997
  };
1998
+ export type TMiMapViewOptions = TShowVenueOptions & TMiMapViewVenueOptions;
1814
1999
  export type TReactNativeFloatingLabelPolygonOptions = TFloatingLabelPolygonOptions & {
1815
2000
  /**
1816
2001
  * @deprecated
@@ -1847,154 +2032,378 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
1847
2032
  }
1848
2033
  }
1849
2034
 
1850
- declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
1851
- import { BRIDGE_EVENT, BRIDGE_EVENT_PAYLOADS } from '@mappedin/react-native-sdk/wrappers/common';
1852
- import { PubSub } from '@mappedin/react-native-sdk/wrappers/common';
1853
- export function uuid(): string;
1854
- export class MappedinController {
1855
- #private;
1856
- privateEventBus: PubSub<{
1857
- REJECT: {
1858
- msgID?: string | undefined;
1859
- data: any;
1860
- };
1861
- RESOLVE: {
1862
- msgID?: string | undefined;
1863
- data: any;
1864
- };
1865
- READY: {
1866
- msgID?: string | undefined;
1867
- data: null;
1868
- };
1869
- LOG: {
1870
- msgID?: string | undefined;
1871
- data: string;
1872
- };
1873
- GET_IMAGE: {
1874
- msgID?: string | undefined;
1875
- data: {
1876
- fileName: string;
1877
- };
1878
- };
1879
- GET_MAP_POLYGONS: {
1880
- msgID?: string | undefined;
1881
- data: {
1882
- mapId: string;
1883
- };
1884
- };
1885
- MINIMAP_READY: {
1886
- msgID?: string | undefined;
1887
- data: null;
1888
- };
1889
- SHOW_MINIMAP: {
1890
- msgID?: string | undefined;
1891
- data: {
1892
- format: "jsonstring";
1893
- venueData: string;
1894
- options: import("./types").TMiMapViewOptions;
1895
- };
1896
- };
1897
- LOAD_MINIMAP: {
1898
- msgID?: string | undefined;
1899
- data: {
1900
- options: import("../react-native-sdk/src").TGetVenueOptions;
1901
- };
1902
- };
1903
- CACHE_IMAGE: {
1904
- msgID?: string | undefined;
1905
- data: {
1906
- url?: string | undefined;
1907
- options: import("../react-native-sdk/src").TGetVenueOptions;
1908
- locationId: string;
1909
- polygonHighlightColor?: string | undefined;
1910
- focusOptions?: Omit<import("./types").TFocusOnOptionsSerializable, "targets"> | undefined;
1911
- };
1912
- };
1913
- CLEAR_BUNDLE_CACHE: {
1914
- msgID?: string | undefined;
1915
- data: null;
1916
- };
1917
- NOTHING_CLICKED: {
1918
- msgID?: string | undefined;
1919
- data: null;
1920
- };
1921
- STATE_CHANGED: {
1922
- msgID?: string | undefined;
1923
- data: {
1924
- state: import("../react-native-sdk/src").STATE;
1925
- };
1926
- };
1927
- DATA_LOADED: {
1928
- msgID?: string | undefined;
1929
- data: {
1930
- venueData: any;
1931
- };
1932
- };
1933
- FIRST_MAP_LOADED: {
1934
- msgID?: string | undefined;
1935
- data: {
1936
- venueData?: any;
1937
- };
1938
- };
1939
- MAP_CHANGED: {
1940
- msgID?: string | undefined;
1941
- data: {
1942
- mapId: string;
1943
- };
1944
- };
1945
- POLYGON_CLICKED: {
1946
- msgID?: string | undefined;
1947
- data: {
1948
- polygonId: string;
1949
- };
1950
- };
1951
- ROTATION_CHANGED: {
1952
- msgID?: string | undefined;
1953
- data: {
1954
- rotation: number;
1955
- };
1956
- };
1957
- TILT_CHANGED: {
1958
- msgID?: string | undefined;
1959
- data: {
1960
- tilt: number;
1961
- };
1962
- };
1963
- UPDATE_GEOLOCATION: {
1964
- msgID?: string | undefined;
1965
- data: {
1966
- msgID: undefined;
1967
- data: unknown;
1968
- };
1969
- };
1970
- BLUEDOT_STATE_CHANGE: {
1971
- msgID?: string | undefined;
1972
- data: {
1973
- stateChange: import("../../core/packages/renderer").TBlueDotStateChange;
1974
- };
1975
- };
1976
- BLUEDOT_POSITION_UPDATE: {
1977
- msgID?: string | undefined;
1978
- data: {
1979
- update: Omit<import("../../core/packages/renderer").TBlueDotPositionUpdate, "map" | "nearestNode"> & {
1980
- nearestNode?: string | undefined;
1981
- map?: string | undefined;
1982
- };
1983
- };
1984
- };
1985
- SET_JOURNEY_STEP: {
1986
- msgID?: string | undefined;
1987
- data: {
1988
- step: number;
1989
- };
1990
- };
1991
- LOAD_VENUE: {
1992
- msgID?: string | undefined;
1993
- data: {
1994
- options: import("../react-native-sdk/src").TGetVenueOptions & {
2035
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface' {
2036
+ import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
2037
+ import { Vector2, Vector3 } from 'three';
2038
+ import { changeListenerFn, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
2039
+ import RENDER from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
2040
+ import { INTERNAL_EVENT_PAYLOAD } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
2041
+ import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
2042
+ import Tween, { Easing } from '@tweenjs/tween.js';
2043
+ export type TFocusOptionsLegacy = {
2044
+ /**
2045
+ * An array of Nodes to focus in on
2046
+ */
2047
+ nodes?: (MappedinNode | MappedinNode['id'])[];
2048
+ /**
2049
+ * An array of Polygons to focus on. It's the center of the bounds of all Polygons, designed to fit everything into view.
2050
+ */
2051
+ polygons?: (MappedinPolygon | MappedinPolygon['id'])[];
2052
+ /**
2053
+ * The duration (in ms) the focus animation should last for.
2054
+ * @defaultValue `100`
2055
+ */
2056
+ duration?: number;
2057
+ /**
2058
+ * Whether to zoom the camera in or out, or just pan it.
2059
+ * @defaultValue `true`
2060
+ */
2061
+ changeZoom?: boolean;
2062
+ /**
2063
+ * The animation curve to use for zooming in. Uses the animateCamera one by default.
2064
+ */
2065
+ curve?: typeof Easing;
2066
+ /**
2067
+ * Camera tilt between 0 (top-down) to 1 (from the side)
2068
+ */
2069
+ tilt?: number;
2070
+ /**
2071
+ * Rotation in degrees
2072
+ */
2073
+ rotation?: number;
2074
+ /**
2075
+ * You can overide the {{#crossLink "MapView/focusZoomFactor:property"}}{{/crossLink}} for a specific {{#crossLink "MapView/focusOn:method"}}{{/crossLink}} call, rather than globally, if you like.
2076
+ */
2077
+ focusZoomFactor?: number;
2078
+ /**
2079
+ * Sets a floor for how close you can zoom in on the scene. If it's lower than mapView.controls.minZoom, it's ignored.
2080
+ * @defaultValue: 0
2081
+ */
2082
+ minZoom?: number;
2083
+ padding?: TPadding;
2084
+ points?: any[];
2085
+ };
2086
+ export interface ICore {
2087
+ new (container: HTMLElement, venue: Mappedin, options?: TMapViewOptions): ICore;
2088
+ /**
2089
+ * @internal
2090
+ */
2091
+ currentScale: number;
2092
+ loadOptions?: TMapViewOptions['loadOptions'];
2093
+ imageFlippingEnabled: boolean;
2094
+ imageFlippingCache: any;
2095
+ cachedPadding: any;
2096
+ polygonMeshesById: any;
2097
+ textLabelsByPolygonId: any;
2098
+ renderer: any;
2099
+ scene: any;
2100
+ cameraParameters: Vector2;
2101
+ resolution: Vector2;
2102
+ determineNewLabelSize: any;
2103
+ on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2104
+ off<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2105
+ publish<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, payload?: INTERNAL_EVENT_PAYLOAD[EVENT_NAME]): void;
2106
+ /**
2107
+ * Manual camera controls for MapView. Generally you should be using the functions on MapView like {{#crossLink "MapView/focusOn:method"}}{{/crossLink}},
2108
+ * but if you have some cool animations in mind, you can do it with the {{#crossLink "CameraControls"}}{{/crossLink}}.
2109
+ * Some of the functions don't do anything in 2D.
2110
+ *
2111
+ */
2112
+ controls: any;
2113
+ /**
2114
+ * The Venue data this MapView is using.
2115
+ *
2116
+ * @property venue {MappedinVenue}
2117
+ * @final
2118
+ */
2119
+ readonly venue: Mappedin;
2120
+ /**
2121
+ * The div MapView is using.
2122
+ *
2123
+ * @property container {Div}
2124
+ * @final
2125
+ */
2126
+ readonly container: HTMLElement;
2127
+ /**
2128
+ * The ID of the Map currently being displayed.
2129
+ *
2130
+ */
2131
+ readonly currentMap: string;
2132
+ /**
2133
+ * Change this factor to influence how much the camera zooms in on a {@link IMapView3D.focusOn} call.
2134
+ *
2135
+ * @property focusZoomFactor {Integer}
2136
+ * @default 3
2137
+ */
2138
+ focusZoomFactor: number;
2139
+ /**
2140
+ * Returns the value you should call {@link CameraControls.setZoom} on to fit the Polygon exactly.
2141
+ *
2142
+ * @return The zoom level that will fit the Polygon
2143
+ */
2144
+ getZoomLevelForPolygon(props: {
2145
+ /**
2146
+ * The Polygon or Polygon ID to get the zoom level for
2147
+ */
2148
+ polygonOrPolygonId: MappedinPolygon | string;
2149
+ }): number;
2150
+ /**
2151
+ * Returns the value you should call {@link CameraControls.setZoom} on to fit the {@link IMapView3D.currentMap} exactly.
2152
+ *
2153
+ * @return The zoom level that will fit the {@link IMapView3D.currentMap}.
2154
+ */
2155
+ getZoomLevelForCurrentMap(): number;
2156
+ /**
2157
+ * Returns the angle that points to north, in radians, from the default orientation.
2158
+ *
2159
+ * @return The angle to north from the default orientation, in radians.
2160
+ */
2161
+ getNorth(): number;
2162
+ /**
2163
+ * Takes an element on the DOM and rotates it such that the top is pointing north. It will rotate with the camera, staying locked
2164
+ * on north. If you would like to align it do a different direction, or a different side of the element, pass in an offset. This
2165
+ * is how you would do a compass rose.
2166
+ *
2167
+ * This will modify your element's transform.
2168
+ *
2169
+ * @param element The element on the page to rotate.
2170
+ * @param offset The amount to offset the rotation by, in radians.
2171
+ *
2172
+ */
2173
+ lockNorth(element: HTMLElement, offset?: number): void;
2174
+ /**
2175
+ * Stops the MapView from trying to rotate your element with the camera. Do this if you remove the element, or want to stop it from rotating.
2176
+ * @param element The node to stop rotating. It won't reset the transform, just leave it as is.
2177
+ */
2178
+ unlockNorth(element: HTMLElement): void;
2179
+ currentInteractionEvent: string;
2180
+ interactivePolygons: any;
2181
+ highlightedPolygons: any;
2182
+ cameraPlane: any;
2183
+ /**
2184
+ * Called any time a user touches or clicks the map. Only fires on "single" touches/clicks.
2185
+ *
2186
+ * @param position Object containing the latitude & longitude of the location touched on the map
2187
+ * @param polygons Array of polygon IDs that were touched, in order of front to back.
2188
+ * @param nearBlueDot Whether the touch was close enough to the Blue Dot to be considered a touch on the Blue Dot.
2189
+ */
2190
+ onMapClicked(position: {
2191
+ latitude: number;
2192
+ longitude: number;
2193
+ }, polygons: string[], nearBlueDot: boolean): void;
2194
+ /**
2195
+ * This is called when an interactive Polygon is clicked on.
2196
+ * You will almost certainly want to replace this with your own function in your client app.
2197
+ * Return "false" if you have consumed the event and it shouldn't bubble down to other Polygons beneath this one.
2198
+ *
2199
+ * @param polygonId polygonId passed in when tapping an interactive polygon
2200
+ */
2201
+ onPolygonClicked(polygonId: string): boolean | void;
2202
+ onMapChanged(map: string): void;
2203
+ getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
2204
+ getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
2205
+ /**
2206
+ * Takes an x/y pair in Mappedin coordinate space and gives you a Vector3 in scene space
2207
+ * @param nodeOrCoordinate a node or coordinate
2208
+ */
2209
+ convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
2210
+ /**
2211
+ * Converts a Vector-like object into a MappedinCoordinate for a map.
2212
+ * @param position an object with x and y, like a Vector3
2213
+ * @param mapClass An optional map; otherwise, the current map will be used.
2214
+ */
2215
+ convert3DMapPositionToCoordinate(position: {
2216
+ x: number;
2217
+ y: number;
2218
+ }, mapClass?: MappedinMap): MappedinCoordinate;
2219
+ setPadding(padding: {
2220
+ top: number;
2221
+ left: number;
2222
+ bottom: number;
2223
+ right: number;
2224
+ }): void;
2225
+ /**
2226
+ * This is fired when the user taps/clicks on the MapView without hitting an interactive Polygon.
2227
+ * You will almost certainly want to replace this with your own function in your client app.
2228
+ * You would probably use this to clear any Polygon highlighting, in certain situations.
2229
+ */
2230
+ onNothingClicked(): void;
2231
+ smartCollisionEngine: any;
2232
+ mapObjects: any;
2233
+ /**
2234
+ * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
2235
+ * but if you are doing something weird, or have your own special tween for something, you will want to call this function.
2236
+ * You can call it as often as you want, it just sets a flag that we need to render again, and renders a few frames if we weren't already doing that.
2237
+ * Ignored in 2D.
2238
+ */
2239
+ tryRendering(renderMode?: typeof RENDER): void;
2240
+ setMap(mapOrMapId: MappedinMap | string): Promise<null>;
2241
+ getPositionNode(node: MappedinNode): Vector3;
2242
+ cameraObject: any;
2243
+ setBackgroundColor(color: number | string, alpha?: number): void;
2244
+ mapManager: any;
2245
+ focusOn(focusOptions: TFocusOptionsLegacy): Tween;
2246
+ canvasWidth: number;
2247
+ canvasHeight: number;
2248
+ /**
2249
+ * Resets the MapView to the default state.
2250
+ */
2251
+ resetState(): void;
2252
+ destroy(): void;
2253
+ }
2254
+ }
2255
+
2256
+ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2257
+ import { BRIDGE_EVENT, BRIDGE_EVENT_PAYLOADS } from '@mappedin/react-native-sdk/wrappers/common';
2258
+ import { PubSub } from '@mappedin/react-native-sdk/wrappers/common';
2259
+ export function uuid(): string;
2260
+ export class MappedinController {
2261
+ #private;
2262
+ privateEventBus: PubSub<{
2263
+ REJECT: {
2264
+ msgID?: string | undefined;
2265
+ data: any;
2266
+ };
2267
+ RESOLVE: {
2268
+ msgID?: string | undefined;
2269
+ data: any;
2270
+ };
2271
+ READY: {
2272
+ msgID?: string | undefined;
2273
+ data: null;
2274
+ };
2275
+ LOG: {
2276
+ msgID?: string | undefined;
2277
+ data: string;
2278
+ };
2279
+ GET_IMAGE: {
2280
+ msgID?: string | undefined;
2281
+ data: {
2282
+ fileName: string;
2283
+ };
2284
+ };
2285
+ GET_MAP_POLYGONS: {
2286
+ msgID?: string | undefined;
2287
+ data: {
2288
+ mapId: string;
2289
+ };
2290
+ };
2291
+ MINIMAP_READY: {
2292
+ msgID?: string | undefined;
2293
+ data: null;
2294
+ };
2295
+ SHOW_MINIMAP: {
2296
+ msgID?: string | undefined;
2297
+ data: {
2298
+ format: "jsonstring";
2299
+ venueData: string;
2300
+ options: import("./types").TMiMapViewOptions;
2301
+ };
2302
+ };
2303
+ LOAD_MINIMAP: {
2304
+ msgID?: string | undefined;
2305
+ data: {
2306
+ options: import("../react-native-sdk/src").TGetVenueOptions;
2307
+ };
2308
+ };
2309
+ CACHE_IMAGE: {
2310
+ msgID?: string | undefined;
2311
+ data: {
2312
+ url?: string | undefined;
2313
+ options: import("../react-native-sdk/src").TGetVenueOptions;
2314
+ locationId: string;
2315
+ polygonHighlightColor?: string | undefined;
2316
+ focusOptions?: Omit<import("./types").TFocusOnOptionsSerializable, "targets"> | undefined;
2317
+ };
2318
+ };
2319
+ CLEAR_BUNDLE_CACHE: {
2320
+ msgID?: string | undefined;
2321
+ data: null;
2322
+ };
2323
+ NOTHING_CLICKED: {
2324
+ msgID?: string | undefined;
2325
+ data: null;
2326
+ };
2327
+ STATE_CHANGED: {
2328
+ msgID?: string | undefined;
2329
+ data: {
2330
+ state: import("../react-native-sdk/src").STATE;
2331
+ };
2332
+ };
2333
+ DATA_LOADED: {
2334
+ msgID?: string | undefined;
2335
+ data: {
2336
+ venueData: any;
2337
+ };
2338
+ };
2339
+ FIRST_MAP_LOADED: {
2340
+ msgID?: string | undefined;
2341
+ data: {
2342
+ venueData?: any;
2343
+ };
2344
+ };
2345
+ MAP_CHANGED: {
2346
+ msgID?: string | undefined;
2347
+ data: {
2348
+ mapId: string;
2349
+ };
2350
+ };
2351
+ POLYGON_CLICKED: {
2352
+ msgID?: string | undefined;
2353
+ data: {
2354
+ polygonId: string;
2355
+ };
2356
+ };
2357
+ ROTATION_CHANGED: {
2358
+ msgID?: string | undefined;
2359
+ data: {
2360
+ rotation: number;
2361
+ };
2362
+ };
2363
+ TILT_CHANGED: {
2364
+ msgID?: string | undefined;
2365
+ data: {
2366
+ tilt: number;
2367
+ };
2368
+ };
2369
+ UPDATE_GEOLOCATION: {
2370
+ msgID?: string | undefined;
2371
+ data: {
2372
+ msgID: undefined;
2373
+ data: unknown;
2374
+ };
2375
+ };
2376
+ BLUEDOT_STATE_CHANGE: {
2377
+ msgID?: string | undefined;
2378
+ data: {
2379
+ stateChange: import("../react-native-sdk/src").TBlueDotStateChange;
2380
+ };
2381
+ };
2382
+ BLUEDOT_POSITION_UPDATE: {
2383
+ msgID?: string | undefined;
2384
+ data: {
2385
+ update: Omit<import("../react-native-sdk/src").TBlueDotPositionUpdate, "map" | "nearestNode"> & {
2386
+ nearestNode?: string | undefined;
2387
+ map?: string | undefined;
2388
+ };
2389
+ };
2390
+ };
2391
+ SET_JOURNEY_STEP: {
2392
+ msgID?: string | undefined;
2393
+ data: {
2394
+ step: number;
2395
+ };
2396
+ };
2397
+ LOAD_VENUE: {
2398
+ msgID?: string | undefined;
2399
+ data: {
2400
+ options: import("../react-native-sdk/src").TGetVenueOptions & {
1995
2401
  useBundle?: boolean | undefined;
1996
2402
  };
1997
- showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions;
2403
+ showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
2404
+ prepareSearch?: boolean | undefined;
2405
+ searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions> | undefined;
2406
+ };
1998
2407
  };
1999
2408
  };
2000
2409
  SHOW_VENUE: {
@@ -2002,7 +2411,10 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2002
2411
  data: {
2003
2412
  venueData: string;
2004
2413
  format: "jsonstring";
2005
- showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions;
2414
+ showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
2415
+ prepareSearch?: boolean | undefined;
2416
+ searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions> | undefined;
2417
+ };
2006
2418
  };
2007
2419
  };
2008
2420
  SET_MAP: {
@@ -2232,6 +2644,29 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2232
2644
  map?: string | undefined;
2233
2645
  };
2234
2646
  };
2647
+ SEARCH: {
2648
+ msgID?: string | undefined;
2649
+ data: {
2650
+ query: string;
2651
+ };
2652
+ };
2653
+ SUGGEST: {
2654
+ msgID?: string | undefined;
2655
+ data: {
2656
+ query: string;
2657
+ };
2658
+ };
2659
+ ADD_SEARCH_QUERY: {
2660
+ msgID?: string | undefined;
2661
+ data: {
2662
+ query: string;
2663
+ object: {
2664
+ type: "MappedinLocation" | "MappedinCategory" | "Custom";
2665
+ id: string;
2666
+ };
2667
+ weight?: number | undefined;
2668
+ };
2669
+ };
2235
2670
  }>;
2236
2671
  /**
2237
2672
  * Message received from the other side of the bridge
@@ -2263,268 +2698,73 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2263
2698
  /**
2264
2699
  * Handle rejection from the other side, typically when the request results in an error
2265
2700
  * @hidden
2266
- */
2267
- protected handleRejection: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2268
- msgID: string;
2269
- data: {
2270
- payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2271
- };
2272
- }) => void;
2273
- /**
2274
- * Emitting a message without expecting a response
2275
- * @hidden
2276
- */
2277
- emit<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): void;
2278
- /**
2279
- * Emitting a message and waiting for a reponse, via a promise
2280
- * @hidden
2281
- */
2282
- emitAsync<T, EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): Promise<T>;
2283
- }
2284
- }
2285
-
2286
- declare module '@mappedin/react-native-sdk/core/packages/renderer/Core.interface' {
2287
- import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
2288
- import CameraControls from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraControls';
2289
- import { Vector2, Vector3 } from 'three';
2290
- import { changeListenerFn, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
2291
- import RENDER from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
2292
- import { INTERNAL_EVENT_PAYLOAD } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
2293
- import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
2294
- import Tween, { Easing } from '@tweenjs/tween.js';
2295
- export type TFocusOptionsLegacy = {
2296
- /**
2297
- * An array of Nodes to focus in on
2298
- */
2299
- nodes?: (MappedinNode | MappedinNode['id'])[];
2300
- /**
2301
- * An array of Polygons to focus on. It's the center of the bounds of all Polygons, designed to fit everything into view.
2302
- */
2303
- polygons?: (MappedinPolygon | MappedinPolygon['id'])[];
2304
- /**
2305
- * The duration the focus animation should last for.
2306
- * @defaultValue `100`
2307
- */
2308
- duration?: number;
2309
- /**
2310
- * Whether to zoom the camera in or out, or just pan it.
2311
- * @defaultValue `true`
2312
- */
2313
- changeZoom?: boolean;
2314
- /**
2315
- * The animation curve to use for zooming in. Uses the animateCamera one by default.
2316
- */
2317
- curve?: typeof Easing;
2318
- /**
2319
- * Camera tilt between 0 (top-down) to 1 (from the side)
2320
- */
2321
- tilt?: number;
2322
- /**
2323
- * Rotation in degrees
2324
- */
2325
- rotation?: number;
2326
- /**
2327
- * You can overide the {{#crossLink "MapView/focusZoomFactor:property"}}{{/crossLink}} for a specific {{#crossLink "MapView/focusOn:method"}}{{/crossLink}} call, rather than globally, if you like.
2328
- */
2329
- focusZoomFactor?: number;
2330
- /**
2331
- * Sets a floor for how close you can zoom in on the scene. If it's lower than mapView.controls.minZoom, it's ignored.
2332
- * @defaultValue: 0
2333
- */
2334
- minZoom?: number;
2335
- padding?: TPadding;
2336
- points?: any[];
2337
- };
2338
- export interface ICore {
2339
- new (container: HTMLElement, venue: Mappedin, options?: TMapViewOptions): ICore;
2340
- /**
2341
- * @internal
2342
- */
2343
- currentScale: number;
2344
- imageFlippingEnabled: boolean;
2345
- imageFlippingCache: any;
2346
- cachedPadding: any;
2347
- polygonMeshesById: any;
2348
- textLabelsByPolygonId: any;
2349
- renderer: any;
2350
- scene: any;
2351
- cameraParameters: Vector2;
2352
- resolution: Vector2;
2353
- determineNewLabelSize: any;
2354
- on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2355
- off<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: changeListenerFn<INTERNAL_EVENT_PAYLOAD[EVENT_NAME]>): void;
2356
- publish<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, payload?: INTERNAL_EVENT_PAYLOAD[EVENT_NAME]): void;
2357
- /**
2358
- * Manual camera controls for MapView. Generally you should be using the functions on MapView like {{#crossLink "MapView/focusOn:method"}}{{/crossLink}},
2359
- * but if you have some cool animations in mind, you can do it with the {{#crossLink "CameraControls"}}{{/crossLink}}.
2360
- * Some of the functions don't do anything in 2D.
2361
- *
2362
- */
2363
- controls?: typeof CameraControls;
2364
- /**
2365
- * The Venue data this MapView is using.
2366
- *
2367
- * @property venue {MappedinVenue}
2368
- * @final
2369
- */
2370
- readonly venue: Mappedin;
2371
- /**
2372
- * The div MapView is using.
2373
- *
2374
- * @property container {Div}
2375
- * @final
2376
- */
2377
- readonly container: HTMLElement;
2378
- /**
2379
- * The ID of the Map currently being displayed.
2380
- *
2381
- */
2382
- readonly currentMap: string;
2383
- /**
2384
- * Change this factor to influence how much the camera zooms in on a {@link IMapView3D.focusOn} call.
2385
- *
2386
- * @property focusZoomFactor {Integer}
2387
- * @default 3
2388
- */
2389
- focusZoomFactor: number;
2390
- /**
2391
- * Returns the value you should call {@link CameraControls.setZoom} on to fit the Polygon exactly.
2392
- *
2393
- * @return The zoom level that will fit the Polygon
2394
- */
2395
- getZoomLevelForPolygon(props: {
2396
- /**
2397
- * The Polygon or Polygon ID to get the zoom level for
2398
- */
2399
- polygonOrPolygonId: MappedinPolygon | string;
2400
- }): number;
2401
- /**
2402
- * Returns the value you should call {@link CameraControls.setZoom} on to fit the {@link IMapView3D.currentMap} exactly.
2403
- *
2404
- * @return The zoom level that will fit the {@link IMapView3D.currentMap}.
2405
- */
2406
- getZoomLevelForCurrentMap(): number;
2407
- /**
2408
- * Returns the angle that points to north, in radians, from the default orientation.
2409
- *
2410
- * @return The angle to north from the default orientation, in radians.
2411
- */
2412
- getNorth(): number;
2413
- /**
2414
- * Takes an element on the DOM and rotates it such that the top is pointing north. It will rotate with the camera, staying locked
2415
- * on north. If you would like to align it do a different direction, or a different side of the element, pass in an offset. This
2416
- * is how you would do a compass rose.
2417
- *
2418
- * This will modify your element's transform.
2419
- *
2420
- * @param element The element on the page to rotate.
2421
- * @param offset The amount to offset the rotation by, in radians.
2422
- *
2423
- */
2424
- lockNorth(element: HTMLElement, offset?: number): void;
2425
- /**
2426
- * Stops the MapView from trying to rotate your element with the camera. Do this if you remove the element, or want to stop it from rotating.
2427
- * @param element The node to stop rotating. It won't reset the transform, just leave it as is.
2428
- */
2429
- unlockNorth(element: HTMLElement): void;
2430
- currentInteractionEvent: string;
2431
- interactivePolygons: any;
2432
- highlightedPolygons: any;
2433
- cameraPlane: any;
2434
- /**
2435
- * Called any time a user touches or clicks the map. Only fires on "single" touches/clicks.
2436
- *
2437
- * @param position Object containing the latitude & longitude of the location touched on the map
2438
- * @param polygons Array of polygon IDs that were touched, in order of front to back.
2439
- * @param nearBlueDot Whether the touch was close enough to the Blue Dot to be considered a touch on the Blue Dot.
2440
- */
2441
- onMapClicked(position: {
2442
- latitude: number;
2443
- longitude: number;
2444
- }, polygons: string[], nearBlueDot: boolean): void;
2445
- /**
2446
- * This is called when an interactive Polygon is clicked on.
2447
- * You will almost certainly want to replace this with your own function in your client app.
2448
- * Return "false" if you have consumed the event and it shouldn't bubble down to other Polygons beneath this one.
2449
- *
2450
- * @param polygonId polygonId passed in when tapping an interactive polygon
2451
- */
2452
- onPolygonClicked(polygonId: string): boolean | void;
2453
- onMapChanged(map: string): void;
2454
- getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string): Vector3;
2455
- getPositionPolygon(polygon: MappedinPolygon | string): Vector3;
2456
- convertTo3DMapPosition(nodeOrCoordinate: MappedinCoordinate | MappedinNode): Vector3;
2457
- setPadding(padding: {
2458
- top: number;
2459
- left: number;
2460
- bottom: number;
2461
- right: number;
2462
- }): void;
2463
- /**
2464
- * This is fired when the user taps/clicks on the MapView without hitting an interactive Polygon.
2465
- * You will almost certainly want to replace this with your own function in your client app.
2466
- * You would probably use this to clear any Polygon highlighting, in certain situations.
2467
- */
2468
- onNothingClicked(): void;
2469
- smartCollisionEngine: any;
2470
- mapObjects: any;
2701
+ */
2702
+ protected handleRejection: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2703
+ msgID: string;
2704
+ data: {
2705
+ payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2706
+ };
2707
+ }) => void;
2471
2708
  /**
2472
- * The scene only renders when something has changed. This should be something a 3rd party developer doesn't need to worry about,
2473
- * but if you are doing something weird, or have your own special tween for something, you will want to call this function.
2474
- * You can call it as often as you want, it just sets a flag that we need to render again, and renders a few frames if we weren't already doing that.
2475
- * Ignored in 2D.
2709
+ * Emitting a message without expecting a response
2710
+ * @hidden
2476
2711
  */
2477
- tryRendering(renderMode?: typeof RENDER): void;
2478
- setMap(mapOrMapId: MappedinMap | string): Promise<null>;
2479
- getPositionNode(node: MappedinNode): Vector3;
2480
- cameraObject: any;
2481
- setBackgroundColor(color: number | string, alpha?: number): void;
2482
- mapManager: any;
2483
- focusOn(focusOptions: TFocusOptionsLegacy): Tween;
2484
- canvasWidth: number;
2485
- canvasHeight: number;
2712
+ emit<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): void;
2486
2713
  /**
2487
- * Resets the MapView to the default state.
2714
+ * Emitting a message and waiting for a reponse, via a promise
2715
+ * @hidden
2488
2716
  */
2489
- resetState(): void;
2490
- destroy(): void;
2717
+ emitAsync<T, EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): Promise<T>;
2491
2718
  }
2492
2719
  }
2493
2720
 
2494
2721
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types' {
2495
2722
  export type TGetVenueOptions = {
2496
- accessToken?: string;
2497
- clientId?: string;
2498
- clientSecret?: string;
2499
- baseUrl?: string;
2500
- includeHidden?: boolean;
2501
- noAuth?: boolean;
2502
- perspective?: string;
2503
- language?: string;
2504
- headers?: {
2505
- [key in string]: string;
2506
- };
2507
- venue: string;
2508
- things?: any;
2723
+ accessToken?: string;
2724
+ clientId?: string;
2725
+ clientSecret?: string;
2726
+ baseUrl?: string;
2727
+ includeHidden?: boolean;
2728
+ noAuth?: boolean;
2729
+ perspective?: string;
2730
+ language?: string;
2731
+ headers?: {
2732
+ [key in string]: string;
2733
+ };
2734
+ venue: string;
2735
+ things?: any;
2736
+ useDraftData?: boolean;
2737
+ platformString?: string;
2509
2738
  };
2510
2739
  export type TGetVenueOptionsInternal = {
2511
- baseUrl?: string;
2512
- supplementaryUrl?: string;
2513
- noAuth?: boolean;
2514
- includeHidden?: boolean;
2515
- apiGateway?: string;
2516
- authorization?: string;
2517
- /**
2518
- * @deprecated 2D support will be removed in the future
2519
- */
2520
- do2D?: boolean;
2521
- things?: any;
2522
- headers?: any;
2740
+ baseUrl?: string;
2741
+ supplementaryUrl?: string;
2742
+ noAuth?: boolean;
2743
+ includeHidden?: boolean;
2744
+ apiGateway?: string;
2745
+ authorization?: string;
2746
+ /**
2747
+ * @deprecated 2D support will be removed in the future
2748
+ */
2749
+ do2D?: boolean;
2750
+ things?: any;
2751
+ headers?: any;
2523
2752
  };
2753
+ export enum MAP_RENDER_MODE {
2754
+ /** Each polygon, its geometry and mesh are sent to the GPU every render frame.
2755
+ * This was the default rendering mode before 4.0.17
2756
+ */
2757
+ MULTI_GEOMETRY = "MULTI_GEOMETRY",
2758
+ /** Polygons' geometries are grouped by material and merged together, resulting in far fewer
2759
+ * draw calls to the GPU. Default rendering mode since 4.0.17
2760
+ */
2761
+ SINGLE_GEOMETRY = "SINGLE_GEOMETRY"
2762
+ }
2524
2763
  }
2525
2764
 
2526
2765
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2527
2766
  import { Navigator } from '@mappedin/react-native-sdk/core/packages/navigator';
2767
+ import { MVFData } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types';
2528
2768
  import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
2529
2769
  import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
2530
2770
  import { MappedinEvent } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent';
@@ -2539,8 +2779,9 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2539
2779
  import { MappedinTheme } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme';
2540
2780
  import { MappedinVenue } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue';
2541
2781
  import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
2782
+ import Analytics from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Analytics';
2542
2783
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
2543
- export enum CollectionType {
2784
+ export enum MappedinCollectionType {
2544
2785
  CATEGORY = "categories",
2545
2786
  EVENT = "events",
2546
2787
  LOCATION = "locations",
@@ -2551,14 +2792,14 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2551
2792
  VORTEX = "vortexes"
2552
2793
  }
2553
2794
  type TAccessors = {
2554
- [CollectionType.CATEGORY]: MappedinCategory;
2555
- [CollectionType.EVENT]: MappedinEvent;
2556
- [CollectionType.LOCATION]: MappedinLocation;
2557
- [CollectionType.MAPGROUP]: MappedinMapGroup;
2558
- [CollectionType.MAP]: MappedinMap;
2559
- [CollectionType.NODE]: MappedinNode;
2560
- [CollectionType.POLYGON]: MappedinPolygon;
2561
- [CollectionType.VORTEX]: MappedinVortex;
2795
+ [MappedinCollectionType.CATEGORY]: MappedinCategory;
2796
+ [MappedinCollectionType.EVENT]: MappedinEvent;
2797
+ [MappedinCollectionType.LOCATION]: MappedinLocation;
2798
+ [MappedinCollectionType.MAPGROUP]: MappedinMapGroup;
2799
+ [MappedinCollectionType.MAP]: MappedinMap;
2800
+ [MappedinCollectionType.NODE]: MappedinNode;
2801
+ [MappedinCollectionType.POLYGON]: MappedinPolygon;
2802
+ [MappedinCollectionType.VORTEX]: MappedinVortex;
2562
2803
  };
2563
2804
  const THINGS: {
2564
2805
  categories: typeof MappedinCategory;
@@ -2754,6 +2995,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2754
2995
  [id: string]: MappedinRankings;
2755
2996
  };
2756
2997
  getCollectionItemById<T extends keyof TAccessors, I extends string>(name: T, id: I): TAccessors[T] | null;
2998
+ /**
2999
+ * @hidden
3000
+ * @internal
3001
+ */
3002
+ hydrateFromMVF(mvfData: MVFData): Promise<undefined>;
2757
3003
  /**
2758
3004
  *
2759
3005
  * [experimental] Hydrate the Mappedin instance using a response from either {@link IMappedin.toString()}, {@link getVenueBundle} or by downloading the bundle manually
@@ -2762,9 +3008,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2762
3008
  */
2763
3009
  hydrate(mappedinSerializableData: string | object, shouldPopulateBundledImagesAsBlobs?: boolean): Promise<undefined>;
2764
3010
  images: any;
3011
+ imageBinaries?: Map<string, Uint8Array>;
2765
3012
  scenes: any;
2766
3013
  fetch(): Promise<void>;
2767
3014
  constructor(options: TGetVenueOptionsInternal & TGetVenueOptions);
3015
+ analytics: Analytics;
2768
3016
  /**
2769
3017
  * @hidden
2770
3018
  */
@@ -2888,6 +3136,60 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolyg
2888
3136
  export class MappedinPolygon extends MappedinNavigatable {
2889
3137
  #private;
2890
3138
  geometry: any;
3139
+ image?: {
3140
+ visible: boolean;
3141
+ url: string | Blob;
3142
+ original: string | Blob;
3143
+ useLocalScaling: boolean;
3144
+ viewBox: {
3145
+ width: number;
3146
+ height: number;
3147
+ };
3148
+ scale: {
3149
+ x: number;
3150
+ y: number;
3151
+ };
3152
+ fitToBounds: boolean;
3153
+ position: {
3154
+ x: number;
3155
+ y: number;
3156
+ z: number;
3157
+ };
3158
+ rotation: {
3159
+ x: number;
3160
+ y: number;
3161
+ z: number;
3162
+ };
3163
+ _isAbsolutelyPositioned?: boolean;
3164
+ };
3165
+ holes?: unknown[];
3166
+ textures?: {
3167
+ image: any;
3168
+ name: 'front' | 'side';
3169
+ useFrontFaceImage?: boolean;
3170
+ }[];
3171
+ material: {
3172
+ color: string;
3173
+ opacity?: number;
3174
+ };
3175
+ label?: {
3176
+ visible: boolean;
3177
+ text: string;
3178
+ align: string;
3179
+ position: {
3180
+ x: number;
3181
+ y: number;
3182
+ z: number;
3183
+ };
3184
+ rotation: {
3185
+ x: number;
3186
+ y: number;
3187
+ z: number;
3188
+ };
3189
+ fontFamily: string;
3190
+ fontSize: number;
3191
+ color: string;
3192
+ };
2891
3193
  /**
2892
3194
  * Node ID.
2893
3195
  *
@@ -3074,6 +3376,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3074
3376
  import type { TGeoReference } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
3075
3377
  import type { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
3076
3378
  import { MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCoordinate';
3379
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue';
3077
3380
  /**
3078
3381
  * A {@link MappedinMap} belonging to a specific {@link MappedinVenue}. Typically represents a certain floor. Give this to a {@link MapView} to display to the user.
3079
3382
  *
@@ -3100,6 +3403,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3100
3403
  shortName: string;
3101
3404
  elevation: number;
3102
3405
  scale?: number;
3406
+ layers: {
3407
+ visible: boolean;
3408
+ name: string;
3409
+ id: string;
3410
+ }[];
3103
3411
  x_scale?: number;
3104
3412
  perspectiveId?: string;
3105
3413
  scene: any;
@@ -3114,6 +3422,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3114
3422
  * @property polygons {[MappedinPolygon]}
3115
3423
  */
3116
3424
  get polygons(): MappedinPolygon[] | undefined;
3425
+ /**
3426
+ * Locations on this map
3427
+ */
3428
+ get locations(): MappedinLocation[];
3429
+ get nodes(): import("./MappedinNode").MappedinNode[];
3117
3430
  /**
3118
3431
  * Map Group this map belongs to.
3119
3432
  *
@@ -3151,28 +3464,56 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent
3151
3464
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3152
3465
  import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
3153
3466
  /**
3154
- * An event.
3467
+ * An event such as a promotion attached to a location in a venue for a period of time. Events can be created in the Mappedin CMS.
3155
3468
  *
3156
3469
  * @class MappedinEvent
3157
3470
  */
3158
3471
  export class MappedinEvent {
3159
3472
  #private;
3473
+ /**
3474
+ * Unique id string of the event.
3475
+ */
3160
3476
  id: string;
3161
3477
  type: string;
3478
+ /**
3479
+ * Event name
3480
+ */
3162
3481
  name: string;
3482
+ /**
3483
+ * Optional, longer description of the event.
3484
+ */
3163
3485
  description?: string | undefined;
3486
+ /**
3487
+ * Optional image to be used for displaying the event.
3488
+ */
3164
3489
  image?: TImage | undefined;
3490
+ /**
3491
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
3492
+ */
3165
3493
  startDate?: number | undefined;
3494
+ /**
3495
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
3496
+ */
3166
3497
  endDate?: number | undefined;
3498
+ /**
3499
+ * Timestamp when the event should be displayed. Javascript date in milliseconds since 1 January 1970 UTC.
3500
+ */
3167
3501
  showDate?: number | undefined;
3502
+ /**
3503
+ * @internal
3504
+ */
3168
3505
  constructor(mappedin: Mappedin, data: any);
3169
3506
  /**
3170
- * Location this Event is occuring at.
3171
- *
3172
- * @property location {MappedinLocation}
3507
+ * Location this event is occuring at.
3173
3508
  */
3174
3509
  location(): MappedinLocation | undefined;
3510
+ /**
3511
+ * @internal
3512
+ */
3175
3513
  static hydrate(events: any, mappedin: Mappedin): MappedinEvent[];
3514
+ /**
3515
+ * @internal
3516
+ */
3176
3517
  static fetch(mappedin: Mappedin): Promise<MappedinEvent[]>;
3177
3518
  toJSON(): any;
3178
3519
  }
@@ -3245,9 +3586,10 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue
3245
3586
  tzidOverride: string;
3246
3587
  utcOffset: string;
3247
3588
  website: string;
3248
- constructor(data: any);
3249
- static hydrate(data: any): MappedinVenue;
3589
+ constructor(mappedin: Mappedin, data: any);
3590
+ static hydrate(data: any, mappedin: Mappedin): MappedinVenue;
3250
3591
  static fetch(mappedin: Mappedin): Promise<MappedinVenue>;
3592
+ get isMultiBuilding(): any;
3251
3593
  toJSON(): any;
3252
3594
  }
3253
3595
  }
@@ -3464,6 +3806,229 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavig
3464
3806
  }
3465
3807
  }
3466
3808
 
3809
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch' {
3810
+ import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3811
+ import type { SearchOptions } from 'minisearch';
3812
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
3813
+ import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
3814
+ export const removeAccents: (it: string) => string;
3815
+ export type { SearchOptions };
3816
+ /**
3817
+ * A {@link Mappedin.OfflineSearch} is an offline search module
3818
+ *
3819
+ *
3820
+ * @class Mappedin.OfflineSearch
3821
+ */
3822
+ export type TMappedinOfflineSearchAllOptions = {
3823
+ /**
3824
+ * Array of stopwords to ignore when searching, default: english stopwords
3825
+ */
3826
+ stopWords?: string[];
3827
+ /**
3828
+ * Index location tags - typically better to use either tags or descriptions, depending on what's available
3829
+ * @default true
3830
+ */
3831
+ searchTags?: boolean;
3832
+ /**
3833
+ * Index location descriptions - typically better to use either tags or descriptions, depending on what's available
3834
+ * @default true
3835
+ */
3836
+ searchDescriptions?: boolean;
3837
+ /**
3838
+ * Also index all tags for every location in every category (caution: this may slow down indexing and search)
3839
+ * @default false
3840
+ */
3841
+ searchTagsInCategories?: boolean;
3842
+ /**
3843
+ * Also index all tags for every location in every category (caution: this may slow down indexing and search)
3844
+ * @default false
3845
+ */
3846
+ searchDescriptionsInCategories?: boolean;
3847
+ /**
3848
+ * Initialize Search with a previously indexed JSON string (outputted by OfflineSearch.toJSON())
3849
+ */
3850
+ jsonIndex?: string;
3851
+ /**
3852
+ * Use the location polygons' rank in weighing results
3853
+ */
3854
+ useLocationRank?: boolean;
3855
+ /**
3856
+ * Emit Analytics events when doing search
3857
+ * @default true when running in production
3858
+ */
3859
+ emitAnalyticsEvents?: boolean;
3860
+ /**
3861
+ * Fine tune search constants
3862
+ */
3863
+ constants: {
3864
+ /**
3865
+ * Fuzziness index for location names and tags
3866
+ * @default 0.09
3867
+ */
3868
+ PRIMARY_INDEX_FUZZYNESS: number;
3869
+ /**
3870
+ * Multiplier for location names (1 by default)
3871
+ * @default 1
3872
+ */
3873
+ PRIMARY_INDEX_WEIGHT: number;
3874
+ /**
3875
+ * Multiplier for descriptions
3876
+ * @default 0.025
3877
+ */
3878
+ SECONDARY_INDEX_WEIGHT: number;
3879
+ /**
3880
+ * Multiplier for location names
3881
+ * @default 1
3882
+ */
3883
+ LOCATION_NAME_WEIGHT: number;
3884
+ /**
3885
+ * Multiplier for category names
3886
+ * @default 0.5
3887
+ */
3888
+ CATEGORY_NAME_WEIGHT: number;
3889
+ /**
3890
+ * Multiplier for category locations' descriptions
3891
+ * @default 0.0005
3892
+ */
3893
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
3894
+ /**
3895
+ * Multiplier for category locations' tags
3896
+ * @default 0.0005
3897
+ */
3898
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
3899
+ /**
3900
+ * Multiplier for category locations' names
3901
+ * @default 0.01
3902
+ */
3903
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
3904
+ /**
3905
+ * Multiplier for location tags
3906
+ * @default 0.05
3907
+ */
3908
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
3909
+ /**
3910
+ * Default rank when one isn't available in the data, default = 1
3911
+ * @default 1
3912
+ */
3913
+ LOCATION_DEFAULT_RANK: number;
3914
+ /**
3915
+ * Ratio of Fuzzy Searches of Location names and tags relative to exact
3916
+ * @default 0.01
3917
+ */
3918
+ RATIO_OF_FUZZY_TO_EXACT: number;
3919
+ /**
3920
+ * Ratio of Prefix Searches of Location names and tags relative to exact
3921
+ * @default 0.2
3922
+ */
3923
+ RATIO_OF_PREFIX_TO_EXACT: number;
3924
+ };
3925
+ };
3926
+ export type TMappedinOfflineAllSearchMatch = {
3927
+ /**
3928
+ * The term that was found
3929
+ */
3930
+ term: string;
3931
+ /**
3932
+ * Term's weight
3933
+ */
3934
+ weight: number;
3935
+ /**
3936
+ * What field the search matched on
3937
+ */
3938
+ matchesOn: string;
3939
+ /**
3940
+ * The value of that field
3941
+ */
3942
+ value?: string;
3943
+ };
3944
+ export type TMappedinOfflineSearchOptions = Partial<TMappedinOfflineSearchAllOptions>;
3945
+ export type TMappedinOfflineSearchResult = {
3946
+ /**
3947
+ * Type describing the object
3948
+ */
3949
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
3950
+ /**
3951
+ * Details on why the result was returned
3952
+ */
3953
+ matches: TMappedinOfflineAllSearchMatch[];
3954
+ /**
3955
+ * Found object
3956
+ */
3957
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
3958
+ /**
3959
+ * Total score of the result
3960
+ */
3961
+ score: number;
3962
+ };
3963
+ export type TMappedinOfflineSearchSuggestions = {
3964
+ /**
3965
+ * Total number of suggestions generated
3966
+ */
3967
+ total: number;
3968
+ /**
3969
+ * List of suggestions
3970
+ */
3971
+ hits: {
3972
+ /**
3973
+ * Suggestion text
3974
+ */
3975
+ text: string;
3976
+ }[];
3977
+ };
3978
+ /**
3979
+ * A {@link OfflineSearch} is an offline search module. It can be initialized at any time by passing the {@link Mappedin} object and a set of {@link TMappedinOfflineSearchOptions} options.
3980
+ *
3981
+ *
3982
+ * @class Mappedin.OfflineSearch
3983
+ */
3984
+ export class OfflineSearch {
3985
+ #private;
3986
+ constructor(
3987
+ /**
3988
+ * Mappedin Venue Object, typically returned by `getVenue`/`showVenue`
3989
+ */
3990
+ mappedin: Mappedin, options?: TMappedinOfflineSearchOptions);
3991
+ /**
3992
+ * Get Suggestions for term
3993
+ */
3994
+ suggest(
3995
+ /**
3996
+ * Search term
3997
+ */
3998
+ term: string): Promise<TMappedinOfflineSearchSuggestions>;
3999
+ /**
4000
+ * Search for a term
4001
+ */
4002
+ search(
4003
+ /**
4004
+ * Search term
4005
+ */
4006
+ term: string): Promise<TMappedinOfflineSearchResult[]>;
4007
+ /**
4008
+ * Export search index to JSON for storage/caching - this would avoid having to re-index
4009
+ * on page reload
4010
+ */
4011
+ toJSON(): Promise<string>;
4012
+ /**
4013
+ * Add a custom query to the search index
4014
+ */
4015
+ addQuery(params: {
4016
+ /**
4017
+ * Query string to match for this object
4018
+ */
4019
+ query: string;
4020
+ /**
4021
+ * Object that is returned when query matches
4022
+ */
4023
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
4024
+ /**
4025
+ * Optional weight to multiply by the score
4026
+ */
4027
+ weight?: number;
4028
+ }): Promise<void>;
4029
+ }
4030
+ }
4031
+
3467
4032
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types' {
3468
4033
  /**
3469
4034
  * This file contains the API types for MappedinSDK - before they get turned into Classes
@@ -3579,9 +4144,6 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3579
4144
  export type TMapGroup = {
3580
4145
  name: string;
3581
4146
  id: string;
3582
- maps: {
3583
- id: TMap['id'];
3584
- }[];
3585
4147
  };
3586
4148
  export type TBuilding = TLocation & {
3587
4149
  groupId: string;
@@ -3634,27 +4196,32 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3634
4196
  entranceNodeId: string;
3635
4197
  score: number;
3636
4198
  };
3637
- export type TVenue = {
3638
- address: string;
3639
- city: string;
3640
- countrycode: string;
3641
- defaultMap: string;
3642
- externalId: string;
4199
+ export type TLocationState = {
3643
4200
  id: string;
3644
- latitude: number;
3645
- logo: TLogo;
3646
- longitude: number;
3647
- metadata?: any;
3648
4201
  name: string;
3649
- operationHours: TOpeningHours[];
3650
- postal: string;
3651
- slug: string;
3652
- state: string;
3653
- telephone: string;
3654
- tzid: string;
3655
- tzidOverride: string;
3656
- utcOffset: string;
3657
- website: string;
4202
+ value: string;
4203
+ };
4204
+ export type TVenue = {
4205
+ address?: string;
4206
+ city?: string;
4207
+ countrycode?: string;
4208
+ defaultMap?: string;
4209
+ externalId?: string;
4210
+ id?: string;
4211
+ latitude?: number;
4212
+ logo?: TLogo;
4213
+ longitude?: number;
4214
+ metadata?: any;
4215
+ name?: string;
4216
+ operationHours?: TOpeningHours[];
4217
+ postal?: string;
4218
+ slug?: string;
4219
+ state?: string;
4220
+ telephone?: string;
4221
+ tzid?: string;
4222
+ tzidOverride?: string;
4223
+ utcOffset?: string;
4224
+ website?: string;
3658
4225
  };
3659
4226
  export type TMappedinAPI = {
3660
4227
  nodes: TNode[];
@@ -3666,6 +4233,8 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3666
4233
  themes: any;
3667
4234
  venue: TVenue;
3668
4235
  vortexes: TVortex[];
4236
+ locationStates?: TLocationState[];
4237
+ imageBinaries?: Map<string, Uint8Array>;
3669
4238
  };
3670
4239
  }
3671
4240
 
@@ -3804,6 +4373,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3804
4373
  RIGHT = "right"
3805
4374
  }
3806
4375
  class FloatingLabel extends BaseCollider implements ISmarterLabel {
4376
+ #private;
3807
4377
  lines: number;
3808
4378
  contextConfigured: boolean;
3809
4379
  fillText: TDrawFn | undefined;
@@ -3813,11 +4383,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3813
4383
  clearColor: () => void;
3814
4384
  zoomProportion: number;
3815
4385
  _cache: {};
3816
- _dirty: boolean;
3817
4386
  appearance: TAppearanceFilledIn;
3818
4387
  mapView: ICore;
3819
4388
  constructor(options: TFloatingLabelOptionsInternal, mapView: ICore);
3820
- enable(): void;
4389
+ enable(updateEngine?: boolean): void;
3821
4390
  get strategies(): TColliderStrategy[];
3822
4391
  getCachedSymbol(orientation: any, textAlign: any, xCoordinate: any): any;
3823
4392
  colliderDidMount(): void;
@@ -3826,7 +4395,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3826
4395
  colliderDidUpdateVisiblity(): void;
3827
4396
  colliderDidGoOutsideGrid(): void;
3828
4397
  colliderDidNotFindAHome(): void;
3829
- disable(): void;
4398
+ disable(updateEngine?: boolean): void;
3830
4399
  draw(context: CanvasRenderingContext2D): void;
3831
4400
  static original: FloatingLabel;
3832
4401
  static clone(options: TFloatingLabelOptionsInternal, mapView: ICore): any;
@@ -3957,19 +4526,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3957
4526
  }
3958
4527
  export type TBlueDotPositionUpdate = {
3959
4528
  /**
3960
- * What Map is Blue Dot on
4529
+ * The {@link MappedinMap} Blue Dot position is on
3961
4530
  */
3962
4531
  map?: MappedinMap;
3963
4532
  /**
3964
- * The nearest Node to the BlueDot
4533
+ * The nearest {@link MappedinNode} to the Blue Dot position
3965
4534
  */
3966
4535
  nearestNode?: MappedinNode;
3967
4536
  /**
3968
- * Actual position of BlueDot (post smoothing, if smoothing is on)
4537
+ * Actual position of Blue Dot (post smoothing, if smoothing is enabled)
3969
4538
  */
3970
4539
  position?: TGeolocationObject;
3971
4540
  /**
3972
- * Current BlueDot bearing
4541
+ * Current Blue Dot bearing
3973
4542
  */
3974
4543
  bearing?: number;
3975
4544
  };
@@ -3979,11 +4548,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3979
4548
  */
3980
4549
  name: E_BLUEDOT_STATE;
3981
4550
  /**
3982
- * Visiblity State of the BlueDot marker
4551
+ * Visiblity state of the Blue Dot marker
3983
4552
  */
3984
4553
  markerVisibility?: E_BLUEDOT_MARKER_STATE;
3985
4554
  /**
3986
- * Reason why BlueDot may be in the current state
4555
+ * Reason why Blue Dot may be in the current state
3987
4556
  */
3988
4557
  reason?: E_BLUEDOT_STATE_REASON;
3989
4558
  /**
@@ -4003,80 +4572,84 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4003
4572
  FakeGeolocation: typeof FakeGeolocation;
4004
4573
  };
4005
4574
  export default BlueDot;
4006
- }
4007
-
4008
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip' {
4009
- import './Mappedin.SmartTooltip.scss';
4010
- import { COLLISION_RANKING_TIERS } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4011
- import HTMLCollider, { IHTMLCollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider';
4012
- import { Vector3 } from 'three';
4013
- import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4014
- /**
4015
- *
4016
- * A Tooltip is an html element that attempts to orient itself around an anchor in 3D space. It will always maintain the same size on the screen, but will attempt to change its orientation based on other colliders in the scene.
4017
- *
4018
- * Make your own and add it directly to the map with {{#crossLink "MapView/createTooltip:method"}}{{/crossLink}}, or use the constructor and add it when you want.
4019
- *
4020
- * You will need to specify at least `options.position` and one of `options.html` and `options.selector` OR `options.contentHtml`.
4021
- *
4022
- *
4023
- * @class Tooltip
4024
- *
4025
- * @constructor
4026
- * @param options {Object} Passes on options (e.g. html, text, position, map, padding, defaultAnchorType, enabledAnchorTypes, collisionRank) to MapView.Tooltip's options argument.
4027
- * @param [options.html] Pass in custom html for your marker, if using this method you must also pass in a selector for your content.
4028
- * @param [options.selector] Used in conjuction with the html property to select the div for repositioning
4029
- * @param [options.contentHtml] Use mappedin's default tooltip styling with custom inner html content
4030
- * @param [options.text] Instead of passing html pass in plain text to be displayed in the tooltip
4031
- * @param [options.position] should be something you got from {{#crossLink "MapView/getPositionPolygon:method"}}{{/crossLink}} or {{#crossLink "MapView/getPositionNode:method"}}{{/crossLink}}.
4032
- * @param [options.map] The map ID where the tooltip should be displayed
4033
- * @param [options.defaultAnchorType] The default orientation to place the tooltip.
4034
- * @param [options.padding] The distance in pixel to offset the tooltip from the anchor point.
4035
- * @param [options.enabledAnchorTypes] An object used to disable certain anchor positions from being used.
4036
- * @param [options.collisionRank] The rank of the object used when comparing colliders to determine which should be shown.
4037
- */
4575
+ }
4576
+
4577
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip' {
4578
+ import './Mappedin.SmartTooltip.scss';
4579
+ import { COLLISION_RANKING_TIERS } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4580
+ import HTMLCollider, { IHTMLCollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider';
4581
+ import { Vector3 } from 'three';
4582
+ import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4583
+ /**
4584
+ *
4585
+ * A Tooltip is an html element that attempts to orient itself around an anchor in 3D space. It will always maintain the same size on the screen, but will attempt to change its orientation based on other colliders in the scene.
4586
+ *
4587
+ * Make your own and add it directly to the map with {{#crossLink "MapView/createTooltip:method"}}{{/crossLink}}, or use the constructor and add it when you want.
4588
+ *
4589
+ * You will need to specify at least `options.position` and one of `options.html` and `options.selector` OR `options.contentHtml`.
4590
+ *
4591
+ *
4592
+ * @class Tooltip
4593
+ *
4594
+ * @constructor
4595
+ * @param options {Object} Passes on options (e.g. html, text, position, map, padding, defaultAnchorType, enabledAnchorTypes, collisionRank) to MapView.Tooltip's options argument.
4596
+ * @param [options.html] Pass in custom html for your marker, if using this method you must also pass in a selector for your content.
4597
+ * @param [options.selector] Used in conjuction with the html property to select the div for repositioning
4598
+ * @param [options.contentHtml] Use mappedin's default tooltip styling with custom inner html content
4599
+ * @param [options.text] Instead of passing html pass in plain text to be displayed in the tooltip
4600
+ * @param [options.position] should be something you got from {{#crossLink "MapView/getPositionPolygon:method"}}{{/crossLink}} or {{#crossLink "MapView/getPositionNode:method"}}{{/crossLink}}.
4601
+ * @param [options.map] The map ID where the tooltip should be displayed
4602
+ * @param [options.defaultAnchorType] The default orientation to place the tooltip.
4603
+ * @param [options.padding] The distance in pixel to offset the tooltip from the anchor point.
4604
+ * @param [options.enabledAnchorTypes] An object used to disable certain anchor positions from being used.
4605
+ * @param [options.collisionRank] The rank of the object used when comparing colliders to determine which should be shown.
4606
+ */
4038
4607
  export type TSmartTooltipOptions = {
4039
- html?: string;
4040
- contentHtml?: string;
4041
- text?: string;
4042
- position: Vector3;
4043
- selector?: string;
4044
- map: string;
4045
- padding?: number;
4046
- alwaysVisible?: boolean;
4047
- collisionRank?: COLLISION_RANKING_TIERS;
4048
- defaultAnchorType?: string;
4049
- enabledAnchorTypes?: {
4050
- [type: string]: boolean;
4051
- };
4608
+ html?: string;
4609
+ contentHtml?: string;
4610
+ text?: string;
4611
+ position: Vector3;
4612
+ selector?: string;
4613
+ map: string;
4614
+ padding?: number;
4615
+ alwaysVisible?: boolean;
4616
+ collisionRank?: COLLISION_RANKING_TIERS;
4617
+ defaultAnchorType?: string;
4618
+ enabledAnchorTypes?: {
4619
+ [type: string]: boolean;
4620
+ };
4052
4621
  };
4053
4622
  type TTooltipStyle = {
4054
- top?: string;
4055
- left?: string;
4623
+ top?: string;
4624
+ left?: string;
4056
4625
  };
4057
4626
  export type TOOLTIP_ANCHOR = {
4058
- top?: boolean;
4059
- left?: boolean;
4060
- topLeft?: boolean;
4061
- right?: boolean;
4062
- topRight?: boolean;
4063
- bottom?: boolean;
4064
- bottomLeft?: boolean;
4065
- bottomRight?: boolean;
4627
+ top?: boolean;
4628
+ left?: boolean;
4629
+ topLeft?: boolean;
4630
+ right?: boolean;
4631
+ topRight?: boolean;
4632
+ bottom?: boolean;
4633
+ bottomLeft?: boolean;
4634
+ bottomRight?: boolean;
4066
4635
  };
4067
4636
  class SmartTooltip extends HTMLCollider implements IHTMLCollider {
4068
- #private;
4069
- className: string;
4070
- _el: Element | null;
4071
- style: TTooltipStyle;
4072
- constructor(options: TSmartTooltipOptions);
4073
- updateClassName: (className: any) => void;
4074
- get strategies(): TColliderStrategy[];
4075
- colliderDidMount(): void;
4076
- setAction(action: any): void;
4077
- colliderDidNotFindAHome(): void;
4078
- colliderDidGoOffscreen(): void;
4079
- colliderDidUpdateVisiblity(): void;
4637
+ #private;
4638
+ className: string;
4639
+ _el: Element | null;
4640
+ style: TTooltipStyle;
4641
+ constructor(options: TSmartTooltipOptions);
4642
+ updateClassName: (className: any) => void;
4643
+ get strategies(): TColliderStrategy[];
4644
+ colliderDidMount(): void;
4645
+ /**
4646
+ * @internal
4647
+ */
4648
+ updateDimensionsImmediately(): void;
4649
+ setAction(action: any): void;
4650
+ colliderDidNotFindAHome(): void;
4651
+ colliderDidGoOffscreen(): void;
4652
+ colliderDidUpdateVisiblity(): void;
4080
4653
  }
4081
4654
  export default SmartTooltip;
4082
4655
  }
@@ -4088,6 +4661,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot
4088
4661
  import { TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4089
4662
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
4090
4663
  import EventSystemLayer from '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem';
4664
+ /**
4665
+ * Blue Dot Layer used for controlling the Blue Dot and listening to Blue Dot state change and position update events. Use the {@link on}-method to set listeners for {@link TBlueDotStateChange} and {@link TBlueDotPositionUpdate} events.
4666
+ */
4091
4667
  class BlueDotLayer extends PubSub<E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT> {
4092
4668
  #private;
4093
4669
  /**
@@ -4099,7 +4675,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot
4099
4675
  */
4100
4676
  enable(options?: TEnableBlueDotOptions): void;
4101
4677
  /**
4102
- * Disable BlueDot
4678
+ * Disables Blue Dot and stops emitting events.
4103
4679
  */
4104
4680
  disable(): void;
4105
4681
  }
@@ -4118,7 +4694,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey
4118
4694
  */
4119
4695
  constructor(mapView: MapView, core: ICore);
4120
4696
  /**
4121
- * Draw a Journey
4697
+ * Draw a Journey based on directions. Example usage:
4698
+ *
4699
+ * ```typescript
4700
+ * const startLocation = venue.locations.find(location => location.name === "Cleo");
4701
+ * const endLocation = venue.locations.find(location => location.name === "American Eagle");
4702
+ *
4703
+ * const directions = startLocation.directionsTo(endLocation);
4704
+ * mapView.Journey.draw(directions);
4705
+ * ```
4706
+ *
4707
+ * Use options to set connection (such as elevators and escalators) HTML tooltip template, departure and destination marker templates, path style and polygon higlight color. If no options are set, sane defaults are used to draw markers, tooltips and polygon highlights.
4122
4708
  */
4123
4709
  draw(directions: MappedinDirections | MappedinDirections[], options?: TJourneyOptions): Journey;
4124
4710
  /**
@@ -4151,8 +4737,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4151
4737
  }
4152
4738
  export class FlatLabel {
4153
4739
  constructor(options: any, venue: any, mapObject: any, DEFAULT_FONT: any, polygonMeshesById: any, textLabelsByPolygonId: any, mapView: any, scope: any, atlas: any);
4740
+ id: any;
4154
4741
  text: any;
4155
4742
  stateText: string;
4743
+ fullText: any;
4156
4744
  font: any;
4157
4745
  atlas: any;
4158
4746
  canvasBounds: any;
@@ -4166,8 +4754,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4166
4754
  polygonMeshesById: any;
4167
4755
  polyId: any;
4168
4756
  map: any;
4169
- color: Color;
4170
- baseColor: Color;
4757
+ color: any;
4758
+ baseColor: any;
4171
4759
  hideOnCreate: boolean;
4172
4760
  hoverLabelText: any;
4173
4761
  fontSize: number;
@@ -4198,7 +4786,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4198
4786
  index: any;
4199
4787
  layout(map: any, origin: any, size: any, rotation: any, uv: any, color: any): void;
4200
4788
  }
4201
- import { Color } from "three/src/math/Color";
4202
4789
  export {};
4203
4790
  }
4204
4791
 
@@ -4376,23 +4963,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-s
4376
4963
  }
4377
4964
  }
4378
4965
 
4379
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraControls' {
4380
- export default CameraControls;
4381
- /**
4382
- * The advanced, manual camera controls for {{#crossLink "MapView"}}{{/crossLink}}. You probably don't need to use this at all, instead relying on the MapView's {{#crossLink "MapView/focusOn:method"}}{{/crossLink}}, {{#crossLink "MapView/resetCamera:method"}}{{/crossLink}} and built in touch/mouse controls.
4383
- * This class will let you do things like change the min/max zoom, tilt, and pan, attach to camera events, and move/animate the camera to specifc points.
4384
- *
4385
- * The camera works by setting an anchor point on the scene at ground level and pointing the camera at it. {{#crossLink "CameraControls/zoom:method"}}{{/crossLink}} controls how far the camera is from the anchor, and {{#crossLink "CameraControls/tilt:method"}}{{/crossLink}}/{{#crossLink "CameraControls/rotate:method"}}{{/crossLink}} controls the angle the camera is rotated about it.
4386
- * The camera will always be pointed directly at the anchor point. {{#crossLink "CameraControls/pan:method"}}{{/crossLink}} or {{#crossLink "CameraControls/setPosition:method"}}{{/crossLink}} will move that anchor around on the 2D ground plane.
4387
- *
4388
- * Created for you automatically with a MapView, don't re-create yourself.
4389
- * @type {any}
4390
- *
4391
- * @class CameraControls
4392
- */
4393
- let CameraControls: any;
4394
- }
4395
-
4396
4966
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
4397
4967
  export default RENDER;
4398
4968
  namespace RENDER {
@@ -4748,9 +5318,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView' {
4748
5318
 
4749
5319
  declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4750
5320
  import Search from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search';
4751
- import Analytics from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics';
5321
+ import Analytics from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Analytics';
4752
5322
  import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4753
- import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
5323
+ import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4754
5324
  import { PositionUpdater } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4755
5325
  import type { TMapViewOptions, TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4756
5326
  import { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
@@ -4781,9 +5351,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4781
5351
  */
4782
5352
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
4783
5353
  export { COLLISION_RANKING_TIERS, STATE, E_SDK_EVENT, E_BLUEDOT_STATE_REASON, E_BLUEDOT_MARKER_STATE, E_BLUEDOT_EVENT, E_BLUEDOT_STATE, E_CAMERA_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4784
- export { Search, getVenue, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
5354
+ export { Search, getVenue, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
4785
5355
  import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
4786
- const setAssetManager: (am: any) => void;
5356
+ const setAssetManager: <T extends DefaultAssetManager>(am: T) => void;
4787
5357
  /**
4788
5358
  * @internal
4789
5359
  */
@@ -4797,8 +5367,234 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4797
5367
  export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4798
5368
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4799
5369
  export { SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4800
- export type { TGetVenueOptions, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, TShowVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4801
- export { Mappedin, MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue';
5370
+ export type { TGetVenueOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
5371
+ export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/get-venue';
5372
+ export { BundleAssetManager } from '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-manager';
5373
+ }
5374
+
5375
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
5376
+ import { FeatureCollection, Polygon, Point, MultiPolygon, Position } from 'geojson';
5377
+ type ManifestFile = {
5378
+ type: 'file';
5379
+ name: string;
5380
+ };
5381
+ type ManifestFolder = {
5382
+ type: 'folder';
5383
+ name: string;
5384
+ children: ManifestFile[];
5385
+ };
5386
+ type OpeningHours = {
5387
+ opens: string;
5388
+ closes: string;
5389
+ dayOfWeek: string;
5390
+ validFrom?: string;
5391
+ validThrough?: string;
5392
+ };
5393
+ type Image = {
5394
+ original?: string;
5395
+ xlarge?: string;
5396
+ xxlarge?: string;
5397
+ medium?: string;
5398
+ '140x140'?: string;
5399
+ xsmall?: string;
5400
+ xxsmall?: string;
5401
+ '66x66'?: string;
5402
+ small?: string;
5403
+ large?: string;
5404
+ };
5405
+ type PolygonImage = string;
5406
+ type Phone = {
5407
+ number: string;
5408
+ extension?: string;
5409
+ };
5410
+ type Link = {
5411
+ label: string;
5412
+ url: string;
5413
+ };
5414
+ type Social = {
5415
+ facebook?: string;
5416
+ twitter?: string;
5417
+ instagram?: string;
5418
+ website?: string;
5419
+ };
5420
+ type LocationState = {
5421
+ type: string;
5422
+ start?: string;
5423
+ end?: string;
5424
+ };
5425
+ type SiblingGroup = {
5426
+ label: string;
5427
+ siblings: string[];
5428
+ };
5429
+ export type MILocationProperties = {
5430
+ id: string;
5431
+ address?: string | null;
5432
+ categories: string[];
5433
+ description?: string | null;
5434
+ email?: string | null;
5435
+ externalId?: string | null;
5436
+ hours?: OpeningHours[] | null;
5437
+ links?: Link[] | null;
5438
+ logo?: Image | null;
5439
+ name: string;
5440
+ phone?: Phone | null;
5441
+ picture?: Image | null;
5442
+ services?: string | null;
5443
+ siblingGroups?: SiblingGroup[] | null;
5444
+ social?: Social | null;
5445
+ spaces?: TLocationSpaceReference[] | null;
5446
+ states?: LocationState[] | null;
5447
+ type: string;
5448
+ };
5449
+ export type MICategoryProperties = {
5450
+ id: string;
5451
+ name: string;
5452
+ picture?: Image;
5453
+ };
5454
+ export type MIBuildingProperties = {
5455
+ id: string;
5456
+ name: string;
5457
+ venue: string;
5458
+ };
5459
+ export type MILevelProperties = {
5460
+ id: string;
5461
+ abbreviation?: string;
5462
+ building?: string;
5463
+ elevation?: number;
5464
+ name: string;
5465
+ };
5466
+ export type MIPolygonlikeProperties = {
5467
+ id: string;
5468
+ altitude?: string;
5469
+ color?: string;
5470
+ externalId?: string | null;
5471
+ height?: string;
5472
+ layer?: string;
5473
+ level: string;
5474
+ parent?: string | null;
5475
+ };
5476
+ type TPseudoNodeSpaceReference = {
5477
+ node: string;
5478
+ map: string;
5479
+ };
5480
+ export type TRealSpaceReference = {
5481
+ id: string;
5482
+ map: string;
5483
+ };
5484
+ type TLocationSpaceReference = TPseudoNodeSpaceReference | TRealSpaceReference;
5485
+ export type TEntrances = {
5486
+ id: string;
5487
+ level: string;
5488
+ };
5489
+ export type MISpaceProperties = MIPolygonlikeProperties & {
5490
+ entrances: TEntrances[];
5491
+ };
5492
+ export type MIObstructionProperties = MIPolygonlikeProperties;
5493
+ export type MIConnectionProperties = {
5494
+ id: string;
5495
+ accessible: boolean;
5496
+ destinations: string[];
5497
+ level: string;
5498
+ multiplier: number;
5499
+ name: string;
5500
+ type: string;
5501
+ weight: number;
5502
+ };
5503
+ export type MINodeProperties = {
5504
+ id: string;
5505
+ accessible: boolean;
5506
+ externalId: string | null;
5507
+ level: string;
5508
+ multiplier: number;
5509
+ neighbors: string[];
5510
+ weight: number;
5511
+ };
5512
+ export type MIManifestProperties = {
5513
+ name: string;
5514
+ folder_struct: (ManifestFolder | ManifestFile)[];
5515
+ version: string;
5516
+ time: string;
5517
+ };
5518
+ export type MIStyle = {
5519
+ id: string;
5520
+ /** The altitude of the bottom of the geometry, in metres. */
5521
+ altitude: number;
5522
+ color: string;
5523
+ height: number;
5524
+ image?: PolygonImage;
5525
+ opacity: number;
5526
+ };
5527
+ export type MIImageInstance = {
5528
+ /** The local path or URL of the image. */
5529
+ path: string;
5530
+ /** The position of the centre of the image, in [long, lat] form. */
5531
+ position: Position;
5532
+ /** The altitude of the image, in metres. */
5533
+ altitude: number;
5534
+ /** Euler angles representing the rotation of the image, in degrees. Angles are in XYZ order. */
5535
+ rotation: {
5536
+ x: number;
5537
+ y: number;
5538
+ z: number;
5539
+ };
5540
+ /** The size of the image, in metres. */
5541
+ size: {
5542
+ x: number;
5543
+ y: number;
5544
+ };
5545
+ /** The portion of the image to display. */
5546
+ viewBox: {
5547
+ top: number;
5548
+ left: number;
5549
+ width: number;
5550
+ height: number;
5551
+ };
5552
+ /**
5553
+ * A space or obstruction to associate this image with. If provided,
5554
+ * changes to the polygon's visibility will affect this image.
5555
+ * */
5556
+ polygonId?: string;
5557
+ };
5558
+ export type MIGeoJSONManifestCollection = FeatureCollection<Point, MIManifestProperties>;
5559
+ export type MIGeoJSONBuildingCollection = FeatureCollection<Polygon, MIBuildingProperties>;
5560
+ export type MIGeoJSONConnectionCollection = FeatureCollection<Point, MIConnectionProperties>;
5561
+ export type MIGeoJSONLevelCollection = FeatureCollection<Polygon | MultiPolygon, MILevelProperties>;
5562
+ export type MIGeoJSONSpaceCollection = FeatureCollection<Polygon, MISpaceProperties>;
5563
+ export type MIGeoJSONObstructionCollection = FeatureCollection<Polygon, MIObstructionProperties>;
5564
+ export type MIGeoJSONNodeCollection = FeatureCollection<Point, MINodeProperties>;
5565
+ export type MIGeoJSONLocationCollection = FeatureCollection<null, MILocationProperties>;
5566
+ export type MIGeoJSONCategoryCollection = FeatureCollection<null, MICategoryProperties>;
5567
+ export type WithIDs<T> = Map<string, T>;
5568
+ export type MIStyleCollection = MIStyle[];
5569
+ /**
5570
+ * A mapping of polygon IDs to style IDs;
5571
+ */
5572
+ export type MIPolygonStyle = {
5573
+ [key in string]: string;
5574
+ };
5575
+ export type MIImageInstanceCollection = MIImageInstance[];
5576
+ /**
5577
+ * The entire data collection for an MVF, in a single JSON collection.
5578
+ *
5579
+ */
5580
+ export type MVFDataJSON = {
5581
+ connection: WithIDs<MIGeoJSONConnectionCollection>;
5582
+ level: WithIDs<MIGeoJSONLevelCollection>;
5583
+ node: WithIDs<MIGeoJSONNodeCollection>;
5584
+ obstruction: WithIDs<MIGeoJSONObstructionCollection>;
5585
+ space: WithIDs<MIGeoJSONSpaceCollection>;
5586
+ building: MIGeoJSONBuildingCollection;
5587
+ category: MIGeoJSONCategoryCollection;
5588
+ style: MIStyleCollection;
5589
+ polygonStyle: WithIDs<MIPolygonStyle>;
5590
+ imageInstance: WithIDs<MIImageInstanceCollection>;
5591
+ location: MIGeoJSONLocationCollection;
5592
+ manifest: MIGeoJSONManifestCollection;
5593
+ };
5594
+ export type MVFData = MVFDataJSON & {
5595
+ imageBinaries: WithIDs<Uint8Array>;
5596
+ };
5597
+ export {};
4802
5598
  }
4803
5599
 
4804
5600
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings' {
@@ -4850,9 +5646,95 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme
4850
5646
  }
4851
5647
  }
4852
5648
 
5649
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Analytics' {
5650
+ type AnalyticsOptions = {
5651
+ clientId?: string;
5652
+ clientSecret?: string;
5653
+ accessToken?: string;
5654
+ noAuth?: boolean;
5655
+ venue: string;
5656
+ testMode?: boolean | string;
5657
+ context?: string;
5658
+ platformString?: string;
5659
+ };
5660
+ /**
5661
+ * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
5662
+ * This will be created for you as part of Mappedin.{{#crossLink "Mappedin/initialize:method"}}{{/crossLink}}, but you can also create one manually. You are mostly going to use `locationSelected`.
5663
+ *
5664
+ * @type {any}
5665
+ *
5666
+ * @class Analytics
5667
+ * @param options {Object} A list of configuration options for the Analytics API.
5668
+ * @param [options.clientId] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
5669
+ * @param [options.clientSecret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
5670
+ * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
5671
+ * @param [options.context] {String} The context to pass with the analytics request. Defaults to "websdk".
5672
+ * @param [options.noAuth] {Boolean} Whether authentication should not be sent with analytics requests.
5673
+ * @param [options.testMode] {Boolean} Whether analytics events should be dropped because this is running in a test environment.
5674
+ */
5675
+ class Analytics {
5676
+ #private;
5677
+ constructor(options: AnalyticsOptions);
5678
+ track(target: any, query: any): void;
5679
+ /**
5680
+ * Whenever a location is selected, you should fire this event. What "selected" means can vary by venue,
5681
+ * but a good rule of thumb is that you fire the event whenever you would show the location's details.
5682
+ * Typically this is when the user taps it's polygon on the map, picks it from search results or a category list.
5683
+ * or deep links directly into the map.
5684
+ * @method locationSelected
5685
+ * @param location {MappedinLocation} The location the user selected.
5686
+ */
5687
+ locationSelected(location: any): void;
5688
+ /**
5689
+ * Whenever a category is selected, you should fire this event.
5690
+ * @method categorySelected
5691
+ * @param category {MappedinCategory} The category the user selected.
5692
+ */
5693
+ categorySelected(category: any): void;
5694
+ mapViewLoaded(type: any, forced: any, benchmark: any, reason: any): void;
5695
+ /**
5696
+ * Whenever a user requests directions, you should fire this event.
5697
+ * @method getDirections
5698
+ * @param start {MappedinLocation} The start location for wayfinding.
5699
+ * @param end {MappedinLocation} The end location for wayfinding.
5700
+ */
5701
+ getDirections(start: any, end: any): void;
5702
+ getSessionID(): string;
5703
+ getDeviceID(): string;
5704
+ /**
5705
+ * @param mode {Boolean} Indicates whether the user's geolocation is enabled.
5706
+ */
5707
+ setGeolocationMode(mode: any): void;
5708
+ /**
5709
+ * Track an event.
5710
+ * @method trackBlueDotEvent
5711
+ * @param event {String}
5712
+ * event param should be a property of the {{#crossLink "Analytics/BLUEDOT_EVENT:property"}}{{/crossLink}} property.
5713
+ */
5714
+ trackBlueDotEvent(blueDotEvent: any): void;
5715
+ trackSearch(searchAnalyticsObject: any): void;
5716
+ trackSearchSuggest(searchAnalyticsObject: any): void;
5717
+ /**
5718
+ * Enum of valid bluedot events.
5719
+ * Pass a property of this into the {{#crossLink "Analytics/trackBlueDotEvent:method"}}{{/crossLink}} method.
5720
+ * Valid properties are: ATTEMPT_BLUEDOT, FOUND_POSITION, FOUND_FLOOR.
5721
+ * @property BLUEDOT_EVENT {Object}
5722
+ * @example
5723
+ * Analytics.trackBlueDotEvent(Analytics.BLUEDOT_EVENT.ATTEMPT_BLUEDOT)
5724
+ */
5725
+ static BLUEDOT_EVENT: {
5726
+ ATTEMPT_BLUEDOT: string;
5727
+ FOUND_POSITION: string;
5728
+ FOUND_FLOOR: string;
5729
+ };
5730
+ }
5731
+ export default Analytics;
5732
+ }
5733
+
4853
5734
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
4854
5735
  import SmartCollisionEngine from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
4855
5736
  import { Vector3 } from 'three';
5737
+ import { Rectangle } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
4856
5738
  export type TRange = [number, number, number, number];
4857
5739
  type TCustomCollider<T> = ICollider & T;
4858
5740
  export type TColliderStrategyProps = {
@@ -4866,6 +5748,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4866
5748
  getBoundingBox: (TColliderStrategyProps: any) => TRange;
4867
5749
  onStrategySelected: (collider: TCustomCollider<any>) => void;
4868
5750
  };
5751
+ export type TGetBoundingBox = ({ x, y }: {
5752
+ x: any;
5753
+ y: any;
5754
+ }) => [number, number, number, number];
4869
5755
  export type TDimensions = {
4870
5756
  width: number;
4871
5757
  height: number;
@@ -4878,13 +5764,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4878
5764
  export interface ICollider {
4879
5765
  dimensions: TDimensions;
4880
5766
  screenPosition: [number, number];
4881
- currentStrategyName: string | null;
5767
+ getBoundingBoxForCurrentStrategy?: TGetBoundingBox;
4882
5768
  options?: Record<string, unknown>;
4883
5769
  mapId: string;
4884
5770
  visible: boolean;
4885
5771
  rank: number;
4886
- _dirty?: boolean;
4887
5772
  id: string;
5773
+ _bboxes?: [
5774
+ string,
5775
+ Rectangle,
5776
+ (collider: TCustomCollider<any>) => void,
5777
+ TGetBoundingBox
5778
+ ][];
5779
+ offscreen?: boolean;
4888
5780
  setAction: (action: EColliderAction) => void;
4889
5781
  action?: EColliderAction;
4890
5782
  position: Vector3;
@@ -4908,15 +5800,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4908
5800
  __engine: any;
4909
5801
  _initialRank: number;
4910
5802
  screenPosition: [number, number];
4911
- currentStrategyName: null;
4912
5803
  enabled: boolean;
4913
5804
  options: any;
4914
5805
  mapId: string;
4915
5806
  id: string;
4916
5807
  action: EColliderAction;
5808
+ getBoundingBoxForCurrentStrategy: undefined;
4917
5809
  rank: number;
4918
5810
  visible: boolean;
4919
- position: Vector3;
5811
+ offscreen: boolean;
5812
+ position: any;
4920
5813
  dimensions: {
4921
5814
  width: number;
4922
5815
  height: number;
@@ -5176,11 +6069,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5176
6069
  }
5177
6070
 
5178
6071
  declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem' {
5179
- import { Object3D, Raycaster } from 'three';
6072
+ import { Object3D } from 'three';
5180
6073
  import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
5181
6074
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
5182
6075
  import BlueDotManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-dot-manager';
5183
- export const raycaster: Raycaster;
6076
+ export const raycaster: any;
5184
6077
  class EventSystemLayer {
5185
6078
  mapView: MapView;
5186
6079
  core: ICore;
@@ -5223,7 +6116,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSy
5223
6116
  };
5224
6117
  hasTouched: boolean;
5225
6118
  calculateMouseCoordinates: (event: any) => void;
5226
- getMouseRayIntersects: (objects: Object3D | Object3D[]) => import("three").Intersection[];
6119
+ getMouseRayIntersects: (objects: Object3D | Object3D[]) => any;
5227
6120
  detectPolygonsUnderMouse: () => any[];
5228
6121
  getMouseMapPosition: () => {
5229
6122
  x: number;
@@ -5403,6 +6296,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5403
6296
  get strategies(): TColliderStrategy[];
5404
6297
  colliderDidMount(): void;
5405
6298
  setAction(action: any): void;
6299
+ colliderDidNotFindAHome(): void;
5406
6300
  colliderDidGoOffscreen(): void;
5407
6301
  colliderDidUpdateVisiblity(): void;
5408
6302
  }
@@ -5410,6 +6304,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5410
6304
  }
5411
6305
 
5412
6306
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject' {
6307
+ export namespace TASK_PRIORITY {
6308
+ const VISIBLE_MAP_HIGH: number;
6309
+ const VISIBLE_MAP_LOW: number;
6310
+ const VISIBLE_MAP_MARKER: number;
6311
+ const ASYNC_MAP_HIGH: number;
6312
+ const ASYNC_MAP_LOW: number;
6313
+ const ASYNC_MAP_MARKER: number;
6314
+ const MAP_LOADED: number;
6315
+ }
5413
6316
  export const SCENE_FROM_LIVE_JSON: false;
5414
6317
  /**
5415
6318
  * A handle to a 3D marker added to a map.
@@ -5439,10 +6342,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5439
6342
  _started: boolean;
5440
6343
  _loaderPromise: null;
5441
6344
  _promiseResolve: null;
6345
+ hoverableMeshChildren: any[];
5442
6346
  objectsDictionary: {};
5443
6347
  north: null;
5444
6348
  mapScale: null;
5445
- object: Object3D;
6349
+ object: any;
5446
6350
  labels: Set<any>;
5447
6351
  tooltips: Set<any>;
5448
6352
  markers: Set<any>;
@@ -5459,6 +6363,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5459
6363
  loadAsync: any;
5460
6364
  _taskScheduler: any;
5461
6365
  id: any;
6366
+ mapRenderingStrategy: any;
5462
6367
  _highPriorityTasks: FrameTaskGroup;
5463
6368
  _lowPriorityTasks: FrameTaskGroup;
5464
6369
  _markerTasks: FrameTaskGroup;
@@ -5466,11 +6371,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5466
6371
  _visibilityLatch: boolean | null;
5467
6372
  _objLoadedComplete: boolean;
5468
6373
  _objLoaded(object: any): any;
6374
+ _objLoadedMerged(object: any): void;
5469
6375
  enableImageFlipping(polygonId: any, rotation: any): void;
5470
6376
  elements: any;
5471
6377
  boundingBox: {
5472
- min: Vector3;
5473
- max: Vector3;
6378
+ min: any;
6379
+ max: any;
5474
6380
  } | undefined;
5475
6381
  loadPolygonNow(polygonId: any): void;
5476
6382
  _addElementToScene(element: any): void;
@@ -5547,10 +6453,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5547
6453
  * @return {ThreeJSMarkerHandle} a unique identifier for the marker
5548
6454
  */
5549
6455
  addThreeJSMarker(options: {
5550
- object?: Object3D | undefined;
5551
- position?: Vector3 | undefined;
6456
+ object?: any;
6457
+ position?: any;
5552
6458
  rotation?: any;
5553
- scale?: Vector3 | undefined;
6459
+ scale?: any;
5554
6460
  }): ThreeJSMarkerHandle;
5555
6461
  /**
5556
6462
  * Remove the given `ThreeJSMarker` from this map.
@@ -5582,9 +6488,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5582
6488
  _popinChildObjects(): void;
5583
6489
  }
5584
6490
  import { PubSub } from "@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub";
5585
- import { Object3D } from "three/src/core/Object3D";
5586
- import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.TaskScheduler";
5587
- import { Vector3 } from "three/src/math/Vector3";
6491
+ import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler";
5588
6492
  }
5589
6493
 
5590
6494
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search' {
@@ -5606,30 +6510,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5606
6510
  let Search: any;
5607
6511
  }
5608
6512
 
5609
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Analytics' {
5610
- export default Analytics;
5611
- /**
5612
- * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
5613
- * This will be created for you as part of Mappedin.{{#crossLink "Mappedin/initialize:method"}}{{/crossLink}}, but you can also create one manually. You are mostly going to use `locationSelected`.
5614
- *
5615
- * @type {any}
5616
- *
5617
- * @class Analytics
5618
- * @param options {Object} A list of configuration options for the Analytics API.
5619
- * @param [options.key] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
5620
- * @param [options.secret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
5621
- * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
5622
- */
5623
- var Analytics: any;
5624
- }
5625
-
5626
6513
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager' {
5627
- import { TextureLoader } from 'three';
6514
+ import { Texture } from 'three';
5628
6515
  import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer';
5629
6516
  export default class DefaultAssetManager {
5630
- textureLoader: TextureLoader;
6517
+ textureLoader: any;
5631
6518
  loadMapPolygons(map: MappedinMap): Promise<any>;
5632
- loadImage(url: string): Promise<unknown>;
6519
+ loadImage(url: string): Promise<Texture>;
6520
+ }
6521
+ }
6522
+
6523
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-manager' {
6524
+ import type { Texture } from 'three';
6525
+ import { Mappedin, MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer';
6526
+ import AssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
6527
+ export class BundleAssetManager extends AssetManager {
6528
+ venueData: Mappedin;
6529
+ constructor(venueData: Mappedin);
6530
+ loadMapPolygons(map: MappedinMap): Promise<Record<string, any>>;
6531
+ loadImage(url: string): Promise<Texture>;
5633
6532
  }
5634
6533
  }
5635
6534
 
@@ -5638,74 +6537,86 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5638
6537
  import './Mappedin.SmartCollisionEngine.scss';
5639
6538
  import { ICollider, TRange } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
5640
6539
  import { MappedinMap, MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
6540
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
6541
+ import { Rectangle, QuadTree } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
5641
6542
  export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
5642
6543
  class SmartCollisionEngine {
5643
- #private;
5644
- _makeCollidersDirtyThrottled: any;
5645
- colliderCanvas: HTMLCanvasElement;
5646
- debugCanvas: HTMLCanvasElement;
5647
- colliderCanvasContext: CanvasRenderingContext2D;
5648
- debugCanvasContext: CanvasRenderingContext2D;
5649
- collisionEngineContainerEl: HTMLDivElement;
5650
- stepsX: any;
5651
- stepsY: any;
5652
- totalWidth: any;
5653
- totalHeight: any;
5654
- project: any;
5655
- grid: Uint8Array;
5656
- colliders: Map<string, ICollider>;
5657
- offscreenRanges: TRange[];
5658
- get sortedColliders(): ICollider[];
5659
- initialized: boolean;
5660
- mapView: MapView;
5661
- constructor(mapView: any);
5662
- init: (container: HTMLDivElement, projectFn: ({ position, mapId }: {
5663
- position: Vector3;
5664
- mapId: MappedinMap['id'];
5665
- }) => {
5666
- x: number;
5667
- y: number;
5668
- }) => void;
5669
- updatePosition: () => void;
5670
- updateVisibility: () => void;
5671
- add: (colliderId: string, collider: ICollider) => void;
5672
- remove: (colliderId: string) => void;
5673
- /**
5674
- * When adding/removing new colliders, or when updating their priorty, we need to make all colliders around them as "dirty",
5675
- * so they can be reconcilded correctly
5676
- */
5677
- makeCollidersDirty: () => void;
5678
- /**
5679
- * Allow to throttle making collders dirty. This is useful for things like BlueDot follow mode,
5680
- * As we follow the BlueDot, colliders will overlap, but constantly updating their visiblity makes
5681
- * for a bad experience
5682
- */
5683
- makeCollidersDirtyThrottled: (time: any) => void;
5684
- resize: (container: any) => void;
5685
- update: () => void;
5686
- destroy: () => void;
6544
+ #private;
6545
+ colliderCanvas: HTMLCanvasElement;
6546
+ debugCanvas: HTMLCanvasElement;
6547
+ colliderCanvasContext: CanvasRenderingContext2D;
6548
+ debugCanvasContext: CanvasRenderingContext2D;
6549
+ collisionEngineContainerEl: HTMLDivElement;
6550
+ stepsX: any;
6551
+ stepsY: any;
6552
+ totalWidth: any;
6553
+ totalHeight: any;
6554
+ project: any;
6555
+ colliders: Map<string, ICollider>;
6556
+ offscreenRanges: TRange[];
6557
+ get sortedColliders(): ICollider[];
6558
+ initialized: boolean;
6559
+ mapView: MapView;
6560
+ core: ICore;
6561
+ screen: Rectangle;
6562
+ constructor(mapView: any, core: ICore);
6563
+ init: (container: HTMLDivElement, projectFn: ({ position, mapId }: {
6564
+ position: any;
6565
+ mapId: MappedinMap['id'];
6566
+ }) => {
6567
+ x: number;
6568
+ y: number;
6569
+ }) => void;
6570
+ qtree: QuadTree;
6571
+ recompute: () => void;
6572
+ draw: () => void;
6573
+ reposition: () => void;
6574
+ add: (colliderId: string, collider: ICollider) => void;
6575
+ remove: (colliderId: string) => void;
6576
+ update: () => void;
6577
+ resize: (container: any) => void;
6578
+ destroy: () => void;
5687
6579
  }
5688
6580
  export default SmartCollisionEngine;
5689
6581
  }
5690
6582
 
5691
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.TaskScheduler' {
5692
- export namespace UPDATE_ORDERING {
5693
- const BEFORE_CAMERA: number;
5694
- const CAMERA: number;
5695
- const AFTER_CAMERA: number;
5696
- const RENDER: number;
5697
- const AFTER_RENDER: number;
5698
- const AFTER_ALL_UPDATES: number;
6583
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree' {
6584
+ export function contains(rect1: Rectangle, rect2: Rectangle): boolean;
6585
+ export function intersects(rect1: Rectangle, rect2: Rectangle): boolean;
6586
+ class Rectangle {
6587
+ x: number;
6588
+ y: number;
6589
+ w: number;
6590
+ h: number;
6591
+ userData?: any;
6592
+ constructor(x: number, y: number, w: number, h: number, userData?: any);
6593
+ contains(rectangle: Rectangle): boolean;
6594
+ intersects(rectangle: Rectangle): boolean;
6595
+ draw(context: CanvasRenderingContext2D): void;
5699
6596
  }
5700
- export namespace TASK_PRIORITY {
5701
- const VISIBLE_MAP_HIGH: number;
5702
- const VISIBLE_MAP_LOW: number;
5703
- const VISIBLE_MAP_MARKER: number;
5704
- const ASYNC_MAP_HIGH: number;
5705
- const ASYNC_MAP_LOW: number;
5706
- const ASYNC_MAP_MARKER: number;
5707
- const MAP_LOADED: number;
6597
+ class QuadTree {
6598
+ #private;
6599
+ boundary: Rectangle;
6600
+ capacity: number;
6601
+ objects: Rectangle[];
6602
+ topLeft: QuadTree;
6603
+ topRight: QuadTree;
6604
+ bottomLeft: QuadTree;
6605
+ bottomRight: QuadTree;
6606
+ divided: boolean;
6607
+ parent?: QuadTree;
6608
+ getSize(): any;
6609
+ constructor(boundary: Rectangle, parent?: QuadTree);
6610
+ subdivide(): void;
6611
+ query(rectangle: Rectangle): Rectangle[];
6612
+ insert(rectangle: Rectangle): boolean;
6613
+ drawObjects(context: CanvasRenderingContext2D): void;
6614
+ draw(context: CanvasRenderingContext2D): void;
5708
6615
  }
6616
+ export { QuadTree, Rectangle };
6617
+ }
6618
+
6619
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler' {
5709
6620
  /**
5710
6621
  * A function that can be submitted to the Task Scheduler to run each frame for
5711
6622
  * some provided number of frames. A single update can be repeatedly submitted;
@@ -5739,22 +6650,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5739
6650
  * @param [options.userdata] {Any}
5740
6651
  * Arbitrary data that you can store along with this update.
5741
6652
  */
5742
- constructor(options?: {
5743
- callback?: Function | undefined;
5744
- frameCount?: number | undefined;
5745
- ordering?: number | undefined;
5746
- supersededBy?: [FrameUpdate] | undefined;
5747
- name?: string | undefined;
5748
- userdata?: any;
5749
- } | undefined);
5750
- _callback: Function | undefined;
6653
+ constructor(options: {
6654
+ callback: Function;
6655
+ frameCount?: number;
6656
+ ordering?: number;
6657
+ supersededBy?: Set<never>;
6658
+ name: string;
6659
+ userdata?: Record<string, any>;
6660
+ });
6661
+ _callback: Function;
5751
6662
  _frameCount: number;
5752
6663
  _ordering: number;
5753
- _supersededBy: Set<any>;
5754
- name: string | undefined;
5755
- userdata: any;
6664
+ _supersededBy: Set<never>;
6665
+ name: string;
5756
6666
  _remainingFrameCount: number;
5757
6667
  _lastFrameTime: number;
6668
+ userdata?: Record<string, any>;
5758
6669
  /**
5759
6670
  * Return the amount of time that this frame update took to execute during
5760
6671
  * its most recent execution, in milliseconds. If called during this frame
@@ -5794,24 +6705,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5794
6705
  * @param [options.userdata] {Any}
5795
6706
  * Arbitrary data that you can store along with this task.
5796
6707
  */
5797
- constructor(options?: {
5798
- callback?: Function | undefined;
5799
- group?: FrameTaskGroup | undefined;
5800
- priority?: number | undefined;
5801
- postponeOnAdd?: number | undefined;
5802
- name?: string | undefined;
5803
- userdata?: any;
5804
- } | undefined);
5805
- _callback: Function | undefined;
5806
- _group: FrameTaskGroup | null;
5807
- _priority: number;
6708
+ constructor(options: {
6709
+ userdata: Record<string, any>;
6710
+ priority: number;
6711
+ group?: FrameTaskGroup;
6712
+ postponeOnAdd: number | boolean;
6713
+ name: string;
6714
+ lastFrameTime: number;
6715
+ callback: Function;
6716
+ });
5808
6717
  _postponed: number | boolean;
5809
- name: string | undefined;
5810
- userdata: any;
6718
+ userdata: Record<string, any>;
6719
+ _priority: number;
6720
+ _group: FrameTaskGroup | null;
6721
+ name: string;
6722
+ _lastFrameTime: number;
6723
+ _callback: Function;
5811
6724
  _complete: boolean;
5812
6725
  _scheduled: boolean;
5813
6726
  _cancelled: boolean;
5814
- _lastFrameTime: number;
5815
6727
  /**
5816
6728
  * Return true if this task has been run at least once.
5817
6729
  *
@@ -5858,18 +6770,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5858
6770
  * @param [options.userdata] {Any}
5859
6771
  * Arbitrary data that you can store along with this task group.
5860
6772
  */
5861
- constructor(options?: {
5862
- onComplete?: Function | undefined;
5863
- priority?: number | undefined;
5864
- postponeOnAdd?: number | undefined;
5865
- name?: string | undefined;
5866
- userdata?: any;
5867
- } | undefined);
6773
+ constructor(options: {
6774
+ onComplete?: Function;
6775
+ priority?: number;
6776
+ userdata: Record<string, any>;
6777
+ postponeOnAdd: number | boolean;
6778
+ name: string;
6779
+ });
6780
+ _postponed: number | boolean;
5868
6781
  _onComplete: Function;
5869
6782
  _priority: number;
5870
- _postponed: number | boolean;
5871
- name: string | undefined;
5872
- userdata: any;
6783
+ userdata: Record<string, any>;
6784
+ name: string;
5873
6785
  _tasks: Set<any>;
5874
6786
  _scheduledTasks: Set<any>;
5875
6787
  _scheduled: boolean;
@@ -5888,13 +6800,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5888
6800
  * @method tasks
5889
6801
  * @return {[FrameTask]} list of tasks in this group
5890
6802
  */
5891
- getTasks(): [FrameTask];
6803
+ getTasks(): any[];
5892
6804
  /**
5893
6805
  * Empty this task group. This will trivially satisfy `isComplete`.
5894
6806
  *
5895
6807
  * @method clear
5896
6808
  */
5897
6809
  clear(): void;
6810
+ /**
6811
+ * Return one arbitrary incomplete task from this group, or undefined if
6812
+ * there are none.
6813
+ *
6814
+ * @method _popTask
6815
+ * @return {FrameTask} arbitrary scheduled task
6816
+ * @private
6817
+ */
6818
+ _popTask(): any;
5898
6819
  }
5899
6820
  /**
5900
6821
  * A timer for the task scheduler that uses real wall-time to determine if there's
@@ -5904,6 +6825,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5904
6825
  * @private
5905
6826
  */
5906
6827
  export class RealTimeTimer {
6828
+ _maxMillisecondsPerFrame: number;
6829
+ _time: number;
5907
6830
  /**
5908
6831
  * @constructor
5909
6832
  * @param [options] {Object} Options for the timer
@@ -5912,10 +6835,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5912
6835
  * or equal to this value, then another task may be executed
5913
6836
  */
5914
6837
  constructor(options?: {
5915
- maxMillisecondsPerFrame?: any;
5916
- } | undefined);
5917
- _maxMillisecondsPerFrame: any;
5918
- _time: any;
6838
+ maxMillisecondsPerFrame?: number;
6839
+ });
5919
6840
  /**
5920
6841
  * Begin timing a frame.
5921
6842
  *
@@ -5937,6 +6858,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5937
6858
  * @private
5938
6859
  */
5939
6860
  export class FixedTimer {
6861
+ _ticks: number;
6862
+ maxTasksPerFrame: number;
5940
6863
  /**
5941
6864
  * @constructor
5942
6865
  * @param [options] {Object} Options for the timer
@@ -5945,10 +6868,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5945
6868
  * Can be modified as the `maxTasksPerFrame` property on this boject.
5946
6869
  */
5947
6870
  constructor(options?: {
5948
- maxTasksPerFrame?: any;
5949
- } | undefined);
5950
- maxTasksPerFrame: any;
5951
- _ticks: number;
6871
+ maxTasksPerFrame?: number;
6872
+ });
5952
6873
  /**
5953
6874
  * Begin timing a frame.
5954
6875
  *
@@ -5992,11 +6913,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5992
6913
  * performance information.
5993
6914
  */
5994
6915
  constructor(options?: {
5995
- timer?: any;
5996
- performance?: any;
5997
- } | undefined);
5998
- _timer: any;
5999
- _performance: any;
6916
+ timer?: RealTimeTimer;
6917
+ performance?: boolean;
6918
+ });
6919
+ _timer: RealTimeTimer;
6920
+ _performance: boolean;
6000
6921
  _scheduledUpdatesByOrdering: Multimap;
6001
6922
  _scheduledTasksByPriority: Multimap;
6002
6923
  _postponedTasks: Set<any>;
@@ -6004,18 +6925,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6004
6925
  _updatesToRunThisFrame: any[];
6005
6926
  _lastFrameTime: number;
6006
6927
  _updatesRunLastFrame: Set<any>;
6007
- /**
6008
- * Run all scheduled updates, and re-schedule another animation frame if any
6009
- * scheduled updates still exist. If any scheduled update specifies
6010
- * `shouldRunTasksAfterCompletion`, this will also run queued tasks until the
6011
- * frame time runs out.
6012
- *
6013
- * @method update
6014
- * @param timestamp {number} the current animation time, as returned from
6015
- * `performance.now()`; will be automatically filled in by
6016
- * `requestAnimationFrame` when it triggers this as a callback
6017
- */
6018
- update(timestamp: number): void;
6019
6928
  /**
6020
6929
  * Empty the task scheduler's queue. All tasks in it will be cancelled.
6021
6930
  *
@@ -6035,6 +6944,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6035
6944
  * @method requestAnimationFrame
6036
6945
  */
6037
6946
  requestAnimationFrame(): void;
6947
+ /**
6948
+ * Run all scheduled updates, and re-schedule another animation frame if any
6949
+ * scheduled updates still exist. If any scheduled update specifies
6950
+ * `shouldRunTasksAfterCompletion`, this will also run queued tasks until the
6951
+ * frame time runs out.
6952
+ *
6953
+ * @method update
6954
+ * @param timestamp {number} the current animation time, as returned from
6955
+ * `performance.now()`; will be automatically filled in by
6956
+ * `requestAnimationFrame` when it triggers this as a callback
6957
+ */
6958
+ update(timestamp: number): void;
6038
6959
  /**
6039
6960
  * Execute all tasks that are currently pending, without regard for the
6040
6961
  * available frame time.
@@ -6059,7 +6980,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6059
6980
  * has not yet been run or if the scheduler has been cleared.
6060
6981
  */
6061
6982
  getUpdatesRunLastFrame(): Set<any>;
6062
- _executeOneTask(timestamp: any): void;
6983
+ _executeOneTask(timestamp: number): void;
6063
6984
  /**
6064
6985
  * Schedule an update to be run for the next `update.frameCount` frames. If
6065
6986
  * the update already exists in the scheduler, the update's frame count will
@@ -6069,7 +6990,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6069
6990
  * @method scheduleUpdate
6070
6991
  * @param task {FrameUpdate} the update to schedule
6071
6992
  */
6072
- scheduleUpdate(update: any): void;
6993
+ scheduleUpdate(update: FrameUpdate): void;
6073
6994
  /**
6074
6995
  * Schedule a task to be run during a frame update. This will also schedule
6075
6996
  * an animation frame to begin processing the task queue.
@@ -6084,7 +7005,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6084
7005
  * @method cancelUpdate
6085
7006
  * @param task {FrameUpdate} the update to cancel
6086
7007
  */
6087
- cancelUpdate(update: any): void;
7008
+ cancelUpdate(update: FrameUpdate): void;
6088
7009
  /**
6089
7010
  * If the given task or group is in the queue, remove it. Cancelling a
6090
7011
  * completed task is a no-op.
@@ -6095,7 +7016,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6095
7016
  * @method cancelTask
6096
7017
  * @param task {FrameTask or FrameTaskGroup} the task to cancel
6097
7018
  */
6098
- cancelTask(task: FrameTask): void;
7019
+ cancelTask(task: FrameTask | FrameTaskGroup): void;
6099
7020
  /**
6100
7021
  * Set the provided task or group not to run, until it's resumed using `resumeTask`.
6101
7022
  *
@@ -6105,7 +7026,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6105
7026
  * @method postponeTask
6106
7027
  * @param task {FrameTask or FrameTaskGroup} the task to postpone
6107
7028
  */
6108
- postponeTask(task: FrameTask): void;
7029
+ postponeTask(task: FrameTask | FrameTaskGroup): void;
6109
7030
  /**
6110
7031
  * Allow a postponed task or task group to resume processing. This will also
6111
7032
  * request an animation frame to allow the resumed task to be processed.
@@ -6116,7 +7037,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6116
7037
  * @method resumeTask
6117
7038
  * @param task {FrameTask or FrameTaskGroup} the task to resume
6118
7039
  */
6119
- resumeTask(task: FrameTask): void;
7040
+ resumeTask(task: FrameTask | FrameTaskGroup): void;
6120
7041
  /**
6121
7042
  * Change the priority of the given scheduled task or task group.
6122
7043
  *
@@ -6124,7 +7045,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6124
7045
  * @param task {FrameTask or FrameTaskGroup} the task whose priority will be changed
6125
7046
  * @param priority {number} the priority to assign the task
6126
7047
  */
6127
- setTaskPriority(task: FrameTask, priority: number): void;
7048
+ setTaskPriority(task: FrameTask | FrameTaskGroup, priority: number): void;
6128
7049
  }
6129
7050
  /**
6130
7051
  * A map that maps a numeric key to a set of values.
@@ -6135,6 +7056,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6135
7056
  * @private
6136
7057
  */
6137
7058
  class Multimap {
7059
+ /**
7060
+ * @method constructor
7061
+ */
7062
+ constructor();
6138
7063
  _map: Map<any, any>;
6139
7064
  _size: number;
6140
7065
  _sortedKeys: any[];
@@ -6194,7 +7119,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6194
7119
  * @method values
6195
7120
  * @return {Iterator} iterator over the values in the map
6196
7121
  */
6197
- values(): Iterator<any, any, undefined>;
7122
+ values(): {
7123
+ [Symbol.iterator]: () => any;
7124
+ next: () => any;
7125
+ };
6198
7126
  /**
6199
7127
  * A list of keys in this set, sorted by numeric value. Not cloned,
6200
7128
  * for efficiency's sake, so please don't mutate it.
@@ -6202,7 +7130,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6202
7130
  * @method keys
6203
7131
  * @return {[number]} sorted list of numeric keys in the map
6204
7132
  */
6205
- keys(): [number];
7133
+ keys(): any[];
6206
7134
  /**
6207
7135
  * The number of elements in this multimap, equal to the sum of the sizes
6208
7136
  * of each key's set of values.