@mappedin/react-native-sdk 4.1.0-beta.2 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 } 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, "style" | "options" | "onFirstMapLoaded" | "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 } 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 } 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 } 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,403 @@ 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<{
2406
+ stopWords?: string[] | undefined;
2407
+ searchTags?: boolean | undefined;
2408
+ searchDescriptions?: boolean | undefined;
2409
+ searchTagsInCategories?: boolean | undefined; /**
2410
+ * Handle rejection from the other side, typically when the request results in an error
2411
+ * @hidden
2412
+ searchDescriptionsInCategories?: boolean | undefined;
2413
+ jsonIndex?: string | undefined;
2414
+ useLocationRank?: boolean | undefined;
2415
+ emitAnalyticsEvents?: boolean | undefined;
2416
+ constants: {
2417
+ PRIMARY_INDEX_FUZZYNESS: number;
2418
+ PRIMARY_INDEX_WEIGHT: number;
2419
+ SECONDARY_INDEX_WEIGHT: number;
2420
+ LOCATION_NAME_WEIGHT: number;
2421
+ CATEGORY_NAME_WEIGHT: number;
2422
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
2423
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
2424
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
2425
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
2426
+ LOCATION_DEFAULT_RANK: number;
2427
+ RATIO_OF_FUZZY_TO_EXACT: number;
2428
+ RATIO_OF_PREFIX_TO_EXACT: number;
2429
+ };
2430
+ }> | undefined;
2431
+ };
1998
2432
  };
1999
2433
  };
2000
2434
  SHOW_VENUE: {
@@ -2002,7 +2436,35 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2002
2436
  data: {
2003
2437
  venueData: string;
2004
2438
  format: "jsonstring";
2005
- showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions;
2439
+ showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
2440
+ prepareSearch?: boolean | undefined;
2441
+ searchOptions?: Partial<{
2442
+ stopWords?: string[] | undefined;
2443
+ searchTags?: boolean | undefined;
2444
+ searchDescriptions?: boolean | undefined;
2445
+ searchTagsInCategories?: boolean | undefined; /**
2446
+ * Handle rejection from the other side, typically when the request results in an error
2447
+ * @hidden
2448
+ searchDescriptionsInCategories?: boolean | undefined;
2449
+ jsonIndex?: string | undefined;
2450
+ useLocationRank?: boolean | undefined;
2451
+ emitAnalyticsEvents?: boolean | undefined;
2452
+ constants: {
2453
+ PRIMARY_INDEX_FUZZYNESS: number;
2454
+ PRIMARY_INDEX_WEIGHT: number;
2455
+ SECONDARY_INDEX_WEIGHT: number;
2456
+ LOCATION_NAME_WEIGHT: number;
2457
+ CATEGORY_NAME_WEIGHT: number;
2458
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
2459
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
2460
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
2461
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
2462
+ LOCATION_DEFAULT_RANK: number;
2463
+ RATIO_OF_FUZZY_TO_EXACT: number;
2464
+ RATIO_OF_PREFIX_TO_EXACT: number;
2465
+ };
2466
+ }> | undefined;
2467
+ };
2006
2468
  };
2007
2469
  };
2008
2470
  SET_MAP: {
@@ -2232,6 +2694,29 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2232
2694
  map?: string | undefined;
2233
2695
  };
2234
2696
  };
2697
+ SEARCH: {
2698
+ msgID?: string | undefined;
2699
+ data: {
2700
+ query: string;
2701
+ };
2702
+ };
2703
+ SUGGEST: {
2704
+ msgID?: string | undefined;
2705
+ data: {
2706
+ query: string;
2707
+ };
2708
+ };
2709
+ ADD_SEARCH_QUERY: {
2710
+ msgID?: string | undefined;
2711
+ data: {
2712
+ query: string;
2713
+ object: {
2714
+ type: "MappedinLocation" | "MappedinCategory" | "Custom";
2715
+ id: string;
2716
+ };
2717
+ weight?: number | undefined;
2718
+ };
2719
+ };
2235
2720
  }>;
2236
2721
  /**
2237
2722
  * Message received from the other side of the bridge
@@ -2263,268 +2748,73 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2263
2748
  /**
2264
2749
  * Handle rejection from the other side, typically when the request results in an error
2265
2750
  * @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;
2751
+ */
2752
+ protected handleRejection: <EVENT_NAME extends BRIDGE_EVENT>(payload: {
2753
+ msgID: string;
2754
+ data: {
2755
+ payload: BRIDGE_EVENT_PAYLOADS[EVENT_NAME];
2756
+ };
2757
+ }) => void;
2471
2758
  /**
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.
2759
+ * Emitting a message without expecting a response
2760
+ * @hidden
2476
2761
  */
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;
2762
+ emit<EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): void;
2486
2763
  /**
2487
- * Resets the MapView to the default state.
2764
+ * Emitting a message and waiting for a reponse, via a promise
2765
+ * @hidden
2488
2766
  */
2489
- resetState(): void;
2490
- destroy(): void;
2767
+ emitAsync<T, EVENT_NAME extends keyof BRIDGE_EVENT_PAYLOADS>(eventName: EVENT_NAME, payload?: BRIDGE_EVENT_PAYLOADS[EVENT_NAME], msgID?: string): Promise<T>;
2491
2768
  }
2492
2769
  }
2493
2770
 
2494
2771
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types' {
2495
2772
  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;
2773
+ accessToken?: string;
2774
+ clientId?: string;
2775
+ clientSecret?: string;
2776
+ baseUrl?: string;
2777
+ includeHidden?: boolean;
2778
+ noAuth?: boolean;
2779
+ perspective?: string;
2780
+ language?: string;
2781
+ headers?: {
2782
+ [key in string]: string;
2783
+ };
2784
+ venue: string;
2785
+ things?: any;
2786
+ useDraftData?: boolean;
2787
+ platformString?: string;
2509
2788
  };
2510
2789
  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;
2790
+ baseUrl?: string;
2791
+ supplementaryUrl?: string;
2792
+ noAuth?: boolean;
2793
+ includeHidden?: boolean;
2794
+ apiGateway?: string;
2795
+ authorization?: string;
2796
+ /**
2797
+ * @deprecated 2D support will be removed in the future
2798
+ */
2799
+ do2D?: boolean;
2800
+ things?: any;
2801
+ headers?: any;
2523
2802
  };
2803
+ export enum MAP_RENDER_MODE {
2804
+ /** Each polygon, its geometry and mesh are sent to the GPU every render frame.
2805
+ * This was the default rendering mode before 4.0.17
2806
+ */
2807
+ MULTI_GEOMETRY = "MULTI_GEOMETRY",
2808
+ /** Polygons' geometries are grouped by material and merged together, resulting in far fewer
2809
+ * draw calls to the GPU. Default rendering mode since 4.0.17
2810
+ */
2811
+ SINGLE_GEOMETRY = "SINGLE_GEOMETRY"
2812
+ }
2524
2813
  }
2525
2814
 
2526
2815
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2527
2816
  import { Navigator } from '@mappedin/react-native-sdk/core/packages/navigator';
2817
+ import { MVFData } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types';
2528
2818
  import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
2529
2819
  import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
2530
2820
  import { MappedinEvent } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent';
@@ -2539,8 +2829,9 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2539
2829
  import { MappedinTheme } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme';
2540
2830
  import { MappedinVenue } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue';
2541
2831
  import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
2832
+ import Analytics from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Analytics';
2542
2833
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
2543
- export enum CollectionType {
2834
+ export enum MappedinCollectionType {
2544
2835
  CATEGORY = "categories",
2545
2836
  EVENT = "events",
2546
2837
  LOCATION = "locations",
@@ -2551,14 +2842,14 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2551
2842
  VORTEX = "vortexes"
2552
2843
  }
2553
2844
  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;
2845
+ [MappedinCollectionType.CATEGORY]: MappedinCategory;
2846
+ [MappedinCollectionType.EVENT]: MappedinEvent;
2847
+ [MappedinCollectionType.LOCATION]: MappedinLocation;
2848
+ [MappedinCollectionType.MAPGROUP]: MappedinMapGroup;
2849
+ [MappedinCollectionType.MAP]: MappedinMap;
2850
+ [MappedinCollectionType.NODE]: MappedinNode;
2851
+ [MappedinCollectionType.POLYGON]: MappedinPolygon;
2852
+ [MappedinCollectionType.VORTEX]: MappedinVortex;
2562
2853
  };
2563
2854
  const THINGS: {
2564
2855
  categories: typeof MappedinCategory;
@@ -2754,6 +3045,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2754
3045
  [id: string]: MappedinRankings;
2755
3046
  };
2756
3047
  getCollectionItemById<T extends keyof TAccessors, I extends string>(name: T, id: I): TAccessors[T] | null;
3048
+ /**
3049
+ * @hidden
3050
+ * @internal
3051
+ */
3052
+ hydrateFromMVF(mvfData: MVFData): Promise<undefined>;
2757
3053
  /**
2758
3054
  *
2759
3055
  * [experimental] Hydrate the Mappedin instance using a response from either {@link IMappedin.toString()}, {@link getVenueBundle} or by downloading the bundle manually
@@ -2762,9 +3058,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
2762
3058
  */
