@mappedin/react-native-sdk 5.18.0 → 5.20.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
@@ -7,6 +7,9 @@
7
7
  // ../@mappedin/mvf
8
8
  // ../@tweenjs/tween.js
9
9
  // ../minisearch
10
+ // ../geojson
11
+ // ../n8ao
12
+ // ../postprocessing
10
13
 
11
14
  declare module '@mappedin/react-native-sdk' {
12
15
  export { MiMapView } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView';
@@ -126,7 +129,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
126
129
  /**
127
130
  * @category Component
128
131
  */
129
- export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "options" | "style" | "onClick" | "onFirstMapLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onCameraChanged" | "onDataLoaded" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
132
+ export const MiMapView: React.MemoExoticComponent<React.ForwardRefExoticComponent<Pick<TMiMapViewProps, "options" | "onClick" | "style" | "onFirstMapLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onCameraChanged" | "onDataLoaded" | "onNothingClicked" | "onMapChanged" | "onStateChanged" | "onVenueLoadError"> & React.RefAttributes<MapViewStore>>>;
130
133
  }
131
134
 
132
135
  declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMiniMap' {
@@ -625,12 +628,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
625
628
  import type { Euler, Object3D, Vector3 } from 'three';
626
629
  import type { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
627
630
  import { TOOLTIP_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
628
- import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, MAP_RENDER_MODE, CAMERA_EASING_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
631
+ import { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, MAP_RENDER_MODE, CAMERA_EASING_MODE, E_MAP_CHANGED_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
629
632
  import { TOutdoorViewControllerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/OutdoorViewController';
630
633
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance };
631
634
  export type Without<T, U> = {
632
635
  [P in Exclude<keyof T, keyof U>]?: never;
633
636
  };
637
+ /** @internal */
634
638
  export type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
635
639
  /**
636
640
  An extension of the GeolocationPosition type.
@@ -1014,6 +1018,32 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1014
1018
  outdoorView?: TOutdoorViewControllerOptions & {
1015
1019
  enabled?: boolean;
1016
1020
  };
1021
+ /**
1022
+ * @experimental
1023
+ */
1024
+ dynamicFocus?: {
1025
+ /**
1026
+ * The Dynamic Focus Map to always be visible
1027
+ */
1028
+ baseMap?: MappedinMap;
1029
+ /**
1030
+ * Mercator Zoom level where the indoors are fully visible
1031
+ */
1032
+ indoorsFullyVisibleZoomLevel?: number;
1033
+ /**
1034
+ * Mercator Zoom level when the outdoors geometry is fully visible
1035
+ */
1036
+ buildingFullyVisibleZoomLevel?: number;
1037
+ /**
1038
+ * Level at which the map is "set", and colliders become visible
1039
+ */
1040
+ setMapAtZoomLevel?: number;
1041
+ /**
1042
+ * Whether we should preload the default maps of each building
1043
+ * This will incur a cost up-front, but make transitions smoother
1044
+ */
1045
+ preloadDefaultMaps?: boolean;
1046
+ };
1017
1047
  /**
1018
1048
  * First map to be rendered
1019
1049
  */
@@ -1309,7 +1339,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1309
1339
  }[];
1310
1340
  /**
1311
1341
  * A list of paths that a user's click pass through. These are in order of first
1312
- * to last intersected. Willbe empty if no paths were clicked.
1342
+ * to last intersected. Will be empty if no paths were clicked.
1313
1343
  */
1314
1344
  paths?: Path[];
1315
1345
  };
@@ -1323,6 +1353,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1323
1353
  [E_SDK_EVENT.NOTHING_CLICKED]: undefined;
1324
1354
  [E_SDK_EVENT.OUTDOOR_VIEW_LOADED]: undefined;
1325
1355
  [E_SDK_EVENT.MAP_CHANGED]: MappedinMap;
1356
+ [E_SDK_EVENT.MAP_CHANGED_WITH_REASON]: {
1357
+ map: MappedinMap;
1358
+ reason?: E_MAP_CHANGED_REASON;
1359
+ };
1326
1360
  };
1327
1361
  /**
1328
1362
  * Arguments that get passed to listeners of an {@link E_BLUEDOT_EVENT}.
@@ -1461,8 +1495,18 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
1461
1495
  /**
1462
1496
  * @experimental
1463
1497
  * Enable multi-buffer rendering
1498
+ *
1499
+ * Multi-buffer rendering should improve performance but may cause issues on older GPUs/browsers
1500
+ * @default false
1464
1501
  */
1465
1502
  multiBufferRendering?: boolean;
1503
+ /**
1504
+ * @experimental
1505
+ * Journey path will be visible through other objects. Note: this is on by default, but requires the
1506
+ * `multiBufferRendering` option (which is off by default) to be turned on.
1507
+ * @default true
1508
+ */
1509
+ xRayPath?: boolean;
1466
1510
  };
1467
1511
  export { MAP_RENDER_MODE };
1468
1512
  /**
@@ -1675,6 +1719,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
1675
1719
  * Emitted when the map is changed
1676
1720
  */
1677
1721
  MAP_CHANGED = "MAP_CHANGED",
1722
+ /**
1723
+ * Emitted when the map is changed, plus the context in which it was changed. This is typically so developers can
1724
+ * determine why the map was changed, such as a user clicking a connection, or the blue dot detecting a floor change, among others.
1725
+ * See {@link E_MAP_CHANGED_REASON}.
1726
+ */
1727
+ MAP_CHANGED_WITH_REASON = "MAP_CHANGED_WITH_REASON",
1678
1728
  /**
1679
1729
  * Emitted when the outdoor view is ready. All currently requested tiles have loaded, and all fade and transition
1680
1730
  * animations have completed. {@link showVenue} is resolved when the indoor map is ready even if the outdoor tiles are not yet loaded.
@@ -1767,6 +1817,23 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
1767
1817
  */
1768
1818
  ZOOMED_IN = "ZOOMED_IN"
1769
1819
  }
1820
+ /**
1821
+ * A reason why the SDK changed the map. See {@link E_SDK_EVENT.MAP_CHANGED_WITH_REASON}.
1822
+ */
1823
+ export enum E_MAP_CHANGED_REASON {
1824
+ /**
1825
+ * When in Dynamic Focus mode, and the user pans or zooms to a map
1826
+ */
1827
+ DYNAMIC_FOCUS_USER_INTERACTION = "dynamic-focus-user-interaction",
1828
+ /**
1829
+ * When BlueDot is in FOLLOW mode, and the level changes
1830
+ */
1831
+ BLUE_DOT_LEVEL_TRANSITION = "blue-dot-level-transition",
1832
+ /**
1833
+ * When clicking on the default Journey connection markers
1834
+ */
1835
+ JOURNEY_CONNECTION_CLICK = "journey-connection-click"
1836
+ }
1770
1837
  }
1771
1838
 
1772
1839
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/FlatLabels' {
@@ -2055,6 +2122,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2055
2122
  * or {@link MappedinCoordinate}.
2056
2123
  */
2057
2124
  minZoom?: number;
2125
+ /**
2126
+ * The maximum zoom level the camera is allowed to change to when focusing on targets.
2127
+ */
2128
+ maxZoom?: number;
2058
2129
  /**
2059
2130
  * Specify the rotation the camera makes during the focusing animation.
2060
2131
  */
@@ -2147,6 +2218,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2147
2218
  bottom: number;
2148
2219
  right: number;
2149
2220
  }): void;
2221
+ convertZoomLevelToAltitude(zoomLevel: number): any;
2222
+ convertAltitudeToZoomLevel(altitude: number): any;
2150
2223
  getSafeAreaInsets(): import("../../MapView.types").TPadding;
2151
2224
  /**
2152
2225
  * Focus the Camera view on a collection of targets and animate to that state.
@@ -2771,11 +2844,13 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
2771
2844
  }
2772
2845
 
2773
2846
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface' {
2774
- import { Vector2, Vector3, Mesh } from 'three';
2775
- import type { TPadding, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TileManager, BillboardManager, StackedMapsController, SmartCollisionEngine, OutdoorViewController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
2847
+ import { Color, Vector2, Vector3, Mesh } from 'three';
2848
+ import type { TPadding, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TileManager, BillboardManager, StackedMapsController, SmartCollisionEngine, OutdoorViewController, LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
2776
2849
  import { BlueDotController, CameraController, STATE, MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode, changeListenerFn, RENDER, INTERNAL_EVENT_PAYLOAD, INTERNAL_EVENT, TaskScheduler, SceneManager, PubSub, FlatLabel, MapObject, PathsController, FloatingLabelsController, FlatLabelsController, PolygonColorsController, MarkersController, PolygonInteractionController, TooltipsController, PolygonStatesController, PolygonImagesController, ThreeDMarkersController, EventSystem } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
2777
2850
  import Tween, { Easing } from '@tweenjs/tween.js';
2778
2851
  import WatermarkController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
2852
+ import PolygonHoverColorsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonHoverColorsController';
2853
+ import { E_MAP_CHANGED_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
2779
2854
  export type TFocusOptionsLegacy = {
2780
2855
  /**
2781
2856
  * An array of Nodes to focus in on
@@ -2816,6 +2891,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2816
2891
  * @defaultValue: 0
2817
2892
  */
2818
2893
  minZoom?: number;
2894
+ maxZoom?: number;
2819
2895
  /**
2820
2896
  * Whether {@link Camera.minZoom} and {@link Camera.maxZoom} should be recalculated during the focusing animation.
2821
2897
  */
@@ -2842,6 +2918,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2842
2918
  flatLabels: FlatLabelsController;
2843
2919
  paths: PathsController;
2844
2920
  polygonColors: PolygonColorsController;
2921
+ polygonHoverColors: PolygonHoverColorsController;
2845
2922
  polygonInteraction: PolygonInteractionController;
2846
2923
  polygonStates: PolygonStatesController;
2847
2924
  polygonImages: PolygonImagesController;
@@ -2855,6 +2932,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2855
2932
  stackedMaps: StackedMapsController;
2856
2933
  outdoorViewController?: OutdoorViewController;
2857
2934
  watermark: WatermarkController;
