@mappedin/react-native-sdk 5.23.0 → 5.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -8,8 +8,6 @@
8
8
  // ../@tweenjs/tween.js
9
9
  // ../minisearch
10
10
  // ../geojson
11
- // ../n8ao
12
- // ../postprocessing
13
11
 
14
12
  declare module '@mappedin/react-native-sdk' {
15
13
  export { MiMapView } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView';
@@ -666,7 +664,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
666
664
  pulseColor?: string;
667
665
  /**
668
666
  * Number of iterations to pulse to indicate direction
669
- * @defaultValue Infinity
667
+ * @defaultValue 1
670
668
  */
671
669
  pulseIterations?: number;
672
670
  /**
@@ -794,7 +792,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
794
792
  /**
795
793
  * What color to highlight departure and destination polygons
796
794
  * Pass false to disable
797
- * @default '#ff834c'
795
+ * @default '#7babc8'
798
796
  */
799
797
  polygonHighlightColor?: string | false;
800
798
  /**
@@ -893,6 +891,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
893
891
  * @default false
894
892
  */
895
893
  interactive?: boolean;
894
+ /**
895
+ * Optional layer to attach the {@link Marker} to.
896
+ */
897
+ layer?: string;
896
898
  };
897
899
  /**
898
900
  * Configurations for an animation
@@ -932,6 +934,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
932
934
  * The rank of the object used when comparing colliders to determine which should be shown.
933
935
  */
934
936
  collisionRank?: COLLISION_RANKING_TIERS;
937
+ /**
938
+ * Optional layer to attach the Tooltip to.
939
+ */
940
+ layer?: string;
935
941
  };
936
942
  export type TCreateTooltipOptions = TCreateTooltipCommonOptions & {
937
943
  /**
@@ -1010,14 +1016,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1010
1016
  * Enable ambient occlusion. Only works in single buffer mode and when device supports WebGL2.
1011
1017
  * @default false
1012
1018
  */
1013
- aoEnabled?: boolean;
1019
+ aoEnabled?: TAOConfiguration['aoEnabled'];
1014
1020
  /**
1015
1021
  * @experimental
1016
1022
  *
1017
1023
  * Change the quality of ambient occlusion in the scene. Greater quality means less noise, but worse performance.
1018
1024
  * @default 'medium'
1019
1025
  */
1020
- aoQuality?: 'performance' | 'low' | 'medium' | 'high' | 'ultra';
1026
+ aoQuality?: TAOConfiguration['aoQuality'];
1021
1027
  /**
1022
1028
  * @experimental
1023
1029
  *
@@ -1025,7 +1031,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1025
1031
  * of visual artifacting.
1026
1032
  * @default 'half'
1027
1033
  */
1028
- aoResolution?: 'half' | 'full';
1034
+ aoResolution?: TAOConfiguration['aoResolution'];
1029
1035
  /**
1030
1036
  * Background color of the map as a string e.g. `#2e2e2e`.
1031
1037
  */
@@ -1038,7 +1044,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1038
1044
  * Controls whether antialiasing is on. Defaults to `true`, as long as devicePixelRatio is 1. This is very expensive on high resolution screens.
1039
1045
  * @default true
1040
1046
  */
1041
- antialias?: boolean;
1047
+ antialias?: TAntialiasConfiguration['antialias'];
1048
+ /**
1049
+ * @experimental
1050
+ *
1051
+ * Controls the antialiasing quality. Greater quality means less artifacts(less aliasing), but worse performance.
1052
+ * @default 'medium'
1053
+ */
1054
+ antialiasQuality?: TAntialiasConfiguration['antialiasQuality'];
1042
1055
  disableHover?: boolean;
1043
1056
  disableZoomOnMapSizeChange?: boolean;
1044
1057
  loadOptions?: {
@@ -1073,26 +1086,32 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1073
1086
  */
1074
1087
  dynamicFocus?: {
1075
1088
  /**
1076
- * The Dynamic Focus Map to always be visible
1089
+ * The Dynamic Focus Map to always be visible.
1077
1090
  */
1078
1091
  baseMap?: MappedinMap;
1079
1092
  /**
1080
- * Mercator Zoom level where the indoors are fully visible
1093
+ * Mercator Zoom level where the indoors are fully visible.
1081
1094
  */
1082
1095
  indoorsFullyVisibleZoomLevel?: number;
1083
1096
  /**
1084
- * Mercator Zoom level when the outdoors geometry is fully visible
1097
+ * Mercator Zoom level when the outdoors geometry is fully visible.
1085
1098
  */
1086
1099
  buildingFullyVisibleZoomLevel?: number;
1087
1100
  /**
1088
- * Level at which the map is "set", and colliders become visible
1101
+ * Level at which the map is "set", and colliders become visible.
1089
1102
  */
1090
1103
  setMapAtZoomLevel?: number;
1091
1104
  /**
1092
- * Whether we should preload the default maps of each building
1093
- * This will incur a cost up-front, but make transitions smoother
1105
+ * Whether we should preload the default maps of each building.
1106
+ * This will incur a cost up-front, but make transitions smoother.
1107
+ * @default false
1094
1108
  */
1095
1109
  preloadDefaultMaps?: boolean;
1110
+ /**
1111
+ * An array of base map layer names which should remain active when the focus has changed to a building map.
1112
+ * This could include outdoor {@link FloatingLabel}s or {@link Marker}s that are attached to the base map.
1113
+ */
1114
+ keepLayersActiveOnBaseMap?: string[];
1096
1115
  };
1097
1116
  /**
1098
1117
  * @experimental
@@ -1365,6 +1384,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1365
1384
  * @default false
1366
1385
  */
1367
1386
  interactive?: boolean;
1387
+ /**
1388
+ * Optional layer to attach the FloatingLabel to.
1389
+ * If not provided, this will be empty or the layer of the {@link MappedinPolygon} that the label is attached to.
1390
+ */
1391
+ layer?: string;
1368
1392
  };
1369
1393
  export type TLabelAllLocationCommonOptions = {
1370
1394
  /**
@@ -1468,6 +1492,28 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1468
1492
  export type FloatingLabelClickEventPayload = {
1469
1493
  text?: string;
1470
1494
  } & Omit<ClickEventPayload, 'coordinate'>;
1495
+ export type TAntialiasConfiguration = {
1496
+ antialias?: boolean;
1497
+ antialiasQuality?: 'low' | 'medium' | 'high' | 'ultra';
1498
+ };
1499
+ export type TAOConfiguration = {
1500
+ aoEnabled?: boolean;
1501
+ aoQuality?: string;
1502
+ aoSamples?: number;
1503
+ aoRadius?: number;
1504
+ denoiseSamples?: number;
1505
+ denoiseRadius?: number;
1506
+ intensity?: number;
1507
+ denoiseIterations?: number;
1508
+ renderMode?: number;
1509
+ color?: string;
1510
+ gammaCorrection?: boolean;
1511
+ logarithmicDepthBuffer?: boolean;
1512
+ screenSpaceRadius?: boolean;
1513
+ aoResolution?: 'half' | 'full';
1514
+ depthAwareUpsampling?: boolean;
1515
+ autoRenderBeauty?: boolean;
1516
+ };
1471
1517
  export type TMapClickEvent = {
1472
1518
  /**
1473
1519
  * The latitude / longitude of where the user clicked the map.
@@ -1588,8 +1634,14 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
1588
1634
  */
1589
1635
  export function isomorphicFetch(): Window['fetch'];
1590
1636
  /**
1591
- * @internal
1592
- * Overwrite the internal `fetch` function with your own. Typically for use in Node.js and Jest
1637
+ * Overwrite the internal `fetch` function with your own. Typically for use in Node.js and Jest.
1638
+ *
1639
+ * @example
1640
+ * ```js
1641
+ * const { getVenue } = require("@mappedin/mappedin-js/lib/node/index");
1642
+ * setFetchFn(require("node-fetch-commonjs"));
1643
+ * ```
1644
+ *
1593
1645
  */
1594
1646
  export function setFetchFn(fetchFn: any): void;
1595
1647
  /** Classes */
@@ -1690,6 +1742,10 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
1690
1742
  };
1691
1743
  export type TGetVenueMVFOptions = TGetVenueBundleOptions & {
1692
1744
  onMVFParsed?: (mvf: ParsedMVF) => void;
1745
+ /**
1746
+ * Override initial MVF data
1747
+ */
1748
+ override?: Partial<Pick<ParsedMVF, 'styles.json'>>;
1693
1749
  };
1694
1750
  /**
1695
1751
  * @deprecated
@@ -2444,6 +2500,8 @@ declare module '@mappedin/react-native-sdk/wrappers/common/events' {
2444
2500
  CREATE_TOOLTIP = "CREATE_TOOLTIP",
2445
2501
  CREATE_CUSTOM_TOOLTIP = "CREATE_CUSTOM_TOOLTIP",
2446
2502
  REMOVE_TOOLTIP = "REMOVE_TOOLTIP",
2503
+ CHANGE_LANGUAGE = "CHANGE_LANGUAGE",
2504
+ GET_CURRENT_LANGUAGE = "GET_CURRENT_LANGUAGE",
2447
2505
  /**
2448
2506
  * Camera
2449
2507
  */
@@ -2667,6 +2725,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
2667
2725
  */
2668
2726
  searchOptions?: TMappedinOfflineSearchOptions;
2669
2727
  };