2763
3059
  hydrate(mappedinSerializableData: string | object, shouldPopulateBundledImagesAsBlobs?: boolean): Promise<undefined>;
2764
3060
  images: any;
3061
+ imageBinaries?: Map<string, Uint8Array>;
2765
3062
  scenes: any;
2766
3063
  fetch(): Promise<void>;
2767
3064
  constructor(options: TGetVenueOptionsInternal & TGetVenueOptions);
3065
+ analytics: Analytics;
2768
3066
  /**
2769
3067
  * @hidden
2770
3068
  */
@@ -2888,6 +3186,60 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolyg
2888
3186
  export class MappedinPolygon extends MappedinNavigatable {
2889
3187
  #private;
2890
3188
  geometry: any;
3189
+ image?: {
3190
+ visible: boolean;
3191
+ url: string | Blob;
3192
+ original: string | Blob;
3193
+ useLocalScaling: boolean;
3194
+ viewBox: {
3195
+ width: number;
3196
+ height: number;
3197
+ };
3198
+ scale: {
3199
+ x: number;
3200
+ y: number;
3201
+ };
3202
+ fitToBounds: boolean;
3203
+ position: {
3204
+ x: number;
3205
+ y: number;
3206
+ z: number;
3207
+ };
3208
+ rotation: {
3209
+ x: number;
3210
+ y: number;
3211
+ z: number;
3212
+ };
3213
+ _isAbsolutelyPositioned?: boolean;
3214
+ };
3215
+ holes?: unknown[];
3216
+ textures?: {
3217
+ image: any;
3218
+ name: 'front' | 'side';
3219
+ useFrontFaceImage?: boolean;
3220
+ }[];
3221
+ material: {
3222
+ color: string;
3223
+ opacity?: number;
3224
+ };
3225
+ label?: {
3226
+ visible: boolean;
3227
+ text: string;
3228
+ align: string;
3229
+ position: {
3230
+ x: number;
3231
+ y: number;
3232
+ z: number;
3233
+ };
3234
+ rotation: {
3235
+ x: number;
3236
+ y: number;
3237
+ z: number;
3238
+ };
3239
+ fontFamily: string;
3240
+ fontSize: number;
3241
+ color: string;
3242
+ };
2891
3243
  /**
2892
3244
  * Node ID.
2893
3245
  *
@@ -3074,6 +3426,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3074
3426
  import type { TGeoReference } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
3075
3427
  import type { MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGroup';
3076
3428
  import { MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCoordinate';
3429
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue';
3077
3430
  /**
3078
3431
  * 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
3432
  *
@@ -3100,6 +3453,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3100
3453
  shortName: string;
3101
3454
  elevation: number;
3102
3455
  scale?: number;
3456
+ layers: {
3457
+ visible: boolean;
3458
+ name: string;
3459
+ id: string;
3460
+ }[];
3103
3461
  x_scale?: number;
3104
3462
  perspectiveId?: string;
3105
3463
  scene: any;
@@ -3114,6 +3472,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
3114
3472
  * @property polygons {[MappedinPolygon]}
3115
3473
  */
3116
3474
  get polygons(): MappedinPolygon[] | undefined;
3475
+ /**
3476
+ * Locations on this map
3477
+ */
3478
+ get locations(): MappedinLocation[];
3479
+ get nodes(): import("./MappedinNode").MappedinNode[];
3117
3480
  /**
3118
3481
  * Map Group this map belongs to.
3119
3482
  *
@@ -3151,28 +3514,56 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinEvent
3151
3514
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3152
3515
  import type { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
3153
3516
  /**
3154
- * An event.
3517
+ * 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
3518
  *
3156
3519
  * @class MappedinEvent
3157
3520
  */
3158
3521
  export class MappedinEvent {
3159
3522
  #private;
3523
+ /**
3524
+ * Unique id string of the event.
3525
+ */
3160
3526
  id: string;
3161
3527
  type: string;
3528
+ /**
3529
+ * Event name
3530
+ */
3162
3531
  name: string;
3532
+ /**
3533
+ * Optional, longer description of the event.
3534
+ */
3163
3535
  description?: string | undefined;
3536
+ /**
3537
+ * Optional image to be used for displaying the event.
3538
+ */
3164
3539
  image?: TImage | undefined;
3540
+ /**
3541
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
3542
+ */
3165
3543
  startDate?: number | undefined;
3544
+ /**
3545
+ * Start timestamp of the event. Javascript date in milliseconds since 1 January 1970 UTC.
3546
+ */
3166
3547
  endDate?: number | undefined;
3548
+ /**
3549
+ * Timestamp when the event should be displayed. Javascript date in milliseconds since 1 January 1970 UTC.
3550
+ */
3167
3551
  showDate?: number | undefined;
3552
+ /**
3553
+ * @internal
3554
+ */
3168
3555
  constructor(mappedin: Mappedin, data: any);
3169
3556
  /**
3170
- * Location this Event is occuring at.
3171
- *
3172
- * @property location {MappedinLocation}
3557
+ * Location this event is occuring at.
3173
3558
  */
3174
3559
  location(): MappedinLocation | undefined;
3560
+ /**
3561
+ * @internal
3562
+ */
3175
3563
  static hydrate(events: any, mappedin: Mappedin): MappedinEvent[];
3564
+ /**
3565
+ * @internal
3566
+ */
3176
3567
  static fetch(mappedin: Mappedin): Promise<MappedinEvent[]>;
3177
3568
  toJSON(): any;
3178
3569
  }
@@ -3245,9 +3636,10 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVenue
3245
3636
  tzidOverride: string;
3246
3637
  utcOffset: string;
3247
3638
  website: string;
3248
- constructor(data: any);
3249
- static hydrate(data: any): MappedinVenue;
3639
+ constructor(mappedin: Mappedin, data: any);
3640
+ static hydrate(data: any, mappedin: Mappedin): MappedinVenue;
3250
3641
  static fetch(mappedin: Mappedin): Promise<MappedinVenue>;
3642
+ get isMultiBuilding(): any;
3251
3643
  toJSON(): any;
3252
3644
  }
3253
3645
  }
@@ -3464,6 +3856,229 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavig
3464
3856
  }
3465
3857
  }
3466
3858
 