2935
+ layerController: LayerController;
2858
2936
  state: STATE;
2859
2937
  options: TMapViewOptions & {
2860
2938
  onDataLoaded?: (data: Mappedin) => void;
@@ -2877,6 +2955,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2877
2955
  resolution: Vector2;
2878
2956
  determineNewLabelSize: any;
2879
2957
  visibleMapsInCurrentScene: MappedinMap[];
2958
+ visibleLayersInCurrentScene: {
2959
+ [mapId: string]: MappedinPolygon['layer'][];
2960
+ };
2961
+ visibleMapObjectsInCurrentScene: MapObject[];
2962
+ mapSetInProgress: Promise<undefined>;
2963
+ mapSetResolved: (...args: any[]) => any;
2880
2964
  on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: (payload: INTERNAL_EVENT_PAYLOAD[EVENT_NAME] extends {
2881
2965
  data: null;
2882
2966
  } ? INTERNAL_EVENT_PAYLOAD[EVENT_NAME]['data'] : INTERNAL_EVENT_PAYLOAD[EVENT_NAME]) => void): void;
@@ -2973,7 +3057,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2973
3057
  getPolygonsAtCoordinate(coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
2974
3058
  currentInteractionEvent: INTERNAL_EVENT | undefined;
2975
3059
  interactivePolygons: Record<string, boolean>;
3060
+ /**
3061
+ * An object containing polygon ids and their hover colors.
3062
+ */
3063
+ polygonHoverColorsById: Record<string, Color>;
2976
3064
  highlightedPolygons: Record<string, string>;
3065
+ /**
3066
+ * An object containing all outlined polygons.
3067
+ */
3068
+ outlinedPolygons: Map<string, MappedinPolygon>;
2977
3069
  cameraPlane: any;
2978
3070
  getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string | null): Vector3;
2979
3071
  currentScale: number;
@@ -3011,7 +3103,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
3011
3103
  * Ignored in 2D.
3012
3104
  */
3013
3105
  tryRendering(renderMode?: RENDER): void;
3106
+ setMapReason?: E_MAP_CHANGED_REASON;
3014
3107
  setMap(mapOrMapId: MappedinMap | string): Promise<null>;
3108
+ setMapWithReason(mapOrMapId: MappedinMap | string, context: E_MAP_CHANGED_REASON): Promise<null>;
3015
3109
  getPositionNode(node: MappedinNode): Vector3;
3016
3110
  cameraObject: any;
3017
3111
  setBackgroundColor(color: string, alpha?: number): void;
@@ -3877,7 +3971,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3877
3971
  invalidate(): void;
3878
3972
  colliderDidMount(): void;
3879
3973
  colliderDidUpdatePosition(pos: any): void;
3880
- setPriority(priority: any): void;
3881
3974
  colliderDidUpdateVisiblity(): void;
3882
3975
  colliderDidGoOutsideGrid(): void;
3883
3976
  colliderDidNotFindAHome(): void;