2728
+ context: string;
2670
2729
  };
2671
2730
  [EVENT.SHOW_VENUE]: {
2672
2731
  venueData: string;
@@ -2914,6 +2973,11 @@ declare module '@mappedin/react-native-sdk/wrappers/common/payloads' {
2914
2973
  [EVENT.REMOVE_TOOLTIP]: {
2915
2974
  tooltipId: string;
2916
2975
  };
2976
+ [EVENT.CHANGE_LANGUAGE]: {
2977
+ language: string;
2978
+ cache: boolean;
2979
+ };
2980
+ [EVENT.GET_CURRENT_LANGUAGE]: null;
2917
2981
  };
2918
2982
  }
2919
2983
 
@@ -3013,7 +3077,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
3013
3077
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface' {
3014
3078
  import { Color, Vector2, Vector3, Mesh } from 'three';
3015
3079
  import type { TPadding, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TileManager, BillboardManager, StackedMapsController, SmartCollisionEngine, OutdoorViewController, LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
3016
- 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';
3080
+ 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, ExportController, EventSystem } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
3017
3081
  import Tween, { Easing } from '@tweenjs/tween.js';
3018
3082
  import WatermarkController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
3019
3083
  import PolygonHoverColorsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonHoverColorsController';
@@ -3098,6 +3162,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
3098
3162
  billboardManager: BillboardManager;
3099
3163
  stackedMaps: StackedMapsController;
3100
3164
  outdoorViewController?: OutdoorViewController;
3165
+ exportController: ExportController;
3101
3166
  watermark: WatermarkController;
3102
3167
  layerController: LayerController;
3103
3168
  state: STATE;
@@ -3476,6 +3541,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3476
3541
  prepareSearch?: boolean;
3477
3542
  searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions>;
3478
3543
  };
3544
+ context: string;
3479
3545
  };
3480
3546
  };
3481
3547
  SHOW_VENUE: {
@@ -3897,6 +3963,17 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3897
3963
  tooltipId: string;
3898
3964
  };
3899
3965
  };
3966
+ CHANGE_LANGUAGE: {
3967
+ msgID?: string;
3968
+ data: {
3969
+ language: string;
3970
+ cache: boolean;
3971
+ };
3972
+ };
3973
+ GET_CURRENT_LANGUAGE: {
3974
+ msgID?: string;
3975
+ data: null;
3976
+ };
3900
3977
  }>;
3901
3978
  /**
3902
3979
  * Message received from the other side of the bridge
@@ -4096,6 +4173,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4096
4173
  */
4097
4174
  appearance?: TFloatingLabelAppearance;
4098
4175
  createDespiteImage?: boolean;
4176
+ layer?: string;
4099
4177
  };