3859
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.OfflineSearch' {
3860
+ import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
3861
+ import type { SearchOptions } from 'minisearch';
3862
+ import { MappedinLocation } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation';
3863
+ import { MappedinCategory } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCategory';
3864
+ export const removeAccents: (it: string) => string;
3865
+ export type { SearchOptions };
3866
+ /**
3867
+ * A {@link Mappedin.OfflineSearch} is an offline search module
3868
+ *
3869
+ *
3870
+ * @class Mappedin.OfflineSearch
3871
+ */
3872
+ type TOfflineSearchAllOptions = {
3873
+ /**
3874
+ * Array of stopwords to ignore when searching, default: english stopwords
3875
+ */
3876
+ stopWords?: string[];
3877
+ /**
3878
+ * Index location tags - typically better to use either tags or descriptions, depending on what's available
3879
+ * @default true
3880
+ */
3881
+ searchTags?: boolean;
3882
+ /**
3883
+ * Index location descriptions - typically better to use either tags or descriptions, depending on what's available
3884
+ * @default true
3885
+ */
3886
+ searchDescriptions?: boolean;
3887
+ /**
3888
+ * Also index all tags for every location in every category (caution: this may slow down indexing and search)
3889
+ * @default false
3890
+ */
3891
+ searchTagsInCategories?: boolean;
3892
+ /**
3893
+ * Also index all tags for every location in every category (caution: this may slow down indexing and search)
3894
+ * @default false
3895
+ */
3896
+ searchDescriptionsInCategories?: boolean;
3897
+ /**
3898
+ * Initialize Search with a previously indexed JSON string (outputted by OfflineSearch.toJSON())
3899
+ */
3900
+ jsonIndex?: string;
3901
+ /**
3902
+ * Use the location polygons' rank in weighing results
3903
+ */
3904
+ useLocationRank?: boolean;
3905
+ /**
3906
+ * Emit Analytics events when doing search
3907
+ * @default true when running in production
3908
+ */
3909
+ emitAnalyticsEvents?: boolean;
3910
+ /**
3911
+ * Fine tune search constants
3912
+ */
3913
+ constants: {
3914
+ /**
3915
+ * Fuzziness index for location names and tags
3916
+ * @default 0.09
3917
+ */
3918
+ PRIMARY_INDEX_FUZZYNESS: number;
3919
+ /**
3920
+ * Multiplier for location names (1 by default)
3921
+ * @default 1
3922
+ */
3923
+ PRIMARY_INDEX_WEIGHT: number;
3924
+ /**
3925
+ * Multiplier for descriptions
3926
+ * @default 0.025
3927
+ */
3928
+ SECONDARY_INDEX_WEIGHT: number;
3929
+ /**
3930
+ * Multiplier for location names
3931
+ * @default 1
3932
+ */
3933
+ LOCATION_NAME_WEIGHT: number;
3934
+ /**
3935
+ * Multiplier for category names
3936
+ * @default 0.5
3937
+ */
3938
+ CATEGORY_NAME_WEIGHT: number;
3939
+ /**
3940
+ * Multiplier for category locations' descriptions
3941
+ * @default 0.0005
3942
+ */
3943
+ CATEGORY_LOCATION_DESCRIPTION_WEIGHT: number;
3944
+ /**
3945
+ * Multiplier for category locations' tags
3946
+ * @default 0.0005
3947
+ */
3948
+ CATEGORY_LOCATION_TAGS_WEIGHT: number;
3949
+ /**
3950
+ * Multiplier for category locations' names
3951
+ * @default 0.01
3952
+ */
3953
+ CATEGORY_LOCATION_NAME_WEIGHT: number;
3954
+ /**
3955
+ * Multiplier for location tags
3956
+ * @default 0.05
3957
+ */
3958
+ PRIMARY_INDEX_TAGS_NAME_WEIGHT: number;
3959
+ /**
3960
+ * Default rank when one isn't available in the data, default = 1
3961
+ * @default 1
3962
+ */
3963
+ LOCATION_DEFAULT_RANK: number;
3964
+ /**
3965
+ * Ratio of Fuzzy Searches of Location names and tags relative to exact
3966
+ * @default 0.01
3967
+ */
3968
+ RATIO_OF_FUZZY_TO_EXACT: number;
3969
+ /**
3970
+ * Ratio of Prefix Searches of Location names and tags relative to exact
3971
+ * @default 0.2
3972
+ */
3973
+ RATIO_OF_PREFIX_TO_EXACT: number;
3974
+ };
3975
+ };
3976
+ export type TMappedinOfflineAllSearchMatch = {
3977
+ /**
3978
+ * The term that was found
3979
+ */
3980
+ term: string;
3981
+ /**
3982
+ * Term's weight
3983
+ */
3984
+ weight: number;
3985
+ /**
3986
+ * What field the search matched on
3987
+ */
3988
+ matchesOn: string;
3989
+ /**
3990
+ * The value of that field
3991
+ */
3992
+ value?: string;
3993
+ };
3994
+ export type TMappedinOfflineSearchOptions = Partial<TOfflineSearchAllOptions>;
3995
+ export type TMappedinOfflineSearchResult = {
3996
+ /**
3997
+ * Type describing the object
3998
+ */
3999
+ type: 'MappedinLocation' | 'MappedinCategory' | 'Custom';
4000
+ /**
4001
+ * Details on why the result was returned
4002
+ */
4003
+ matches: TMappedinOfflineAllSearchMatch[];
4004
+ /**
4005
+ * Found object
4006
+ */
4007
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
4008
+ /**
4009
+ * Total score of the result
4010
+ */
4011
+ score: number;
4012
+ };
4013
+ export type TMappedinOfflineSearchSuggestions = {
4014
+ /**
4015
+ * Total number of suggestions generated
4016
+ */
4017
+ total: number;
4018
+ /**
4019
+ * List of suggestions
4020
+ */
4021
+ hits: {
4022
+ /**
4023
+ * Suggestion text
4024
+ */
4025
+ text: string;
4026
+ }[];
4027
+ };
4028
+ /**
4029
+ * 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 TMappedinOfflineAllSearchOptions} options.
4030
+ *
4031
+ *
4032
+ * @class Mappedin.OfflineSearch
4033
+ */
4034
+ export class OfflineSearch {
4035
+ #private;
4036
+ constructor(
4037
+ /**
4038
+ * Mappedin Venue Object, typically returned by `getVenue`/`showVenue`
4039
+ */
4040
+ mappedin: Mappedin, options?: TMappedinOfflineSearchOptions);
4041
+ /**
4042
+ * Get Suggestions for term
4043
+ */
4044
+ suggest(
4045
+ /**
4046
+ * Search term
4047
+ */
4048
+ term: string): Promise<TMappedinOfflineSearchSuggestions>;
4049
+ /**
4050
+ * Search for a term
4051
+ */
4052
+ search(
4053
+ /**
4054
+ * Search term
4055
+ */
4056
+ term: string): Promise<TMappedinOfflineSearchResult[]>;
4057
+ /**
4058
+ * Export search index to JSON for storage/caching - this would avoid having to re-index
4059
+ * on page reload
4060
+ */
4061
+ toJSON(): Promise<string>;
4062
+ /**
4063
+ * Add a custom query to the search index
4064
+ */
4065
+ addQuery(params: {
4066
+ /**
4067
+ * Query string to match for this object
4068
+ */
4069
+ query: string;
4070
+ /**
4071
+ * Object that is returned when query matches
4072
+ */
4073
+ object: MappedinLocation | MappedinCategory | Record<string, unknown>;
4074
+ /**
4075
+ * Optional weight to multiply by the score
4076
+ */
4077
+ weight?: number;
4078
+ }): Promise<void>;
4079
+ }
4080
+ }
4081
+
3467
4082
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types' {
3468
4083
  /**
3469
4084
  * This file contains the API types for MappedinSDK - before they get turned into Classes
@@ -3579,9 +4194,6 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3579
4194
  export type TMapGroup = {
3580
4195
  name: string;
3581
4196
  id: string;
3582
- maps: {
3583
- id: TMap['id'];
3584
- }[];
3585
4197
  };
3586
4198
  export type TBuilding = TLocation & {
3587
4199
  groupId: string;
@@ -3634,27 +4246,32 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3634
4246
  entranceNodeId: string;
3635
4247
  score: number;
3636
4248
  };
3637
- export type TVenue = {
3638
- address: string;
3639
- city: string;
3640
- countrycode: string;
3641
- defaultMap: string;
3642
- externalId: string;
4249
+ export type TLocationState = {
3643
4250
  id: string;
3644
- latitude: number;
3645
- logo: TLogo;
3646
- longitude: number;
3647
- metadata?: any;
3648
4251
  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;
4252
+ value: string;
4253
+ };
4254
+ export type TVenue = {
4255
+ address?: string;
4256
+ city?: string;
4257
+ countrycode?: string;
4258
+ defaultMap?: string;
4259
+ externalId?: string;
4260
+ id?: string;
4261
+ latitude?: number;
4262
+ logo?: TLogo;
4263
+ longitude?: number;
4264
+ metadata?: any;
4265
+ name?: string;
4266
+ operationHours?: TOpeningHours[];
4267
+ postal?: string;
4268
+ slug?: string;
4269
+ state?: string;
4270
+ telephone?: string;
4271
+ tzid?: string;
4272
+ tzidOverride?: string;
4273
+ utcOffset?: string;
4274
+ website?: string;
3658
4275
  };
3659
4276
  export type TMappedinAPI = {
3660
4277
  nodes: TNode[];
@@ -3666,6 +4283,8 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
3666
4283
  themes: any;
3667
4284
  venue: TVenue;
3668
4285
  vortexes: TVortex[];
4286
+ locationStates?: TLocationState[];
4287
+ imageBinaries?: Map<string, Uint8Array>;
3669
4288
  };
3670
4289
  }
3671
4290
 
@@ -3804,6 +4423,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3804
4423
  RIGHT = "right"
3805
4424
  }
3806
4425
  class FloatingLabel extends BaseCollider implements ISmarterLabel {
4426
+ #private;
3807
4427
  lines: number;
3808
4428
  contextConfigured: boolean;
3809
4429
  fillText: TDrawFn | undefined;
@@ -3813,11 +4433,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3813
4433
  clearColor: () => void;
3814
4434
  zoomProportion: number;
3815
4435
  _cache: {};
3816
- _dirty: boolean;
3817
4436
  appearance: TAppearanceFilledIn;
3818
4437
  mapView: ICore;
3819
4438
  constructor(options: TFloatingLabelOptionsInternal, mapView: ICore);
3820
- enable(): void;
4439
+ enable(updateEngine?: boolean): void;
3821
4440
  get strategies(): TColliderStrategy[];
3822
4441
  getCachedSymbol(orientation: any, textAlign: any, xCoordinate: any): any;
3823
4442
  colliderDidMount(): void;
@@ -3826,7 +4445,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3826
4445
  colliderDidUpdateVisiblity(): void;
3827
4446
  colliderDidGoOutsideGrid(): void;
3828
4447
  colliderDidNotFindAHome(): void;
3829
- disable(): void;
4448
+ disable(updateEngine?: boolean): void;
3830
4449
  draw(context: CanvasRenderingContext2D): void;
3831
4450
  static original: FloatingLabel;
3832
4451
  static clone(options: TFloatingLabelOptionsInternal, mapView: ICore): any;
@@ -3957,19 +4576,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3957
4576
  }
3958
4577
  export type TBlueDotPositionUpdate = {
3959
4578
  /**
3960
- * What Map is Blue Dot on
4579
+ * The {@link MappedinMap} Blue Dot position is on
3961
4580
  */
3962
4581
  map?: MappedinMap;
3963
4582
  /**
3964
- * The nearest Node to the BlueDot
4583
+ * The nearest {@link MappedinNode} to the Blue Dot position
3965
4584
  */
3966
4585
  nearestNode?: MappedinNode;