@@ -4272,6 +4365,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4272
4365
  export type TOutdoorViewControllerOptionsWithHeaders = {
4273
4366
  url?: string;
4274
4367
  attributionPosition?: TAttributionPosition;
4368
+ customAttribution?: string | string[];
4275
4369
  headers: {
4276
4370
  [key: string]: string | null;
4277
4371
  };
@@ -4279,6 +4373,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4279
4373
  export type TOutdoorViewControllerOptionsWithAuthURL = {
4280
4374
  url?: string;
4281
4375
  authURL?: string;
4376
+ customAttribution?: string | string[];
4282
4377
  attributionPosition?: TAttributionPosition;
4283
4378
  };
4284
4379
  export type TOutdoorViewControllerOptions = XOR<TOutdoorViewControllerOptionsWithHeaders, TOutdoorViewControllerOptionsWithAuthURL>;
@@ -4290,6 +4385,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4290
4385
  url: string;
4291
4386
  authURL: string;
4292
4387
  headers?: TOutdoorViewControllerOptions['headers'];
4388
+ customAttribution?: string | string[];
4293
4389
  attributionPosition?: TAttributionPosition;
4294
4390
  loaded: boolean;
4295
4391
  constructor(core: ICore, options?: TOutdoorViewControllerOptions);
@@ -4496,7 +4592,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
4496
4592
  import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
4497
4593
  import { IAnalytics } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.CustomerAnalytics';
4498
4594
  import { ParsedMVF } from '@mappedin/mvf';
4595
+ import { ParsedMVFv1 } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types';
4499
4596
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
4597
+ /**
4598
+ * @internal
4599
+ */
4500
4600
  export enum MappedinCollectionType {
4501
4601
  CATEGORY = "categories",
4502
4602
  EVENT = "events",
@@ -4732,6 +4832,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
4732
4832
  * @internal
4733
4833
  */
4734
4834
  hydrateFromMVF(mvfData: ParsedMVF): Promise<undefined>;
4835
+ /**
4836
+ * @hidden
4837
+ * @internal
4838
+ */
4839
+ hydrateFromMVFv1(mvfData: ParsedMVFv1): Promise<undefined>;
4735
4840
  /**
4736
4841
  *
4737
4842
  * @experimental Hydrate the Mappedin instance using a response from either {@link Mappedin.toString}, {@link getVenueBundle} or by downloading the bundle manually
@@ -4814,6 +4919,10 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocat
4814
4919
  shortName?: string;
4815
4920
  detailsUrl?: string;
4816
4921
  tags?: string[];
4922
+ /**
4923
+ * @internal
4924
+ */
4925
+ toMap?: string;
4817
4926
  externalId?: string;
4818
4927
  showLabelWhenImagePresent?: boolean;
4819
4928
  showSmartLabelWhenImagePresent?: boolean;
@@ -5148,6 +5257,13 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCateg
5148
5257
  * @type [MappedinLocation]
5149
5258
  */
5150
5259
  get locations(): MappedinLocation[];
5260
+ /**
5261
+ * Children of this Category.
5262
+ *
5263
+ * @property children
5264
+ * @type [MappedinCategory]
5265
+ */
5266
+ get children(): MappedinCategory[];
5151
5267
  static hydrate(categories: any, mappedin: Mappedin): MappedinCategory[];
5152
5268
  static fetch(mappedin: Mappedin): Promise<MappedinCategory[]>;
5153
5269
  toJSON(): any;
@@ -5666,6 +5782,13 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocat
5666
5782
 
5667
5783
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.CustomerAnalytics' {
5668
5784
  import { MappedinCategory, MappedinLocation, MappedinNavigatable } from '@mappedin/react-native-sdk/core/packages/get-venue';
5785
+ type AnalyticsUserPosition = {
5786
+ bluedotTimestamp: number;
5787
+ latitude: number;
5788
+ longitude: number;
5789
+ floorLevel?: number;
5790
+ accuracy: number;
5791
+ };
5669
5792
  type AnalyticsOptions = {
5670
5793
  clientId?: string;
5671
5794
  clientSecret?: string;
@@ -5697,24 +5820,33 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Cust
5697
5820
  trackSearchSuggest(searchAnalyticsObject: Record<string, unknown>): void;
5698
5821
  }
5699
5822
  /**
5700
- * A class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
5823
+ * A singleton class to access the Mappedin Analytics platform. Correct usage will improve Smart Search results, and lead to more accurate insights.
5701
5824
  * 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`.
5702
5825
  *
5703
5826
  * @type {any}
5704
- *
5705
- * @class Analytics
5706
- * @param options {Object} A list of configuration options for the Analytics API.
5707
- * @param [options.clientId] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
5708
- * @param [options.clientSecret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
5709
- * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
5710
- * @param [options.context] {String} The context to pass with the analytics request. Defaults to "websdk".
5711
- * @param [options.noAuth] {Boolean} Whether authentication should not be sent with analytics requests.
5712
- * @param [options.testMode] {Boolean} Whether analytics events should be dropped because this is running in a test environment.
5713
5827
  */
5714
5828
  class Analytics implements IInternalAnalytics {
5715
5829
  #private;
5716
- constructor(options: AnalyticsOptions);
5830
+ static instance: Analytics | null;
5831
+ /**
5832
+ * The static method to create a singleton instance of the Analytics class.
5833
+ * @class Analytics
5834
+ * @param options {Object} A list of configuration options for the Analytics API.
5835
+ * @param [options.clientId] {String} The same key you are using for getVenue. Handled automatically in Mapview.initialize()
5836
+ * @param [options.clientSecret] {String} The same secret you are using for getVenue. Handled automatically in Mapview.initialize()
5837
+ * @param [options.venue] {String} The same venue slug you are using for getVenue. Handled automatically in MapView.initialize()
5838
+ * @param [options.context] {String} The context to pass with the analytics request. Defaults to "websdk".
5839
+ * @param [options.noAuth] {Boolean} Whether authentication should not be sent with analytics requests.
5840
+ * @param [options.testMode] {Boolean} Whether analytics events should be dropped because this is running in a test environment.
5841
+ * @returns {Analytics} The singleton instance of the Analytics class.
5842
+ */
5843
+ static create(options: AnalyticsOptions): Analytics;
5717
5844
  track(target: string, query: Record<string, any>): void;
5845
+ /**
5846
+ * This method should be called whenever the user's position changes. This information will be sent when a track call is made.
5847
+ * @param position {AnalyticsUserPosition} The user's current position.
5848
+ */
5849
+ updateAnalyticsUserPosition(position: AnalyticsUserPosition | undefined): void;
5718
5850
  /**
5719
5851
  * Whenever a location is selected, you should fire this event. What "selected" means can vary by venue,
5720
5852
  * but a good rule of thumb is that you fire the event whenever you would show the location's details.
@@ -5766,6 +5898,12 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Cust
5766
5898
  * @hidden
5767
5899
  */
5768
5900
  static clearContext(): void;
5901
+ /**
5902
+ * Destroys the singleton instance of the Analytics class.
5903
+ * @method destroy
5904
+ * @hidden
5905
+ */
5906
+ static destroy(): void;
5769
5907
  /**
5770
5908
  * Enum of valid bluedot events.
5771
5909
  * Pass a property of this into the {{#crossLink "Analytics/trackBlueDotEvent:method"}}{{/crossLink}} method.
@@ -6331,6 +6469,7 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/NavigationGra
6331
6469
  declare module '@mappedin/react-native-sdk/core/packages/navigator/Navigator' {
6332
6470
  import Directive from '@mappedin/react-native-sdk/core/packages/navigator/Directive';
6333
6471
  import Edge from '@mappedin/react-native-sdk/core/packages/navigator/Edge';
6472
+ import { TCoordinate } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator.utils';
6334
6473
  import ILocation from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/ILocation';
6335
6474
  import IMap from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IMap';
6336
6475
  import INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
@@ -6396,6 +6535,11 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/Navigator' {
6396
6535
  arriveAt?: ILocation;
6397
6536
  simplify?: TSimplifyDirectionsOptions;
6398
6537
  }): IDirectionsResult;
6538
+ /**
6539
+ * Iterates through each N step node and determines if a direct line to the next M step node intersects any polygons.
6540
+ * If it doesn't, remove all steps between the two.
6541
+ */
6542
+ simplifySteps(steps: Edge[], geometryEdges: TCoordinate[][], bufferRadius: number): Edge[];
6399
6543
  }
6400
6544
  export default Navigator;
6401
6545
  }
@@ -6489,13 +6633,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6489
6633
  import { Texture } from 'three';
6490
6634
  import { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
6491
6635
  import { TMapClickEvent } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6636
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
6492
6637
  export { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
6493
6638
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance, TGeolocationObject, TPathOptions, TConnectionProps, TConnectionTemplateFn, TMarkerTemplateProps, TMarkerTemplateFn, TJourneyOptions, TPadding, TCreateMarkerOptions, TAnimationOptions, TCreateTooltipInternalOptions, TCreateTooltipCommonOptions, TCreateTooltipOptions, TCreateTextTooltipOptions, TCreateCustomInnerHTMLTooltipOptions, TCreateCustomTooltipOptions, TCreateThreeDMarkerOptions, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TMapViewOptionsLegacy, TFlatLabelOptions, TFlatLabelAppearance, TFloatingLabelPolygonOptions, TAddFlatLabelOptions, TAddFloatingLabelOptions, TLabelAllLocationCommonOptions, TLabelAllLocationFloatingLabelOptions, TLabelAllLocationFlatLabelOptions, TFloatingLabelAllLocationsOptions, TFlatLabelAllLocationsOptions, changeListenerFn, TMapClickEvent, E_SDK_EVENT_PAYLOAD, E_BLUEDOT_EVENT_PAYLOAD, CAMERA_EVENT_PAYLOAD, } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6494
6639
  export { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6495
6640
  export { GEOLOCATION_STATUS, COLLISION_RANKING_TIERS, E_BLUEDOT_STATE_REASON, E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE, STATE, MARKER_ANCHOR, E_SDK_EVENT, E_BLUEDOT_EVENT, E_CAMERA_EVENT, E_CAMERA_DIRECTION, SAFE_AREA_INSET_TYPE, CAMERA_EASING_MODE, MAP_RENDER_MODE, ANIMATION_TWEENS, STACKED_MAPS_STATE, } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
6641
+ export { default as JSONSceneLoader } from '@mappedin/react-native-sdk/core/packages/renderer/internal/json-scene-loader';
6496
6642
  export { default as RENDER } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
6497
6643
  export { FrameUpdate, FrameTask, TaskScheduler } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler';
6498
6644
  export { default as SceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.SceneManager';
6645
+ export { default as DynamicFocusSceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.DynamicFocusSceneManager';
6499
6646
  export { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
6500
6647
  export { default as MapObject } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
6501
6648
  export { default as CAMERA_LAYER } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraLayers';
@@ -6513,27 +6660,31 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6513
6660
  SET_SCENE_MAP = 5,
6514
6661
  SET_SCENE_START = 6,
6515
6662
  SET_SCENE = 7,
6516
- CAMERA_MOVING = 8,
6517
- SET_BLUE_DOT_SIZE_FROM_ZOOM = 9,
6518
- PUBLISH_BLUE_DOT = 10,
6519
- SET_STATE_SILENT = 11,
6520
- BLUE_DOT_UPDATE_POSITION = 12,
6521
- BLUE_DOT_SET_FOLLOWING = 13,
6522
- CLEAR_MOUSE = 14,
6523
- MAP_CLICK = 15,
6524
- USER_ZOOM = 16,
6525
- USER_ZOOM_BEGIN = 17,
6526
- USER_ROTATE = 18,
6527
- USER_ROTATE_BEGIN = 19,
6528
- USER_PAN = 20,
6529
- USER_PAN_BEGIN = 21,
6530
- USER_TILT = 22,
6531
- USER_MULTI_BEGIN = 23,
6532
- USER_MULTI_END = 24,
6533
- FOCUSON_BEGIN = 25,
6534
- USER_HANDS_ON = 26,
6535
- USER_HANDS_OFF = 27,
6536
- OUTDOOR_VIEW_LOADED = 28
6663
+ SCENE_VISIBLITY_CHANGED = 8,
6664
+ CAMERA_MOVING = 9,
6665
+ SET_BLUE_DOT_SIZE_FROM_ZOOM = 10,
6666
+ PUBLISH_BLUE_DOT = 11,
6667
+ SET_STATE_SILENT = 12,
6668
+ BLUE_DOT_UPDATE_POSITION = 13,
6669
+ BLUE_DOT_SET_FOLLOWING = 14,
6670
+ CLEAR_MOUSE = 15,
6671
+ MAP_CLICK = 16,
6672
+ USER_ZOOM = 17,
6673
+ USER_ZOOM_BEGIN = 18,
6674
+ USER_ROTATE = 19,
6675
+ USER_ROTATE_BEGIN = 20,
6676
+ USER_PAN = 21,
6677
+ USER_PAN_BEGIN = 22,
6678
+ USER_TILT = 23,
6679
+ USER_MULTI_BEGIN = 24,
6680
+ USER_MULTI_END = 25,
6681
+ FOCUSON_BEGIN = 26,
6682
+ USER_HANDS_ON = 27,
6683
+ USER_HANDS_OFF = 28,
6684
+ JOURNEY_CREATED = 29,
6685
+ JOURNEY_DESTROYED = 30,
6686
+ OUTDOOR_VIEW_LOADED = 31,
6687
+ LAYER_VISIBILITY_CHANGED = 32
6537
6688
  }
6538
6689
  export type INTERNAL_EVENT_PAYLOAD = {
6539
6690
  [INTERNAL_EVENT.SET_SCENE_START]: undefined;
@@ -6544,7 +6695,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6544
6695
  [INTERNAL_EVENT.RENDER]: undefined;
6545
6696
  [INTERNAL_EVENT.RENDER_NOW]: undefined;
6546
6697
  [INTERNAL_EVENT.UPDATE_FLIPPABLES]: undefined | boolean;
6547
- [INTERNAL_EVENT.SET_SCENE]: undefined;
6698
+ [INTERNAL_EVENT.SET_SCENE]: {
6699
+ context?: string;
6700
+ };
6548
6701
  [INTERNAL_EVENT.CAMERA_MOVING]: any;
6549
6702
  [INTERNAL_EVENT.SET_BLUE_DOT_SIZE_FROM_ZOOM]: number;
6550
6703
  [INTERNAL_EVENT.PUBLISH_BLUE_DOT]: undefined;
@@ -6570,6 +6723,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6570
6723
  [INTERNAL_EVENT.USER_HANDS_OFF]: undefined;
6571
6724
  [INTERNAL_EVENT.USER_PAN]: undefined;
6572
6725
  [INTERNAL_EVENT.USER_TILT]: undefined;
6726
+ [INTERNAL_EVENT.LAYER_VISIBILITY_CHANGED]: MappedinMap;
6727
+ [INTERNAL_EVENT.JOURNEY_CREATED]: undefined;
6728
+ [INTERNAL_EVENT.JOURNEY_DESTROYED]: undefined;
6729
+ [INTERNAL_EVENT.SCENE_VISIBLITY_CHANGED]: undefined;
6573
6730
  };
6574
6731
  /**
6575
6732
  * Factories
@@ -6587,6 +6744,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6587
6744
  export { default as MapViewStackScene } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.StackScene';
6588
6745
  export { default as Element } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Element';
6589
6746
  export { default as FlippableImage } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.FlippableImage';
6747
+ export { default as Building } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/building';
6748
+ export { default as DynamicFocusScene } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/dynamic-focus-scene';
6590
6749
  /**
6591
6750
  * Controllers/Managers
6592
6751
  */
@@ -6594,6 +6753,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6594
6753
  export { default as FloatingLabelsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FloatingLabelsController';
6595
6754
  export { default as FlatLabelsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FlatLabelsController';
6596
6755
  export { default as PolygonColorsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController';
6756
+ export { default as PolygonHoverColorsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonHoverColorsController';
6597
6757
  export { default as MarkersController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
6598
6758
  export { default as PolygonInteractionController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonInteractionController';
6599
6759
  export { default as TooltipsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/TooltipsController';
@@ -6610,7 +6770,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6610
6770
  export { default as BillboardManager } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/BillboardManager';
6611
6771
  export { default as StackedMapsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/StackedMapsController';
6612
6772
  export { MultiBufferRenderer } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Renderer';
6773
+ export { JourneyController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/JourneyController';
6613
6774
  export { default as OutdoorViewController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/OutdoorViewController';
6775
+ export { default as WatermarkController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
6776
+ export { default as LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/LayerController';
6614
6777
  /**
6615
6778
  * Types
6616
6779
  */
@@ -6659,6 +6822,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6659
6822
  export type { Paths } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Paths';
6660
6823
  export type { StackedMaps } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/StackedMaps';
6661
6824
  export type { OutdoorView } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/OutdoorView';
6825
+ export type { DynamicFocus } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus';
6826
+ export type { Layers } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Layers';
6662
6827
  export type { TOOLTIP_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
6663
6828
  export type TMappedinInitializeOutput = {
6664
6829
  mapView: MapView;
@@ -6683,7 +6848,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6683
6848
  * @returns
6684
6849
  */
6685
6850
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
6686
- 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, E_CAMERA_DIRECTION, SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE, STACKED_MAPS_STATE, MARKER_ANCHOR, GEOLOCATION_STATUS, } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
6851
+ 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, E_CAMERA_DIRECTION, SAFE_AREA_INSET_TYPE, ANIMATION_TWEENS, CAMERA_EASING_MODE, STACKED_MAPS_STATE, MARKER_ANCHOR, GEOLOCATION_STATUS, E_MAP_CHANGED_REASON, } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
6687
6852
  export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, hydrateVenue, PositionUpdater, MappedinDestinationSet, };
6688
6853
  import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
6689
6854
  import { TTileManagerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.TileManager';
@@ -6780,6 +6945,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6780
6945
  export default WatermarkController;
6781
6946
  }
6782
6947
 
6948
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonHoverColorsController' {
6949
+ import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
6950
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
6951
+ class PolygonHoverColorsController {
6952
+ #private;
6953
+ constructor(core: ICore);
6954
+ setPolygonHoverColor(polygonOrPolygonId: MappedinPolygon | string, color: string): void;
6955
+ clearPolygonHoverColor(polygonOrPolygonId: MappedinPolygon | string): void;
6956
+ clearAllPolygonHoverColors(): void;
6957
+ }
6958
+ export default PolygonHoverColorsController;
6959
+ }
6960
+
6783
6961
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave-text' {
6784
6962
  export type TDrawFn = (ctx: CanvasRenderingContext2D, x: number, y: number) => void;
6785
6963
  type TShave = (str: string, size: number, maxWidth: number, maxLines?: number, lineHeight?: number, options?: {
@@ -6875,6 +7053,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6875
7053
  activeDirections: MappedinDirections;
6876
7054
  get isMultiFloor(): boolean;
6877
7055
  get mapsInJourney(): any[];
7056
+ get buildingsInJourney(): any;
6878
7057
  get mapIdsInvolvedInJourney(): string[];
6879
7058
  constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions, core: ICore);
6880
7059
  setStep: (step: any) => void;
@@ -6916,6 +7095,223 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme
6916
7095
  }
6917
7096
  }
6918
7097
 
7098
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
7099
+ import { MapId } from '@mappedin/mvf';
7100
+ import { FeatureCollection, MultiPolygon, Point, Polygon } from 'geojson';
7101
+ import { TImage, TMap, TNode, TOpeningHours, TPhone, TSiblingGroup, TSocial } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
7102
+ export type WithIDs<T> = Map<string, T>;
7103
+ type ManifestFile = {
7104
+ type: 'file';
7105
+ name: string;
7106
+ };
7107
+ type ManifestFolder = {
7108
+ type: 'folder';
7109
+ name: string;
7110
+ children: ManifestFile[];
7111
+ };
7112
+ export type MVFv1PolygonLikeProperties = {
7113
+ id: string;
7114
+ altitude?: number;
7115
+ color?: string;
7116
+ externalId?: string | null;
7117
+ height?: number;
7118
+ opacity?: number;
7119
+ layer?: string;
7120
+ level: string;
7121
+ parent?: string | null;
7122
+ };
7123
+ export type MVFv1SpaceProperties = MVFv1PolygonLikeProperties & {
7124
+ entrances: {
7125
+ level: TMap['id'];
7126
+ id: TNode['id'];
7127
+ }[];
7128
+ };
7129
+ export type MVFv1ObstructionProperties = MVFv1PolygonLikeProperties;
7130
+ export type MVFv1ConnectionProperties = {
7131
+ id: string;
7132
+ /**
7133
+ * Indicates that a connection is accessible
7134
+ */
7135
+ accessible: boolean;
7136
+ /**
7137
+ * Array of node ids that this Connection connects with.
7138
+ */
7139
+ destinations: string[];
7140
+ level: string;
7141
+ multiplier: number;
7142
+ name: string;
7143
+ /**
7144
+ * Type of the connection such as `escalator` or `elevator`
7145
+ */
7146
+ type: string;
7147
+ weight: number;
7148
+ };
7149
+ export type MVFv1NodeProperties = {
7150
+ id: string;
7151
+ /**
7152
+ * Indicates that a node is accessible
7153
+ */
7154
+ accessible: boolean;
7155
+ /**
7156
+ * External id of a node is used to sync and connect to external systems to Mappedin data
7157
+ */
7158
+ externalId: string | null;
7159
+ level: string;
7160
+ multiplier: number;
7161
+ neighbors: string[];
7162
+ weight: number;
7163
+ };
7164
+ export type MVFv1LevelProperties = {
7165
+ id: string;
7166
+ abbreviation?: string;
7167
+ building?: string;
7168
+ elevation?: number;
7169
+ name: string;
7170
+ };
7171
+ export type MVFv1ManifestProperties = {
7172
+ /**
7173
+ * Name of the venue
7174
+ */
7175
+ name: string;
7176
+ folder_struct: (ManifestFolder | ManifestFile)[];
7177
+ /**
7178
+ * Mappedin Venue Format version number of the MVF bundle
7179
+ */
7180
+ version: string;
7181
+ /**
7182
+ * Timestamp when the MVF bundle was generated. E.g. `2022-02-25T16:26:09.908Z`
7183
+ */
7184
+ time: string;
7185
+ };
7186
+ export type MVFv1BuildingProperties = {
7187
+ id: string;
7188
+ name: string;
7189
+ venue: string;
7190
+ };
7191
+ export type MVFv1CategoryProperties = {
7192
+ id: string;
7193
+ name: string;
7194
+ picture?: TImage;
7195
+ };
7196
+ export type MVFv1LocationProperties = {
7197
+ id: string;
7198
+ address?: string | null;
7199
+ /**
7200
+ * Array of {@link MICategoryProperties | category} ids
7201
+ */
7202
+ categories: string[];
7203
+ /**
7204
+ * A text description of the location usually indicating what the location is used for
7205
+ */
7206
+ description?: string | null;
7207
+ /**
7208
+ * Email address to for contacting this location
7209
+ */
7210
+ email?: string | null;
7211
+ /**
7212
+ * External id used to connect Mappedin Location to an external system
7213
+ */
7214
+ externalId?: string | null;
7215
+ /**
7216
+ * Opening hours of the location
7217
+ */
7218
+ hours?: TOpeningHours[] | null;
7219
+ /**
7220
+ * Collection of links related to this location
7221
+ */
7222
+ links?: {
7223
+ label: string;
7224
+ url: string;
7225
+ }[] | null;
7226
+ logo?: TImage | null;
7227
+ /**
7228
+ * Name of the location. By default this is the string displayed in the location label
7229
+ */
7230
+ name: string;
7231
+ /**
7232
+ * Phone number for contacting this location
7233
+ */
7234
+ phone?: TPhone | null;
7235
+ picture?: TImage | null;
7236
+ services?: string | null;
7237
+ siblingGroups?: TSiblingGroup[] | null;
7238
+ /**
7239
+ * Social media links of the location
7240
+ */
7241
+ social?: TSocial | null;
7242
+ /**
7243
+ * Array of {@link MISpaceProperties | MVF Space} ids for this location
7244
+ */
7245
+ spaces?: {
7246
+ id: string;
7247
+ map: string;
7248
+ }[] | null;
7249
+ states?: {
7250
+ type: string;
7251
+ start?: string;
7252
+ end?: string;
7253
+ }[] | null;
7254
+ type: string;
7255
+ };
7256
+ export type MVFv1ObstructionCollection = FeatureCollection<Polygon, MVFv1ObstructionProperties>;
7257
+ export type MVFv1SpaceCollection = FeatureCollection<Polygon, MVFv1SpaceProperties>;
7258
+ export type MVFv1ConnectionCollection = FeatureCollection<Point, MVFv1ConnectionProperties>;
7259
+ export type MVFv1NodeCollection = FeatureCollection<Point, MVFv1NodeProperties>;
7260
+ export type MVFv1LevelCollection = FeatureCollection<Polygon | MultiPolygon, MVFv1LevelProperties>;
7261
+ export type MVFv1ManifestCollection = FeatureCollection<Point, MVFv1ManifestProperties>;
7262
+ export type MVFv1BuildingCollection = FeatureCollection<Polygon, MVFv1BuildingProperties>;
7263
+ export type MVFv1CategoryCollection = FeatureCollection<null, MVFv1CategoryProperties>;
7264
+ export type MVFv1LocationCollection = FeatureCollection<null, MVFv1LocationProperties>;
7265
+ export type ParsedMVFv1 = {
7266
+ /**
7267
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7268
+ */
7269
+ space: {
7270
+ [mapId: MapId]: MVFv1SpaceCollection | undefined;
7271
+ };
7272
+ /**
7273
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7274
+ */
7275
+ obstruction: {
7276
+ [mapId: MapId]: MVFv1ObstructionCollection | undefined;
7277
+ };
7278
+ /**
7279
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7280
+ */
7281
+ level: {
7282
+ [mapId: MapId]: MVFv1LevelCollection | undefined;
7283
+ };
7284
+ /**
7285
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7286
+ */
7287
+ node: {
7288
+ [mapId: MapId]: MVFv1NodeCollection | undefined;
7289
+ };
7290
+ /**
7291
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7292
+ */
7293
+ connection: {
7294
+ [mapId: MapId]: MVFv1ConnectionCollection | undefined;
7295
+ };
7296
+ 'manifest.geojson': MVFv1ManifestCollection;
7297
+ 'building.geojson': MVFv1BuildingCollection;
7298
+ 'category.geojson': MVFv1CategoryCollection;
7299
+ 'location.geojson': MVFv1LocationCollection;
7300
+ };
7301
+ export type RawMVFv1 = {
7302
+ 'manifest.geojson': Uint8Array;
7303
+ 'building.geojson': Uint8Array;
7304
+ 'category.geojson': Uint8Array;
7305
+ 'location.geojson': Uint8Array;
7306
+ level: Partial<Record<MapId, Uint8Array>>;
7307
+ node: Partial<Record<MapId, Uint8Array>>;
7308
+ space: Partial<Record<MapId, Uint8Array>>;
7309
+ obstruction: Partial<Record<MapId, Uint8Array>>;
7310
+ connection: Partial<Record<MapId, Uint8Array>>;
7311
+ };
7312
+ export {};
7313
+ }
7314
+
6919
7315
  declare module '@mappedin/react-native-sdk/core/packages/navigator/Edge' {
6920
7316
  import INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
6921
7317
  import IVortex from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IVortex';
@@ -6987,6 +7383,33 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IV
6987
7383
  export default IVortex;
6988
7384
  }
6989
7385
 
7386
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/Navigator.utils' {
7387
+ export type TCoordinate = {
7388
+ x: number;
7389
+ y: number;
7390
+ };
7391
+ /**
7392
+ * Modified line intercept math by Paul Bourke http://paulbourke.net/geometry/pointlineplane/
7393
+ * Determines the intersection point of two line segments.
7394
+ * Return null if the lines don't intersect.
7395
+ */
7396
+ export function getLineIntersection(line1Point1: TCoordinate, line1Point2: TCoordinate, line2Point1: TCoordinate, line2Point2: TCoordinate): {
7397
+ x: number;
7398
+ y: number;
7399
+ };
7400
+ /**
7401
+ * Offsets a line between two nodes by a certain distance.
7402
+ */
7403
+ export function getOffsetLine(point1: TCoordinate, point2: TCoordinate, offset: number): {
7404
+ x: number;
7405
+ y: number;
7406
+ }[];
7407
+ /**
7408
+ * Determines if there is a line of sight between two nodes.
7409
+ */
7410
+ export function hasLineOfSight(origin: TCoordinate, destination: TCoordinate, edges?: TCoordinate[][], bufferRadius?: number): boolean;
7411
+ }
7412
+
6990
7413
  declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/ILocation' {
6991
7414
  interface ILocation {
6992
7415
  id: string;
@@ -7012,6 +7435,40 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IP
7012
7435
  export default IPolygon;
7013
7436
  }
7014
7437
 
7438
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/json-scene-loader' {
7439
+ import { Element } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
7440
+ import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
7441
+ import { MappedinMap, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
7442
+ import { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
7443
+ class JSONSceneLoader {
7444
+ defaultExtrudeSettings: {
7445
+ amount: number;
7446
+ bevelEnabled: boolean;
7447
+ };
7448
+ materials: {};
7449
+ scale: number;
7450
+ assetManager: DefaultAssetManager;
7451
+ setAssetManager<T extends DefaultAssetManager>(am: T): void;
7452
+ overlayHeight: number;
7453
+ /**
7454
+ Takes in either an object containing polygons and generates a 3D scene based
7455
+ on it, or a string URL to fetch those polygons from.
7456
+ **/
7457
+ load(polygons: string | MappedinPolygon[], mapClass: MappedinMap, mapLoadingStrategy?: MAP_RENDER_MODE): Promise<{
7458
+ container: any;
7459
+ elements: Element[];
7460
+ visibleLayers: Set<unknown>;
7461
+ }>;
7462
+ _build(polygons: MappedinPolygon[], mapClass: MappedinMap, mapLoadingStrategy?: MAP_RENDER_MODE): Promise<{
7463
+ container: any;
7464
+ elements: Element[];
7465
+ visibleLayers: Set<unknown>;
7466
+ }>;
7467
+ }
7468
+ const _default: JSONSceneLoader;
7469
+ export default _default;
7470
+ }
7471
+
7015
7472
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
7016
7473
  /**
7017
7474
  * Tasks that can be submitted to the renderer. The `STATIC_AND_ANIMATED` task
@@ -7583,7 +8040,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
7583
8040
  };
7584
8041
  };
7585
8042
  class SceneManager {
7586
- #private;
8043
+ core: ICore;
7587
8044
  currentScene: MapViewScene;
7588
8045
  /**
7589
8046
  * MapObjects that have been loaded and positioned in the scene
@@ -7597,6 +8054,29 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
7597
8054
  export default SceneManager;
7598
8055
  }
7599
8056
 
8057
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.DynamicFocusSceneManager' {
8058
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8059
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8060
+ import { MapViewScene, DynamicFocusScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8061
+ class DynamicFocusSceneManager {
8062
+ dynamicFocusScene: DynamicFocusScene;
8063
+ core: ICore;
8064
+ constructor(core: ICore, baseMap: MappedinMap);
8065
+ panBounds: any;
8066
+ mapShouldSetOnUserInteraction: boolean;
8067
+ get currentScene(): {
8068
+ resize: () => void;
8069
+ currentMap: MappedinMap;
8070
+ mapObjects: Map<string, MapObject>;
8071
+ };
8072
+ get currentMap(): MappedinMap;
8073
+ determineTargetMap(): void;
8074
+ update(): void;
8075
+ transitionTo(scene?: MapViewScene): Promise<void>;
8076
+ }
8077
+ export default DynamicFocusSceneManager;
8078
+ }
8079
+
7600
8080
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed' {
7601
8081
  export class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD> {
7602
8082
  /**
@@ -7683,6 +8163,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7683
8163
  visible: boolean;
7684
8164
  rank: number;
7685
8165
  id: string;
8166
+ layer: string;
7686
8167
  _bboxes?: [string, Rectangle, (collider: TCustomCollider<any>) => void, TGetBoundingBox][];
7687
8168
  offscreen?: boolean;
7688
8169
  setAction: (action: EColliderAction) => void;
@@ -7705,7 +8186,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7705
8186
  colliderDidUpdatePosition?: (prop: [x: number, y: number]) => void;
7706
8187
  }
7707
8188
  class BaseCollider implements ICollider {
7708
- __engine: any;
8189
+ __engine?: SmartCollisionEngine;
7709
8190
  _initialRank: number;
7710
8191
  screenPosition: [number, number];
7711
8192
  enabled: boolean;
@@ -7722,6 +8203,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7722
8203
  width: number;
7723
8204
  height: number;
7724
8205
  };
8206
+ layer: string;
7725
8207
  flipIfNeeded(): void;
7726
8208
  constructor(options: any);
7727
8209
  setPosition(position: MappedinNode | MappedinCoordinate, updateCollisionEngine?: boolean): void;
@@ -8069,7 +8551,99 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8069
8551
  export default Element;
8070
8552
  }
8071
8553
 
8554
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/building' {
8555
+ import { Object3D } from 'three';
8556
+ import { MappedinMap, MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue';
8557
+ import type { ICore, MapObject } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8558
+ import { LayerGroup } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
8559
+ class Building {
8560
+ layerGroup: LayerGroup;
8561
+ mapGroup: MappedinMapGroup;
8562
+ defaultMap: MappedinMap;
8563
+ activeMap: MappedinMap;
8564
+ visibleMap?: MappedinMap;
8565
+ readonly startingMap: MappedinMap;
8566
+ baseMap: MappedinMap;
8567
+ object: Object3D;
8568
+ mapObjects: MapObject[];
8569
+ constructor(core: ICore, mapGroup: MappedinMapGroup, layerGroup: LayerGroup, startingMap: MappedinMap, baseMap: MappedinMap);
8570
+ loading: boolean;
8571
+ activeMapOpacity: number;
8572
+ buildingOpacity: number;
8573
+ animating: boolean;
8574
+ /**
8575
+ * Set the opacity of the currently active map in the building
8576
+ */
8577
+ setActiveMapOpacity(opacity: number, duration?: number): void;
8578
+ tweenActiveMapOpacity(targetOpacity: number, duration?: number): void;
8579
+ /**
8580
+ * Set the opacity of the building outline
8581
+ */
8582
+ setBuildingOutlineOpacity(opacity: number): void;
8583
+ get activeMapObject(): MapObject;
8584
+ get defaultMapObject(): MapObject;
8585
+ get baseMapObject(): MapObject;
8586
+ state: string;
8587
+ /**
8588
+ * The building is in view, so we should have the correct map loaded and ready to be displayed
8589
+ */
8590
+ onInView(): void;
8591
+ /**
8592
+ * The building is out of view, so we can safely reset the map to the default map
8593
+ */
8594
+ onOutOfView(): void;
8595
+ setMap(map: MappedinMap): Promise<void>;
8596
+ }
8597
+ export default Building;
8598
+ }
8599
+
8600
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/dynamic-focus-scene' {
8601
+ import { Object3D, Box3, Raycaster } from 'three';
8602
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8603
+ import type { ICore, MapObject } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8604
+ import { Building } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8605
+ import { LayerGroup } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
8606
+ class DynamicFocusScene {
8607
+ buildings: Building[];
8608
+ object: Object3D;
8609
+ panBounds: Box3;
8610
+ loaded: boolean;
8611
+ baseMapObject: MapObject;
8612
+ raycasters: Raycaster[];
8613
+ baseMap: MappedinMap;
8614
+ options: {
8615
+ indoorsFullyVisibleZoomLevel: number;
8616
+ buildingFullyVisibleZoomLevel: number;
8617
+ setMapAtZoomLevel: number;
8618
+ baseMap: MappedinMap;
8619
+ preloadDefaultMaps: boolean;
8620
+ };
8621
+ constructor(core: ICore, baseMap: MappedinMap);
8622
+ resize: () => void;
8623
+ buildRaycasters(): void;
8624
+ updateRaycasters(): void;
8625
+ /**
8626
+ * Expand the pan bounds to the base map bounds
8627
+ * In dynamic focus mode, these bounds will be retained no matter which building or map is visible
8628
+ */
8629
+ expandToBaseMapBounds(): void;
8630
+ load(): Promise<void>;
8631
+ currentMap: MappedinMap;
8632
+ setMap(map: MappedinMap, fromUserInteraction?: boolean): Promise<void>;
8633
+ buildingVisiblityMap: Map<Building, boolean>;
8634
+ buildingsByPolygonId: Map<string, Building>;
8635
+ get buildingsInView(): Building[];
8636
+ determineBuildingsInView(): Building[];
8637
+ /** Given zoom and camera position, let's figure out the currently active map */
8638
+ determineCurrentMap(): MappedinMap;
8639
+ setOpacities(buildingsInView?: Building[], centerMap?: MappedinMap): void;
8640
+ createBuildings(buildingGeometries: [string, LayerGroup][]): Promise<Building[]>;
8641
+ }
8642
+ export default DynamicFocusScene;
8643
+ }
8644
+
8072
8645
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController' {
8646
+ import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
8073
8647
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8074
8648
  class PolygonColorsController {
8075
8649
  #private;
@@ -8077,6 +8651,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8077
8651
  setPolygonColor(polygon: any, color: any, highlighted?: boolean): void;
8078
8652
  clearPolygonColor(polygon: any): void;
8079
8653
  clearAllPolygonColors(): void;
8654
+ setPolygonOutlineColor(color: string): void;
8655
+ addPolygonOutline(polygon: MappedinPolygon): void;
8656
+ removePolygonOutline(polygon: MappedinPolygon): void;
8657
+ removeAllPolygonOutlines(): void;
8080
8658
  }
8081
8659
  export default PolygonColorsController;
8082
8660
  }
@@ -8095,9 +8673,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8095
8673
  }
8096
8674
 
8097
8675
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/TooltipsController' {
8098
- import { ICore, TCreateTooltipCommonOptions, TCreateTooltipOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8676
+ import { ICore, TCreateTooltipCommonOptions, TCreateTooltipOptions, SmartTooltip } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8099
8677
  import { MappedinNode, MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue';
8100
- import { SmartTooltip } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8101
8678
  class TooltipsController {
8102
8679
  #private;
8103
8680
  constructor(core: ICore);
@@ -8162,7 +8739,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8162
8739
 
8163
8740
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/EventSystem' {
8164
8741
  import { Object3D, Color } from 'three';
8165
- import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8742
+ import type { ICore, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8166
8743
  import { BlueDotManager, Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8167
8744
  class EventSystem {
8168
8745
  core: ICore;
@@ -8228,8 +8805,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8228
8805
  };
8229
8806
  checkMouseIntersectsBlueDot: () => boolean;
8230
8807
  doHoverEffect: () => void;
8231
- onPolygonHoverOut: (polygonId: any) => boolean;
8232
- onPolygonHoverOver: (polygon: any) => boolean;
8808
+ onPolygonHoverOut: (polygonId: string) => boolean;
8809
+ onPolygonHoverOver: (polygon: MappedinPolygon | string) => boolean;
8233
8810
  setHoverColor: (color: string) => void;
8234
8811
  destroy(): void;
8235
8812
  }
@@ -8280,6 +8857,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8280
8857
  initialized: boolean;
8281
8858
  core: ICore;
8282
8859
  screen: Rectangle;
8860
+ debouncedUpdate: () => void;
8283
8861
  constructor(core: ICore);
8284
8862
  updateStartEvents: {
8285
8863
  [key: string]: boolean;
@@ -8441,6 +9019,28 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8441
9019
  export default StackedMapsController;
8442
9020
  }
8443
9021
 
9022
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/LayerController' {
9023
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
9024
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
9025
+ class LayerController {
9026
+ #private;
9027
+ constructor(core: ICore);
9028
+ /**
9029
+ * Show a set of layers on the current map, and hide all other layers. This also hides any colliders associated with the hidden layers.
9030
+ */
9031
+ showLayers(layers: string[]): void;
9032
+ getAllLayersForMap(map: MappedinMap): Promise<{
9033
+ [layerName: string]: boolean;
9034
+ }>;
9035
+ /**
9036
+ * Return a list of all visible layers for a map, this will NOT trigger a map load, and is mainly used internally
9037
+ * which is why its synchronous
9038
+ */
9039
+ getVisibleLayersForLoadedMap(map: MappedinMap): string[];
9040
+ }
9041
+ export default LayerController;
9042
+ }
9043
+
8444
9044
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.ui' {
8445
9045
  import { IBlueDotCore, BlueDotManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8446
9046
  import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
@@ -8493,6 +9093,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
8493
9093
  import { Camera } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera';
8494
9094
  import { StackedMaps } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/StackedMaps';
8495
9095
  import OutdoorView from '@mappedin/react-native-sdk/core/packages/renderer/public/api/OutdoorView';
9096
+ import { Layers } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Layers';
9097
+ import { DynamicFocus } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus';
9098
+ import { TN8AOConfiguration } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.EffectComposer';
8496
9099
  /**
8497
9100
  * Primary API class for controlling and interacting with a 3D map.
8498
9101
  */
@@ -8531,13 +9134,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
8531
9134
  */
8532
9135
  options: TMapViewOptions;
8533
9136
  /**
9137
+ * @experimental
8534
9138
  * API for showing multiple maps as a vertical stack.
8535
9139
  */
8536
9140
  StackedMaps: StackedMaps;
8537
9141
  /**
9142
+ * @experimental
8538
9143
  * API to control outdoor context rendering.
8539
9144
  */
8540
9145
  OutdoorView: OutdoorView;
9146
+ /**
9147
+ * @experimental
9148
+ * API to control layer visibility.
9149
+ */
9150
+ Layers: Layers;
9151
+ /**
9152
+ * @experimental
9153
+ * API to dynamically set the map focus as you pan over map groups.
9154
+ */
9155
+ DynamicFocus?: DynamicFocus;
8541
9156
  /**
8542
9157
  * @hidden
8543
9158
  */
@@ -8692,6 +9307,71 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
8692
9307
  * ```
8693
9308
  */
8694
9309
  clearAllPolygonColors(): void;
9310
+ /**
9311
+ * @experimental
9312
+ * Sets a color that the outline of a {@link MappedinPolygon} instance will receive.
9313
+ * If no color is set the outline will default to red (#ff0000). See also {@link addPolygonOutline},
9314
+ * {@link removePolygonOutline} and {@link removeAllPolygonOutlines}.
9315
+ *
9316
+ * ```ts
9317
+ * mapView.setPolygonOutlineColor("#0000ff");
9318
+ * ```
9319
+ *
9320
+ * @param color The color to set the outline to.
9321
+ */
9322
+ setPolygonOutlineColor(color: string): void;
9323
+ /**
9324
+ * @experimental
9325
+ * Given a {@link MappedinPolygon}, the polygon will be outlined. The outline color of the polygon is
9326
+ * set using {@link setPolygonOutlineColor}, the default color is red (#ff0000). See also
9327
+ * {@link removePolygonOutline} and {@link removeAllPolygonOutlines}.
9328
+ *
9329
+ * ```ts
9330
+ * // Find the polygons of the Apple store and change them to blue
9331
+ * const location = mapView.venue.locations.find((l) => l.name === "Apple")!;
9332
+ * for (const polygon of location.polygons) {
9333
+ * mapView.addPolygonOutline(polygon);
9334
+ * }
9335
+ * ```
9336
+ *
9337
+ * @param polygon The {@link MappedinPolygon} to outline.
9338
+ */
9339
+ addPolygonOutline(polygon: MappedinPolygon): void;
9340
+ /**
9341
+ * @experimental
9342
+ * Removes the outline on a {@link MappedinPolygon}. See also {@link setPolygonOutlineColor},
9343
+ * {@link addPolygonOutline} and {@link removeAllPolygonOutlines}.
9344
+ *
9345
+ * ```ts
9346
+ * mapView.setPolygonOutlineColor("#0000ff");
9347
+ * mapView.addPolygonOutline(polygon);
9348
+ *
9349
+ * ...
9350
+ *
9351
+ * // Remove the outline from the polygon
9352
+ * mapView.removePolygonOutline(polygon);
9353
+ * ```
9354
+ *
9355
+ * @param polygon The {@link MappedinPolygon} to remove the outline of.
9356
+ */
9357
+ removePolygonOutline(polygon: MappedinPolygon): void;
9358
+ /**
9359
+ * @experimental
9360
+ * Removes outlines on all {@link MappedinPolygon} instances. See also {@link setPolygonOutlineColor},
9361
+ * {@link addPolygonOutline} and {@link removePolygonOutline}.
9362
+ *
9363
+ * ```ts
9364
+ * mapView.setPolygonOutlineColor("#0000ff");
9365
+ * mapView.addPolygonOutline(polygon1);
9366
+ * mapView.addPolygonOutline(polygon2);
9367
+ *
9368
+ * ...
9369
+ *
9370
+ * // Remove the outline from all polygons
9371
+ * mapView.removeAllPolygonOutlines();
9372
+ * ```
9373
+ */
9374
+ removeAllPolygonOutlines(): void;
8695
9375
  /**
8696
9376
  * Makes a {@link MappedinPolygon} interactive. This means it will receive a hover effect and
8697
9377
  * respond to the `CLICK` {@link E_SDK_EVENT}. See also {@link on} and {@link addInteractivePolygonsForAllLocations}.
@@ -8904,9 +9584,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
8904
9584
  */
8905
9585
  setBackgroundColor(color: string, alpha?: number): void;
8906
9586
  /**
8907
- * Sets a color that {@link MappedinPolygon} instances will receive when they are
9587
+ * Sets the color that all {@link MappedinPolygon} instances will receive when they are
8908
9588
  * beneath a cursor. This only applies to interactive polygons set using {@link addInteractivePolygon}
8909
- * or {@link addInteractivePolygonsForAllLocations}.
9589
+ * or {@link addInteractivePolygonsForAllLocations}. Hover colors set by {@link setPolygonHoverColor} will take
9590
+ * precedence over this value.
8910
9591
  *
8911
9592
  * ```ts
8912
9593
  * // Make all location polygons interactive and have a red hover color
@@ -8915,6 +9596,46 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
8915
9596
  * ```
8916
9597
  */
8917
9598
  setHoverColor(color: string): void;
9599
+ /**
9600
+ * Sets a color that a {@link MappedinPolygon} instance will receive when it is beneath a cursor.
9601
+ * This will take precedence over the value set by {@link setHoverColor} and only applies to an interactive polygon set using {@link addInteractivePolygon}
9602
+ * or {@link addInteractivePolygonsForAllLocations}. See also {@link clearPolygonHoverColor} and {@link clearAllPolygonHoverColors}.
9603
+ *
9604
+ * ```ts
9605
+ * // Make polygon interactive and have a red hover color
9606
+ * mapView.addInteractivePolygon(polygon);
9607
+ * mapView.setPolygonHoverColor(polygon, "#ff0000");
9608
+ * ```
9609
+ */
9610
+ setPolygonHoverColor(polygon: MappedinPolygon, color: string): void;
9611
+ /**
9612
+ * Resets a {@link MappedinPolygon} back to it's original hover color or the default hover color set by
9613
+ * {@link setHoverColor}. See also {@link clearAllPolygonHoverColors} and {@link setPolygonHoverColor}.
9614
+ *
9615
+ * ```ts
9616
+ * mapView.setPolygonHoverColor(polygon, "#ff0000");
9617
+ *
9618
+ * ...
9619
+ *
9620
+ * // Reset polygon to origin hover color
9621
+ * mapView.clearPolygonHoverColor(polygon);
9622
+ * ```
9623
+ */
9624
+ clearPolygonHoverColor(polygon: MappedinPolygon): void;
9625
+ /**
9626
+ * Resets all {@link MappedinPolygon} instances back to their original hover colors or the default hover color set by
9627
+ * {@link setHoverColor}. See also {@link clearPolygonHoverColor} and {@link setPolygonHoverColor}.
9628
+ *
9629
+ * ```ts
9630
+ * mapView.setPolygonHoverColor(polygon1, "#ff0000");
9631
+ * mapView.setPolygonHoverColor(polygon1, "#00ff00");
9632
+ *
9633
+ * ...
9634
+ *
9635
+ * mapView.clearAllPolygonHoverColors();
9636
+ * ```
9637
+ */
9638
+ clearAllPolygonHoverColors(): void;
8918
9639
  /**
8919
9640
  * @deprecated This should no longer need to be called externally and is now a no-op.
8920
9641
  */
@@ -8988,6 +9709,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
8988
9709
  * @returns A {@link MappedinCoordinate} on the given map.
8989
9710
  */
8990
9711
  getMappedinCoordinateAtScreenCoordinate(x: number, y: number, map: MappedinMap): MappedinCoordinate;
9712
+ setAmbientOcclusionSettings(settings: TN8AOConfiguration): void;
8991
9713
  /**
8992
9714
  * Destroy the mapView instance and reclaim memory.
8993
9715
  *
@@ -9072,12 +9794,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
9072
9794
 
9073
9795
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core' {
9074
9796
  import '../internal/externals/globalThisPolyfill';
9075
- import { Mesh, PerspectiveCamera, Scene, Vector2 } from 'three';
9797
+ import { Color, Mesh, PerspectiveCamera, Scene, Vector2 } from 'three';
9076
9798
  import '../internal/object3D.destroy';
9077
- import type { TGetPolygonsAtCoordinateOptions, TMapViewOptions, TPadding } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9078
- import { Renderer, TaskScheduler, MapManager, FlatLabel, SmartCollisionEngine, PubSub, INTERNAL_EVENT, INTERNAL_EVENT_PAYLOAD, MapView, STATE, MapObject, SceneManager, TileManager, PathsController, FloatingLabelsController, FlatLabelsController, PolygonColorsController, MarkersController, PolygonInteractionController, TooltipsController, PolygonStatesController, PolygonImagesController, ThreeDMarkersController, EventSystem, BlueDotController, CameraController, BillboardManager, StackedMapsController, OutdoorViewController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9799
+ import type { TGetPolygonsAtCoordinateOptions, TMapViewOptions, TPadding, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9800
+ import { Renderer, TaskScheduler, MapManager, FlatLabel, SmartCollisionEngine, PubSub, INTERNAL_EVENT, INTERNAL_EVENT_PAYLOAD, MapView, STATE, MapObject, SceneManager, TileManager, PathsController, FloatingLabelsController, FlatLabelsController, PolygonColorsController, MarkersController, PolygonInteractionController, TooltipsController, PolygonStatesController, PolygonImagesController, ThreeDMarkersController, EventSystem, BlueDotController, CameraController, BillboardManager, StackedMapsController, OutdoorViewController, WatermarkController, PolygonHoverColorsController, LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9079
9801
  import { Mappedin as IMappedin, MappedinCoordinate, MappedinMap, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
9080
- import WatermarkController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
9802
+ import { E_MAP_CHANGED_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
9081
9803
  export const raycaster: any;
9082
9804
  let Mappedin: any;
9083
9805
  /**
@@ -9109,6 +9831,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9109
9831
  flatLabels: FlatLabelsController;
9110
9832
  paths: PathsController;
9111
9833
  polygonColors: PolygonColorsController;
9834
+ polygonHoverColors: PolygonHoverColorsController;
9112
9835
  polygonInteraction: PolygonInteractionController;
9113
9836
  polygonStates: PolygonStatesController;
9114
9837
  polygonImages: PolygonImagesController;
@@ -9119,6 +9842,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9119
9842
  camera: CameraController;
9120
9843
  outdoorViewController?: OutdoorViewController;
9121
9844
  watermark: WatermarkController;
9845
+ layerController: LayerController;
9122
9846
  options: TMapViewOptions & {
9123
9847
  onDataLoaded?: (data: IMappedin) => void;
9124
9848
  onFirstMapLoaded?: (data: IMappedin) => void;
@@ -9137,6 +9861,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9137
9861
  taskScheduler: TaskScheduler;
9138
9862
  renderer: Renderer;
9139
9863
  highlightedPolygons: Record<string, string>;
9864
+ outlinedPolygons: Map<string, MappedinPolygon>;
9140
9865
  scene: Scene;
9141
9866
  focusZoomFactor: number;
9142
9867
  cameraObject: PerspectiveCamera;
@@ -9145,6 +9870,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9145
9870
  labelOrientationDelay: number;
9146
9871
  isWebGL2: boolean;
9147
9872
  interactivePolygons: Record<string, boolean>;
9873
+ polygonHoverColorsById: Record<string, Color>;
9148
9874
  mapManager: MapManager | undefined;
9149
9875
  sceneManager: SceneManager | undefined;
9150
9876
  mapObjects: Map<MappedinMap['id'], MapObject>;
@@ -9164,10 +9890,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9164
9890
  billboardManager: BillboardManager;
9165
9891
  stackedMaps: StackedMapsController;
9166
9892
  tileManager: TileManager;
9893
+ setMapReason?: E_MAP_CHANGED_REASON;
9167
9894
  /**
9168
9895
  * Get all maps that are "visible" in the scene.
9169
9896
  */
9170
9897
  get visibleMapsInCurrentScene(): any[];
9898
+ get visibleMapObjectsInCurrentScene(): MapObject[];
9899
+ /**
9900
+ * Returns all currently visible layers
9901
+ */
9902
+ get visibleLayersInCurrentScene(): {};
9171
9903
  constructor(container: HTMLDivElement, venue: IMappedin, options: TMapViewOptions & {
9172
9904
  onDataLoaded?: (data: IMappedin) => void;
9173
9905
  onFirstMapLoaded?: (data: IMappedin) => void;
@@ -9180,7 +9912,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9180
9912
  focusOn: (options: any) => any;
9181
9913
  focusOnPolygon: (polygon: any, changeZoom: any, duration: any, curve: any) => any;
9182
9914
  focusOnPath: (path: any, polygons: any, changeZoom: any, duration: any, curve: any) => any;
9183
- getCameraFrameForPoints: (pointCloud: any, horizontalFovFactor: any, verticalFovFactor: any, padding: any, ignoreZoom: any) => {
9915
+ getCameraFrameForPoints: (pointCloud: any, horizontalFovFactor: any, verticalFovFactor: any, padding: any, ignoreZoom?: boolean, minZoom?: any, maxZoom?: any) => {
9184
9916
  position: any;
9185
9917
  zoom: any;
9186
9918
  };
@@ -9236,7 +9968,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9236
9968
  */
9237
9969
  hideDebugUI: () => void;
9238
9970
  determineNewLabelSize: () => void;
9239
- setMap: (map: string | MappedinMap) => Promise<any>;
9971
+ mapSetInProgress: Promise<any>;
9972
+ mapSetResolved: any;
9973
+ setMap: (map: string | MappedinMap) => any;
9974
+ setMapWithReason: (map: string | MappedinMap, reason: E_MAP_CHANGED_REASON) => any;
9240
9975
  getPolygonsAtScreenCoordinate: (x: number, y: number, options?: TGetPolygonsAtCoordinateOptions) => any;
9241
9976
  getPolygonsAtCoordinate: (coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions) => any;
9242
9977
  getNearestNodeByScreenCoordinate(x: number, y: number, mapOrMapId?: MappedinMap | MappedinMap['id']): MappedinNode;
@@ -9444,6 +10179,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Cam
9444
10179
  * @param transform The new transform of the camera.
9445
10180
  */
9446
10181
  set(transform: TCameraTransform): void;
10182
+ /**
10183
+ * Convert a Mercator Zoom Level to altitude, which can be used in the Camera APIs
10184
+ */
10185
+ convertZoomLevelToAltitude(zoomLevel: number): any;
10186
+ /**
10187
+ * Convert the altitude returned by getZoom into Mercator Zoom level
10188
+ */
10189
+ convertAltitudeToZoomLevel(altitude: number): any;
9447
10190
  /**
9448
10191
  * Smoothly transition the camera's transform to be in a new configuration. See also {@link set}.
9449
10192
  *
@@ -9713,6 +10456,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Sta
9713
10456
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
9714
10457
  import { STACKED_MAPS_STATE, StackedMapsController, TCameraTransform } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9715
10458
  /**
10459
+ * @experimental
9716
10460
  * API for showing multiple maps involved in a {@link Journey} as a vertical stack.
9717
10461
  */
9718
10462
  export class StackedMaps {
@@ -9830,7 +10574,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Out
9830
10574
  /**
9831
10575
  * @experimental
9832
10576
  * API to control outdoor view rendering. Outdoor view can be enabled when
9833
- * initializing the {@link MapView} with {@link TMapViewOptions.outdoorView.enabled}.
10577
+ * initializing the {@link MapView} with `outdoorView: { enabled: true }` in {@link TMapViewOptions}.
9834
10578
  * @example
9835
10579
  * ```typescript
9836
10580
  * const mapView = await showVenue(document.getElementById('mappedin-map'), venue, {
@@ -9848,13 +10592,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Out
9848
10592
  */
9849
10593
  constructor(outdoorViewController: OutdoorViewController | undefined);
9850
10594
  /**
9851
- *
10595
+ * @experimental
9852
10596
  * @param style A style object conforming to the [Maplibre Style Spec](https://maplibre.org/maplibre-style-spec/)
9853
10597
  * @returns
9854
10598
  */
9855
10599
  setStyle(style: any): void;
9856
10600
  /**
9857
- * * A position definition for the attribution control to be placed, can be in one of the corners of the map.
10601
+ * @experimental
10602
+ * A position definition for the attribution control to be placed, can be in one of the corners of the map.
9858
10603
  *
9859
10604
  * @param {string} style A position definition
9860
10605
  * @returns
@@ -9864,6 +10609,98 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Out
9864
10609
  export default OutdoorView;
9865
10610
  }
9866
10611
 
10612
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus' {
10613
+ import { DynamicFocusSceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10614
+ /**
10615
+ * @experimental
10616
+ * API to dynamically set the map focus as you pan over map groups. Dynamic Focus can be enabled when
10617
+ * initializing the {@link MapView} with base map set in {@link TMapViewOptions}
10618
+ * @example
10619
+ * ```typescript
10620
+ * const mapView = await showVenue(document.getElementById('mappedin-map'), venue, {
10621
+ * dynamicFocus: {
10622
+ * baseMap: venue.maps[0],
10623
+ * },
10624
+ * });
10625
+ * ```
10626
+ */
10627
+ class DynamicFocus {
10628
+ #private;
10629
+ /**
10630
+ * @hidden
10631
+ */
10632
+ constructor(dynamicFocusSceneManager: DynamicFocusSceneManager);
10633
+ /**
10634
+ * @experimental
10635
+ * Controls whether the map should be set when the user pans over to it.
10636
+ *
10637
+ * @example
10638
+ * ```ts
10639
+ * if (mapView.DynamicFocus) {
10640
+ * mapView.DynamicFocus.setMapOnUserInteraction = false;
10641
+ * }
10642
+ * ```
10643
+ */
10644
+ set setMapOnUserInteraction(value: boolean);
10645
+ /**
10646
+ * @experimental
10647
+ * Returns the current boolean value whether the map should be set when the user pans over it.
10648
+ *
10649
+ * @example
10650
+ * ```ts
10651
+ * if(mapView.DynamicFocus && mapView.DynamicFocus.setMapOnUserInteraction) {
10652
+ * mapView.DynamicFocus.setMapOnUserInteraction = false;
10653
+ * }
10654
+ * ```
10655
+ */
10656
+ get setMapOnUserInteraction(): boolean;
10657
+ /**
10658
+ * @experimental
10659
+ * Force Dynamic Focus to evaluate and set the current map based on camera position.
10660
+ *
10661
+ * @example
10662
+ * ```ts
10663
+ * // Animate the camera to focus on a building
10664
+ * await mapView.Camera.focusOn({
10665
+ * polygons: venue.locations.find(l => l.name === 'Building')?.polygons,
10666
+ * });
10667
+ * // Force Dynamic Focus update
10668
+ * mapView.DynamicFocus?.update();
10669
+ * ```
10670
+ */
10671
+ update(): void;
10672
+ }
10673
+ export { DynamicFocus };
10674
+ }
10675
+
10676
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Layers' {
10677
+ import { LayerController, MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10678
+ /**
10679
+ * @experimental
10680
+ * API to control per-map layer management, visibility and interpolations.
10681
+ */
10682
+ export class Layers {
10683
+ #private;
10684
+ /**
10685
+ * @private
10686
+ */
10687
+ constructor(layerController: LayerController | undefined);
10688
+ /**
10689
+ * @experimental
10690
+ * Returns a mapping of all layers for a map, and whether they are visible or not.
10691
+ */
10692
+ getAllLayersForMap(map: MappedinMap): Promise<any[] | {
10693
+ [layerName: string]: boolean;
10694
+ }>;
10695
+ /**
10696
+ * @experimental
10697
+ * Re-renders the map only showing the layers specified in the array. This will discard any polygons that have been highlighted.
10698
+ */
10699
+ showLayers(layers: string[]): void;
10700
+ }
10701
+ export default LayerController;
10702
+ }
10703
+
9867
10704
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree' {
9868
10705
  export function contains(rect1: Rectangle, rect2: Rectangle): boolean;
9869
10706
  export function intersects(rect1: Rectangle, rect2: Rectangle): boolean;
@@ -9899,6 +10736,111 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-
9899
10736
  export { QuadTree, Rectangle };
9900
10737
  }
9901
10738
 
10739
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.EffectComposer' {
10740
+ import { N8AOPostPass } from 'n8ao';
10741
+ import { EffectComposer as PPEffectComposer, EffectPass, Pass, ShaderPass, RenderPass, ClearPass, Effect } from 'postprocessing';
10742
+ import type { PerspectiveCamera, Scene, Texture, Mesh } from 'three';
10743
+ import { Color } from 'three';
10744
+ import type { TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
10745
+ import { Uniform } from 'three';
10746
+ export type TCompositeUniforms = {
10747
+ animatedColorOpacity: Uniform;
10748
+ inputBuffer: Uniform;
10749
+ staticSceneColorTexture: Uniform;
10750
+ staticSceneDepthTexture: Uniform;
10751
+ animatedSceneColorTexture: Uniform;
10752
+ animatedSceneDepthTexture: Uniform;
10753
+ alwaysOnTopSceneColorTexture: Uniform;
10754
+ alwaysOnBottomSceneColorTexture: Uniform;
10755
+ };
10756
+ type TAmbientOcclusionOptions = Pick<TMapViewOptions, 'aoQuality' | 'aoResolution' | 'aoEnabled'>;
10757
+ export type TPostProcessingOptions = TAmbientOcclusionOptions & {
10758
+ antialias?: boolean;
10759
+ compositeUniforms?: TCompositeUniforms;
10760
+ };
10761
+ export type TPass = (RenderPass | ShaderPass | EffectPass | AmbientOcclusionPass) & {
10762
+ name: string;
10763
+ };
10764
+ export enum EAOQualities {
10765
+ performance = "Performance",
10766
+ low = "Low",
10767
+ medium = "Medium",
10768
+ high = "High",
10769
+ ultra = "Ultra"
10770
+ }
10771
+ export enum EPass {
10772
+ RenderPass = "RenderPass",
10773
+ CompositeRenderPass = "CompositeRenderPass",
10774
+ AmbientOcclusionPass = "AmbientOcclusionPass",
10775
+ EffectsPass = "EffectsPass",
10776
+ FinalPass = "FinalPass"
10777
+ }
10778
+ export enum EEffect {
10779
+ FXAA = "FXAAEffect",
10780
+ Outline = "OutlineEffect"
10781
+ }
10782
+ export type TN8AOConfiguration = {
10783
+ aoSamples?: number;
10784
+ aoRadius?: number;
10785
+ denoiseSamples?: number;
10786
+ denoiseRadius?: number;
10787
+ intensity?: number;
10788
+ denoiseIterations?: number;
10789
+ renderMode?: number;
10790
+ color?: Color;
10791
+ gammaCorrection?: boolean;
10792
+ logarithmicDepthBuffer?: boolean;
10793
+ screenSpaceRadius?: boolean;
10794
+ halfRes?: boolean;
10795
+ depthAwareUpsampling?: boolean;
10796
+ autoRenderBeauty?: boolean;
10797
+ };
10798
+ export class CustomRenderPass extends Pass {
10799
+ effectComposer: EffectComposer;
10800
+ clearPass: ClearPass;
10801
+ constructor(effectComposer: any);
10802
+ render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
10803
+ initialize(_: any, __: any, frameBufferType: any): void;
10804
+ }
10805
+ export class AmbientOcclusionPass extends N8AOPostPass {
10806
+ effectComposer: EffectComposer;
10807
+ cachePass: ShaderPass;
10808
+ constructor(effectComposer: EffectComposer, configuration: TN8AOConfiguration);
10809
+ setAOConfiguration(configuration: TN8AOConfiguration): void;
10810
+ setQualityMode(aoQuality: any): void;
10811
+ get distanceFalloff(): number;
10812
+ initialize(renderer: any, alpha: any, frameBufferType: any): void;
10813
+ render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
10814
+ }
10815
+ export class CustomEffectPass extends EffectPass {
10816
+ constructor(camera?: PerspectiveCamera, ...effects: Effect[]);
10817
+ getEffects(): Effect[];
10818
+ setEffects(effects: Effect[]): void;
10819
+ }
10820
+ export class EffectComposer {
10821
+ options: TPostProcessingOptions;
10822
+ isWebGL2: boolean;
10823
+ effectComposer: PPEffectComposer;
10824
+ scene: Scene;
10825
+ camera: PerspectiveCamera;
10826
+ depthTexture?: Texture;
10827
+ renderer: any;
10828
+ ambientOcclusionPass: AmbientOcclusionPass | null;
10829
+ constructor(renderer: any, options: TPostProcessingOptions);
10830
+ get initialized(): boolean;
10831
+ init(scene: Scene, camera: PerspectiveCamera): void;
10832
+ render(): void;
10833
+ setSize(width: number, height: number): void;
10834
+ getPassByName(passName: EPass): TPass | null;
10835
+ getEffectByName(name: EEffect): Effect | null;
10836
+ setAmbientOcclusionConfiguration(configuration: TN8AOConfiguration): void;
10837
+ setPolygonOutlineColor(color: string): void;
10838
+ addSelectionForOutline(polygonMesh: Mesh): void;
10839
+ removeSelectionForOutline(polygonMesh: Mesh): void;
10840
+ }
10841
+ export {};
10842
+ }
10843
+
9902
10844
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.Tile' {
9903
10845
  import { Texture, Mesh, MeshBasicMaterial } from 'three';
9904
10846
  import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';