4100
4178
  enum PINVISIBILITY {
4101
4179
  OPAQUE = 1,
@@ -4149,6 +4227,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4149
4227
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core' {
4150
4228
  import { IStateMachine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine';
4151
4229
  import { E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
4230
+ import PositionSmoothing from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/position-smoothing';
4152
4231
  import { PubSub, IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
4153
4232
  import { MappedinMap, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
4154
4233
  import { TGeolocationObject } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
@@ -4213,16 +4292,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4213
4292
  */
4214
4293
  useRotationMode?: boolean;
4215
4294
  };
4216
- type TUserData = {
4295
+ export type TUserData = {
4217
4296
  state: E_BLUEDOT_STATE;
4218
4297
  position: TGeolocationObject | null;
4219
4298
  map: MappedinMap | null;
4220
4299
  bearing: any;
4221
4300
  nearestNode: any;
4301
+ forceBlueDot: boolean;
4222
4302
  };
4223
4303
  export interface IBlueDotCore extends IPubSub {
4224
4304
  positionUpdater: IPositionUpdater | null;
4225
- positionSmoothing: any;
4305
+ positionSmoothing: PositionSmoothing;
4226
4306
  locationUncertainTimeoutPeriod: number;
4227
4307
  fallbackToGPSTimeoutPeriod: number;
4228
4308
  enableBlueDot: (options?: TEnableBlueDotOptions) => void;
@@ -4310,7 +4390,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4310
4390
  }
4311
4391
 
4312
4392
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController' {
4313
- import { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
4393
+ import { MappedinNode, MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue';
4314
4394
  import type { ICore, TPathOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
4315
4395
  import { ANIMATION_TWEENS } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
4316
4396
  /**
@@ -4330,7 +4410,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4330
4410
  */
4331
4411
  export type TInternalPathSegment = {
4332
4412
  id: string;
4333
- nodes: MappedinNode[];
4413
+ nodes: (MappedinNode | MappedinCoordinate)[];
4334
4414
  mapId?: string;
4335
4415
  isConnectionPathSegment?: boolean;
4336
4416
  reset: () => void;
@@ -4355,6 +4435,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4355
4435
  * A {@link MappedinNode}[] representing the nodes in the path
4356
4436
  */
4357
4437
  get nodes(): MappedinNode[];
4438
+ /**
4439
+ * A {@link MappedinCoordinate}[] representing the coordinates in the path
4440
+ */
4441
+ get coordinates(): MappedinCoordinate[];
4358
4442
  }
4359
4443
  /**
4360
4444
  * @hidden
@@ -4365,9 +4449,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4365
4449
  export class InternalPath {
4366
4450
  id: string;
4367
4451
  nodes: MappedinNode[];
4452
+ coordinates: MappedinCoordinate[];
4368
4453
  pathSegments: TInternalPathSegment[];
4369
4454
  options: TPathOptionsInternal;
4370
- constructor(nodes: MappedinNode[], pathSegments: TInternalPathSegment[], options: TPathOptionsInternal);
4455
+ constructor(path: (MappedinNode | MappedinCoordinate)[], pathSegments: TInternalPathSegment[], options: TPathOptionsInternal);
4371
4456
  }
4372
4457
  /**
4373
4458
  * @hidden
@@ -4423,7 +4508,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
4423
4508
  *
4424
4509
  * @returns {Array} Array of Tween segments representing paths drawn on screen
4425
4510
  */
4426
- drawPath(path: MappedinNode[], options?: TPathOptionsInternal): Path;
4511
+ drawPath(path: (MappedinNode | MappedinCoordinate)[], options?: TPathOptionsInternal): Path;
4427
4512
  /**
4428
4513
  * Redraw an existing path with optional new options. This avoids changing its ID or reference.
4429
4514
  */
@@ -4478,6 +4563,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4478
4563
  [type: string]: boolean;
4479
4564
  };
4480
4565
  interactive?: boolean;
4566
+ layer?: string;
4481
4567
  };
4482
4568
  type TTooltipStyle = {
4483
4569
  top?: string;
@@ -5166,7 +5252,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Cust
5166
5252
  * This method should be called whenever the user's position changes. This information will be sent when a track call is made.
5167
5253
  * @param position {AnalyticsUserPosition} The user's current position.
5168
5254
  */
5169
- updateAnalyticsUserPosition(position: AnalyticsUserPosition | undefined): void;
5255
+ updateAnalyticsUserPosition(position: Omit<AnalyticsUserPosition, 'bluedotTimestamp'> | undefined): void;
5170
5256
  /**
5171
5257
  * Whenever a location is selected, you should fire this event. What "selected" means can vary by venue,
5172
5258
  * but a good rule of thumb is that you fire the event whenever you would show the location's details.
@@ -5955,6 +6041,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
5955
6041
  text: string;
5956
6042
  createDespiteImage: boolean | undefined;
5957
6043
  coordinate?: MappedinCoordinate;
6044
+ layer?: string;
5958
6045
  };
5959
6046
  class FloatingLabelsController {
5960
6047
  #private;
@@ -6189,7 +6276,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6189
6276
  import { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
6190
6277
  import { TMapClickEvent } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6191
6278
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
6192
- export { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
6279
+ export { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode, MappedinLocation, MappedinVenue, } from '@mappedin/react-native-sdk/core/packages/get-venue';
6193
6280
  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';
6194
6281
  export { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6195
6282
  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';
@@ -6327,6 +6414,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6327
6414
  export { MultiBufferRenderer } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Renderer';
6328
6415
  export { JourneyController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/JourneyController';
6329
6416
  export { default as OutdoorViewController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/OutdoorViewController';
6417
+ export { default as ExportController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/ExportController';
6330
6418
  export { default as WatermarkController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
6331
6419
  export { default as LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/LayerController';
6332
6420
  /**
@@ -6591,8 +6679,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6591
6679
  accessible: boolean;
6592
6680
  activeDirections: MappedinDirections;
6593
6681
  get isMultiFloor(): boolean;
6594
- get mapsInJourney(): any[];
6595
- get buildingsInJourney(): any;
6682
+ get mapsInJourney(): import("../../internal").MappedinMap[];
6683
+ get buildingsInJourney(): {};
6596
6684
  get mapIdsInvolvedInJourney(): string[];
6597
6685
  constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions, core: ICore);
6598
6686
  setStep: (step: any) => void;
@@ -6604,7 +6692,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6604
6692
  }
6605
6693
 
6606
6694
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
6607
- import { MapId } from '@mappedin/mvf';
6695
+ import { MapId, ObstructionCollection, EntranceCollection, SpaceCollection, Style } from '@mappedin/mvf';
6608
6696
  import { FeatureCollection, MultiPolygon, Point, Polygon } from 'geojson';
6609
6697
  import { TImage, TMap, TNode, TOpeningHours, TPhone, TSiblingGroup, TSocial } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
6610
6698
  export type WithIDs<T> = Map<string, T>;
@@ -6617,6 +6705,13 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.
6617
6705
  name: string;
6618
6706
  children: ManifestFile[];
6619
6707
  };
6708
+ export type MVFStyle = Style & {
6709
+ type: string;
6710
+ width?: number;
6711
+ };
6712
+ export type MVFObstructionFeature = ObstructionCollection['features'][number];
6713
+ export type MVFEntranceFeature = EntranceCollection['features'][number];
6714
+ export type MVFSpaceFeature = SpaceCollection['features'][number];
6620
6715
  export type MVFv1PolygonLikeProperties = {
6621
6716
  id: string;
6622
6717
  altitude?: number;
@@ -7534,7 +7629,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMapGr
7534
7629
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/utils' {
7535
7630
  import type { TGetVenueOptions, TGetVenueOptionsInternal } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
7536
7631
  import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue/internal';
7537
- import { MappedinNavigatable, MappedinNode, MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/internal';
7632
+ import { Mappedin, MappedinNavigatable, MappedinNode, MappedinPolygon, MappedinLocation, MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue/internal';
7538
7633
  export function isGatewayKey(key: string): boolean;
7539
7634
  export function stringifyQuery(query: any, gateway?: boolean): string;
7540
7635
  export function buildUrl(options: TGetVenueOptionsInternal & TGetVenueOptions, pathname: string, query: any, supplementary?: boolean): string;
@@ -7589,6 +7684,21 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/utils' {
7589
7684
  * @returns the normalized value
7590
7685
  */
7591
7686
  export function normalizeCategoryRank(sortOrder: number, min: number, max: number, polygonRank?: number): number;
7687
+ export function getDeviceID(): string;
7688
+ export function getSessionID(): string;
7689
+ /**
7690
+ * Finds the main Location associated with a Polygon. This means a Location
7691
+ * attached to the Polygon that has no parents, or, if there are none of those,
7692
+ * a Location nearest the top of some hierarchy that does have the Polygon attached.
7693
+ *
7694
+ * This means if there are multiple hierarchies of Locations attached to the Polygon,
7695
+ * the one that gets returned is not guaranteed to be what you want.
7696
+ *
7697
+ * @method getPrimaryLocationForPolygon
7698
+ * @param polygon {MappedinPolygon} The Polygon you want the primary Location of.
7699
+ * @return {MappedinLocation}
7700
+ */
7701
+ export const getPrimaryLocationForPolygon: (polygon: MappedinPolygon | string | undefined, venue: Mappedin) => MappedinLocation | null;
7592
7702
  }
7593
7703
 
7594
7704
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.cache' {
@@ -8348,7 +8458,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Task
8348
8458
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.SceneManager' {
8349
8459
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8350
8460
  import type { ICore, TCameraAnimationOptions, TFocusOnCameraOptions, TCameraTargets } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8351
- import { MapViewScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8461
+ import { MapObject, MapViewScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8352
8462
  export type TSceneTransitionOptions = {
8353
8463
  /**
8354
8464
  * Map to set as active during the transition. This will decide where the camera will be positioned, as well as which
@@ -8389,7 +8499,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8389
8499
  }
8390
8500
 
8391
8501
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.DynamicFocusSceneManager' {
8392
- import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8502
+ import { MappedinMap, MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue';
8393
8503
  import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8394
8504
  import { MapViewScene, DynamicFocusScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8395
8505
  class DynamicFocusSceneManager {
@@ -8401,9 +8511,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8401
8511
  get currentScene(): {
8402
8512
  resize: () => void;
8403
8513
  currentMap: MappedinMap;
8404
- mapObjects: Map<string, MapObject>;
8514
+ mapObjects: Map<string, import("../../internal/Mappedin.MapObject").default>;
8405
8515
  };
8406
8516
  get currentMap(): MappedinMap;
8517
+ setDefaultMapForMapGroup(mapGroup: MappedinMapGroup, map: MappedinMap): void;
8518
+ resetDefaultMapForMapGroup(mapGroup: MappedinMapGroup): void;
8407
8519
  determineTargetMap(): void;
8408
8520
  update(): void;
8409
8521
  transitionTo(scene?: MapViewScene): Promise<void>;
@@ -8411,6 +8523,293 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8411
8523
  export default DynamicFocusSceneManager;
8412
8524
  }
8413
8525
 
8526
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject' {
8527
+ import { Group, Box3, Mesh, MeshLambertMaterial, Object3D, Vector3 } from 'three';
8528
+ import { FrameTaskGroup } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler';
8529
+ import { Element, FlippableImage, MappedinMap, TaskScheduler, FlatLabel, SmartTooltip, ICore, FloatingLabel, TCreateThreeDMarkerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8530
+ import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
8531
+ /**
8532
+ * Some preset priorities for tasks.
8533
+ */
8534
+ export const TASK_PRIORITY: {
8535
+ VISIBLE_MAP_HIGH: number;
8536
+ VISIBLE_MAP_LOW: number;
8537
+ VISIBLE_MAP_MARKER: number;
8538
+ ASYNC_MAP_HIGH: number;
8539
+ ASYNC_MAP_LOW: number;
8540
+ ASYNC_MAP_MARKER: number;
8541
+ MAP_LOADED: number;
8542
+ };
8543
+ export const RENDER_ORDER: {
8544
+ MAP_ELEMENT: number;
8545
+ BUILDING_OUTLINE: number;
8546
+ MAP_HOVER: number;
8547
+ POLYGON_IMAGE: number;
8548
+ };
8549
+ export function convertToShortHandInterpolation(interpolation: any[]): any;
8550
+ export const SCENE_FROM_LIVE_JSON = false;
8551
+ type InterpolationFunctionType = (zoomLevel: number) => any;
8552
+ export class LayerGroup {
8553
+ mergedObjectsGroup: Group;
8554
+ hoverObjectsGroup: Group;
8555
+ objectsByMaterials: Map<MeshLambertMaterial, Element[]>;
8556
+ hoverableMeshChildren: Mesh;
8557
+ _isVisible: boolean;
8558
+ needsUpdate: boolean;
8559
+ userData: any;
8560
+ opacity: number;
8561
+ core: ICore;
8562
+ mapObject: MapObject;
8563
+ name: string;
8564
+ layers: string[];
8565
+ interpolationFn: InterpolationFunctionType | null;
8566
+ opacityInterpolation?: {
8567
+ zoomLevel: number;
8568
+ opacity: number;
8569
+ }[] | {
8570
+ inputZoomLevel: number[];
8571
+ outputOpacity: number[];
8572
+ };
8573
+ set isVisible(value: boolean);
8574
+ get isVisible(): boolean;
8575
+ constructor(mapObject: MapObject, name: string, layers: string[], visible: boolean);
8576
+ dispose(): void;
8577
+ setOpacity(opacity: any): void;
8578
+ }
8579
+ export interface LoadOptions {
8580
+ async?: boolean;
8581
+ taskScheduler: TaskScheduler;
8582
+ mapRenderStrategy?: string;
8583
+ }
8584
+ interface BoundingBox {
8585
+ min: Vector3;
8586
+ max: Vector3;
8587
+ }
8588
+ interface FadeOptions {
8589
+ onComplete?: () => void;
8590
+ duration: number;
8591
+ }
8592
+ class MapObject extends PubSub {
8593
+ _flippableImagedById: any;
8594
+ _started: boolean;
8595
+ _loaderPromise: Promise<MapObject>;
8596
+ _promiseResolve: (value?: void | PromiseLike<void> | MapObject) => void;
8597
+ _showCount: number;
8598
+ _taskScheduler: TaskScheduler;
8599
+ _highPriorityTasks: FrameTaskGroup;
8600
+ _lowPriorityTasks: FrameTaskGroup;
8601
+ _markerTasks: FrameTaskGroup;
8602
+ _mapLoadedTasks: FrameTaskGroup;
8603
+ _visibilityLatch: boolean | null;
8604
+ _objLoadedComplete: boolean;
8605
+ _hoverableMeshChildren: Mesh[];
8606
+ imageMeshesById: Record<string, Mesh>;
8607
+ visible: boolean;
8608
+ objectsDictionary: Record<string, Mesh>;
8609
+ north: number;
8610
+ mapScale: number | null;
8611
+ object: Object3D;
8612
+ labels: Set<FloatingLabel>;
8613
+ tooltips: Set<SmartTooltip>;
8614
+ markers: Set<unknown>;
8615
+ box: Box3;
8616
+ textObjects: FlatLabel[];
8617
+ labelBatchCreator: any;
8618
+ imagesToFlip: (typeof FlippableImage)[];
8619
+ seenByCamera: boolean;
8620
+ threeJSMarkers: Map<ThreeJSMarkerHandle, {
8621
+ object: Object3D;
8622
+ }>;
8623
+ core: ICore;
8624
+ mapClass: MappedinMap;
8625
+ polygonMeshesById: Record<string, Mesh>;
8626
+ loadMethod: string;
8627
+ loadAsync: boolean;
8628
+ id: string;
8629
+ mapRenderingStrategy: string;
8630
+ needsUpdate: boolean;
8631
+ layerGroups: Map<string, LayerGroup>;
8632
+ loadedLayerNames: string[];
8633
+ loadedElements: Element[];
8634
+ boundingBox: BoundingBox | undefined;
8635
+ elements: Element[];
8636
+ loadMethodUsed: string;
8637
+ mapLoaded: any;
8638
+ constructor(mapClass: MappedinMap, polygonMeshesById: Record<string, Mesh>, showCount: number, core: ICore, loadOptions: LoadOptions);
8639
+ fade(layerGroupName: string | string[], { direction, onComplete, duration }: {
8640
+ direction?: string;
8641
+ onComplete?: () => void;
8642
+ duration?: number;
8643
+ }): {
8644
+ start: () => Promise<void>;
8645
+ };
8646
+ /**
8647
+ * Fade a layer group or number of layer groups in
8648
+ * @param {string|string[]} layerGroupNames
8649
+ * @returns
8650
+ */
8651
+ fadeIn(layerGroupNames?: string | string[], options?: FadeOptions): {
8652
+ start: () => Promise<void>;
8653
+ };
8654
+ /**
8655
+ * Fade a layer group or number of layer groups out
8656
+ * @param {string|string[]} layerGroupNames
8657
+ * @returns
8658
+ */
8659
+ fadeOut(layerGroupNames?: string | string[], options?: FadeOptions): {
8660
+ start: () => Promise<void>;
8661
+ };
8662
+ renderLayerGroup(include?: string[], exclude?: string[]): void;
8663
+ processLayers(allLayers: string[], include?: string[], exclude?: string[]): string[];
8664
+ processLayerGroup(name?: string, include?: string[], exclude?: string[], visible?: boolean, elements?: Element[], defaultRenderOrder?: number): LayerGroup;
8665
+ get hoverableMeshChildren(): Mesh[];
8666
+ _objLoadedMerged(object: Object3D): Promise<void>;
8667
+ _objLoaded(object: Object3D): void;
8668
+ loadPolygonNow(polygonId: string): void;
8669
+ _addElementToScene(element: Element): void;
8670
+ /** *
8671
+ Load the map, if it's not already loaded. Returns the old promise if it's already done, so you can safely call it whenever needed.
8672
+
8673
+ If needed, this could be modified to
8674
+
8675
+ Returns a Promise that will be Done when the OBJ, MTL and textures have been downloaded, and the objectsDictionary has been generated.
8676
+
8677
+ **/
8678
+ load(): Promise<MapObject>;
8679
+ _dispose(objectToDispose: Object3D): void;
8680
+ destroy(): void;
8681
+ add(childObjectToAdd: Object3D): void;
8682
+ /**
8683
+ * Convert lat/lon to local map position vector
8684
+ */
8685
+ getPositionLatLon(lat: number, lon: number): Vector3;
8686
+ /**
8687
+ * Previously, each map was centered around 0,0,0 and scaled to fit the map.
8688
+ * With scene manager, each map is positioned and scaled relative to the base map/world
8689
+ * Since most 3D objects (like blue dot) are added to the map via `getPositionLatLon`, they already
8690
+ * have the map's matrix applied, on top of being affected as a child of the map's own transform
8691
+ * This method inverts the map's matrix to resolve the double matrix application issue.
8692
+ * TODO: investigate a better way to handle this
8693
+ */
8694
+ addToObject(child: Object3D): void;
8695
+ /**
8696
+ * Translates objects that are added to the map (such as blue dot), assuming they are added via `getPositionLatLon`,
8697
+ * or `convertTo3DMapPosition`, where the map's matrix has already been applied.
8698
+ */
8699
+ translateChild(child: Object3D, position: Vector3): void;
8700
+ getMapScale(): number;
8701
+ getNorth(): number;
8702
+ enableImageFlipping(polygonId: string, rotation?: number): void;
8703
+ disableAllImageFlipping(): void;
8704
+ /**
8705
+ * Return true if this map has been loaded to the point where it can be
8706
+ * manipulated as a complete object. In synchronous mode, this requires all
8707
+ * loading tasks to be completed, but in async mode, only high-priority
8708
+ * tasks (adding polygons to the world) have to be completed.
8709
+ */
8710
+ isReady(): boolean;
8711
+ /**
8712
+ * Return true if this map has been loaded to the point where the only tasks
8713
+ * remaining are marker tasks.
8714
+ */
8715
+ isFullyLoaded(): boolean;
8716
+ /**
8717
+ * A function that should be called when the map is made visible, in order
8718
+ * to kick off its tasks.
8719
+ */
8720
+ onVisible(): void;
8721
+ /**
8722
+ * A function that should be called when the map is made invisible, in order
8723
+ * to postpone its tasks.
8724
+ */
8725
+ onInvisible(): void;
8726
+ /**
8727
+ * Queue a task on this map that will be executed when the high and low
8728
+ * priority tasks have been processed.
8729
+ */
8730
+ addPendingMarkerTask(marker: string, callback: (...args: any[]) => any): void;
8731
+ /**
8732
+ * Queue a task on this map that must be completed before the map will be
8733
+ * considered `isReady` in synchronous loading mode.
8734
+ */
8735
+ addPendingLowPriorityTask(name: string, callback: (...args: any[]) => any): void;
8736
+ /**
8737
+ * Queue a task on this map that will be queued when the map is loaded, or
8738
+ * immediately if the map has already been loaded.
8739
+ */
8740
+ addPendingMapLoadedTask(name: string, callback: (...args: any[]) => any): void;
8741
+ /**
8742
+ * Queue a task on this map that must be completed before the map will be
8743
+ * considered `isReady`, and will be evaluated before any low-priority
8744
+ * tasks.
8745
+ */
8746
+ _addPendingHighPriorityTask(name: string, callback: (...args: any[]) => any): void;
8747
+ /**
8748
+ * Add a ThreeJS marker to this map object. This should be called through
8749
+ * the `MapView3D`.
8750
+ *
8751
+ * @method addThreeJSMarker
8752
+ * @param {Object} options
8753
+ * @param {Object3D} [options.object] the marker object to add to the scene
8754
+ * @param {Vector3} [options.position=null] if provided, sets the object's position on the map
8755
+ * @param {Euler} [options.rotation=null] if provided, sets the object's rotation relative to the map
8756
+ * @param {Vector3} [options.scale=null] if provided, sets the object's scale relative to the map
8757
+ * @return {ThreeJSMarkerHandle} a unique identifier for the marker
8758
+ */
8759
+ addThreeJSMarker(options: TCreateThreeDMarkerOptions): ThreeJSMarkerHandle;
8760
+ /**
8761
+ * Remove the given `ThreeJSMarker` from this map.
8762
+ *
8763
+ * @method removeThreeJSMarker
8764
+ * @param {ThreeJSMarkerHandle} markerHandle the marker to remove
8765
+ * @return {boolean} true if the marker existed on the map and was removed;
8766
+ * false if the marker does not exist on the map
8767
+ */
8768
+ removeThreeJSMarker(markerHandle: ThreeJSMarkerHandle): boolean;
8769
+ /**
8770
+ * Remove all `ThreeJSMarker` from this map.
8771
+ *
8772
+ * @method removeThreeJSMarker
8773
+ */
8774
+ _removeThreeJSMarkers(): void;
8775
+ removeLabels(): void;
8776
+ /**
8777
+ * Called when a task group that may be required for map loading completes,
8778
+ * to see if all the relevant task groups have been completed.
8779
+ */
8780
+ _checkIfLoaded(): void;
8781
+ /**
8782
+ * Called when the root ThreeJS object has been created, and child elements
8783
+ * may be added.
8784
+ */
8785
+ _onRootObjectCreated(): void;
8786
+ _popinChildObjects(): void;
8787
+ }
8788
+ /**
8789
+ * A handle to a 3D marker added to a map.
8790
+ *
8791
+ * @class ThreeJSMarkerHandle
8792
+ */
8793
+ export class ThreeJSMarkerHandle {
8794
+ _deleted: boolean;
8795
+ _mapId: string | null;
8796
+ _object: Object3D;
8797
+ constructor(args: {
8798
+ mapId: string;
8799
+ object: Object3D;
8800
+ });
8801
+ /**
8802
+ * Return the ThreeJS object associated with this marker, so that it
8803
+ * can be moved around, scaled, etc.
8804
+ *
8805
+ * @property {Object3D} object
8806
+ */
8807
+ get object(): Object3D;
8808
+ _destroy(): void;
8809
+ }
8810
+ export default MapObject;
8811
+ }
8812
+
8414
8813
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager' {
8415
8814
  import { Texture } from 'three';
8416
8815
  import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
@@ -8683,6 +9082,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8683
9082
  id?: string;
8684
9083
  anchor?: MARKER_ANCHOR;
8685
9084
  collisionRank?: COLLISION_RANKING_TIERS;
9085
+ layer?: string;
8686
9086
  };
8687
9087
  type TTooltipStyle = {
8688
9088
  top?: string;
@@ -8827,6 +9227,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8827
9227
  material: MeshLambertMaterial | MeshLambertMaterial[];
8828
9228
  labelMesh?: Mesh;
8829
9229
  imageMesh?: Mesh;
9230
+ sortScore: number | null;
8830
9231
  static materials: {
8831
9232
  [key in string]: MeshLambertMaterial | MeshLambertMaterial[];
8832
9233
  };
@@ -8877,7 +9278,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8877
9278
  layerGroup: LayerGroup;
8878
9279
  mapGroup: MappedinMapGroup;
8879
9280
  defaultMap: MappedinMap;
8880
- activeMap: MappedinMap;
9281
+ activeMap?: MappedinMap;
8881
9282
  visibleMap?: MappedinMap;
8882
9283
  readonly startingMap: MappedinMap;
8883
9284
  baseMap: MappedinMap;
@@ -8898,6 +9299,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8898
9299
  */
8899
9300
  setBuildingOutlineOpacity(opacity: number): void;
8900
9301
  get activeMapObject(): MapObject;
9302
+ get visibleMapObject(): MapObject;
8901
9303
  get defaultMapObject(): MapObject;
8902
9304
  get baseMapObject(): MapObject;
8903
9305
  state: string;
@@ -8934,6 +9336,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8934
9336
  setMapAtZoomLevel: number;
8935
9337
  baseMap: MappedinMap;
8936
9338
  preloadDefaultMaps: boolean;
9339
+ keepLayersActiveOnBaseMap: string[];
8937
9340
  };
8938
9341
  constructor(core: ICore, baseMap: MappedinMap);
8939
9342
  resize: () => void;
@@ -8962,10 +9365,18 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
8962
9365
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController' {
8963
9366
  import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
8964
9367
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
9368
+ type SetPolygonColorParam = [MappedinPolygon | string, string, {
9369
+ highlighted?: boolean;
9370
+ visible?: boolean;
9371
+ }?];
8965
9372
  class PolygonColorsController {
8966
9373
  #private;
8967
9374
  constructor(core: ICore);
8968
- setPolygonColor(polygon: any, color: any, highlighted?: boolean): void;
9375
+ /**
9376
+ * Given a polygon, set it to a specific color.
9377
+ * @param color - color value in hex
9378
+ */
9379
+ setPolygonColor(...params: SetPolygonColorParam): Promise<void>;
8969
9380
  clearPolygonColor(polygon: any): void;
8970
9381
  clearAllPolygonColors(): void;
8971
9382
  setPolygonOutlineColor(color: string): void;
@@ -9158,54 +9569,67 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
9158
9569
  import { FloatingLabel, InternalMarker, SmartTooltip } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9159
9570
  export type Collider = InternalMarker | SmartTooltip | FloatingLabel;
9160
9571
  export type ColliderQuadTree = QuadTree<{
9161
- collider: Collider;
9572
+ collider: Collider;
9162
9573
  }>;
9163
9574
  export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
9164
9575
  class SmartCollisionEngine {
9165
- #private;
9166
- colliderCanvas: HTMLCanvasElement;
9167
- debugCanvas: HTMLCanvasElement;
9168
- colliderCanvasContext: CanvasRenderingContext2D;
9169
- debugCanvasContext: CanvasRenderingContext2D;
9170
- collisionEngineContainerEl: HTMLDivElement;
9171
- stepsX: any;
9172
- stepsY: any;
9173
- totalWidth: any;
9174
- totalHeight: any;
9175
- project: any;
9176
- colliders: Map<string, Collider>;
9177
- offscreenRanges: TRange[];
9178
- get sortedColliders(): Collider[];
9179
- initialized: boolean;
9180
- core: ICore;
9181
- screen: Rectangle;
9182
- debouncedUpdate: () => void;
9183
- constructor(core: ICore);
9184
- updateStartEvents: {
9185
- [key: string]: boolean;
9186
- };
9187
- updateEndEvents: {
9188
- [key: string]: boolean;
9189
- };
9190
- beginUpdate(): void;
9191
- init: (container: HTMLDivElement, projectFn: (position: TColliderPosition, mapId: MappedinMap['id']) => {
9192
- x: number;
9193
- y: number;
9194
- }) => void;
9195
- handleBeginUpdate: (args: any) => void;
9196
- handleEndUpdate: (args: any) => void;
9197
- qtree: QuadTree;
9198
- interactiveCollidersQTree: ColliderQuadTree;
9199
- recompute: () => void;
9200
- draw: () => void;
9201
- reposition: () => void;
9202
- add: (colliderId: string, collider: Collider) => void;
9203
- remove: (colliderId: string) => void;
9204
- updateMap: (colliderId: string, from: string, to: string) => void;
9205
- update: () => void;
9206
- resize: (container: any) => void;
9207
- destroy: () => void;
9576
+ #private;
9577
+ colliderCanvas: HTMLCanvasElement;
9578
+ debugCanvas: HTMLCanvasElement;
9579
+ colliderCanvasContext: CanvasRenderingContext2D;
9580
+ debugCanvasContext: CanvasRenderingContext2D;
9581
+ collisionEngineContainerEl: HTMLDivElement;
9582
+ stepsX: any;
9583
+ stepsY: any;
9584
+ totalWidth: any;
9585
+ totalHeight: any;
9586
+ project: any;
9587
+ colliders: Map<string, Collider>;
9588
+ offscreenRanges: TRange[];
9589
+ get sortedColliders(): Collider[];
9590
+ initialized: boolean;
9591
+ core: ICore;
9592
+ screen: Rectangle;
9593
+ debouncedUpdate: () => void;
9594
+ constructor(core: ICore);
9595
+ updateStartEvents: {
9596
+ [key: string]: boolean;
9597
+ };
9598
+ updateEndEvents: {
9599
+ [key: string]: boolean;
9600
+ };
9601
+ beginUpdate(): void;
9602
+ init: (container: HTMLDivElement, projectFn: (position: TColliderPosition, mapId: MappedinMap['id']) => {
9603
+ x: number;
9604
+ y: number;
9605
+ }) => void;
9606
+ handleBeginUpdate: (args: any) => void;
9607
+ handleEndUpdate: (args: any) => void;
9608
+ qtree: QuadTree;
9609
+ interactiveCollidersQTree: ColliderQuadTree;
9610
+ recompute: () => void;
9611
+ draw: () => void;
9612
+ reposition: () => void;
9613
+ add: (colliderId: string, collider: Collider) => void;
9614
+ remove: (colliderId: string) => void;
9615
+ updateMap: (colliderId: string, from: string, to: string) => void;
9616
+ update: () => void;
9617
+ resize: (container: any) => void;
9618
+ destroy: () => void;
9208
9619
  }
9620
+ /**
9621
+ * Determines collider visibility based on the current mapId, dynamicFocus options, and visibleLayersInCurrentScene.
9622
+ * 1. If the collider is on the base map and has a layer included in keepLayersActiveOnBaseMap, show it.
9623
+ * 2. Otherwise, if the collider is on the current map and has a layer included in visibleLayersInCurrentScene, show it.
9624
+ * 3. Otherwise, if the collider has no layer and is on the current map, show it.
9625
+ * 4. Otherwise, hide it.
9626
+ */
9627
+ export function isColliderVisible(collider: Collider, mapId: string, dynamicFocusOptions: ICore['options']['dynamicFocus'], visibleLayersInCurrentScene: ICore['visibleLayersInCurrentScene']): boolean;
9628
+ /**
9629
+ * Determines if a collider should be shown on the base map, even when the dynamicFocus has setMap to a different map.
9630
+ * Collider must have an assigned layer included in the keepLayersActiveOnBaseMap option & matching mapId to the base map.
9631
+ */
9632
+ export function shouldKeepActiveOnBaseMap(collider: Collider, dynamicFocusOptions: ICore['options']['dynamicFocus']): boolean;
9209
9633
  export default SmartCollisionEngine;
9210
9634
  }
9211
9635
 
@@ -9341,6 +9765,32 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
9341
9765
  export default StackedMapsController;
9342
9766
  }
9343
9767
 
9768
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/ExportController' {
9769
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9770
+ /**
9771
+ * @hidden
9772
+ */
9773
+ export type TGLTFExportOptions = {
9774
+ onlyVisible?: boolean;
9775
+ binary?: boolean;
9776
+ scale?: number;
9777
+ };
9778
+ /**
9779
+ * API for exporting the scene.
9780
+ *
9781
+ * @hidden
9782
+ */
9783
+ export default class ExportController {
9784
+ #private;
9785
+ core: ICore;
9786
+ constructor(core: ICore);
9787
+ /**
9788
+ * Exports the current scene as a GLTF file.
9789
+ */
9790
+ getCurrentSceneGLTF(userOptions: TGLTFExportOptions): Promise<Blob>;
9791
+ }
9792
+ }
9793
+
9344
9794
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/LayerController' {
9345
9795
  import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
9346
9796
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
@@ -9399,10 +9849,167 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
9399
9849
  export default BlueDotUI;
9400
9850
  }
9401
9851
 
9852
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/utils' {
9853
+ import { Box3, Vector3, Object3D, Material } from 'three';
9854
+ import { Mappedin, MapObject, MappedinMap, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9855
+ import { Camera } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera';
9856
+ /**
9857
+ * Utils function listing
9858
+ *
9859
+ * - scrubMaterial
9860
+ * - getObjectID
9861
+ * - getObject
9862
+ * - getBoundingBox
9863
+ * - getBiggestBoundingBox
9864
+ * - upackBoundingBox
9865
+ * - getMapScale
9866
+ * - throttle -> taken from lodash.js
9867
+ * - getProjectionScaleFactor
9868
+ * - getZoom
9869
+ */
9870
+ export function isGatewayKey(key: string): boolean;
9871
+ export function getCombinedBoundingBox(objects: Object3D[]): Box3;
9872
+ export function getMapsBoundingBox(maps: MapObject[], mapPadding: number): Box3;
9873
+ export function scrubMaterial(material: Material): void;
9874
+ /**
9875
+ * Takes a Mappedin Object or id and returns the ID, so our functions can take bottomRight
9876
+ * @template T extends string | {id: string}
9877
+ * @param {T} object - input can be object containing id or the id itself
9878
+ * @return {string}
9879
+ */
9880
+ export function getObjectId(object: any): string;
9881
+ /**
9882
+ * Takes a Mappedin object or ID and the array to look in and retuns the Object, so our functions can take both
9883
+ * @template K extends {id: string}
9884
+ * @template T extends K | string
9885
+ * @param {T} obj
9886
+ * @param {Array<K> | undefined} array
9887
+ * @returns {K | undefined}
9888
+ */
9889
+ export function getObject(obj: any, array: any[] | undefined): any;
9890
+ export function getBoundingBox(object: Object3D): Box3;
9891
+ /**
9892
+ * Function pushes the items of the second array onto the first array (inplace).
9893
+ * @template T
9894
+ * @param {Array.<T>} arr1 - base array
9895
+ * @param {Array.<T>} arr2 - array which items will be pushed to arr1
9896
+ */
9897
+ export function appendItems<T>(arr1: T[], arr2: T[]): void;
9898
+ export function getBiggestBoundingBox(objects: Object3D[]): {
9899
+ min: any;
9900
+ max: any;
9901
+ };
9902
+ export function unpackBoundingBox(boundingBox: Box3): Vector3[];
9903
+ export function getMapScale(map: MappedinMap): number;
9904
+ export function getNorth(map: MappedinMap): number;
9905
+ export function throttle<T>(func: () => void, wait: number, options?: any): () => void;
9906
+ export function debounce<T>(func: () => void, wait: number, immediate?: boolean): () => void;
9907
+ export function flatten(list: any[]): any[];
9908
+ export function uniq(arr: any[]): any[];
9909
+ export function toStyleString(styles: Record<string, string>): string;
9910
+ /**
9911
+ /* getProjectionScaleFactor()
9912
+ /* finds the scale ratio between screen coordinates and 3D coordinates (in X-Z plane)
9913
+ /*
9914
+ * R
9915
+ * /|
9916
+ * C : Camera / |
9917
+ * PQ : Projection Plane / |
9918
+ * OR : Origin / |
9919
+ * F : FOV / |
9920
+ * Q / |
9921
+ * /| |
9922
+ * / | |
9923
+ * / | |
9924
+ * / | |
9925
+ * / | |
9926
+ * / F/2 | |
9927
+ * C ------------P------------ O
9928
+ *
9929
+ *
9930
+ * ProjectionScaleFactor = ( OR / PQ )
9931
+ * PQ = canvasHeight / 2
9932
+ * CQ = zoom
9933
+ *
9934
+ * OR / C0 = tan(F/2)
9935
+ * so OR = CO * tan(F/2)
9936
+ */
9937
+ export function getProjectionScaleFactor(FOV: number, canvasHeight: number, zoom: number): number;
9938
+ /** getZoom
9939
+ *
9940
+ * C - Camera, OP -- picture plane (canvas), S - origin,
9941
+ * QR - front side of maps Bounding Box, F: FOV
9942
+ *
9943
+ * Z-axis
9944
+ * R_____|______
9945
+ * /| | |
9946
+ * / | | |
9947
+ * P/ | | | maps BB
9948
+ * /| | | |
9949
+ * / | | | |
9950
+ * / | | | |
9951
+ * / F |E |T |S |
9952
+ * C /--------|-----|-----|-----|------ orthogonal to Y axis, midpoint of focus maps
9953
+ * \ | | | |
9954
+ * \ | | | |
9955
+ * \ | | | |
9956
+ * \ | | | |
9957
+ * \| | | |
9958
+ * O\ | | |
9959
+ * \ | | |
9960
+ * \|_____|_____|
9961
+ * Q
9962
+ *
9963
+ *
9964
+ * We want to get CS, which is the camera zoom
9965
+ *
9966
+ */
9967
+ export function getZoom(focusBox: Box3, focusBoxHeight: number, FOV: number): number;
9968
+ interface CalculateTwoDProjectionsParams {
9969
+ maps: MapObject[];
9970
+ width: number;
9971
+ height: number;
9972
+ camera: Camera;
9973
+ }
9974
+ export function calculateTwoDProjections({ maps, width, height, camera }: CalculateTwoDProjectionsParams): {
9975
+ min: {
9976
+ x: number;
9977
+ y: number;
9978
+ };
9979
+ max: {
9980
+ x: number;
9981
+ y: number;
9982
+ };
9983
+ }[];
9984
+ export function splitLine(startNode: Vector3, endNode: Vector3, segments: number): Vector3[];
9985
+ export function isObject(item: any): boolean;
9986
+ export const determineStartingMap: (venue: Mappedin, options: TMapViewOptions) => MappedinMap;
9987
+ export function cyrb53(str: string, seed?: number): number;
9988
+ export function addMarginMultiplierToBoundingBox(bbox: Box3, multiplier: number): Box3;
9989
+ export function tweenPromise({ from, to, duration, easing, delay, onUpdate, onStart, onComplete, }: {
9990
+ from: any;
9991
+ to: any;
9992
+ duration?: number;
9993
+ easing?: any;
9994
+ delay?: number;
9995
+ onUpdate?: (_: any) => void;
9996
+ onStart?: () => void;
9997
+ onComplete?: () => void;
9998
+ }): {
9999
+ start(core: any): Promise<void>;
10000
+ };
10001
+ export const linearEase: (t: number) => number;
10002
+ export const quadEaseIn: (t: number) => number;
10003
+ export const quadEaseOut: (t: number) => number;
10004
+ export function interpolate(value: number, inputMin: number, inputMax: number, outputMin: number, outputMax: number, easeFunc?: (t: number) => number): number;
10005
+ export function interpolateMulti(value: number, inputRange: number[], outputRange: number[], easeFunc?: (t: number) => number): number;
10006
+ export {};
10007
+ }
10008
+
9402
10009
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView' {
9403
10010
  import '../internal/Mappedin.css';
9404
10011
  import { Mappedin, MappedinCoordinate, MappedinLocation, MappedinMap, MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue';
9405
- import { E_SDK_EVENT_PAYLOAD, TCreateMarkerOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TMapViewOptions, TPathOptions, TCreateTooltipCommonOptions, TCreateTooltipOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
10012
+ import { E_SDK_EVENT_PAYLOAD, TCreateMarkerOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TMapViewOptions, TPathOptions, TCreateTooltipCommonOptions, TCreateTooltipOptions, TAOConfiguration, TAntialiasConfiguration } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
9406
10013
  import { E_SDK_EVENT, STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
9407
10014
  import SmartTooltip from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
9408
10015
  import { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
@@ -9415,11 +10022,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9415
10022
  import { Paths } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Paths';
9416
10023
  import { BlueDot } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/BlueDot';
9417
10024
  import { Camera } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera';
10025
+ import { Exporter } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Exporter';
9418
10026
  import { StackedMaps } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/StackedMaps';
9419
10027
  import OutdoorView from '@mappedin/react-native-sdk/core/packages/renderer/public/api/OutdoorView';
9420
10028
  import { Layers } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Layers';
9421
10029
  import { DynamicFocus } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus';
9422
- import { TN8AOConfiguration } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.EffectComposer';
9423
10030
  /**
9424
10031
  * Primary API class for controlling and interacting with a 3D map.
9425
10032
  */
@@ -9437,6 +10044,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9437
10044
  * API for controlling flat labels.
9438
10045
  */
9439
10046
  FlatLabels: IFlatLabels<void>;
10047
+ /**
10048
+ * API for exporting the scene.
10049
+ *
10050
+ * @hidden
10051
+ */
10052
+ Exporter: Exporter;
9440
10053
  /**
9441
10054
  * API for controlling floating labels.
9442
10055
  */
@@ -10033,7 +10646,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
10033
10646
  * @returns A {@link MappedinCoordinate} on the given map.
10034
10647
  */
10035
10648
  getMappedinCoordinateAtScreenCoordinate(x: number, y: number, map: MappedinMap): MappedinCoordinate;
10036
- setAmbientOcclusionSettings(settings: TN8AOConfiguration): void;
10649
+ setAmbientOcclusionSettings(settings: TAOConfiguration): void;
10650
+ setAntialiasSettings(settings: TAntialiasConfiguration): void;
10037
10651
  /**
10038
10652
  * Destroy the mapView instance and reclaim memory.
10039
10653
  *
@@ -10092,8 +10706,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
10092
10706
  _renderVisibleTiles(): void;
10093
10707
  cachedZoomLevel: number;
10094
10708
  visible: boolean;
10095
- fadeOut(): any;
10096
- fadeIn(): any;
10709
+ fadeOut(): Promise<void>;
10710
+ fadeIn(): Promise<void>;
10097
10711
  fetchTiles(): void;
10098
10712
  zoomLevelToAltitudeMap: number[][];
10099
10713
  plane: Object3D;
@@ -10121,7 +10735,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
10121
10735
  import { Color, Mesh, PerspectiveCamera, Scene, Vector2 } from 'three';
10122
10736
  import '../internal/object3D.destroy';
10123
10737
  import type { TGetPolygonsAtCoordinateOptions, TMapViewOptions, TPadding, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10124
- 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';
10738
+ 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, ExportController, LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10125
10739
  import { Mappedin as IMappedin, MappedinCoordinate, MappedinMap, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
10126
10740
  import { E_MAP_CHANGED_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
10127
10741
  export const raycaster: any;
@@ -10165,6 +10779,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
10165
10779
  blueDot: BlueDotController;
10166
10780
  camera: CameraController;
10167
10781
  outdoorViewController?: OutdoorViewController;
10782
+ exportController: ExportController;
10168
10783
  watermark: WatermarkController;
10169
10784
  layerController: LayerController;
10170
10785
  options: TMapViewOptions & {
@@ -10219,7 +10834,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
10219
10834
  /**
10220
10835
  * Get all maps that are "visible" in the scene.
10221
10836
  */
10222
- get visibleMapsInCurrentScene(): any[];
10837
+ get visibleMapsInCurrentScene(): MappedinMap[];
10223
10838
  get visibleMapObjectsInCurrentScene(): MapObject[];
10224
10839
  /**
10225
10840
  * Returns all currently visible layers
@@ -10254,15 +10869,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
10254
10869
  * @param longitude {Number} Longitude of position
10255
10870
  * @returns A position you can use with a Marker either initially or to update later when the user (for example) moves
10256
10871
  */
10257
- getPositionLatLon: (lat: number, lon: number, map?: string | MappedinMap | null) => any;
10872
+ getPositionLatLon: (lat: number, lon: number, map?: string | MappedinMap | null) => Vector3;
10258
10873
  lockNorth: (element: any, offset?: number) => void;
10259
10874
  unlockNorth: (element: any) => void;
10260
10875
  convertTo3DMapPosition: (nodeOrCoordinate: MappedinNode | MappedinCoordinate) => any;
10261
10876
  /**
10262
10877
  * Converts a 2D x,y screen position into a 3D MappedinCoordinate using projection
10263
10878
  */
10264
- convertScreenCoordinateToMapCoordinate: (x: number, y: number, map: MappedinMap) => any;
10265
- convert3DMapPositionToCoordinate: (coord: any, mapClass?: MappedinMap | null | undefined) => any;
10879
+ convertScreenCoordinateToMapCoordinate: (x: number, y: number, map: MappedinMap) => MappedinCoordinate;
10880
+ convert3DMapPositionToCoordinate: (coord: any, mapClass?: MappedinMap | null | undefined) => MappedinCoordinate;
10266
10881
  getPositionPolygon: (polygon: any) => any;
10267
10882
  getPositionNode: (node: any) => any;
10268
10883
  hideAllLabels: () => void;
@@ -10295,8 +10910,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
10295
10910
  determineNewLabelSize: () => void;
10296
10911
  mapSetInProgress: Promise<any>;
10297
10912
  mapSetResolved: any;
10298
- setMap: (map: string | MappedinMap) => any;
10299
- setMapWithReason: (map: string | MappedinMap, reason: E_MAP_CHANGED_REASON) => any;
10913
+ setMap: (map: string | MappedinMap) => Promise<any>;
10914
+ setMapWithReason: (map: string | MappedinMap, reason: E_MAP_CHANGED_REASON) => Promise<any>;
10300
10915
  getPolygonsAtScreenCoordinate: (x: number, y: number, options?: TGetPolygonsAtCoordinateOptions) => any;
10301
10916
  getPolygonsAtCoordinate: (coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions) => any;
10302
10917
  getNearestNodeByScreenCoordinate(x: number, y: number, mapOrMapId?: MappedinMap | MappedinMap['id']): MappedinNode;
@@ -10722,7 +11337,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Mar
10722
11337
  }
10723
11338
 
10724
11339
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Paths' {
10725
- import { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
11340
+ import { MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
10726
11341
  import { TPathOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10727
11342
  import PathsController, { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
10728
11343
  /**
@@ -10754,7 +11369,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Pat
10754
11369
  * @param nodes A {@link MappedinNode} array, probably from a {@link MappedinDirections} instance.
10755
11370
  * @param options
10756
11371
  */
10757
- add(nodes: MappedinNode[], options?: TPathOptions): Path;
11372
+ add(nodes: (MappedinNode | MappedinCoordinate)[], options?: TPathOptions): Path;
10758
11373
  /**
10759
11374
  * Remove a {@link Path} from all maps it exists on.
10760
11375
  *
@@ -10930,11 +11545,22 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Out
10930
11545
  * @returns
10931
11546
  */
10932
11547
  setAttributionPosition(position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'): void;
11548
+ /**
11549
+ * Show the outdoor view. Outdoor view must first be enabled in {@link TMapViewOptions} during {@link showVenue}.
11550
+ * See also {@link hide}.
11551
+ */
11552
+ show(): void;
11553
+ /**
11554
+ * Hide the outdoor view. Outdoor view must first be enabled in {@link TMapViewOptions} during {@link showVenue}.
11555
+ * See also {@link show}.
11556
+ */
11557
+ hide(): void;
10933
11558
  }
10934
11559
  export default OutdoorView;
10935
11560
  }
10936
11561
 
10937
11562
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus' {
11563
+ import { MappedinMap, MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue';
10938
11564
  import { DynamicFocusSceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10939
11565
  /**
10940
11566
  * @experimental
@@ -10994,6 +11620,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Dyn
10994
11620
  * ```
10995
11621
  */
10996
11622
  update(): void;
11623
+ /**
11624
+ * Set the default map for a map group. This map will be set when the user pans over the map group.
11625
+ */
11626
+ setDefaultMapForMapGroup(mapGroup: MappedinMapGroup, map: MappedinMap): void;
11627
+ /**
11628
+ * Reset the default map for a map group. This map will be set when the user pans over the map group.
11629
+ */
11630
+ resetDefaultMapForMapGroup(mapGroup: MappedinMapGroup): void;
10997
11631
  }
10998
11632
  export { DynamicFocus };
10999
11633
  }
@@ -11141,109 +11775,35 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-
11141
11775
  export { QuadTree, Rectangle };
11142
11776
  }
11143
11777
 
11144
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.EffectComposer' {
11145
- import { N8AOPostPass } from 'n8ao';
11146
- import { EffectComposer as PPEffectComposer, EffectPass, Pass, ShaderPass, RenderPass, ClearPass, Effect } from 'postprocessing';
11147
- import type { PerspectiveCamera, Scene, Texture, Mesh } from 'three';
11148
- import { Color } from 'three';
11149
- import type { TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
11150
- import { Uniform } from 'three';
11151
- export type TCompositeUniforms = {
11152
- animatedColorOpacity: Uniform;
11153
- inputBuffer: Uniform;
11154
- staticSceneColorTexture: Uniform;
11155
- staticSceneDepthTexture: Uniform;
11156
- animatedSceneColorTexture: Uniform;
11157
- animatedSceneDepthTexture: Uniform;
11158
- alwaysOnTopSceneColorTexture: Uniform;
11159
- alwaysOnBottomSceneColorTexture: Uniform;
11160
- };
11161
- type TAmbientOcclusionOptions = Pick<TMapViewOptions, 'aoQuality' | 'aoResolution' | 'aoEnabled'>;
11162
- export type TPostProcessingOptions = TAmbientOcclusionOptions & {
11163
- antialias?: boolean;
11164
- compositeUniforms?: TCompositeUniforms;
11165
- };
11166
- export type TPass = (RenderPass | ShaderPass | EffectPass | AmbientOcclusionPass) & {
11167
- name: string;
11778
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Exporter' {
11779
+ import { ExportController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
11780
+ /**
11781
+ * @hidden
11782
+ */
11783
+ export type TGLTFExportOptions = {
11784
+ onlyVisible?: boolean;
11785
+ binary?: boolean;
11786
+ scale?: number;
11168
11787
  };
11169
- export enum EAOQualities {
11170
- performance = "Performance",
11171
- low = "Low",
11172
- medium = "Medium",
11173
- high = "High",
11174
- ultra = "Ultra"
11175
- }
11176
- export enum EPass {
11177
- RenderPass = "RenderPass",
11178
- CompositeRenderPass = "CompositeRenderPass",
11179
- AmbientOcclusionPass = "AmbientOcclusionPass",
11180
- EffectsPass = "EffectsPass",
11181
- FinalPass = "FinalPass"
11182
- }
11183
- export enum EEffect {
11184
- FXAA = "FXAAEffect",
11185
- Outline = "OutlineEffect"
11186
- }
11187
- export type TN8AOConfiguration = {
11188
- aoSamples?: number;
11189
- aoRadius?: number;
11190
- denoiseSamples?: number;
11191
- denoiseRadius?: number;
11192
- intensity?: number;
11193
- denoiseIterations?: number;
11194
- renderMode?: number;
11195
- color?: Color;
11196
- gammaCorrection?: boolean;
11197
- logarithmicDepthBuffer?: boolean;
11198
- screenSpaceRadius?: boolean;
11199
- halfRes?: boolean;
11200
- depthAwareUpsampling?: boolean;
11201
- autoRenderBeauty?: boolean;
11202
- };
11203
- export class CustomRenderPass extends Pass {
11204
- effectComposer: EffectComposer;
11205
- clearPass: ClearPass;
11206
- constructor(effectComposer: any);
11207
- render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
11208
- initialize(_: any, __: any, frameBufferType: any): void;
11209
- }
11210
- export class AmbientOcclusionPass extends N8AOPostPass {
11211
- effectComposer: EffectComposer;
11212
- cachePass: ShaderPass;
11213
- constructor(effectComposer: EffectComposer, configuration: TN8AOConfiguration);
11214
- setAOConfiguration(configuration: TN8AOConfiguration): void;
11215
- setQualityMode(aoQuality: any): void;
11216
- get distanceFalloff(): number;
11217
- initialize(renderer: any, alpha: any, frameBufferType: any): void;
11218
- render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
11219
- }
11220
- export class CustomEffectPass extends EffectPass {
11221
- constructor(camera?: PerspectiveCamera, ...effects: Effect[]);
11222
- getEffects(): Effect[];
11223
- setEffects(effects: Effect[]): void;
11224
- }
11225
- export class EffectComposer {
11226
- options: TPostProcessingOptions;
11227
- isWebGL2: boolean;
11228
- effectComposer: PPEffectComposer;
11229
- scene: Scene;
11230
- camera: PerspectiveCamera;
11231
- depthTexture?: Texture;
11232
- renderer: any;
11233
- ambientOcclusionPass: AmbientOcclusionPass | null;
11234
- constructor(renderer: any, options: TPostProcessingOptions);
11235
- get initialized(): boolean;
11236
- init(scene: Scene, camera: PerspectiveCamera): void;
11237
- render(): void;
11238
- setSize(width: number, height: number): void;
11239
- getPassByName(passName: EPass): TPass | null;
11240
- getEffectByName(name: EEffect): Effect | null;
11241
- setAmbientOcclusionConfiguration(configuration: TN8AOConfiguration): void;
11242
- setPolygonOutlineColor(color: string): void;
11243
- addSelectionForOutline(polygonMesh: Mesh): void;
11244
- removeSelectionForOutline(polygonMesh: Mesh): void;
11788
+ /**
11789
+ * API to export the scene.
11790
+ *
11791
+ * @hidden
11792
+ */
11793
+ export class Exporter {
11794
+ #private;
11795
+ /**
11796
+ * @hidden
11797
+ * @internal
11798
+ */
11799
+ constructor(controller: ExportController);
11800
+ /**
11801
+ * Exports the current scene as a GLTF file.
11802
+ *
11803
+ * @hidden
11804
+ */
11805
+ getCurrentSceneGLTF(userOptions: TGLTFExportOptions): Promise<Blob>;
11245
11806
  }
11246
- export {};
11247
11807
  }
11248
11808
 
11249
11809
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.Tile' {