3967
4586
  /**
3968
- * Actual position of BlueDot (post smoothing, if smoothing is on)
4587
+ * Actual position of Blue Dot (post smoothing, if smoothing is enabled)
3969
4588
  */
3970
4589
  position?: TGeolocationObject;
3971
4590
  /**
3972
- * Current BlueDot bearing
4591
+ * Current Blue Dot bearing
3973
4592
  */
3974
4593
  bearing?: number;
3975
4594
  };
@@ -3979,11 +4598,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3979
4598
  */
3980
4599
  name: E_BLUEDOT_STATE;
3981
4600
  /**
3982
- * Visiblity State of the BlueDot marker
4601
+ * Visiblity state of the Blue Dot marker
3983
4602
  */
3984
4603
  markerVisibility?: E_BLUEDOT_MARKER_STATE;
3985
4604
  /**
3986
- * Reason why BlueDot may be in the current state
4605
+ * Reason why Blue Dot may be in the current state
3987
4606
  */
3988
4607
  reason?: E_BLUEDOT_STATE_REASON;
3989
4608
  /**
@@ -4003,80 +4622,84 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4003
4622
  FakeGeolocation: typeof FakeGeolocation;
4004
4623
  };
4005
4624
  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
- */
4625
+ }
4626
+
4627
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip' {
4628
+ import './Mappedin.SmartTooltip.scss';
4629
+ import { COLLISION_RANKING_TIERS } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4630
+ import HTMLCollider, { IHTMLCollider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HTMLCollider';
4631
+ import { Vector3 } from 'three';
4632
+ import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
4633
+ /**
4634
+ *
4635
+ * 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.
4636
+ *
4637
+ * 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.
4638
+ *
4639
+ * You will need to specify at least `options.position` and one of `options.html` and `options.selector` OR `options.contentHtml`.
4640
+ *
4641
+ *
4642
+ * @class Tooltip
4643
+ *
4644
+ * @constructor
4645
+ * @param options {Object} Passes on options (e.g. html, text, position, map, padding, defaultAnchorType, enabledAnchorTypes, collisionRank) to MapView.Tooltip's options argument.
4646
+ * @param [options.html] Pass in custom html for your marker, if using this method you must also pass in a selector for your content.
4647
+ * @param [options.selector] Used in conjuction with the html property to select the div for repositioning
4648
+ * @param [options.contentHtml] Use mappedin's default tooltip styling with custom inner html content
4649
+ * @param [options.text] Instead of passing html pass in plain text to be displayed in the tooltip
4650
+ * @param [options.position] should be something you got from {{#crossLink "MapView/getPositionPolygon:method"}}{{/crossLink}} or {{#crossLink "MapView/getPositionNode:method"}}{{/crossLink}}.
4651
+ * @param [options.map] The map ID where the tooltip should be displayed
4652
+ * @param [options.defaultAnchorType] The default orientation to place the tooltip.
4653
+ * @param [options.padding] The distance in pixel to offset the tooltip from the anchor point.
4654
+ * @param [options.enabledAnchorTypes] An object used to disable certain anchor positions from being used.
4655
+ * @param [options.collisionRank] The rank of the object used when comparing colliders to determine which should be shown.
4656
+ */
4038
4657
  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
- };
4658
+ html?: string;
4659
+ contentHtml?: string;
4660
+ text?: string;
4661
+ position: Vector3;
4662
+ selector?: string;
4663
+ map: string;
4664
+ padding?: number;
4665
+ alwaysVisible?: boolean;
4666
+ collisionRank?: COLLISION_RANKING_TIERS;
4667
+ defaultAnchorType?: string;
4668
+ enabledAnchorTypes?: {
4669
+ [type: string]: boolean;
4670
+ };
4052
4671
  };
4053
4672
  type TTooltipStyle = {
4054
- top?: string;
4055
- left?: string;
4673
+ top?: string;
4674
+ left?: string;
4056
4675
  };
4057
4676
  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;
4677
+ top?: boolean;
4678
+ left?: boolean;
4679
+ topLeft?: boolean;
4680
+ right?: boolean;
4681
+ topRight?: boolean;
4682
+ bottom?: boolean;
4683
+ bottomLeft?: boolean;
4684
+ bottomRight?: boolean;
4066
4685
  };
4067
4686
  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;
4687
+ #private;
4688
+ className: string;
4689
+ _el: Element | null;
4690
+ style: TTooltipStyle;
4691
+ constructor(options: TSmartTooltipOptions);
4692
+ updateClassName: (className: any) => void;
4693
+ get strategies(): TColliderStrategy[];
4694
+ colliderDidMount(): void;
4695
+ /**
4696
+ * @internal
4697
+ */
4698
+ updateDimensionsImmediately(): void;
4699
+ setAction(action: any): void;
4700
+ colliderDidNotFindAHome(): void;
4701
+ colliderDidGoOffscreen(): void;
4702
+ colliderDidUpdateVisiblity(): void;
4080
4703
  }
4081
4704
  export default SmartTooltip;
4082
4705
  }
@@ -4088,6 +4711,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot
4088
4711
  import { TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4089
4712
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
4090
4713
  import EventSystemLayer from '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem';
4714
+ /**
4715
+ * 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.
4716
+ */
4091
4717
  class BlueDotLayer extends PubSub<E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT> {
4092
4718
  #private;
4093
4719
  /**
@@ -4099,7 +4725,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot
4099
4725
  */
4100
4726
  enable(options?: TEnableBlueDotOptions): void;
4101
4727
  /**
4102
- * Disable BlueDot
4728
+ * Disables Blue Dot and stops emitting events.
4103
4729
  */
4104
4730
  disable(): void;
4105
4731
  }
@@ -4118,7 +4744,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey
4118
4744
  */
4119
4745
  constructor(mapView: MapView, core: ICore);
4120
4746
  /**
4121
- * Draw a Journey
4747
+ * Draw a Journey based on directions. Example usage:
4748
+ *
4749
+ * ```typescript
4750
+ * const startLocation = venue.locations.find(location => location.name === "Cleo");
4751
+ * const endLocation = venue.locations.find(location => location.name === "American Eagle");
4752
+ *
4753
+ * const directions = startLocation.directionsTo(endLocation);
4754
+ * mapView.Journey.draw(directions);
4755
+ * ```
4756
+ *
4757
+ * 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
4758
  */
4123
4759
  draw(directions: MappedinDirections | MappedinDirections[], options?: TJourneyOptions): Journey;
4124
4760
  /**
@@ -4151,8 +4787,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4151
4787
  }
4152
4788
  export class FlatLabel {
4153
4789
  constructor(options: any, venue: any, mapObject: any, DEFAULT_FONT: any, polygonMeshesById: any, textLabelsByPolygonId: any, mapView: any, scope: any, atlas: any);
4790
+ id: any;
4154
4791
  text: any;
4155
4792
  stateText: string;
4793
+ fullText: any;
4156
4794
  font: any;
4157
4795
  atlas: any;
4158
4796
  canvasBounds: any;
@@ -4166,8 +4804,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4166
4804
  polygonMeshesById: any;
4167
4805
  polyId: any;
4168
4806
  map: any;
4169
- color: Color;
4170
- baseColor: Color;
4807
+ color: any;
4808
+ baseColor: any;
4171
4809
  hideOnCreate: boolean;
4172
4810
  hoverLabelText: any;
4173
4811
  fontSize: number;
@@ -4198,7 +4836,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4198
4836
  index: any;
4199
4837
  layout(map: any, origin: any, size: any, rotation: any, uv: any, color: any): void;
4200
4838
  }
4201
- import { Color } from "three/src/math/Color";
4202
4839
  export {};
4203
4840
  }
4204
4841
 
@@ -4376,23 +5013,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-s
4376
5013
  }
4377
5014
  }
4378
5015
 
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
5016
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
4397
5017
  export default RENDER;
4398
5018
  namespace RENDER {
@@ -4748,9 +5368,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView' {
4748
5368
 
4749
5369
  declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4750
5370
  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';
5371
+ import Analytics from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Analytics';
4752
5372
  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';
5373
+ import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
4754
5374
  import { PositionUpdater } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
4755
5375
  import type { TMapViewOptions, TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4756
5376
  import { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
@@ -4781,9 +5401,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4781
5401
  */
4782
5402
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
4783
5403
  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 };
5404
+ export { Search, getVenue, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, Analytics, MappedinDestinationSet, MARKER_ANCHOR, labelThemes };
4785
5405
  import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
4786
- const setAssetManager: (am: any) => void;
5406
+ const setAssetManager: <T extends DefaultAssetManager>(am: T) => void;
4787
5407
  /**
4788
5408
  * @internal
4789
5409
  */
@@ -4797,8 +5417,234 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
4797
5417
  export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/MapView';
4798
5418
  export type { TSafeAreaInsets, TFocusOnTargets, TFocusOnCameraOptions, TAnimatePositionOptions, TCameraAnimationOptions, TFocusOnOptions, default as Camera } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
4799
5419
  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';
5420
+ export type { TGetVenueOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch } from '@mappedin/react-native-sdk/core/packages/get-venue';
5421
+ 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';
5422
+ export { BundleAssetManager } from '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-manager';
5423
+ }
5424
+
5425
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
5426
+ import { FeatureCollection, Polygon, Point, MultiPolygon, Position } from 'geojson';
5427
+ type ManifestFile = {
5428
+ type: 'file';
5429
+ name: string;
5430
+ };
5431
+ type ManifestFolder = {
5432
+ type: 'folder';
5433
+ name: string;
5434
+ children: ManifestFile[];
5435
+ };
5436
+ type OpeningHours = {
5437
+ opens: string;
5438
+ closes: string;
5439
+ dayOfWeek: string;
5440
+ validFrom?: string;
5441
+ validThrough?: string;
5442
+ };
5443
+ type Image = {
5444
+ original?: string;
5445
+ xlarge?: string;
5446
+ xxlarge?: string;
5447
+ medium?: string;
5448
+ '140x140'?: string;
5449
+ xsmall?: string;
5450
+ xxsmall?: string;
5451
+ '66x66'?: string;
5452
+ small?: string;
5453
+ large?: string;
5454
+ };
5455
+ type PolygonImage = string;
5456
+ type Phone = {
5457
+ number: string;
5458
+ extension?: string;
5459
+ };
5460
+ type Link = {
5461
+ label: string;
5462
+ url: string;
5463
+ };
5464
+ type Social = {
5465
+ facebook?: string;
5466
+ twitter?: string;
5467
+ instagram?: string;
5468
+ website?: string;
5469
+ };
5470
+ type LocationState = {
5471
+ type: string;
5472
+ start?: string;
5473
+ end?: string;
5474
+ };
5475
+ type SiblingGroup = {
5476
+ label: string;
5477
+ siblings: string[];
5478
+ };
5479
+ export type MILocationProperties = {
5480
+ id: string;
5481
+ address?: string | null;
5482
+ categories: string[];
5483
+ description?: string | null;
5484
+ email?: string | null;
5485
+ externalId?: string | null;
5486
+ hours?: OpeningHours[] | null;
5487
+ links?: Link[] | null;
5488
+ logo?: Image | null;
5489
+ name: string;
5490
+ phone?: Phone | null;
5491
+ picture?: Image | null;
5492
+ services?: string | null;
5493
+ siblingGroups?: SiblingGroup[] | null;
5494
+ social?: Social | null;
5495
+ spaces?: TLocationSpaceReference[] | null;
5496
+ states?: LocationState[] | null;
5497
+ type: string;
5498
+ };
5499
+ export type MICategoryProperties = {
5500
+ id: string;
5501
+ name: string;
5502
+ picture?: Image;
5503
+ };
5504
+ export type MIBuildingProperties = {
5505
+ id: string;
5506
+ name: string;
5507
+ venue: string;
5508
+ };
5509
+ export type MILevelProperties = {
5510
+ id: string;
5511
+ abbreviation?: string;
5512
+ building?: string;
5513
+ elevation?: number;
5514
+ name: string;
5515
+ };
5516
+ export type MIPolygonlikeProperties = {
5517
+ id: string;
5518
+ altitude?: string;
5519
+ color?: string;
5520
+ externalId?: string | null;
5521
+ height?: string;
5522
+ layer?: string;
5523
+ level: string;
5524
+ parent?: string | null;
5525
+ };
5526
+ type TPseudoNodeSpaceReference = {
5527
+ node: string;
5528
+ map: string;
5529
+ };
5530
+ export type TRealSpaceReference = {
5531
+ id: string;
5532
+ map: string;
5533
+ };
5534
+ type TLocationSpaceReference = TPseudoNodeSpaceReference | TRealSpaceReference;
5535
+ export type TEntrances = {
5536
+ id: string;
5537
+ level: string;
5538
+ };
5539
+ export type MISpaceProperties = MIPolygonlikeProperties & {
5540
+ entrances: TEntrances[];
5541
+ };
5542
+ export type MIObstructionProperties = MIPolygonlikeProperties;
5543
+ export type MIConnectionProperties = {
5544
+ id: string;
5545
+ accessible: boolean;
5546
+ destinations: string[];
5547
+ level: string;
5548
+ multiplier: number;
5549
+ name: string;
5550
+ type: string;
5551
+ weight: number;
5552
+ };
5553
+ export type MINodeProperties = {
5554
+ id: string;
5555
+ accessible: boolean;
5556
+ externalId: string | null;
5557
+ level: string;
5558
+ multiplier: number;
5559
+ neighbors: string[];
5560
+ weight: number;
5561
+ };
5562
+ export type MIManifestProperties = {
5563
+ name: string;
5564
+ folder_struct: (ManifestFolder | ManifestFile)[];
5565
+ version: string;
5566
+ time: string;
5567
+ };
5568
+ export type MIStyle = {
5569
+ id: string;
5570
+ /** The altitude of the bottom of the geometry, in metres. */
5571
+ altitude: number;
5572
+ color: string;
5573
+ height: number;
5574
+ image?: PolygonImage;
5575
+ opacity: number;
5576
+ };
5577
+ export type MIImageInstance = {
5578
+ /** The local path or URL of the image. */
5579
+ path: string;
5580
+ /** The position of the centre of the image, in [long, lat] form. */
5581
+ position: Position;
5582
+ /** The altitude of the image, in metres. */
5583
+ altitude: number;
5584
+ /** Euler angles representing the rotation of the image, in degrees. Angles are in XYZ order. */
5585
+ rotation: {
5586
+ x: number;
5587
+ y: number;
5588
+ z: number;
5589
+ };
5590
+ /** The size of the image, in metres. */
5591
+ size: {
5592
+ x: number;
5593
+ y: number;
5594
+ };
5595
+ /** The portion of the image to display. */
5596
+ viewBox: {
5597
+ top: number;
5598
+ left: number;
5599
+ width: number;
5600
+ height: number;
5601
+ };
5602
+ /**
5603
+ * A space or obstruction to associate this image with. If provided,
5604
+ * changes to the polygon's visibility will affect this image.
5605
+ * */
5606
+ polygonId?: string;
5607
+ };
5608
+ export type MIGeoJSONManifestCollection = FeatureCollection<Point, MIManifestProperties>;
5609
+ export type MIGeoJSONBuildingCollection = FeatureCollection<Polygon, MIBuildingProperties>;
5610
+ export type MIGeoJSONConnectionCollection = FeatureCollection<Point, MIConnectionProperties>;
5611
+ export type MIGeoJSONLevelCollection = FeatureCollection<Polygon | MultiPolygon, MILevelProperties>;
5612
+ export type MIGeoJSONSpaceCollection = FeatureCollection<Polygon, MISpaceProperties>;
5613
+ export type MIGeoJSONObstructionCollection = FeatureCollection<Polygon, MIObstructionProperties>;
5614
+ export type MIGeoJSONNodeCollection = FeatureCollection<Point, MINodeProperties>;
5615
+ export type MIGeoJSONLocationCollection = FeatureCollection<null, MILocationProperties>;
5616
+ export type MIGeoJSONCategoryCollection = FeatureCollection<null, MICategoryProperties>;
5617
+ export type WithIDs<T> = Map<string, T>;
5618
+ export type MIStyleCollection = MIStyle[];
5619
+ /**
5620
+ * A mapping of polygon IDs to style IDs;
5621
+ */
5622
+ export type MIPolygonStyle = {
5623
+ [key in string]: string;
5624
+ };
5625
+ export type MIImageInstanceCollection = MIImageInstance[];
5626
+ /**
5627
+ * The entire data collection for an MVF, in a single JSON collection.
5628
+ *
5629
+ */
5630
+ export type MVFDataJSON = {
5631
+ connection: WithIDs<MIGeoJSONConnectionCollection>;
5632
+ level: WithIDs<MIGeoJSONLevelCollection>;
5633
+ node: WithIDs<MIGeoJSONNodeCollection>;
5634
+ obstruction: WithIDs<MIGeoJSONObstructionCollection>;
5635
+ space: WithIDs<MIGeoJSONSpaceCollection>;
5636
+ building: MIGeoJSONBuildingCollection;
5637
+ category: MIGeoJSONCategoryCollection;
5638
+ style: MIStyleCollection;
5639
+ polygonStyle: WithIDs<MIPolygonStyle>;
5640
+ imageInstance: WithIDs<MIImageInstanceCollection>;
5641
+ location: MIGeoJSONLocationCollection;
5642
+ manifest: MIGeoJSONManifestCollection;
5643
+ };
5644
+ export type MVFData = MVFDataJSON & {
5645
+ imageBinaries: WithIDs<Uint8Array>;
5646
+ };
5647
+ export {};
4802
5648
  }
4803
5649
 
4804
5650
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings' {
@@ -4850,9 +5696,95 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme
4850
5696
  }
4851
5697
  }
4852
5698
 
5699
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Analytics' {
5700
+ type AnalyticsOptions = {
5701
+ clientId?: string;
5702
+ clientSecret?: string;
5703
+ accessToken?: string;
5704
+ noAuth?: boolean;
5705
+ venue: string;
5706
+ testMode?: boolean | string;
5707
+ context?: string;
5708
+ platformString?: string;
5709
+ };
5710
+ /**
5711
+ * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
5712
+ * 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`.
5713
+ *
5714
+ * @type {any}
5715
+ *
5716
+ * @class Analytics
5717
+ * @param options {Object} A list of configuration options for the Analytics API.
5718
+ * @param [options.clientId] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
5719
+ * @param [options.clientSecret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
5720
+ * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
5721
+ * @param [options.context] {String} The context to pass with the analytics request. Defaults to "websdk".
5722
+ * @param [options.noAuth] {Boolean} Whether authentication should not be sent with analytics requests.
5723
+ * @param [options.testMode] {Boolean} Whether analytics events should be dropped because this is running in a test environment.
5724
+ */
5725
+ class Analytics {
5726
+ #private;
5727
+ constructor(options: AnalyticsOptions);
5728
+ track(target: any, query: any): void;
5729
+ /**
5730
+ * Whenever a location is selected, you should fire this event. What "selected" means can vary by venue,
5731
+ * but a good rule of thumb is that you fire the event whenever you would show the location's details.
5732
+ * Typically this is when the user taps it's polygon on the map, picks it from search results or a category list.
5733
+ * or deep links directly into the map.
5734
+ * @method locationSelected
5735
+ * @param location {MappedinLocation} The location the user selected.
5736
+ */
5737
+ locationSelected(location: any): void;
5738
+ /**
5739
+ * Whenever a category is selected, you should fire this event.
5740
+ * @method categorySelected
5741
+ * @param category {MappedinCategory} The category the user selected.
5742
+ */
5743
+ categorySelected(category: any): void;
5744
+ mapViewLoaded(type: any, forced: any, benchmark: any, reason: any): void;
5745
+ /**
5746
+ * Whenever a user requests directions, you should fire this event.
5747
+ * @method getDirections
5748
+ * @param start {MappedinLocation} The start location for wayfinding.
5749
+ * @param end {MappedinLocation} The end location for wayfinding.
5750
+ */
5751
+ getDirections(start: any, end: any): void;
5752
+ getSessionID(): string;
5753
+ getDeviceID(): string;
5754
+ /**
5755
+ * @param mode {Boolean} Indicates whether the user's geolocation is enabled.
5756
+ */
5757
+ setGeolocationMode(mode: any): void;
5758
+ /**
5759
+ * Track an event.
5760
+ * @method trackBlueDotEvent
5761
+ * @param event {String}
5762
+ * event param should be a property of the {{#crossLink "Analytics/BLUEDOT_EVENT:property"}}{{/crossLink}} property.
5763
+ */
5764
+ trackBlueDotEvent(blueDotEvent: any): void;
5765
+ trackSearch(searchAnalyticsObject: any): void;
5766
+ trackSearchSuggest(searchAnalyticsObject: any): void;
5767
+ /**
5768
+ * Enum of valid bluedot events.
5769
+ * Pass a property of this into the {{#crossLink "Analytics/trackBlueDotEvent:method"}}{{/crossLink}} method.
5770
+ * Valid properties are: ATTEMPT_BLUEDOT, FOUND_POSITION, FOUND_FLOOR.
5771
+ * @property BLUEDOT_EVENT {Object}
5772
+ * @example
5773
+ * Analytics.trackBlueDotEvent(Analytics.BLUEDOT_EVENT.ATTEMPT_BLUEDOT)
5774
+ */
5775
+ static BLUEDOT_EVENT: {
5776
+ ATTEMPT_BLUEDOT: string;
5777
+ FOUND_POSITION: string;
5778
+ FOUND_FLOOR: string;
5779
+ };
5780
+ }
5781
+ export default Analytics;
5782
+ }
5783
+
4853
5784
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
4854
5785
  import SmartCollisionEngine from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
4855
5786
  import { Vector3 } from 'three';
5787
+ import { Rectangle } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
4856
5788
  export type TRange = [number, number, number, number];
4857
5789
  type TCustomCollider<T> = ICollider & T;
4858
5790
  export type TColliderStrategyProps = {
@@ -4866,6 +5798,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4866
5798
  getBoundingBox: (TColliderStrategyProps: any) => TRange;
4867
5799
  onStrategySelected: (collider: TCustomCollider<any>) => void;
4868
5800
  };
5801
+ export type TGetBoundingBox = ({ x, y }: {
5802
+ x: any;
5803
+ y: any;
5804
+ }) => [number, number, number, number];
4869
5805
  export type TDimensions = {
4870
5806
  width: number;
4871
5807
  height: number;
@@ -4878,13 +5814,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4878
5814
  export interface ICollider {
4879
5815
  dimensions: TDimensions;
4880
5816
  screenPosition: [number, number];
4881
- currentStrategyName: string | null;
5817
+ getBoundingBoxForCurrentStrategy?: TGetBoundingBox;
4882
5818
  options?: Record<string, unknown>;
4883
5819
  mapId: string;
4884
5820
  visible: boolean;
4885
5821
  rank: number;
4886
- _dirty?: boolean;
4887
5822
  id: string;
5823
+ _bboxes?: [
5824
+ string,
5825
+ Rectangle,
5826
+ (collider: TCustomCollider<any>) => void,
5827
+ TGetBoundingBox
5828
+ ][];
5829
+ offscreen?: boolean;
4888
5830
  setAction: (action: EColliderAction) => void;
4889
5831
  action?: EColliderAction;
4890
5832
  position: Vector3;
@@ -4908,15 +5850,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4908
5850
  __engine: any;
4909
5851
  _initialRank: number;
4910
5852
  screenPosition: [number, number];
4911
- currentStrategyName: null;
4912
5853
  enabled: boolean;
4913
5854
  options: any;
4914
5855
  mapId: string;
4915
5856
  id: string;
4916
5857
  action: EColliderAction;
5858
+ getBoundingBoxForCurrentStrategy: undefined;
4917
5859
  rank: number;
4918
5860
  visible: boolean;
4919
- position: Vector3;
5861
+ offscreen: boolean;
5862
+ position: any;
4920
5863
  dimensions: {
4921
5864
  width: number;
4922
5865
  height: number;
@@ -5176,11 +6119,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5176
6119
  }
5177
6120
 
5178
6121
  declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem' {
5179
- import { Object3D, Raycaster } from 'three';
6122
+ import { Object3D } from 'three';
5180
6123
  import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
5181
6124
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
5182
6125
  import BlueDotManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-dot-manager';
5183
- export const raycaster: Raycaster;
6126
+ export const raycaster: any;
5184
6127
  class EventSystemLayer {
5185
6128
  mapView: MapView;
5186
6129
  core: ICore;
@@ -5223,7 +6166,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSy
5223
6166
  };
5224
6167
  hasTouched: boolean;
5225
6168
  calculateMouseCoordinates: (event: any) => void;
5226
- getMouseRayIntersects: (objects: Object3D | Object3D[]) => import("three").Intersection[];
6169
+ getMouseRayIntersects: (objects: Object3D | Object3D[]) => any;
5227
6170
  detectPolygonsUnderMouse: () => any[];
5228
6171
  getMouseMapPosition: () => {
5229
6172
  x: number;
@@ -5403,6 +6346,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5403
6346
  get strategies(): TColliderStrategy[];
5404
6347
  colliderDidMount(): void;
5405
6348
  setAction(action: any): void;
6349
+ colliderDidNotFindAHome(): void;
5406
6350
  colliderDidGoOffscreen(): void;
5407
6351
  colliderDidUpdateVisiblity(): void;
5408
6352
  }
@@ -5410,6 +6354,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5410
6354
  }
5411
6355
 
5412
6356
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject' {
6357
+ export namespace TASK_PRIORITY {
6358
+ const VISIBLE_MAP_HIGH: number;
6359
+ const VISIBLE_MAP_LOW: number;
6360
+ const VISIBLE_MAP_MARKER: number;
6361
+ const ASYNC_MAP_HIGH: number;
6362
+ const ASYNC_MAP_LOW: number;
6363
+ const ASYNC_MAP_MARKER: number;
6364
+ const MAP_LOADED: number;
6365
+ }
5413
6366
  export const SCENE_FROM_LIVE_JSON: false;
5414
6367
  /**
5415
6368
  * A handle to a 3D marker added to a map.
@@ -5439,10 +6392,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5439
6392
  _started: boolean;
5440
6393
  _loaderPromise: null;
5441
6394
  _promiseResolve: null;
6395
+ hoverableMeshChildren: any[];
5442
6396
  objectsDictionary: {};
5443
6397
  north: null;
5444
6398
  mapScale: null;
5445
- object: Object3D;
6399
+ object: any;
5446
6400
  labels: Set<any>;
5447
6401
  tooltips: Set<any>;
5448
6402
  markers: Set<any>;
@@ -5459,6 +6413,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5459
6413
  loadAsync: any;
5460
6414
  _taskScheduler: any;
5461
6415
  id: any;
6416
+ mapRenderingStrategy: any;
5462
6417
  _highPriorityTasks: FrameTaskGroup;
5463
6418
  _lowPriorityTasks: FrameTaskGroup;
5464
6419
  _markerTasks: FrameTaskGroup;
@@ -5466,11 +6421,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5466
6421
  _visibilityLatch: boolean | null;
5467
6422
  _objLoadedComplete: boolean;
5468
6423
  _objLoaded(object: any): any;
6424
+ _objLoadedMerged(object: any): void;
5469
6425
  enableImageFlipping(polygonId: any, rotation: any): void;
5470
6426
  elements: any;
5471
6427
  boundingBox: {
5472
- min: Vector3;
5473
- max: Vector3;
6428
+ min: any;
6429
+ max: any;
5474
6430
  } | undefined;
5475
6431
  loadPolygonNow(polygonId: any): void;
5476
6432
  _addElementToScene(element: any): void;
@@ -5547,10 +6503,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5547
6503
  * @return {ThreeJSMarkerHandle} a unique identifier for the marker
5548
6504
  */
5549
6505
  addThreeJSMarker(options: {
5550
- object?: Object3D | undefined;
5551
- position?: Vector3 | undefined;
6506
+ object?: any;
6507
+ position?: any;
5552
6508
  rotation?: any;
5553
- scale?: Vector3 | undefined;
6509
+ scale?: any;
5554
6510
  }): ThreeJSMarkerHandle;
5555
6511
  /**
5556
6512
  * Remove the given `ThreeJSMarker` from this map.
@@ -5582,9 +6538,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5582
6538
  _popinChildObjects(): void;
5583
6539
  }
5584
6540
  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";
6541
+ import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler";
5588
6542
  }
5589
6543
 
5590
6544
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Search' {
@@ -5606,30 +6560,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5606
6560
  let Search: any;
5607
6561
  }
5608
6562
 
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
6563
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager' {
5627
- import { TextureLoader } from 'three';
6564
+ import { Texture } from 'three';
5628
6565
  import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer';
5629
6566
  export default class DefaultAssetManager {
5630
- textureLoader: TextureLoader;
6567
+ textureLoader: any;
5631
6568
  loadMapPolygons(map: MappedinMap): Promise<any>;
5632
- loadImage(url: string): Promise<unknown>;
6569
+ loadImage(url: string): Promise<Texture>;
6570
+ }
6571
+ }
6572
+
6573
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-manager' {
6574
+ import type { Texture } from 'three';
6575
+ import { Mappedin, MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer';
6576
+ import AssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
6577
+ export class BundleAssetManager extends AssetManager {
6578
+ venueData: Mappedin;
6579
+ constructor(venueData: Mappedin);
6580
+ loadMapPolygons(map: MappedinMap): Promise<Record<string, any>>;
6581
+ loadImage(url: string): Promise<Texture>;
5633
6582
  }
5634
6583
  }
5635
6584
 
@@ -5638,74 +6587,86 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5638
6587
  import './Mappedin.SmartCollisionEngine.scss';
5639
6588
  import { ICollider, TRange } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
5640
6589
  import { MappedinMap, MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
6590
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/Core.interface';
6591
+ import { Rectangle, QuadTree } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
5641
6592
  export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
5642
6593
  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;
6594
+ #private;
6595
+ colliderCanvas: HTMLCanvasElement;
6596
+ debugCanvas: HTMLCanvasElement;
6597
+ colliderCanvasContext: CanvasRenderingContext2D;
6598
+ debugCanvasContext: CanvasRenderingContext2D;
6599
+ collisionEngineContainerEl: HTMLDivElement;
6600
+ stepsX: any;
6601
+ stepsY: any;
6602
+ totalWidth: any;
6603
+ totalHeight: any;
6604
+ project: any;
6605
+ colliders: Map<string, ICollider>;
6606
+ offscreenRanges: TRange[];
6607
+ get sortedColliders(): ICollider[];
6608
+ initialized: boolean;
6609
+ mapView: MapView;
6610
+ core: ICore;
6611
+ screen: Rectangle;
6612
+ constructor(mapView: any, core: ICore);
6613
+ init: (container: HTMLDivElement, projectFn: ({ position, mapId }: {
6614
+ position: any;
6615
+ mapId: MappedinMap['id'];
6616
+ }) => {
6617
+ x: number;
6618
+ y: number;
6619
+ }) => void;
6620
+ qtree: QuadTree;
6621
+ recompute: () => void;
6622
+ draw: () => void;
6623
+ reposition: () => void;
6624
+ add: (colliderId: string, collider: ICollider) => void;
6625
+ remove: (colliderId: string) => void;
6626
+ update: () => void;
6627
+ resize: (container: any) => void;
6628
+ destroy: () => void;
5687
6629
  }
5688
6630
  export default SmartCollisionEngine;
5689
6631
  }
5690
6632
 
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;
6633
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree' {
6634
+ export function contains(rect1: Rectangle, rect2: Rectangle): boolean;
6635
+ export function intersects(rect1: Rectangle, rect2: Rectangle): boolean;
6636
+ class Rectangle {
6637
+ x: number;
6638
+ y: number;
6639
+ w: number;
6640
+ h: number;
6641
+ userData?: any;
6642
+ constructor(x: number, y: number, w: number, h: number, userData?: any);
6643
+ contains(rectangle: Rectangle): boolean;
6644
+ intersects(rectangle: Rectangle): boolean;
6645
+ draw(context: CanvasRenderingContext2D): void;
5699
6646
  }
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;
6647
+ class QuadTree {
6648
+ #private;
6649
+ boundary: Rectangle;
6650
+ capacity: number;
6651
+ objects: Rectangle[];
6652
+ topLeft: QuadTree;
6653
+ topRight: QuadTree;
6654
+ bottomLeft: QuadTree;
6655
+ bottomRight: QuadTree;
6656
+ divided: boolean;
6657
+ parent?: QuadTree;
6658
+ getSize(): any;
6659
+ constructor(boundary: Rectangle, parent?: QuadTree);
6660
+ subdivide(): void;
6661
+ query(rectangle: Rectangle): Rectangle[];
6662
+ insert(rectangle: Rectangle): boolean;
6663
+ drawObjects(context: CanvasRenderingContext2D): void;
6664
+ draw(context: CanvasRenderingContext2D): void;
5708
6665
  }
6666
+ export { QuadTree, Rectangle };
6667
+ }
6668
+
6669
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler' {
5709
6670
  /**
5710
6671
  * A function that can be submitted to the Task Scheduler to run each frame for
5711
6672
  * some provided number of frames. A single update can be repeatedly submitted;
@@ -5739,22 +6700,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5739
6700
  * @param [options.userdata] {Any}
5740
6701
  * Arbitrary data that you can store along with this update.
5741
6702
  */
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;
6703
+ constructor(options: {
6704
+ callback: Function;
6705
+ frameCount?: number;
6706
+ ordering?: number;
6707
+ supersededBy?: Set<never>;
6708
+ name: string;
6709
+ userdata?: Record<string, any>;
6710
+ });
6711
+ _callback: Function;
5751
6712
  _frameCount: number;
5752
6713
  _ordering: number;
5753
- _supersededBy: Set<any>;
5754
- name: string | undefined;
5755
- userdata: any;
6714
+ _supersededBy: Set<never>;
6715
+ name: string;
5756
6716
  _remainingFrameCount: number;
5757
6717
  _lastFrameTime: number;
6718
+ userdata?: Record<string, any>;
5758
6719
  /**
5759
6720
  * Return the amount of time that this frame update took to execute during
5760
6721
  * its most recent execution, in milliseconds. If called during this frame
@@ -5794,24 +6755,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5794
6755
  * @param [options.userdata] {Any}
5795
6756
  * Arbitrary data that you can store along with this task.
5796
6757
  */
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;
6758
+ constructor(options: {
6759
+ userdata: Record<string, any>;
6760
+ priority: number;
6761
+ group?: FrameTaskGroup;
6762
+ postponeOnAdd: number | boolean;
6763
+ name: string;
6764
+ lastFrameTime: number;
6765
+ callback: Function;
6766
+ });
5808
6767
  _postponed: number | boolean;
5809
- name: string | undefined;
5810
- userdata: any;
6768
+ userdata: Record<string, any>;
6769
+ _priority: number;
6770
+ _group: FrameTaskGroup | null;
6771
+ name: string;
6772
+ _lastFrameTime: number;
6773
+ _callback: Function;
5811
6774
  _complete: boolean;
5812
6775
  _scheduled: boolean;
5813
6776
  _cancelled: boolean;
5814
- _lastFrameTime: number;
5815
6777
  /**
5816
6778
  * Return true if this task has been run at least once.
5817
6779
  *
@@ -5858,18 +6820,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5858
6820
  * @param [options.userdata] {Any}
5859
6821
  * Arbitrary data that you can store along with this task group.
5860
6822
  */
5861
- constructor(options?: {
5862
- onComplete?: Function | undefined;
5863
- priority?: number | undefined;
5864
- postponeOnAdd?: number | undefined;
5865
- name?: string | undefined;
5866
- userdata?: any;
5867
- } | undefined);
6823
+ constructor(options: {
6824
+ onComplete?: Function;
6825
+ priority?: number;
6826
+ userdata: Record<string, any>;
6827
+ postponeOnAdd: number | boolean;
6828
+ name: string;
6829
+ });
6830
+ _postponed: number | boolean;
5868
6831
  _onComplete: Function;
5869
6832
  _priority: number;
5870
- _postponed: number | boolean;
5871
- name: string | undefined;
5872
- userdata: any;
6833
+ userdata: Record<string, any>;
6834
+ name: string;
5873
6835
  _tasks: Set<any>;
5874
6836
  _scheduledTasks: Set<any>;
5875
6837
  _scheduled: boolean;
@@ -5888,13 +6850,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5888
6850
  * @method tasks
5889
6851
  * @return {[FrameTask]} list of tasks in this group
5890
6852
  */
5891
- getTasks(): [FrameTask];
6853
+ getTasks(): any[];
5892
6854
  /**
5893
6855
  * Empty this task group. This will trivially satisfy `isComplete`.
5894
6856
  *
5895
6857
  * @method clear
5896
6858
  */
5897
6859
  clear(): void;
6860
+ /**
6861
+ * Return one arbitrary incomplete task from this group, or undefined if
6862
+ * there are none.
6863
+ *
6864
+ * @method _popTask
6865
+ * @return {FrameTask} arbitrary scheduled task
6866
+ * @private
6867
+ */
6868
+ _popTask(): any;
5898
6869
  }
5899
6870
  /**
5900
6871
  * A timer for the task scheduler that uses real wall-time to determine if there's
@@ -5904,6 +6875,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5904
6875
  * @private
5905
6876
  */
5906
6877
  export class RealTimeTimer {
6878
+ _maxMillisecondsPerFrame: number;
6879
+ _time: number;
5907
6880
  /**
5908
6881
  * @constructor
5909
6882
  * @param [options] {Object} Options for the timer
@@ -5912,10 +6885,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5912
6885
  * or equal to this value, then another task may be executed
5913
6886
  */
5914
6887
  constructor(options?: {
5915
- maxMillisecondsPerFrame?: any;
5916
- } | undefined);
5917
- _maxMillisecondsPerFrame: any;
5918
- _time: any;
6888
+ maxMillisecondsPerFrame?: number;
6889
+ });
5919
6890
  /**
5920
6891
  * Begin timing a frame.
5921
6892
  *
@@ -5937,6 +6908,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5937
6908
  * @private
5938
6909
  */
5939
6910
  export class FixedTimer {
6911
+ _ticks: number;
6912
+ maxTasksPerFrame: number;
5940
6913
  /**
5941
6914
  * @constructor
5942
6915
  * @param [options] {Object} Options for the timer
@@ -5945,10 +6918,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5945
6918
  * Can be modified as the `maxTasksPerFrame` property on this boject.
5946
6919
  */
5947
6920
  constructor(options?: {
5948
- maxTasksPerFrame?: any;
5949
- } | undefined);
5950
- maxTasksPerFrame: any;
5951
- _ticks: number;
6921
+ maxTasksPerFrame?: number;
6922
+ });
5952
6923
  /**
5953
6924
  * Begin timing a frame.
5954
6925
  *
@@ -5992,11 +6963,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
5992
6963
  * performance information.
5993
6964
  */
5994
6965
  constructor(options?: {
5995
- timer?: any;
5996
- performance?: any;
5997
- } | undefined);
5998
- _timer: any;
5999
- _performance: any;
6966
+ timer?: RealTimeTimer;
6967
+ performance?: boolean;
6968
+ });
6969
+ _timer: RealTimeTimer;
6970
+ _performance: boolean;
6000
6971
  _scheduledUpdatesByOrdering: Multimap;
6001
6972
  _scheduledTasksByPriority: Multimap;
6002
6973
  _postponedTasks: Set<any>;
@@ -6004,18 +6975,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6004
6975
  _updatesToRunThisFrame: any[];
6005
6976
  _lastFrameTime: number;
6006
6977
  _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
6978
  /**
6020
6979
  * Empty the task scheduler's queue. All tasks in it will be cancelled.
6021
6980
  *
@@ -6035,6 +6994,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6035
6994
  * @method requestAnimationFrame
6036
6995
  */
6037
6996
  requestAnimationFrame(): void;
6997
+ /**
6998
+ * Run all scheduled updates, and re-schedule another animation frame if any
6999
+ * scheduled updates still exist. If any scheduled update specifies
7000
+ * `shouldRunTasksAfterCompletion`, this will also run queued tasks until the
7001
+ * frame time runs out.
7002
+ *
7003
+ * @method update
7004
+ * @param timestamp {number} the current animation time, as returned from
7005
+ * `performance.now()`; will be automatically filled in by
7006
+ * `requestAnimationFrame` when it triggers this as a callback
7007
+ */
7008
+ update(timestamp: number): void;
6038
7009
  /**
6039
7010
  * Execute all tasks that are currently pending, without regard for the
6040
7011
  * available frame time.
@@ -6059,7 +7030,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6059
7030
  * has not yet been run or if the scheduler has been cleared.
6060
7031
  */
6061
7032
  getUpdatesRunLastFrame(): Set<any>;
6062
- _executeOneTask(timestamp: any): void;
7033
+ _executeOneTask(timestamp: number): void;
6063
7034
  /**
6064
7035
  * Schedule an update to be run for the next `update.frameCount` frames. If
6065
7036
  * the update already exists in the scheduler, the update's frame count will
@@ -6069,7 +7040,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6069
7040
  * @method scheduleUpdate
6070
7041
  * @param task {FrameUpdate} the update to schedule
6071
7042
  */
6072
- scheduleUpdate(update: any): void;
7043
+ scheduleUpdate(update: FrameUpdate): void;
6073
7044
  /**
6074
7045
  * Schedule a task to be run during a frame update. This will also schedule
6075
7046
  * an animation frame to begin processing the task queue.
@@ -6084,7 +7055,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6084
7055
  * @method cancelUpdate
6085
7056
  * @param task {FrameUpdate} the update to cancel
6086
7057
  */
6087
- cancelUpdate(update: any): void;
7058
+ cancelUpdate(update: FrameUpdate): void;
6088
7059
  /**
6089
7060
  * If the given task or group is in the queue, remove it. Cancelling a
6090
7061
  * completed task is a no-op.
@@ -6095,7 +7066,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6095
7066
  * @method cancelTask
6096
7067
  * @param task {FrameTask or FrameTaskGroup} the task to cancel
6097
7068
  */
6098
- cancelTask(task: FrameTask): void;
7069
+ cancelTask(task: FrameTask | FrameTaskGroup): void;
6099
7070
  /**
6100
7071
  * Set the provided task or group not to run, until it's resumed using `resumeTask`.
6101
7072
  *
@@ -6105,7 +7076,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6105
7076
  * @method postponeTask
6106
7077
  * @param task {FrameTask or FrameTaskGroup} the task to postpone
6107
7078
  */
6108
- postponeTask(task: FrameTask): void;
7079
+ postponeTask(task: FrameTask | FrameTaskGroup): void;
6109
7080
  /**
6110
7081
  * Allow a postponed task or task group to resume processing. This will also
6111
7082
  * request an animation frame to allow the resumed task to be processed.
@@ -6116,7 +7087,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6116
7087
  * @method resumeTask
6117
7088
  * @param task {FrameTask or FrameTaskGroup} the task to resume
6118
7089
  */
6119
- resumeTask(task: FrameTask): void;
7090
+ resumeTask(task: FrameTask | FrameTaskGroup): void;
6120
7091
  /**
6121
7092
  * Change the priority of the given scheduled task or task group.
6122
7093
  *
@@ -6124,7 +7095,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6124
7095
  * @param task {FrameTask or FrameTaskGroup} the task whose priority will be changed
6125
7096
  * @param priority {number} the priority to assign the task
6126
7097
  */
6127
- setTaskPriority(task: FrameTask, priority: number): void;
7098
+ setTaskPriority(task: FrameTask | FrameTaskGroup, priority: number): void;
6128
7099
  }
6129
7100
  /**
6130
7101
  * A map that maps a numeric key to a set of values.
@@ -6135,6 +7106,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6135
7106
  * @private
6136
7107
  */
6137
7108
  class Multimap {
7109
+ /**
7110
+ * @method constructor
7111
+ */
7112
+ constructor();
6138
7113
  _map: Map<any, any>;
6139
7114
  _size: number;
6140
7115
  _sortedKeys: any[];
@@ -6194,7 +7169,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6194
7169
  * @method values
6195
7170
  * @return {Iterator} iterator over the values in the map
6196
7171
  */
6197
- values(): Iterator<any, any, undefined>;
7172
+ values(): {
7173
+ [Symbol.iterator]: () => any;
7174
+ next: () => any;
7175
+ };
6198
7176
  /**
6199
7177
  * A list of keys in this set, sorted by numeric value. Not cloned,
6200
7178
  * for efficiency's sake, so please don't mutate it.
@@ -6202,7 +7180,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6202
7180
  * @method keys
6203
7181
  * @return {[number]} sorted list of numeric keys in the map
6204
7182
  */
6205
- keys(): [number];
7183
+ keys(): any[];
6206
7184
  /**
6207
7185
  * The number of elements in this multimap, equal to the sum of the sizes
6208
7186
  * of each key's set of values.