@mappedin/react-native-sdk 5.17.0 → 5.19.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" | "onFirstMapLoaded" | "venueData" | "onPolygonClicked" | "onBlueDotStateChanged" | "onBlueDotPositionUpdated" | "onCameraChanged" | "onDataLoaded" | "onNothingClicked" | "onClick" | "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' {
@@ -301,7 +304,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
301
304
  /**
302
305
  * Gets the nearest node by screen coordinate
303
306
  */
304
- getNearestNodeByScreenCoordinates(x: number, y: number, mapIdOrMap?: MappedinMap['id'] | MappedinMap): Promise<MappedinNode | null | undefined>;
307
+ getNearestNodeByScreenCoordinates(x: number, y: number, mapIdOrMap?: MappedinMap['id'] | MappedinMap): Promise<MappedinNode>;
305
308
  /**
306
309
  * Label all polygons with locations either loaded via the API or passed in
307
310
  * @deprecated Please use FloatingLabels.labelAllLocations or FlatLabels.labelAllLocations instead.
@@ -369,7 +372,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
369
372
  /**
370
373
  * Enable BlueDot
371
374
  */
372
- enable: (options?: TEnableBlueDotOptions | undefined) => Promise<undefined>;
375
+ enable: (options?: TEnableBlueDotOptions) => Promise<undefined>;
373
376
  /**
374
377
  * Disable BlueDot
375
378
  */
@@ -392,7 +395,7 @@ declare module '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapVi
392
395
  * Add or remove paths from the map
393
396
  */
394
397
  Paths: {
395
- add: (nodes: MappedinNode[], options?: TPathOptions | undefined) => Promise<unknown>;
398
+ add: (nodes: MappedinNode[], options?: TPathOptions) => Promise<unknown>;
396
399
  remove: (path: {
397
400
  id: string;
398
401
  }) => Promise<void>;
@@ -625,8 +628,14 @@ 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';
632
+ import { TOutdoorViewControllerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/OutdoorViewController';
629
633
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance };
634
+ export type Without<T, U> = {
635
+ [P in Exclude<keyof T, keyof U>]?: never;
636
+ };
637
+ /** @internal */
638
+ export type XOR<T, U> = T | U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : T | U;
630
639
  /**
631
640
  An extension of the GeolocationPosition type.
632
641
  https://developer.mozilla.org/en-US/docs/Web/API/GeolocationPosition
@@ -805,11 +814,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
805
814
  marker: {
806
815
  foregroundColor: {
807
816
  active: string;
808
- inactive: undefined;
817
+ inactive: any;
809
818
  };
810
819
  backgroundColor: {
811
820
  active: string;
812
- inactive: undefined;
821
+ inactive: any;
813
822
  };
814
823
  size: number;
815
824
  };
@@ -827,11 +836,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
827
836
  marker: {
828
837
  foregroundColor: {
829
838
  active: string;
830
- inactive: undefined;
839
+ inactive: any;
831
840
  };
832
841
  backgroundColor: {
833
842
  active: string;
834
- inactive: undefined;
843
+ inactive: any;
835
844
  };
836
845
  size: number;
837
846
  };
@@ -1001,6 +1010,40 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1001
1010
  */
1002
1011
  outdoorGeometryLayers?: string[];
1003
1012
  };
1013
+ /**
1014
+ * Settings for experimental vector tile -based outdoor context
1015
+ * Requires `multiBufferRendering` to be enabled.
1016
+ * @experimental
1017
+ */
1018
+ outdoorView?: TOutdoorViewControllerOptions & {
1019
+ enabled?: boolean;
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
+ };
1004
1047
  /**
1005
1048
  * First map to be rendered
1006
1049
  */
@@ -1296,7 +1339,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1296
1339
  }[];
1297
1340
  /**
1298
1341
  * A list of paths that a user's click pass through. These are in order of first
1299
- * to last intersected. Willbe empty if no paths were clicked.
1342
+ * to last intersected. Will be empty if no paths were clicked.
1300
1343
  */
1301
1344
  paths?: Path[];
1302
1345
  };
@@ -1308,7 +1351,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1308
1351
  [E_SDK_EVENT.STATE_CHANGE]: STATE;
1309
1352
  [E_SDK_EVENT.POLYGON_CLICKED]: MappedinPolygon;
1310
1353
  [E_SDK_EVENT.NOTHING_CLICKED]: undefined;
1354
+ [E_SDK_EVENT.OUTDOOR_VIEW_LOADED]: undefined;
1311
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
+ };
1312
1360
  };
1313
1361
  /**
1314
1362
  * Arguments that get passed to listeners of an {@link E_BLUEDOT_EVENT}.
@@ -1435,6 +1483,30 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
1435
1483
  */
1436
1484
  mapRenderStrategy?: MAP_RENDER_MODE;
1437
1485
  };
1486
+ /**
1487
+ * @experimental
1488
+ * Enable outdoor context. Requires multi-buffer rendering to be enabled
1489
+ */
1490
+ outdoorContext?: {
1491
+ enabled?: boolean;
1492
+ url?: string;
1493
+ authURL?: string;
1494
+ };
1495
+ /**
1496
+ * @experimental
1497
+ * Enable multi-buffer rendering
1498
+ *
1499
+ * Multi-buffer rendering should improve performance but may cause issues on older GPUs/browsers
1500
+ * @default false
1501
+ */
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;
1438
1510
  };
1439
1511
  export { MAP_RENDER_MODE };
1440
1512
  /**
@@ -1646,7 +1718,20 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
1646
1718
  /**
1647
1719
  * Emitted when the map is changed
1648
1720
  */
1649
- MAP_CHANGED = "MAP_CHANGED"
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",
1728
+ /**
1729
+ * Emitted when the outdoor view is ready. All currently requested tiles have loaded, and all fade and transition
1730
+ * animations have completed. {@link showVenue} is resolved when the indoor map is ready even if the outdoor tiles are not yet loaded.
1731
+ * Use this event to create a loading screen that ensures outdoor view is fully loaded and rendered.
1732
+ * @experimental
1733
+ */
1734
+ OUTDOOR_VIEW_LOADED = "OUTDOOR_VIEW_LOADED"
1650
1735
  }
1651
1736
  /**
1652
1737
  * @enum
@@ -1732,6 +1817,23 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums'
1732
1817
  */
1733
1818
  ZOOMED_IN = "ZOOMED_IN"
1734
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
+ }
1735
1837
  }
1736
1838
 
1737
1839
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/FlatLabels' {
@@ -1844,7 +1946,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Fla
1844
1946
  }
1845
1947
 
1846
1948
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/FloatingLabels' {
1847
- import { MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue';
1949
+ import { MappedinCoordinate, MappedinNode, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/get-venue';
1848
1950
  import { TAddFloatingLabelOptions, TFloatingLabelAllLocationsOptions, TFloatingLabelAppearance } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
1849
1951
  import FloatingLabelsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FloatingLabelsController';
1850
1952
  /**
@@ -1879,11 +1981,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Flo
1879
1981
  * mapView.FloatingLabels.add(location.nodes[0], "Apple Store");
1880
1982
  * ```
1881
1983
  *
1882
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} to label.
1984
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} to label.
1883
1985
  * @param text The text to display on the label.
1884
1986
  * @param options
1885
1987
  */
1886
- add(polygonOrNode: MappedinPolygon | MappedinNode, text: string, options?: TAddFloatingLabelOptions): T;
1988
+ add(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, text: string, options?: TAddFloatingLabelOptions): T;
1887
1989
  /**
1888
1990
  * Update the appearance attributes of an already-existing label. If the
1889
1991
  * provided polygon or node does not have a label already, this is a no-op.
@@ -1896,10 +1998,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Flo
1896
1998
  * });
1897
1999
  * ```
1898
2000
  *
1899
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to update.
2001
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to update.
1900
2002
  * @param appearance The new {@link TFlatLabelAppearance} settings to apply to the polygon's label.
1901
2003
  */
1902
- setAppearance(polygonOrNode: MappedinPolygon | MappedinNode, appearance: TFloatingLabelAppearance): T;
2004
+ setAppearance(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, appearance: TFloatingLabelAppearance): T;
1903
2005
  /**
1904
2006
  * Remove a floating label from a single polygon or node.
1905
2007
  *
@@ -1912,9 +2014,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Flo
1912
2014
  * mapView.FloatingLabels.remove(polygon.entrances[0]);
1913
2015
  * ```
1914
2016
  *
1915
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to remove.
2017
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to remove.
1916
2018
  */
1917
- remove(polygonOrNode: MappedinPolygon | MappedinNode): T;
2019
+ remove(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): T;
1918
2020
  /**
1919
2021
  * Remove all floating labels from the venue.
1920
2022
  *
@@ -1940,9 +2042,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Flo
1940
2042
  * mapView.FloatingLabels.setPriority(polygon1, 1);
1941
2043
  * ```
1942
2044
  *
1943
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to update.
2045
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to update.
1944
2046
  */
1945
- setPriority(polygonOrNode: MappedinPolygon | MappedinNode, priority: number): T;
2047
+ setPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, priority: number): T;
1946
2048
  /**
1947
2049
  * Resets the priority of an existing floating label (or labels, in the case
1948
2050
  * of a polygon)
@@ -1957,9 +2059,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Flo
1957
2059
  * mapView.FloatingLabels.resetPriority();
1958
2060
  * ```
1959
2061
  *
1960
- * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} with a label to update.
2062
+ * @param polygonOrNode The {@link MappedinPolygon} or {@link MappedinNode} or {@link MappedinCoordinate} with a label to update.
1961
2063
  */
1962
- resetPriority(polygonOrNode: MappedinPolygon | MappedinNode): T;
2064
+ resetPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): T;
1963
2065
  }
1964
2066
  export class FloatingLabels implements IFloatingLabels {
1965
2067
  #private;
@@ -1968,12 +2070,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Flo
1968
2070
  */
1969
2071
  constructor(controller: FloatingLabelsController);
1970
2072
  labelAllLocations(options?: TFloatingLabelAllLocationsOptions | undefined): void;
1971
- add(polygonOrNode: MappedinPolygon | MappedinNode, text: string, options?: TAddFloatingLabelOptions | undefined): void;
1972
- setAppearance(polygonOrNode: MappedinPolygon | MappedinNode, appearance: TFloatingLabelAppearance): void;
1973
- remove(polygonOrNode: MappedinPolygon | MappedinNode): void;
2073
+ add(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, text: string, options?: TAddFloatingLabelOptions | undefined): void;
2074
+ setAppearance(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, appearance: TFloatingLabelAppearance): void;
2075
+ remove(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): void;
1974
2076
  removeAll(): void;
1975
- setPriority(polygonOrNode: MappedinPolygon | MappedinNode, priority: number): void;
1976
- resetPriority(polygonOrNode: MappedinPolygon | MappedinNode): void;
2077
+ setPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate, priority: number): void;
2078
+ resetPriority(polygonOrNode: MappedinPolygon | MappedinNode | MappedinCoordinate): void;
1977
2079
  }
1978
2080
  }
1979
2081
 
@@ -1982,7 +2084,7 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator' {
1982
2084
  import Navigator from '@mappedin/react-native-sdk/core/packages/navigator/Navigator';
1983
2085
  export { ACTION_TYPE, BEARING_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator/Directive';
1984
2086
  export { Navigator, NavigationGraph };
1985
- export type { IDirectionsResult } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator';
2087
+ export type { IDirectionsResult, TSimplifyDirectionsOptions } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator';
1986
2088
  export { E_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator';
1987
2089
  export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/react-native-sdk/core/common/Mappedin.Logger';
1988
2090
  }
@@ -2020,6 +2122,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2020
2122
  * or {@link MappedinCoordinate}.
2021
2123
  */
2022
2124
  minZoom?: number;
2125
+ /**
2126
+ * The maximum zoom level the camera is allowed to change to when focusing on targets.
2127
+ */
2128
+ maxZoom?: number;
2023
2129
  /**
2024
2130
  * Specify the rotation the camera makes during the focusing animation.
2025
2131
  */
@@ -2033,6 +2139,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2033
2139
  * See also {@link Camera.setSafeAreaInsets}.
2034
2140
  */
2035
2141
  safeAreaInsets?: TSafeAreaInsets;
2142
+ /**
2143
+ * Whether {@link Camera.minZoom} and {@link Camera.maxZoom} should be recalculated during the focusing animation.
2144
+ */
2145
+ updateZoomLimits?: boolean;
2036
2146
  };
2037
2147
  /**
2038
2148
  * A configuration of the camera in space.
@@ -2056,6 +2166,24 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2056
2166
  position?: MappedinCoordinate | MappedinNode;
2057
2167
  };
2058
2168
  export type TCameraAnimationOptions = TAnimationOptions;
2169
+ /**
2170
+ * The configuration for camera interactions on or off.
2171
+ */
2172
+ export type TCameraInteractionsSetOptions = {
2173
+ /**
2174
+ * Enable or disable pan controls.
2175
+ */
2176
+ pan?: boolean;
2177
+ /**
2178
+ * Enable or disable zoom controls.
2179
+ */
2180
+ zoom?: boolean;
2181
+ /**
2182
+ * Enable or disable rotation and tilt controls.
2183
+ * See {@link maxTilt} for controlling the range of tilt.
2184
+ */
2185
+ rotationAndTilt?: boolean;
2186
+ };
2059
2187
  /**
2060
2188
  * The Camera object specifies a view of the map and allows manipulation of that view.
2061
2189
  * @internal
@@ -2080,6 +2208,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2080
2208
  set maxTilt(radians: number);
2081
2209
  get position(): MappedinCoordinate;
2082
2210
  interactions: {
2211
+ set: (options: TCameraInteractionsSetOptions) => void;
2083
2212
  enable: () => void;
2084
2213
  disable: () => void;
2085
2214
  };
@@ -2089,6 +2218,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
2089
2218
  bottom: number;
2090
2219
  right: number;
2091
2220
  }): void;
2221
+ convertZoomLevelToAltitude(zoomLevel: number): any;
2222
+ convertAltitudeToZoomLevel(altitude: number): any;
2092
2223
  getSafeAreaInsets(): import("../../MapView.types").TPadding;
2093
2224
  /**
2094
2225
  * Focus the Camera view on a collection of targets and animate to that state.
@@ -2713,10 +2844,13 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
2713
2844
  }
2714
2845
 
2715
2846
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface' {
2716
- import { Vector2, Vector3, Mesh } from 'three';
2717
- import type { TPadding, TGetPolygonsAtCoordinateOptions, TMapViewOptions, TileManager, BillboardManager, StackedMapsController, SmartCollisionEngine } 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';
2718
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';
2719
2850
  import Tween, { Easing } from '@tweenjs/tween.js';
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';
2720
2854
  export type TFocusOptionsLegacy = {
2721
2855
  /**
2722
2856
  * An array of Nodes to focus in on
@@ -2757,6 +2891,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2757
2891
  * @defaultValue: 0
2758
2892
  */
2759
2893
  minZoom?: number;
2894
+ maxZoom?: number;
2895
+ /**
2896
+ * Whether {@link Camera.minZoom} and {@link Camera.maxZoom} should be recalculated during the focusing animation.
2897
+ */
2898
+ updateZoomLimits?: boolean;
2760
2899
  padding?: TPadding;
2761
2900
  points?: any[];
2762
2901
  boundingBox?: any;
@@ -2779,6 +2918,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2779
2918
  flatLabels: FlatLabelsController;
2780
2919
  paths: PathsController;
2781
2920
  polygonColors: PolygonColorsController;
2921
+ polygonHoverColors: PolygonHoverColorsController;
2782
2922
  polygonInteraction: PolygonInteractionController;
2783
2923
  polygonStates: PolygonStatesController;
2784
2924
  polygonImages: PolygonImagesController;
@@ -2790,6 +2930,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2790
2930
  tileManager: TileManager;
2791
2931
  billboardManager: BillboardManager;
2792
2932
  stackedMaps: StackedMapsController;
2933
+ outdoorViewController?: OutdoorViewController;
2934
+ watermark: WatermarkController;
2935
+ layerController: LayerController;
2793
2936
  state: STATE;
2794
2937
  options: TMapViewOptions & {
2795
2938
  onDataLoaded?: (data: Mappedin) => void;
@@ -2812,6 +2955,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2812
2955
  resolution: Vector2;
2813
2956
  determineNewLabelSize: any;
2814
2957
  visibleMapsInCurrentScene: MappedinMap[];
2958
+ visibleLayersInCurrentScene: {
2959
+ [mapId: string]: MappedinPolygon['layer'][];
2960
+ };
2961
+ visibleMapObjectsInCurrentScene: MapObject[];
2962
+ mapSetInProgress: Promise<undefined>;
2963
+ mapSetResolved: (...args: any[]) => any;
2815
2964
  on<EVENT_NAME extends keyof INTERNAL_EVENT_PAYLOAD>(eventName: EVENT_NAME, fn: (payload: INTERNAL_EVENT_PAYLOAD[EVENT_NAME] extends {
2816
2965
  data: null;
2817
2966
  } ? INTERNAL_EVENT_PAYLOAD[EVENT_NAME]['data'] : INTERNAL_EVENT_PAYLOAD[EVENT_NAME]) => void): void;
@@ -2908,7 +3057,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2908
3057
  getPolygonsAtCoordinate(coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
2909
3058
  currentInteractionEvent: INTERNAL_EVENT | undefined;
2910
3059
  interactivePolygons: Record<string, boolean>;
3060
+ /**
3061
+ * An object containing polygon ids and their hover colors.
3062
+ */
3063
+ polygonHoverColorsById: Record<string, Color>;
2911
3064
  highlightedPolygons: Record<string, string>;
3065
+ /**
3066
+ * An object containing all outlined polygons.
3067
+ */
3068
+ outlinedPolygons: Map<string, MappedinPolygon>;
2912
3069
  cameraPlane: any;
2913
3070
  getPositionLatLon(lat: number, lon: number, map?: MappedinMap | string | null): Vector3;
2914
3071
  currentScale: number;
@@ -2946,7 +3103,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2946
3103
  * Ignored in 2D.
2947
3104
  */
2948
3105
  tryRendering(renderMode?: RENDER): void;
3106
+ setMapReason?: E_MAP_CHANGED_REASON;
2949
3107
  setMap(mapOrMapId: MappedinMap | string): Promise<null>;
3108
+ setMapWithReason(mapOrMapId: MappedinMap | string, context: E_MAP_CHANGED_REASON): Promise<null>;
2950
3109
  getPositionNode(node: MappedinNode): Vector3;
2951
3110
  cameraObject: any;
2952
3111
  setBackgroundColor(color: string, alpha?: number): void;
@@ -2971,39 +3130,39 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
2971
3130
  */
2972
3131
  privateEventBus: PubSub<{
2973
3132
  REJECT: {
2974
- msgID?: string | undefined;
3133
+ msgID?: string;
2975
3134
  data: any;
2976
3135
  };
2977
3136
  RESOLVE: {
2978
- msgID?: string | undefined;
3137
+ msgID?: string;
2979
3138
  data: any;
2980
3139
  };
2981
3140
  READY: {
2982
- msgID?: string | undefined;
3141
+ msgID?: string;
2983
3142
  data: null;
2984
3143
  };
2985
3144
  LOG: {
2986
- msgID?: string | undefined;
3145
+ msgID?: string;
2987
3146
  data: string;
2988
3147
  };
2989
3148
  GET_IMAGE: {
2990
- msgID?: string | undefined;
3149
+ msgID?: string;
2991
3150
  data: {
2992
3151
  fileName: string;
2993
3152
  };
2994
3153
  };
2995
3154
  GET_MAP_POLYGONS: {
2996
- msgID?: string | undefined;
3155
+ msgID?: string;
2997
3156
  data: {
2998
3157
  mapId: string;
2999
3158
  };
3000
3159
  };
3001
3160
  MINIMAP_READY: {
3002
- msgID?: string | undefined;
3161
+ msgID?: string;
3003
3162
  data: null;
3004
3163
  };
3005
3164
  SHOW_MINIMAP: {
3006
- msgID?: string | undefined;
3165
+ msgID?: string;
3007
3166
  data: {
3008
3167
  format: "jsonstring";
3009
3168
  venueData: string;
@@ -3011,77 +3170,77 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3011
3170
  };
3012
3171
  };
3013
3172
  LOAD_MINIMAP: {
3014
- msgID?: string | undefined;
3173
+ msgID?: string;
3015
3174
  data: {
3016
3175
  options: import("../react-native-sdk/src").TGetVenueOptions;
3017
3176
  };
3018
3177
  };
3019
3178
  CACHE_IMAGE: {
3020
- msgID?: string | undefined;
3179
+ msgID?: string;
3021
3180
  data: {
3022
- url?: string | undefined;
3181
+ url?: string;
3023
3182
  options: import("../react-native-sdk/src").TGetVenueOptions;
3024
3183
  locationId: string;
3025
- polygonHighlightColor?: string | undefined;
3026
- focusOptions?: (import("../react-native-sdk/src").TFocusOnCameraOptions & import("../../core/packages/renderer").TAnimationOptions) | undefined;
3184
+ polygonHighlightColor?: string;
3185
+ focusOptions?: import("../react-native-sdk/src").TFocusOnCameraOptions & import("../../core/packages/renderer").TAnimationOptions;
3027
3186
  };
3028
3187
  };
3029
3188
  SET_DEBUG_FLAGS: {
3030
- msgID?: string | undefined;
3189
+ msgID?: string;
3031
3190
  data: any;
3032
3191
  };
3033
3192
  CLEAR_BUNDLE_CACHE: {
3034
- msgID?: string | undefined;
3193
+ msgID?: string;
3035
3194
  data: null;
3036
3195
  };
3037
3196
  NOTHING_CLICKED: {
3038
- msgID?: string | undefined;
3197
+ msgID?: string;
3039
3198
  data: null;
3040
3199
  };
3041
3200
  STATE_CHANGED: {
3042
- msgID?: string | undefined;
3201
+ msgID?: string;
3043
3202
  data: {
3044
3203
  state: import("../react-native-sdk/src").STATE;
3045
3204
  };
3046
3205
  };
3047
3206
  DATA_LOADED: {
3048
- msgID?: string | undefined;
3207
+ msgID?: string;
3049
3208
  data: {
3050
3209
  venueData: any;
3051
3210
  };
3052
3211
  };
3053
3212
  FIRST_MAP_LOADED: {
3054
- msgID?: string | undefined;
3213
+ msgID?: string;
3055
3214
  data: {
3056
3215
  venueData?: any;
3057
3216
  };
3058
3217
  };
3059
3218
  MAP_CHANGED: {
3060
- msgID?: string | undefined;
3219
+ msgID?: string;
3061
3220
  data: {
3062
3221
  mapId: string;
3063
3222
  };
3064
3223
  };
3065
3224
  POLYGON_CLICKED: {
3066
- msgID?: string | undefined;
3225
+ msgID?: string;
3067
3226
  data: {
3068
3227
  polygonId: string;
3069
3228
  };
3070
3229
  };
3071
3230
  ROTATION_CHANGED: {
3072
- msgID?: string | undefined;
3231
+ msgID?: string;
3073
3232
  data: {
3074
3233
  rotation: number;
3075
3234
  };
3076
3235
  };
3077
3236
  TILT_CHANGED: {
3078
- msgID?: string | undefined;
3237
+ msgID?: string;
3079
3238
  data: {
3080
3239
  tilt: number;
3081
3240
  };
3082
3241
  };
3083
3242
  POSITION_CHANGED: {
3084
- msgID?: string | undefined;
3243
+ msgID?: string;
3085
3244
  data: {
3086
3245
  position: {
3087
3246
  /**
@@ -3094,7 +3253,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3094
3253
  };
3095
3254
  };
3096
3255
  CAMERA_CHANGED: {
3097
- msgID?: string | undefined;
3256
+ msgID?: string;
3098
3257
  data: {
3099
3258
  rotation: number;
3100
3259
  tilt: number;
@@ -3103,41 +3262,41 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3103
3262
  };
3104
3263
  };
3105
3264
  ZOOM_CHANGED: {
3106
- msgID?: string | undefined;
3265
+ msgID?: string;
3107
3266
  data: {
3108
3267
  zoom: number;
3109
3268
  };
3110
3269
  };
3111
3270
  UPDATE_GEOLOCATION: {
3112
- msgID?: string | undefined;
3271
+ msgID?: string;
3113
3272
  data: {
3114
3273
  msgID: undefined;
3115
3274
  data: unknown;
3116
3275
  };
3117
3276
  };
3118
3277
  BLUEDOT_STATE_CHANGE: {
3119
- msgID?: string | undefined;
3278
+ msgID?: string;
3120
3279
  data: {
3121
3280
  stateChange: import("../react-native-sdk/src").TBlueDotStateChange;
3122
3281
  };
3123
3282
  };
3124
3283
  BLUEDOT_POSITION_UPDATE: {
3125
- msgID?: string | undefined;
3284
+ msgID?: string;
3126
3285
  data: {
3127
3286
  update: Omit<import("../react-native-sdk/src").TBlueDotPositionUpdate, "map" | "nearestNode"> & {
3128
- nearestNode?: string | undefined;
3129
- map?: string | undefined;
3287
+ nearestNode?: string;
3288
+ map?: string;
3130
3289
  };
3131
3290
  };
3132
3291
  };
3133
3292
  SET_JOURNEY_STEP: {
3134
- msgID?: string | undefined;
3293
+ msgID?: string;
3135
3294
  data: {
3136
3295
  step: number;
3137
3296
  };
3138
3297
  };
3139
3298
  SET_JOURNEY_STEP_BY_PATH: {
3140
- msgID?: string | undefined;
3299
+ msgID?: string;
3141
3300
  data: {
3142
3301
  path: {
3143
3302
  id: string;
@@ -3145,61 +3304,61 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3145
3304
  };
3146
3305
  };
3147
3306
  LOAD_VENUE: {
3148
- msgID?: string | undefined;
3307
+ msgID?: string;
3149
3308
  data: {
3150
3309
  options: import("../react-native-sdk/src").TGetVenueOptions & {
3151
- useBundle?: boolean | undefined;
3310
+ useBundle?: boolean;
3152
3311
  };
3153
3312
  showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
3154
- prepareSearch?: boolean | undefined;
3155
- searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions> | undefined;
3313
+ prepareSearch?: boolean;
3314
+ searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions>;
3156
3315
  };
3157
3316
  };
3158
3317
  };
3159
3318
  SHOW_VENUE: {
3160
- msgID?: string | undefined;
3319
+ msgID?: string;
3161
3320
  data: {
3162
3321
  venueData: string;
3163
3322
  format: "jsonstring";
3164
3323
  showVenueOptions: import("../react-native-sdk/src").TShowVenueOptions & {
3165
- prepareSearch?: boolean | undefined;
3166
- searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions> | undefined;
3324
+ prepareSearch?: boolean;
3325
+ searchOptions?: Partial<import("../react-native-sdk/src").TMappedinOfflineSearchAllOptions>;
3167
3326
  };
3168
3327
  };
3169
3328
  };
3170
3329
  SET_MAP: {
3171
- msgID?: string | undefined;
3330
+ msgID?: string;
3172
3331
  data: {
3173
3332
  mapId: string;
3174
3333
  };
3175
3334
  };
3176
3335
  CAMERA_SET: {
3177
- msgID?: string | undefined;
3336
+ msgID?: string;
3178
3337
  data: {
3179
3338
  positionOptions: Omit<import("../react-native-sdk/src").TCameraTransform, "position"> & {
3180
- position?: import("./types").TSerializedCoordinate | import("./types").TSerializedNode | undefined;
3339
+ position?: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
3181
3340
  };
3182
3341
  };
3183
3342
  };
3184
3343
  CAMERA_ANIMATE: {
3185
- msgID?: string | undefined;
3344
+ msgID?: string;
3186
3345
  data: {
3187
3346
  config: Omit<import("../react-native-sdk/src").TCameraTransform, "position"> & {
3188
- position?: import("./types").TSerializedCoordinate | import("./types").TSerializedNode | undefined;
3347
+ position?: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
3189
3348
  };
3190
- options?: import("../../core/packages/renderer").TAnimationOptions | undefined;
3349
+ options?: import("../../core/packages/renderer").TAnimationOptions;
3191
3350
  };
3192
3351
  };
3193
3352
  CAMERA_TRANSLATE: {
3194
- msgID?: string | undefined;
3353
+ msgID?: string;
3195
3354
  data: {
3196
3355
  direction: import("../react-native-sdk/src").E_CAMERA_DIRECTION;
3197
3356
  distance: number;
3198
- options?: import("../../core/packages/renderer").TAnimationOptions | undefined;
3357
+ options?: import("../../core/packages/renderer").TAnimationOptions;
3199
3358
  };
3200
3359
  };
3201
3360
  CAMERA_SET_SAFE_AREA_INSETS: {
3202
- msgID?: string | undefined;
3361
+ msgID?: string;
3203
3362
  data: {
3204
3363
  safeAreaInsets: {
3205
3364
  top: number;
@@ -3210,196 +3369,196 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3210
3369
  };
3211
3370
  };
3212
3371
  CLEAR_POLYGON_COLOR: {
3213
- msgID?: string | undefined;
3372
+ msgID?: string;
3214
3373
  data: {
3215
3374
  polygonId: string;
3216
3375
  };
3217
3376
  };
3218
3377
  FOCUS_ON: {
3219
- msgID?: string | undefined;
3378
+ msgID?: string;
3220
3379
  data: {
3221
3380
  targets: import("./types").TFocusOnTargetsSerializable;
3222
- options?: (import("../react-native-sdk/src").TFocusOnCameraOptions & import("../../core/packages/renderer").TAnimationOptions) | undefined;
3381
+ options?: import("../react-native-sdk/src").TFocusOnCameraOptions & import("../../core/packages/renderer").TAnimationOptions;
3223
3382
  };
3224
3383
  };
3225
3384
  SET_POLYGON_COLOR: {
3226
- msgID?: string | undefined;
3385
+ msgID?: string;
3227
3386
  data: {
3228
3387
  polygon: import("./types").TSerializedPolygon;
3229
3388
  color: string;
3230
3389
  };
3231
3390
  };
3232
3391
  SET_BACKGROUND_COLOR: {
3233
- msgID?: string | undefined;
3392
+ msgID?: string;
3234
3393
  data: {
3235
3394
  backgroundColor: string;
3236
3395
  };
3237
3396
  };
3238
3397
  CLEAR_ALL_POLYGON_COLORS: {
3239
- msgID?: string | undefined;
3398
+ msgID?: string;
3240
3399
  data: null;
3241
3400
  };
3242
3401
  ADD_INTERACTIVE_POLYGON: {
3243
- msgID?: string | undefined;
3402
+ msgID?: string;
3244
3403
  data: {
3245
3404
  polygonId: string;
3246
3405
  };
3247
3406
  };
3248
3407
  REMOVE_INTERACTIVE_POLYGONS: {
3249
- msgID?: string | undefined;
3408
+ msgID?: string;
3250
3409
  data: null;
3251
3410
  };
3252
3411
  ENABLE_IMAGE_FLIPPING_FOR_POLYGON: {
3253
- msgID?: string | undefined;
3412
+ msgID?: string;
3254
3413
  data: {
3255
3414
  polygon: import("./types").TSerializedPolygon;
3256
3415
  };
3257
3416
  };
3258
3417
  LABEL_ALL_LOCATIONS: {
3259
- msgID?: string | undefined;
3418
+ msgID?: string;
3260
3419
  data: {
3261
- options?: ((Omit<import("../react-native-sdk/src").TFloatingLabelAllLocationsOptions, "locations"> | Omit<import("../react-native-sdk/src").TFlatLabelAllLocationsOptions, "locations">) & {
3262
- locations?: string[] | undefined;
3263
- flatLabels?: boolean | undefined;
3264
- interactive?: boolean | undefined;
3265
- }) | undefined;
3420
+ options?: (Omit<import("../react-native-sdk/src").TFloatingLabelAllLocationsOptions, "locations"> | Omit<import("../react-native-sdk/src").TFlatLabelAllLocationsOptions, "locations">) & {
3421
+ locations?: string[];
3422
+ flatLabels?: boolean;
3423
+ interactive?: boolean;
3424
+ };
3266
3425
  };
3267
3426
  };
3268
3427
  FLAT_LABEL_ALL_LOCATIONS: {
3269
- msgID?: string | undefined;
3428
+ msgID?: string;
3270
3429
  data: {
3271
- options?: (Omit<import("../react-native-sdk/src").TFlatLabelAllLocationsOptions, "locations"> & {
3272
- locations?: string[] | undefined;
3273
- }) | undefined;
3430
+ options?: Omit<import("../react-native-sdk/src").TFlatLabelAllLocationsOptions, "locations"> & {
3431
+ locations?: string[];
3432
+ };
3274
3433
  };
3275
3434
  };
3276
3435
  FLOATING_LABEL_ALL_LOCATIONS: {
3277
- msgID?: string | undefined;
3436
+ msgID?: string;
3278
3437
  data: {
3279
- options?: (Omit<import("../react-native-sdk/src").TFloatingLabelAllLocationsOptions, "locations"> & {
3280
- locations?: string[] | undefined;
3281
- }) | undefined;
3438
+ options?: Omit<import("../react-native-sdk/src").TFloatingLabelAllLocationsOptions, "locations"> & {
3439
+ locations?: string[];
3440
+ };
3282
3441
  };
3283
3442
  };
3284
3443
  REMOVE_ALL_FLAT_LABELS: {
3285
- msgID?: string | undefined;
3444
+ msgID?: string;
3286
3445
  data: null;
3287
3446
  };
3288
3447
  REMOVE_ALL_FLOATING_LABELS: {
3289
- msgID?: string | undefined;
3448
+ msgID?: string;
3290
3449
  data: null;
3291
3450
  };
3292
3451
  ADD_FLAT_LABEL: {
3293
- msgID?: string | undefined;
3452
+ msgID?: string;
3294
3453
  data: {
3295
3454
  polygon: import("./types").TSerializedPolygon;
3296
3455
  text: string;
3297
- options?: import("../react-native-sdk/src").TAddFlatLabelOptions | undefined;
3456
+ options?: import("../react-native-sdk/src").TAddFlatLabelOptions;
3298
3457
  };
3299
3458
  };
3300
3459
  SET_FLAT_LABEL_HOVER_COLOR_FOR_ALL: {
3301
- msgID?: string | undefined;
3460
+ msgID?: string;
3302
3461
  data: {
3303
3462
  color: string;
3304
3463
  };
3305
3464
  };
3306
3465
  ADD_FLOATING_LABEL: {
3307
- msgID?: string | undefined;
3466
+ msgID?: string;
3308
3467
  data: {
3309
3468
  polygonOrNode: import("./types").TSerializedNode | import("./types").TSerializedPolygon;
3310
3469
  text: string;
3311
- options?: import("../react-native-sdk/src").TAddFloatingLabelOptions | undefined;
3470
+ options?: import("../react-native-sdk/src").TAddFloatingLabelOptions;
3312
3471
  };
3313
3472
  };
3314
3473
  REMOVE_FLAT_LABEL: {
3315
- msgID?: string | undefined;
3474
+ msgID?: string;
3316
3475
  data: {
3317
3476
  polygon: import("./types").TSerializedPolygon;
3318
3477
  };
3319
3478
  };
3320
3479
  REMOVE_FLOATING_LABEL: {
3321
- msgID?: string | undefined;
3480
+ msgID?: string;
3322
3481
  data: {
3323
3482
  polygonOrNode: import("./types").TSerializedNode | import("./types").TSerializedPolygon;
3324
3483
  };
3325
3484
  };
3326
3485
  SET_FLOATING_LABEL_PRIORITY: {
3327
- msgID?: string | undefined;
3486
+ msgID?: string;
3328
3487
  data: {
3329
3488
  polygonOrNode: import("./types").TSerializedNode | import("./types").TSerializedPolygon;
3330
3489
  priority: number;
3331
3490
  };
3332
3491
  };
3333
3492
  RESET_FLOATING_LABEL_PRIORITY: {
3334
- msgID?: string | undefined;
3493
+ msgID?: string;
3335
3494
  data: {
3336
3495
  polygonOrNode: import("./types").TSerializedNode | import("./types").TSerializedPolygon;
3337
3496
  };
3338
3497
  };
3339
3498
  SET_FLAT_LABEL_APPEARANCE: {
3340
- msgID?: string | undefined;
3499
+ msgID?: string;
3341
3500
  data: {
3342
3501
  polygon: import("./types").TSerializedPolygon;
3343
3502
  appearance: import("../react-native-sdk/src").TFlatLabelAppearance;
3344
3503
  };
3345
3504
  };
3346
3505
  SET_FLOATING_LABEL_APPEARANCE: {
3347
- msgID?: string | undefined;
3506
+ msgID?: string;
3348
3507
  data: {
3349
3508
  polygonOrNode: import("./types").TSerializedNode | import("./types").TSerializedPolygon;
3350
3509
  appearance: import("../react-native-sdk/src").TFloatingLabelAppearance;
3351
3510
  };
3352
3511
  };
3353
3512
  ENABLE_BLUE_DOT: {
3354
- msgID?: string | undefined;
3513
+ msgID?: string;
3355
3514
  data: {
3356
- options?: import("../react-native-sdk/src").TEnableBlueDotOptionsBase | undefined;
3515
+ options?: import("../react-native-sdk/src").TEnableBlueDotOptionsBase;
3357
3516
  };
3358
3517
  };
3359
3518
  DISABLE_BLUE_DOT: {
3360
- msgID?: string | undefined;
3519
+ msgID?: string;
3361
3520
  data: null;
3362
3521
  };
3363
3522
  GET_DIRECTIONS: {
3364
- msgID?: string | undefined;
3523
+ msgID?: string;
3365
3524
  data: {
3366
3525
  to: import("./types").TSerializedNode | import("./types").TSerializedLocation | import("./types").TSerializedPolygon;
3367
3526
  from: import("./types").TSerializedNode | import("./types").TSerializedLocation | import("./types").TSerializedPolygon;
3368
- accessible?: boolean | undefined;
3527
+ accessible?: boolean;
3369
3528
  };
3370
3529
  };
3371
3530
  GET_DISTANCE_TO: {
3372
- msgID?: string | undefined;
3531
+ msgID?: string;
3373
3532
  data: {
3374
3533
  to: import("./types").TSerializedNode | import("./types").TSerializedLocation | import("./types").TSerializedPolygon;
3375
3534
  from: import("./types").TSerializedNode | import("./types").TSerializedLocation | import("./types").TSerializedPolygon;
3376
- accessible?: boolean | undefined;
3535
+ accessible?: boolean;
3377
3536
  };
3378
3537
  };
3379
3538
  DESTROY: {
3380
- msgID?: string | undefined;
3539
+ msgID?: string;
3381
3540
  data: null;
3382
3541
  };
3383
3542
  SET_MIN_ZOOM: {
3384
- msgID?: string | undefined;
3543
+ msgID?: string;
3385
3544
  data: {
3386
3545
  zoomLevel: number;
3387
3546
  };
3388
3547
  };
3389
3548
  SET_MAX_ZOOM: {
3390
- msgID?: string | undefined;
3549
+ msgID?: string;
3391
3550
  data: {
3392
3551
  zoomLevel: number;
3393
3552
  };
3394
3553
  };
3395
3554
  SET_MAX_TILT: {
3396
- msgID?: string | undefined;
3555
+ msgID?: string;
3397
3556
  data: {
3398
3557
  tiltAngle: number;
3399
3558
  };
3400
3559
  };
3401
3560
  CREATE_MARKER: {
3402
- msgID?: string | undefined;
3561
+ msgID?: string;
3403
3562
  data: {
3404
3563
  nodeOrCoordinate: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
3405
3564
  contentHtml: string;
@@ -3407,20 +3566,20 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3407
3566
  };
3408
3567
  };
3409
3568
  REMOVE_MARKER: {
3410
- msgID?: string | undefined;
3569
+ msgID?: string;
3411
3570
  data: {
3412
3571
  markerId: string;
3413
3572
  };
3414
3573
  };
3415
3574
  SET_MARKER_POSITION: {
3416
- msgID?: string | undefined;
3575
+ msgID?: string;
3417
3576
  data: {
3418
3577
  markerId: string;
3419
3578
  nodeOrCoordinate: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
3420
3579
  };
3421
3580
  };
3422
3581
  ANIMATE_MARKER: {
3423
- msgID?: string | undefined;
3582
+ msgID?: string;
3424
3583
  data: {
3425
3584
  markerId: string;
3426
3585
  nodeOrCoordinate: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
@@ -3428,27 +3587,27 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3428
3587
  };
3429
3588
  };
3430
3589
  OVERRIDE_LOCATION: {
3431
- msgID?: string | undefined;
3590
+ msgID?: string;
3432
3591
  data: {
3433
3592
  location: import("../react-native-sdk/src").TGeolocationObject;
3434
3593
  };
3435
3594
  };
3436
3595
  DRAW_PATH: {
3437
- msgID?: string | undefined;
3596
+ msgID?: string;
3438
3597
  data: {
3439
3598
  path: string[];
3440
3599
  pathOptions: import("../react-native-sdk/src").TPathOptions;
3441
3600
  };
3442
3601
  };
3443
3602
  ADD_PATH: {
3444
- msgID?: string | undefined;
3603
+ msgID?: string;
3445
3604
  data: {
3446
3605
  nodes: import("./types").TSerializedNode[];
3447
3606
  options: import("../react-native-sdk/src").TPathOptions;
3448
3607
  };
3449
3608
  };
3450
3609
  REMOVE_PATH: {
3451
- msgID?: string | undefined;
3610
+ msgID?: string;
3452
3611
  data: {
3453
3612
  path: {
3454
3613
  id: string;
@@ -3456,65 +3615,65 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3456
3615
  };
3457
3616
  };
3458
3617
  REMOVE_ALL_PATHS: {
3459
- msgID?: string | undefined;
3618
+ msgID?: string;
3460
3619
  data: null;
3461
3620
  };
3462
3621
  SET_STATE: {
3463
- msgID?: string | undefined;
3622
+ msgID?: string;
3464
3623
  data: {
3465
3624
  state: import("../react-native-sdk/src").STATE;
3466
3625
  };
3467
3626
  };
3468
3627
  CLEAR_JOURNEY: {
3469
- msgID?: string | undefined;
3628
+ msgID?: string;
3470
3629
  data: null;
3471
3630
  };
3472
3631
  DRAW_JOURNEY: {
3473
- msgID?: string | undefined;
3632
+ msgID?: string;
3474
3633
  data: {
3475
3634
  directions: import("../react-native-sdk/src").IDirectionsResult;
3476
3635
  options: import("./types").TSerializableJourneyOptions;
3477
3636
  };
3478
3637
  };
3479
3638
  SET_COOKIE: {
3480
- msgID?: string | undefined;
3639
+ msgID?: string;
3481
3640
  data: {
3482
3641
  cookie: any;
3483
3642
  };
3484
3643
  };
3485
3644
  GET_NEAREST_NODE_BY_SCREEN_COORDINATES: {
3486
- msgID?: string | undefined;
3645
+ msgID?: string;
3487
3646
  data: {
3488
3647
  x: number;
3489
3648
  y: number;
3490
- map?: string | undefined;
3649
+ map?: string;
3491
3650
  };
3492
3651
  };
3493
3652
  SEARCH: {
3494
- msgID?: string | undefined;
3653
+ msgID?: string;
3495
3654
  data: {
3496
3655
  query: string;
3497
3656
  };
3498
3657
  };
3499
3658
  SUGGEST: {
3500
- msgID?: string | undefined;
3659
+ msgID?: string;
3501
3660
  data: {
3502
3661
  query: string;
3503
3662
  };
3504
3663
  };
3505
3664
  ADD_SEARCH_QUERY: {
3506
- msgID?: string | undefined;
3665
+ msgID?: string;
3507
3666
  data: {
3508
3667
  query: string;
3509
3668
  object: {
3510
3669
  type: "MappedinLocation" | "MappedinCategory" | "Custom";
3511
3670
  id: string;
3512
3671
  };
3513
- weight?: number | undefined;
3672
+ weight?: number;
3514
3673
  };
3515
3674
  };
3516
3675
  CLICK: {
3517
- msgID?: string | undefined;
3676
+ msgID?: string;
3518
3677
  data: {
3519
3678
  position: {
3520
3679
  latitude: number;
@@ -3533,45 +3692,45 @@ declare module '@mappedin/react-native-sdk/wrappers/common/controller' {
3533
3692
  };
3534
3693
  };
3535
3694
  GET_PRIMARY_LOCATION_FOR_POLYGON: {
3536
- msgID?: string | undefined;
3695
+ msgID?: string;
3537
3696
  data: {
3538
3697
  polygon: import("./types").TSerializedPolygon;
3539
3698
  };
3540
3699
  };
3541
3700
  GET_POLYGONS_AT_COORDINATE: {
3542
- msgID?: string | undefined;
3701
+ msgID?: string;
3543
3702
  data: {
3544
3703
  coordinate: import("./types").TSerializedCoordinate;
3545
- options?: import("../../core/packages/renderer").TGetPolygonsAtCoordinateOptions | undefined;
3704
+ options?: import("../../core/packages/renderer").TGetPolygonsAtCoordinateOptions;
3546
3705
  };
3547
3706
  };
3548
3707
  GET_POLYGONS_AT_SCREEN_COORDINATE: {
3549
- msgID?: string | undefined;
3708
+ msgID?: string;
3550
3709
  data: {
3551
3710
  x: number;
3552
3711
  y: number;
3553
- options?: import("../../core/packages/renderer").TGetPolygonsAtCoordinateOptions | undefined;
3712
+ options?: import("../../core/packages/renderer").TGetPolygonsAtCoordinateOptions;
3554
3713
  };
3555
3714
  };
3556
3715
  CREATE_TOOLTIP: {
3557
- msgID?: string | undefined;
3716
+ msgID?: string;
3558
3717
  data: {
3559
3718
  nodeOrCoordinate: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
3560
3719
  contentHtml: string;
3561
- options?: import("../../core/packages/renderer").TCreateTooltipOptions | undefined;
3720
+ options?: import("../../core/packages/renderer").TCreateTooltipOptions;
3562
3721
  };
3563
3722
  };
3564
3723
  CREATE_CUSTOM_TOOLTIP: {
3565
- msgID?: string | undefined;
3724
+ msgID?: string;
3566
3725
  data: {
3567
3726
  nodeOrCoordinate: import("./types").TSerializedCoordinate | import("./types").TSerializedNode;
3568
3727
  contentHtml: string;
3569
3728
  selector: string;
3570
- options?: import("../../core/packages/renderer").TCreateTooltipCommonOptions | undefined;
3729
+ options?: import("../../core/packages/renderer").TCreateTooltipCommonOptions;
3571
3730
  };
3572
3731
  };
3573
3732
  REMOVE_TOOLTIP: {
3574
- msgID?: string | undefined;
3733
+ msgID?: string;
3575
3734
  data: {
3576
3735
  tooltipId: string;
3577
3736
  };
@@ -3790,7 +3949,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3790
3949
  #private;
3791
3950
  lines: number;
3792
3951
  contextConfigured: boolean;
3793
- fillText: TDrawFn | undefined;
3952
+ fillText: TDrawFn;
3794
3953
  newStyle: {
3795
3954
  pinVisibility: PINVISIBILITY;
3796
3955
  };
@@ -3812,7 +3971,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3812
3971
  invalidate(): void;
3813
3972
  colliderDidMount(): void;
3814
3973
  colliderDidUpdatePosition(pos: any): void;
3815
- setPriority(priority: any): void;
3816
3974
  colliderDidUpdateVisiblity(): void;
3817
3975
  colliderDidGoOutsideGrid(): void;
3818
3976
  colliderDidNotFindAHome(): void;
@@ -3827,7 +3985,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3827
3985
  }
3828
3986
 
3829
3987
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core' {
3830
- import FakeGeolocation from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation';
3831
3988
  import { IStateMachine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine';
3832
3989
  import { E_BLUEDOT_MARKER_STATE, E_BLUEDOT_STATE, E_BLUEDOT_STATE_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
3833
3990
  import { PubSub, IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
@@ -3985,7 +4142,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3985
4142
  export type TLatLonProps = [number, number];
3986
4143
  const BlueDot: {
3987
4144
  ({ data, core, manager }: TBlueDotProps): IBlueDotCore;
3988
- FakeGeolocation: typeof FakeGeolocation;
4145
+ FakeGeolocation: any;
3989
4146
  };
3990
4147
  export default BlueDot;
3991
4148
  }
@@ -4200,6 +4357,52 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
4200
4357
  export default SmartTooltip;
4201
4358
  }
4202
4359
 
4360
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/OutdoorViewController' {
4361
+ import './OutdoorViewController.scss';
4362
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
4363
+ import { XOR } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
4364
+ export type TAttributionPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
4365
+ export type TOutdoorViewControllerOptionsWithHeaders = {
4366
+ url?: string;
4367
+ attributionPosition?: TAttributionPosition;
4368
+ customAttribution?: string | string[];
4369
+ headers: {
4370
+ [key: string]: string | null;
4371
+ };
4372
+ };
4373
+ export type TOutdoorViewControllerOptionsWithAuthURL = {
4374
+ url?: string;
4375
+ authURL?: string;
4376
+ customAttribution?: string | string[];
4377
+ attributionPosition?: TAttributionPosition;
4378
+ };
4379
+ export type TOutdoorViewControllerOptions = XOR<TOutdoorViewControllerOptionsWithHeaders, TOutdoorViewControllerOptionsWithAuthURL>;
4380
+ class OutdoorViewController {
4381
+ _attribution: any;
4382
+ core: ICore;
4383
+ map: any;
4384
+ enabled: boolean;
4385
+ url: string;
4386
+ authURL: string;
4387
+ headers?: TOutdoorViewControllerOptions['headers'];
4388
+ customAttribution?: string | string[];
4389
+ attributionPosition?: TAttributionPosition;
4390
+ loaded: boolean;
4391
+ constructor(core: ICore, options?: TOutdoorViewControllerOptions);
4392
+ module: any;
4393
+ load(): Promise<void>;
4394
+ get attributions(): any;
4395
+ hide(): void;
4396
+ show(): void;
4397
+ resize(): void;
4398
+ getRequestHeaders: () => Promise<TOutdoorViewControllerOptions['headers']>;
4399
+ render(): void;
4400
+ setStyle(style: any): void;
4401
+ setAttributionPosition(position: TAttributionPosition): void;
4402
+ }
4403
+ export default OutdoorViewController;
4404
+ }
4405
+
4203
4406
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/BlueDotController' {
4204
4407
  import type { IBlueDotCore, ICore, TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
4205
4408
  import { E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT, PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
@@ -4389,7 +4592,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
4389
4592
  import { MappedinVortex } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVortex';
4390
4593
  import { IAnalytics } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.CustomerAnalytics';
4391
4594
  import { ParsedMVF } from '@mappedin/mvf';
4595
+ import { ParsedMVFv1 } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types';
4392
4596
  export const defaultOptions: TGetVenueOptionsInternal & TGetVenueOptions;
4597
+ /**
4598
+ * @internal
4599
+ */
4393
4600
  export enum MappedinCollectionType {
4394
4601
  CATEGORY = "categories",
4395
4602
  EVENT = "events",
@@ -4625,6 +4832,11 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
4625
4832
  * @internal
4626
4833
  */
4627
4834
  hydrateFromMVF(mvfData: ParsedMVF): Promise<undefined>;
4835
+ /**
4836
+ * @hidden
4837
+ * @internal
4838
+ */
4839
+ hydrateFromMVFv1(mvfData: ParsedMVFv1): Promise<undefined>;
4628
4840
  /**
4629
4841
  *
4630
4842
  * @experimental Hydrate the Mappedin instance using a response from either {@link Mappedin.toString}, {@link getVenueBundle} or by downloading the bundle manually
@@ -4707,6 +4919,10 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocat
4707
4919
  shortName?: string;
4708
4920
  detailsUrl?: string;
4709
4921
  tags?: string[];
4922
+ /**
4923
+ * @internal
4924
+ */
4925
+ toMap?: string;
4710
4926
  externalId?: string;
4711
4927
  showLabelWhenImagePresent?: boolean;
4712
4928
  showSmartLabelWhenImagePresent?: boolean;
@@ -4747,7 +4963,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocat
4747
4963
  * @type [MappedinCategory]
4748
4964
  */
4749
4965
  get categories(): MappedinCategory[];
4750
- get state(): MappedinLocationState | undefined;
4966
+ get state(): MappedinLocationState;
4751
4967
  clone(): MappedinLocation;
4752
4968
  get nodeOperationHours(): TOperationHoursMap;
4753
4969
  static hydrate(locations: any, mappedin: Mappedin): MappedinLocation[];
@@ -4850,6 +5066,15 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinPolyg
4850
5066
  x: number;
4851
5067
  y: number;
4852
5068
  }[];
5069
+ /**
5070
+ * @internal
5071
+ *
5072
+ * The center coordinate of the polygon used for positioning {@link FloatingLabels} for MVF venues.
5073
+ */
5074
+ center?: {
5075
+ x: number;
5076
+ y: number;
5077
+ };
4853
5078
  canvasBounds?: {
4854
5079
  align: string;
4855
5080
  maxHeight: number;
@@ -5032,6 +5257,13 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinCateg
5032
5257
  * @type [MappedinLocation]
5033
5258
  */
5034
5259
  get locations(): MappedinLocation[];
5260
+ /**
5261
+ * Children of this Category.
5262
+ *
5263
+ * @property children
5264
+ * @type [MappedinCategory]
5265
+ */
5266
+ get children(): MappedinCategory[];
5035
5267
  static hydrate(categories: any, mappedin: Mappedin): MappedinCategory[];
5036
5268
  static fetch(mappedin: Mappedin): Promise<MappedinCategory[]>;
5037
5269
  toJSON(): any;
@@ -5070,6 +5302,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinMap'
5070
5302
  name: string;
5071
5303
  shortName: string;
5072
5304
  elevation: number;
5305
+ subtitle?: string;
5073
5306
  scale?: number;
5074
5307
  layers: {
5075
5308
  visible: boolean;
@@ -5286,6 +5519,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinVorte
5286
5519
  * @property id {string}
5287
5520
  */
5288
5521
  id: string;
5522
+ accessible?: boolean;
5289
5523
  name?: string;
5290
5524
  type?: string;
5291
5525
  weight?: number;
@@ -5481,8 +5715,26 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinNavig
5481
5715
  import { MappedinDestinationSet } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinDestinationSet';
5482
5716
  import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
5483
5717
  import { MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue/MappedinDirections';
5718
+ import { TSimplifyDirectionsOptions } from '@mappedin/react-native-sdk/core/packages/navigator';
5484
5719
  export type TDirectionToOptions = {
5720
+ /**
5721
+ * If true directions will only take accessible routes
5722
+ * @default false
5723
+ */
5485
5724
  accessible?: boolean;
5725
+ /**
5726
+ * Include all the vortexes matching the given IDs
5727
+ */
5728
+ includedVortexIds?: string[];
5729
+ /**
5730
+ * Exclude all the vortexes matching the given IDs
5731
+ */
5732
+ excludedVortexIds?: string[];
5733
+ /**
5734
+ * @experimental
5735
+ * Apply line-of-sight simplifying to directions. This will attempt to remove unnecessary nodes between turns.
5736
+ */
5737
+ simplify?: TSimplifyDirectionsOptions;
5486
5738
  };
5487
5739
  export abstract class MappedinNavigatable {
5488
5740
  #private;
@@ -5885,6 +6137,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
5885
6137
  paths: {
5886
6138
  node: string;
5887
6139
  map: string;
6140
+ weight?: number;
5888
6141
  }[];
5889
6142
  [propName: string]: any;
5890
6143
  };
@@ -6032,7 +6285,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.
6032
6285
  name?: string;
6033
6286
  entrances: {
6034
6287
  map: TMap['id'];
6035
- node: TNode['id'];
6288
+ id: TNode['id'];
6036
6289
  }[];
6037
6290
  };
6038
6291
  export type TPolygonRanking = {
@@ -6103,7 +6356,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6103
6356
  };
6104
6357
  labeledPolygons: {};
6105
6358
  labelAllLocations(options?: TFlatLabelAllLocationsOptions): FlatLabel[];
6106
- labelPolygon(polygonOrPolygonId: MappedinPolygon | MappedinPolygon['id'], text: string, options?: TAddFlatLabelOptions): FlatLabel;
6359
+ labelPolygon(polygonOrPolygonId: MappedinPolygon | MappedinPolygon['id'], text: string, options?: TAddFlatLabelOptions): any;
6107
6360
  removeLabel(polygonOrPolygonId: MappedinPolygon | MappedinPolygon['id']): void;
6108
6361
  setAppearance(polygon: MappedinPolygon, appearance: TFlatLabelAppearance): void;
6109
6362
  setHoverColorForAll(color: string): void;
@@ -6115,28 +6368,31 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6115
6368
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FloatingLabelsController' {
6116
6369
  import { FloatingLabel } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
6117
6370
  import type { ICore, TFloatingLabelAllLocationsOptions, TAddFloatingLabelOptions, TFloatingLabelPolygonOptions, TFloatingLabelAppearance } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
6118
- import { MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
6371
+ import { MappedinMap, MappedinPolygon, MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
6119
6372
  export type TLabelRenderOptions = TFloatingLabelPolygonOptions & {
6373
+ id?: string;
6120
6374
  polygon?: MappedinPolygon;
6121
6375
  rank: number;
6122
- entranceNode: MappedinNode;
6376
+ entranceNode?: MappedinNode;
6377
+ map: MappedinMap;
6123
6378
  text: string;
6124
6379
  createDespiteImage: boolean | undefined;
6380
+ coordinate?: MappedinCoordinate;
6125
6381
  };
6126
6382
  class FloatingLabelsController {
6127
6383
  #private;
6128
6384
  core: ICore;
6129
- constructor(core: ICore);
6130
- addLabel(polygonOrNode: MappedinPolygon | MappedinNode, text: string, options?: TAddFloatingLabelOptions): FloatingLabel | FloatingLabel[] | null;
6131
- removeLabel(polygonOrNode: MappedinPolygon | MappedinNode, bulk?: boolean): void;
6132
- setPriority(polygonOrNode: MappedinPolygon | MappedinNode, rank: number): void;
6133
- resetPriority(polygonOrNode: MappedinPolygon | MappedinNode): void;
6134
- removeAllLabels(): void;
6135
- setAppearance(polygonOrNode: MappedinPolygon | MappedinNode, appearance: TFloatingLabelAppearance): void;
6136
- labelAllLocations(options?: TFloatingLabelAllLocationsOptions): FloatingLabel[];
6137
6385
  floatingLabels: {
6138
6386
  [key in MappedinNode['id']]: FloatingLabel;
6139
6387
  };
6388
+ constructor(core: ICore);
6389
+ addLabel(target: MappedinPolygon | MappedinNode | MappedinCoordinate, text: string, options?: TAddFloatingLabelOptions): FloatingLabel | FloatingLabel[];
6390
+ removeLabel(target: MappedinPolygon | MappedinNode | MappedinCoordinate, bulk?: boolean): void;
6391
+ setPriority(target: MappedinPolygon | MappedinNode | MappedinCoordinate, rank: number): void;
6392
+ resetPriority(target: MappedinPolygon | MappedinNode | MappedinCoordinate): void;
6393
+ removeAllLabels(): void;
6394
+ setAppearance(target: MappedinPolygon | MappedinNode | MappedinCoordinate, appearance: TFloatingLabelAppearance): void;
6395
+ labelAllLocations(options?: TFloatingLabelAllLocationsOptions): FloatingLabel[];
6140
6396
  }
6141
6397
  export default FloatingLabelsController;
6142
6398
  }
@@ -6172,8 +6428,16 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/NavigationGra
6172
6428
  * @param originIds array - of one or more node ids
6173
6429
  * @param destinationNodeIds array - of onr or more node ids
6174
6430
  * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
6431
+ * @param includedVortexIds set - optional, exclude all the vertexes matching the given IDs
6432
+ * @param excludedVortexIds set - optional, exclude all the vertexes matching the given IDs
6175
6433
  */
6176
- aStar(originIds: string[], destinationNodeIds: string[], accessible: boolean): Edge[];
6434
+ aStar({ originIds, destinationNodeIds, accessible, includedVortexIds, excludedVortexIds, }: {
6435
+ originIds: string[];
6436
+ destinationNodeIds: string[];
6437
+ accessible: boolean;
6438
+ includedVortexIds?: Set<string>;
6439
+ excludedVortexIds?: Set<string>;
6440
+ }): Edge[];
6177
6441
  getDistance(origin: INode, destination: INode): number;
6178
6442
  getShortestEuclideanDistance(origin: INode, destinations: INode[]): number;
6179
6443
  }
@@ -6183,49 +6447,77 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/NavigationGra
6183
6447
  declare module '@mappedin/react-native-sdk/core/packages/navigator/Navigator' {
6184
6448
  import Directive from '@mappedin/react-native-sdk/core/packages/navigator/Directive';
6185
6449
  import Edge from '@mappedin/react-native-sdk/core/packages/navigator/Edge';
6450
+ import { TCoordinate } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator.utils';
6186
6451
  import ILocation from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/ILocation';
6187
6452
  import IMap from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IMap';
6188
6453
  import INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
6454
+ import IPolygon from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IPolygon';
6189
6455
  import IVortex from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IVortex';
6190
6456
  export enum E_MESSAGES {
6191
- NO_VALID_PATH = "No Valid Path Available"
6457
+ NO_VALID_PATH = "No Valid Path Available"
6192
6458
  }
6193
6459
  export function differenceBetweenAngles(a: any, b: any): number;
6194
6460
  export interface IDirectionsResult {
6195
- distance: number;
6196
- path: INode[];
6197
- instructions: Directive[];
6461
+ distance: number;
6462
+ path: INode[];
6463
+ instructions: Directive[];
6198
6464
  }
6465
+ /**
6466
+ * @experimental
6467
+ * Configuration options for directions simplifying.
6468
+ */
6469
+ export type TSimplifyDirectionsOptions = {
6470
+ /**
6471
+ * Enable or disable simplifying.
6472
+ */
6473
+ enabled: boolean;
6474
+ /**
6475
+ * The radius of the buffer around the path.
6476
+ * @default 1.8
6477
+ */
6478
+ bufferRadius?: number;
6479
+ };
6199
6480
  class Navigator {
6200
- constructor({ locations, nodes, vortexes, maps, showVortexNames, }: {
6201
- locations: ILocation[];
6202
- nodes: INode[];
6203
- vortexes: IVortex[];
6204
- maps: IMap[];
6205
- showVortexNames?: boolean;
6206
- });
6207
- getClosestLocationInRay(startingEdge: Edge, angleThreshold?: number, distanceThreshold?: number): ILocation | null;
6208
- /**
6209
- * getDirections takes one or more origin node ids, one or more destination node ids
6210
- * and returns a distance, array of directives, and an array of nodes that define the
6211
- * path to take.
6212
- *
6213
- * The returned directives array defines nodes, vortexes, and locations along the path
6214
- * along with text directions.
6215
- *
6216
- * @param originIds array - of one or more node ids
6217
- * @param destinationNodeIds array - of onr or more node ids
6218
- * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
6219
- * @param departFrom ILocation - optional, id and name of a location to represent start of journey
6220
- * @param arriveAt ILocation - optional, id and name of a location to represent end of journey
6221
- */
6222
- getDirections({ originIds, destinationNodeIds, accessible, departFrom, arriveAt, }: {
6223
- originIds: string[];
6224
- destinationNodeIds: string[];
6225
- accessible: boolean;
6226
- departFrom?: ILocation;
6227
- arriveAt?: ILocation;
6228
- }): IDirectionsResult;
6481
+ constructor({ locations, nodes, vortexes, maps, polygons, showVortexNames, }: {
6482
+ locations: ILocation[];
6483
+ nodes: INode[];
6484
+ vortexes: IVortex[];
6485
+ maps: IMap[];
6486
+ polygons?: IPolygon[];
6487
+ showVortexNames?: boolean;
6488
+ });
6489
+ getClosestLocationInRay(startingEdge: Edge, angleThreshold?: number, distanceThreshold?: number): ILocation;
6490
+ /**
6491
+ * getDirections takes one or more origin node ids, one or more destination node ids
6492
+ * and returns a distance, array of directives, and an array of nodes that define the
6493
+ * path to take.
6494
+ *
6495
+ * The returned directives array defines nodes, vortexes, and locations along the path
6496
+ * along with text directions.
6497
+ *
6498
+ * @param originIds array - of one or more node ids
6499
+ * @param destinationNodeIds array - of onr or more node ids
6500
+ * @param accessible boolean - optional, if true directions will only take accessible route, defaults to false
6501
+ * @param departFrom ILocation - optional, id and name of a location to represent start of journey
6502
+ * @param arriveAt ILocation - optional, id and name of a location to represent end of journey
6503
+ * @param includedVortexIds set - optional, exclude all the vertexes matching the given IDs
6504
+ * @param excludedVortexIds set - optional, exclude all the vertexes matching the given IDs
6505
+ */
6506
+ getDirections({ originIds, destinationNodeIds, accessible, departFrom, arriveAt, includedVortexIds, excludedVortexIds, simplify, }: {
6507
+ originIds: string[];
6508
+ includedVortexIds?: Set<string>;
6509
+ excludedVortexIds?: Set<string>;
6510
+ destinationNodeIds: string[];
6511
+ accessible: boolean;
6512
+ departFrom?: ILocation;
6513
+ arriveAt?: ILocation;
6514
+ simplify?: TSimplifyDirectionsOptions;
6515
+ }): IDirectionsResult;
6516
+ /**
6517
+ * Iterates through each N step node and determines if a direct line to the next M step node intersects any polygons.
6518
+ * If it doesn't, remove all steps between the two.
6519
+ */
6520
+ simplifySteps(steps: Edge[], geometryEdges: TCoordinate[][], bufferRadius: number): Edge[];
6229
6521
  }
6230
6522
  export default Navigator;
6231
6523
  }
@@ -6319,13 +6611,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6319
6611
  import { Texture } from 'three';
6320
6612
  import { STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
6321
6613
  import { TMapClickEvent } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6614
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
6322
6615
  export { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
6323
6616
  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';
6324
6617
  export { labelThemes } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6325
6618
  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';
6619
+ export { default as JSONSceneLoader } from '@mappedin/react-native-sdk/core/packages/renderer/internal/json-scene-loader';
6326
6620
  export { default as RENDER } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks';
6327
6621
  export { FrameUpdate, FrameTask, TaskScheduler } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler';
6328
6622
  export { default as SceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.SceneManager';
6623
+ export { default as DynamicFocusSceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.DynamicFocusSceneManager';
6329
6624
  export { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
6330
6625
  export { default as MapObject } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
6331
6626
  export { default as CAMERA_LAYER } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraLayers';
@@ -6343,36 +6638,44 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6343
6638
  SET_SCENE_MAP = 5,
6344
6639
  SET_SCENE_START = 6,
6345
6640
  SET_SCENE = 7,
6346
- CAMERA_MOVING = 8,
6347
- SET_BLUE_DOT_SIZE_FROM_ZOOM = 9,
6348
- PUBLISH_BLUE_DOT = 10,
6349
- SET_STATE_SILENT = 11,
6350
- BLUE_DOT_UPDATE_POSITION = 12,
6351
- BLUE_DOT_SET_FOLLOWING = 13,
6352
- CLEAR_MOUSE = 14,
6353
- MAP_CLICK = 15,
6354
- USER_ZOOM = 16,
6355
- USER_ZOOM_BEGIN = 17,
6356
- USER_ROTATE = 18,
6357
- USER_ROTATE_BEGIN = 19,
6358
- USER_PAN = 20,
6359
- USER_PAN_BEGIN = 21,
6360
- USER_TILT = 22,
6361
- USER_MULTI_BEGIN = 23,
6362
- USER_MULTI_END = 24,
6363
- FOCUSON_BEGIN = 25,
6364
- USER_HANDS_ON = 26,
6365
- USER_HANDS_OFF = 27
6641
+ SCENE_VISIBLITY_CHANGED = 8,
6642
+ CAMERA_MOVING = 9,
6643
+ SET_BLUE_DOT_SIZE_FROM_ZOOM = 10,
6644
+ PUBLISH_BLUE_DOT = 11,
6645
+ SET_STATE_SILENT = 12,
6646
+ BLUE_DOT_UPDATE_POSITION = 13,
6647
+ BLUE_DOT_SET_FOLLOWING = 14,
6648
+ CLEAR_MOUSE = 15,
6649
+ MAP_CLICK = 16,
6650
+ USER_ZOOM = 17,
6651
+ USER_ZOOM_BEGIN = 18,
6652
+ USER_ROTATE = 19,
6653
+ USER_ROTATE_BEGIN = 20,
6654
+ USER_PAN = 21,
6655
+ USER_PAN_BEGIN = 22,
6656
+ USER_TILT = 23,
6657
+ USER_MULTI_BEGIN = 24,
6658
+ USER_MULTI_END = 25,
6659
+ FOCUSON_BEGIN = 26,
6660
+ USER_HANDS_ON = 27,
6661
+ USER_HANDS_OFF = 28,
6662
+ JOURNEY_CREATED = 29,
6663
+ JOURNEY_DESTROYED = 30,
6664
+ OUTDOOR_VIEW_LOADED = 31,
6665
+ LAYER_VISIBILITY_CHANGED = 32
6366
6666
  }
6367
6667
  export type INTERNAL_EVENT_PAYLOAD = {
6368
6668
  [INTERNAL_EVENT.SET_SCENE_START]: undefined;
6369
6669
  [INTERNAL_EVENT.SET_SCENE_MAP]: undefined;
6370
6670
  [INTERNAL_EVENT.ON_FIRST_MAP_LOADED]: undefined;
6371
6671
  [INTERNAL_EVENT.TEXTURE_LOADED]: Texture;
6672
+ [INTERNAL_EVENT.OUTDOOR_VIEW_LOADED]: undefined;
6372
6673
  [INTERNAL_EVENT.RENDER]: undefined;
6373
6674
  [INTERNAL_EVENT.RENDER_NOW]: undefined;
6374
6675
  [INTERNAL_EVENT.UPDATE_FLIPPABLES]: undefined | boolean;
6375
- [INTERNAL_EVENT.SET_SCENE]: undefined;
6676
+ [INTERNAL_EVENT.SET_SCENE]: {
6677
+ context?: string;
6678
+ };
6376
6679
  [INTERNAL_EVENT.CAMERA_MOVING]: any;
6377
6680
  [INTERNAL_EVENT.SET_BLUE_DOT_SIZE_FROM_ZOOM]: number;
6378
6681
  [INTERNAL_EVENT.PUBLISH_BLUE_DOT]: undefined;
@@ -6398,6 +6701,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6398
6701
  [INTERNAL_EVENT.USER_HANDS_OFF]: undefined;
6399
6702
  [INTERNAL_EVENT.USER_PAN]: undefined;
6400
6703
  [INTERNAL_EVENT.USER_TILT]: undefined;
6704
+ [INTERNAL_EVENT.LAYER_VISIBILITY_CHANGED]: MappedinMap;
6705
+ [INTERNAL_EVENT.JOURNEY_CREATED]: undefined;
6706
+ [INTERNAL_EVENT.JOURNEY_DESTROYED]: undefined;
6707
+ [INTERNAL_EVENT.SCENE_VISIBLITY_CHANGED]: undefined;
6401
6708
  };
6402
6709
  /**
6403
6710
  * Factories
@@ -6415,6 +6722,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6415
6722
  export { default as MapViewStackScene } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.StackScene';
6416
6723
  export { default as Element } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Element';
6417
6724
  export { default as FlippableImage } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.FlippableImage';
6725
+ export { default as Building } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/building';
6726
+ export { default as DynamicFocusScene } from '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/dynamic-focus-scene';
6418
6727
  /**
6419
6728
  * Controllers/Managers
6420
6729
  */
@@ -6422,6 +6731,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6422
6731
  export { default as FloatingLabelsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FloatingLabelsController';
6423
6732
  export { default as FlatLabelsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FlatLabelsController';
6424
6733
  export { default as PolygonColorsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController';
6734
+ export { default as PolygonHoverColorsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonHoverColorsController';
6425
6735
  export { default as MarkersController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
6426
6736
  export { default as PolygonInteractionController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonInteractionController';
6427
6737
  export { default as TooltipsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/TooltipsController';
@@ -6437,6 +6747,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal' {
6437
6747
  export { default as SmartCollisionEngine } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
6438
6748
  export { default as BillboardManager } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/BillboardManager';
6439
6749
  export { default as StackedMapsController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/StackedMapsController';
6750
+ export { MultiBufferRenderer } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Renderer';
6751
+ export { JourneyController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/JourneyController';
6752
+ export { default as OutdoorViewController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/OutdoorViewController';
6753
+ export { default as WatermarkController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
6754
+ export { default as LayerController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/LayerController';
6440
6755
  /**
6441
6756
  * Types
6442
6757
  */
@@ -6473,7 +6788,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6473
6788
  export type { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
6474
6789
  export type { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
6475
6790
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
6476
- export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
6791
+ export type { IDirectionsResult, TSimplifyDirectionsOptions, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES, } from '@mappedin/react-native-sdk/core/packages/navigator';
6477
6792
  /**
6478
6793
  * APIs for TypeDoc
6479
6794
  */
@@ -6484,6 +6799,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6484
6799
  export type { Markers } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Markers';
6485
6800
  export type { Paths } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Paths';
6486
6801
  export type { StackedMaps } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/StackedMaps';
6802
+ export type { OutdoorView } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/OutdoorView';
6803
+ export type { DynamicFocus } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus';
6487
6804
  export type { TOOLTIP_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
6488
6805
  export type TMappedinInitializeOutput = {
6489
6806
  mapView: MapView;
@@ -6508,14 +6825,15 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6508
6825
  * @returns
6509
6826
  */
6510
6827
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
6511
- 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';
6828
+ 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';
6512
6829
  export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, hydrateVenue, PositionUpdater, MappedinDestinationSet, };
6513
6830
  import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
6514
6831
  import { TTileManagerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.TileManager';
6832
+ import { TShowWatermarkOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController';
6515
6833
  /**
6516
6834
  * @internal
6517
6835
  */
6518
- const setAssetManager: <T extends DefaultAssetManager>(am: T) => void;
6836
+ const setAssetManager: any;
6519
6837
  export {
6520
6838
  /**
6521
6839
  * @internal
@@ -6529,7 +6847,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6529
6847
  export type { TMappedinInitializeOptions };
6530
6848
  export * from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
6531
6849
  export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/public/MapView';
6532
- export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, default as CameraController, } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
6850
+ export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraInteractionsSetOptions, TCameraAnimationOptions, default as CameraController, } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
6533
6851
  export type { TGetVenueOptions, TGetVenueBundleOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions, TDirectionToOptions, TPicture, TImage, TColor, TGalleryImage, TOpeningHours, TPhone, TSiblingGroup, TSocial, TState, TGeoReference, TPolygonRanking, TOperationHoursMap, TAccessors, } from '@mappedin/react-native-sdk/core/packages/get-venue';
6534
6852
  export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinRankings, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE, setFetchFn, MappedinCollectionType, MappedinLocationState, } from '@mappedin/react-native-sdk/core/packages/get-venue';
6535
6853
  /**
@@ -6541,7 +6859,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6541
6859
  export { CustomerAnalytics } from '@mappedin/react-native-sdk/core/packages/get-venue';
6542
6860
  export { BundleAssetManager } from '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-manager';
6543
6861
  /**
6544
- * @experimental
6862
+ * @deprecated Use {@link OutdoorView} instead.
6545
6863
  * Enable Tile Manager to render outdoor tiles around the venue. Must be called before {@link showVenue}.
6546
6864
  *
6547
6865
  * @example
@@ -6557,6 +6875,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6557
6875
  * ```
6558
6876
  */
6559
6877
  export function __enableTileManager(options?: TTileManagerOptions): void;
6878
+ /**
6879
+ * @hidden
6880
+ * @internal
6881
+ *
6882
+ * Show a Mappedin logo in the 3D scene. Must be called before {@link showVenue}.
6883
+ */
6884
+ export function __showWatermark(options?: TShowWatermarkOptions): void;
6560
6885
  export type { TTileManagerOptions, TILE_RENDER_MODES } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.TileManager';
6561
6886
  export {
6562
6887
  /**
@@ -6574,6 +6899,42 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
6574
6899
  IOutdoorContextProvider, } from './internal/outdoor-context/Outdoor-Context.provider';
6575
6900
  }
6576
6901
 
6902
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/WatermarkController' {
6903
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
6904
+ import { Sprite } from 'three';
6905
+ type TPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | 'center' | 'top' | 'bottom' | 'left' | 'right';
6906
+ export type TShowWatermarkOptions = {
6907
+ padding?: number;
6908
+ position?: TPosition;
6909
+ scale?: number;
6910
+ onClick?: () => void;
6911
+ };
6912
+ class WatermarkController {
6913
+ #private;
6914
+ static ENABLED: boolean;
6915
+ static OPTIONS: Required<TShowWatermarkOptions>;
6916
+ object: Sprite;
6917
+ constructor(core: ICore);
6918
+ show: () => void;
6919
+ hide: () => void;
6920
+ resize: () => void;
6921
+ }
6922
+ export default WatermarkController;
6923
+ }
6924
+
6925
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonHoverColorsController' {
6926
+ import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
6927
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
6928
+ class PolygonHoverColorsController {
6929
+ #private;
6930
+ constructor(core: ICore);
6931
+ setPolygonHoverColor(polygonOrPolygonId: MappedinPolygon | string, color: string): void;
6932
+ clearPolygonHoverColor(polygonOrPolygonId: MappedinPolygon | string): void;
6933
+ clearAllPolygonHoverColors(): void;
6934
+ }
6935
+ export default PolygonHoverColorsController;
6936
+ }
6937
+
6577
6938
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave-text' {
6578
6939
  export type TDrawFn = (ctx: CanvasRenderingContext2D, x: number, y: number) => void;
6579
6940
  type TShave = (str: string, size: number, maxWidth: number, maxLines?: number, lineHeight?: number, options?: {
@@ -6588,35 +6949,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave
6588
6949
  export {};
6589
6950
  }
6590
6951
 
6591
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
6592
- export default FakeGeolocation;
6593
- class FakeGeolocation {
6594
- constructor(options: any);
6595
- active: boolean;
6596
- positions: any[];
6597
- positionIndex: number;
6598
- timerList: any[];
6599
- timeElapsed: number;
6600
- startTime: number | undefined;
6601
- startPos: number;
6602
- endPos: number;
6603
- smoothingType: any;
6604
- isActive(): boolean;
6605
- setCallbacks(success: any, error: any, options: any): void;
6606
- watchPosition(success: any, error: any, options: any): void;
6607
- sendPositionResponse(position: any): void;
6608
- start(): void;
6609
- pause(): void;
6610
- speed: any;
6611
- setPositions(positions: any): void;
6612
- successCallback: any;
6613
- errorCallback: any;
6614
- options: any;
6615
- clearWatch(): void;
6616
- reset(): void;
6617
- }
6618
- }
6619
-
6620
6952
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
6621
6953
  import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
6622
6954
  import { E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
@@ -6698,8 +7030,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
6698
7030
  activeDirections: MappedinDirections;
6699
7031
  get isMultiFloor(): boolean;
6700
7032
  get mapsInJourney(): any[];
7033
+ get buildingsInJourney(): any;
6701
7034
  get mapIdsInvolvedInJourney(): string[];
6702
- constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions | undefined, core: ICore);
7035
+ constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions, core: ICore);
6703
7036
  setStep: (step: any) => void;
6704
7037
  setStepByPath: (path: Path) => void;
6705
7038
  static instance: JourneyController | null;
@@ -6739,76 +7072,321 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinTheme
6739
7072
  }
6740
7073
  }
6741
7074
 
6742
- declare module '@mappedin/react-native-sdk/core/packages/navigator/Edge' {
6743
- import INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
6744
- import IVortex from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IVortex';
6745
- class Edge {
6746
- origin: INode;
6747
- destination: INode;
6748
- vortex?: IVortex;
6749
- distance: number;
6750
- angle: number;
6751
- weight: number;
6752
- constructor({ origin, destination, vortex, elevationDelta, distance, angle, }: {
6753
- origin: INode;
6754
- destination: INode;
6755
- vortex?: IVortex;
6756
- elevationDelta?: number;
6757
- distance?: number;
6758
- angle?: number;
6759
- });
6760
- }
6761
- export default Edge;
6762
- }
6763
-
6764
- declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IMap' {
6765
- interface IGeoReference {
6766
- target: {
6767
- x: number;
6768
- y: number;
6769
- };
6770
- control: {
6771
- x: number;
6772
- y: number;
6773
- };
6774
- }
6775
- interface IMap {
6776
- id: string;
6777
- name: string;
6778
- shortName: string;
6779
- elevation?: number;
6780
- scale?: number;
6781
- x_scale?: number;
6782
- georeference?: IGeoReference[];
6783
- [propName: string]: any;
6784
- }
6785
- export default IMap;
6786
- }
6787
-
6788
- declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode' {
6789
- interface INode {
6790
- id: string;
6791
- x: number;
6792
- y: number;
6793
- map: string;
6794
- externalId?: string;
6795
- [propName: string]: any;
6796
- }
6797
- export default INode;
6798
- }
6799
-
6800
- declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IVortex' {
6801
- interface IVortex {
6802
- id: string;
6803
- name: string;
6804
- type: string;
6805
- weight: number;
6806
- multiplier: number;
6807
- [propName: string]: any;
6808
- }
7075
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
7076
+ import { MapId } from '@mappedin/mvf';
7077
+ import { FeatureCollection, MultiPolygon, Point, Polygon } from 'geojson';
7078
+ import { TImage, TMap, TNode, TOpeningHours, TPhone, TSiblingGroup, TSocial } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
7079
+ export type WithIDs<T> = Map<string, T>;
7080
+ type ManifestFile = {
7081
+ type: 'file';
7082
+ name: string;
7083
+ };
7084
+ type ManifestFolder = {
7085
+ type: 'folder';
7086
+ name: string;
7087
+ children: ManifestFile[];
7088
+ };
7089
+ export type MVFv1PolygonLikeProperties = {
7090
+ id: string;
7091
+ altitude?: number;
7092
+ color?: string;
7093
+ externalId?: string | null;
7094
+ height?: number;
7095
+ opacity?: number;
7096
+ layer?: string;
7097
+ level: string;
7098
+ parent?: string | null;
7099
+ };
7100
+ export type MVFv1SpaceProperties = MVFv1PolygonLikeProperties & {
7101
+ entrances: {
7102
+ level: TMap['id'];
7103
+ id: TNode['id'];
7104
+ }[];
7105
+ };
7106
+ export type MVFv1ObstructionProperties = MVFv1PolygonLikeProperties;
7107
+ export type MVFv1ConnectionProperties = {
7108
+ id: string;
7109
+ /**
7110
+ * Indicates that a connection is accessible
7111
+ */
7112
+ accessible: boolean;
7113
+ /**
7114
+ * Array of node ids that this Connection connects with.
7115
+ */
7116
+ destinations: string[];
7117
+ level: string;
7118
+ multiplier: number;
7119
+ name: string;
7120
+ /**
7121
+ * Type of the connection such as `escalator` or `elevator`
7122
+ */
7123
+ type: string;
7124
+ weight: number;
7125
+ };
7126
+ export type MVFv1NodeProperties = {
7127
+ id: string;
7128
+ /**
7129
+ * Indicates that a node is accessible
7130
+ */
7131
+ accessible: boolean;
7132
+ /**
7133
+ * External id of a node is used to sync and connect to external systems to Mappedin data
7134
+ */
7135
+ externalId: string | null;
7136
+ level: string;
7137
+ multiplier: number;
7138
+ neighbors: string[];
7139
+ weight: number;
7140
+ };
7141
+ export type MVFv1LevelProperties = {
7142
+ id: string;
7143
+ abbreviation?: string;
7144
+ building?: string;
7145
+ elevation?: number;
7146
+ name: string;
7147
+ };
7148
+ export type MVFv1ManifestProperties = {
7149
+ /**
7150
+ * Name of the venue
7151
+ */
7152
+ name: string;
7153
+ folder_struct: (ManifestFolder | ManifestFile)[];
7154
+ /**
7155
+ * Mappedin Venue Format version number of the MVF bundle
7156
+ */
7157
+ version: string;
7158
+ /**
7159
+ * Timestamp when the MVF bundle was generated. E.g. `2022-02-25T16:26:09.908Z`
7160
+ */
7161
+ time: string;
7162
+ };
7163
+ export type MVFv1BuildingProperties = {
7164
+ id: string;
7165
+ name: string;
7166
+ venue: string;
7167
+ };
7168
+ export type MVFv1CategoryProperties = {
7169
+ id: string;
7170
+ name: string;
7171
+ picture?: TImage;
7172
+ };
7173
+ export type MVFv1LocationProperties = {
7174
+ id: string;
7175
+ address?: string | null;
7176
+ /**
7177
+ * Array of {@link MICategoryProperties | category} ids
7178
+ */
7179
+ categories: string[];
7180
+ /**
7181
+ * A text description of the location usually indicating what the location is used for
7182
+ */
7183
+ description?: string | null;
7184
+ /**
7185
+ * Email address to for contacting this location
7186
+ */
7187
+ email?: string | null;
7188
+ /**
7189
+ * External id used to connect Mappedin Location to an external system
7190
+ */
7191
+ externalId?: string | null;
7192
+ /**
7193
+ * Opening hours of the location
7194
+ */
7195
+ hours?: TOpeningHours[] | null;
7196
+ /**
7197
+ * Collection of links related to this location
7198
+ */
7199
+ links?: {
7200
+ label: string;
7201
+ url: string;
7202
+ }[] | null;
7203
+ logo?: TImage | null;
7204
+ /**
7205
+ * Name of the location. By default this is the string displayed in the location label
7206
+ */
7207
+ name: string;
7208
+ /**
7209
+ * Phone number for contacting this location
7210
+ */
7211
+ phone?: TPhone | null;
7212
+ picture?: TImage | null;
7213
+ services?: string | null;
7214
+ siblingGroups?: TSiblingGroup[] | null;
7215
+ /**
7216
+ * Social media links of the location
7217
+ */
7218
+ social?: TSocial | null;
7219
+ /**
7220
+ * Array of {@link MISpaceProperties | MVF Space} ids for this location
7221
+ */
7222
+ spaces?: {
7223
+ id: string;
7224
+ map: string;
7225
+ }[] | null;
7226
+ states?: {
7227
+ type: string;
7228
+ start?: string;
7229
+ end?: string;
7230
+ }[] | null;
7231
+ type: string;
7232
+ };
7233
+ export type MVFv1ObstructionCollection = FeatureCollection<Polygon, MVFv1ObstructionProperties>;
7234
+ export type MVFv1SpaceCollection = FeatureCollection<Polygon, MVFv1SpaceProperties>;
7235
+ export type MVFv1ConnectionCollection = FeatureCollection<Point, MVFv1ConnectionProperties>;
7236
+ export type MVFv1NodeCollection = FeatureCollection<Point, MVFv1NodeProperties>;
7237
+ export type MVFv1LevelCollection = FeatureCollection<Polygon | MultiPolygon, MVFv1LevelProperties>;
7238
+ export type MVFv1ManifestCollection = FeatureCollection<Point, MVFv1ManifestProperties>;
7239
+ export type MVFv1BuildingCollection = FeatureCollection<Polygon, MVFv1BuildingProperties>;
7240
+ export type MVFv1CategoryCollection = FeatureCollection<null, MVFv1CategoryProperties>;
7241
+ export type MVFv1LocationCollection = FeatureCollection<null, MVFv1LocationProperties>;
7242
+ export type ParsedMVFv1 = {
7243
+ /**
7244
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7245
+ */
7246
+ space: {
7247
+ [mapId: MapId]: MVFv1SpaceCollection | undefined;
7248
+ };
7249
+ /**
7250
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7251
+ */
7252
+ obstruction: {
7253
+ [mapId: MapId]: MVFv1ObstructionCollection | undefined;
7254
+ };
7255
+ /**
7256
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7257
+ */
7258
+ level: {
7259
+ [mapId: MapId]: MVFv1LevelCollection | undefined;
7260
+ };
7261
+ /**
7262
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7263
+ */
7264
+ node: {
7265
+ [mapId: MapId]: MVFv1NodeCollection | undefined;
7266
+ };
7267
+ /**
7268
+ * @propertyNames { "pattern": "^m_[0-9a-z]{16}$" }
7269
+ */
7270
+ connection: {
7271
+ [mapId: MapId]: MVFv1ConnectionCollection | undefined;
7272
+ };
7273
+ 'manifest.geojson': MVFv1ManifestCollection;
7274
+ 'building.geojson': MVFv1BuildingCollection;
7275
+ 'category.geojson': MVFv1CategoryCollection;
7276
+ 'location.geojson': MVFv1LocationCollection;
7277
+ };
7278
+ export type RawMVFv1 = {
7279
+ 'manifest.geojson': Uint8Array;
7280
+ 'building.geojson': Uint8Array;
7281
+ 'category.geojson': Uint8Array;
7282
+ 'location.geojson': Uint8Array;
7283
+ level: Partial<Record<MapId, Uint8Array>>;
7284
+ node: Partial<Record<MapId, Uint8Array>>;
7285
+ space: Partial<Record<MapId, Uint8Array>>;
7286
+ obstruction: Partial<Record<MapId, Uint8Array>>;
7287
+ connection: Partial<Record<MapId, Uint8Array>>;
7288
+ };
7289
+ export {};
7290
+ }
7291
+
7292
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/Edge' {
7293
+ import INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
7294
+ import IVortex from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IVortex';
7295
+ class Edge {
7296
+ origin: INode;
7297
+ destination: INode;
7298
+ vortex?: IVortex;
7299
+ distance: number;
7300
+ angle: number;
7301
+ weight: number;
7302
+ constructor({ origin, destination, vortex, elevationDelta, distance, angle, pathWeight, }: {
7303
+ origin: INode;
7304
+ destination: INode;
7305
+ vortex?: IVortex;
7306
+ elevationDelta?: number;
7307
+ distance?: number;
7308
+ angle?: number;
7309
+ pathWeight?: number;
7310
+ });
7311
+ }
7312
+ export default Edge;
7313
+ }
7314
+
7315
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IMap' {
7316
+ interface IGeoReference {
7317
+ target: {
7318
+ x: number;
7319
+ y: number;
7320
+ };
7321
+ control: {
7322
+ x: number;
7323
+ y: number;
7324
+ };
7325
+ }
7326
+ interface IMap {
7327
+ id: string;
7328
+ name: string;
7329
+ shortName: string;
7330
+ elevation?: number;
7331
+ scale?: number;
7332
+ x_scale?: number;
7333
+ georeference?: IGeoReference[];
7334
+ [propName: string]: any;
7335
+ }
7336
+ export default IMap;
7337
+ }
7338
+
7339
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode' {
7340
+ interface INode {
7341
+ id: string;
7342
+ x: number;
7343
+ y: number;
7344
+ map: string;
7345
+ externalId?: string;
7346
+ [propName: string]: any;
7347
+ }
7348
+ export default INode;
7349
+ }
7350
+
7351
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IVortex' {
7352
+ interface IVortex {
7353
+ id: string;
7354
+ name: string;
7355
+ type: string;
7356
+ weight: number;
7357
+ multiplier: number;
7358
+ [propName: string]: any;
7359
+ }
6809
7360
  export default IVortex;
6810
7361
  }
6811
7362
 
7363
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/Navigator.utils' {
7364
+ export type TCoordinate = {
7365
+ x: number;
7366
+ y: number;
7367
+ };
7368
+ /**
7369
+ * Modified line intercept math by Paul Bourke http://paulbourke.net/geometry/pointlineplane/
7370
+ * Determines the intersection point of two line segments.
7371
+ * Return null if the lines don't intersect.
7372
+ */
7373
+ export function getLineIntersection(line1Point1: TCoordinate, line1Point2: TCoordinate, line2Point1: TCoordinate, line2Point2: TCoordinate): {
7374
+ x: number;
7375
+ y: number;
7376
+ };
7377
+ /**
7378
+ * Offsets a line between two nodes by a certain distance.
7379
+ */
7380
+ export function getOffsetLine(point1: TCoordinate, point2: TCoordinate, offset: number): {
7381
+ x: number;
7382
+ y: number;
7383
+ }[];
7384
+ /**
7385
+ * Determines if there is a line of sight between two nodes.
7386
+ */
7387
+ export function hasLineOfSight(origin: TCoordinate, destination: TCoordinate, edges?: TCoordinate[][], bufferRadius?: number): boolean;
7388
+ }
7389
+
6812
7390
  declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/ILocation' {
6813
7391
  interface ILocation {
6814
7392
  id: string;
@@ -6818,6 +7396,56 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IL
6818
7396
  export default ILocation;
6819
7397
  }
6820
7398
 
7399
+ declare module '@mappedin/react-native-sdk/core/packages/navigator/interfaces/IPolygon' {
7400
+ interface IPolygon {
7401
+ id: string;
7402
+ map: string;
7403
+ layer?: string;
7404
+ layerId?: string;
7405
+ externalId?: string;
7406
+ name?: string;
7407
+ vertexes: {
7408
+ x: number;
7409
+ y: number;
7410
+ }[];
7411
+ }
7412
+ export default IPolygon;
7413
+ }
7414
+
7415
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/json-scene-loader' {
7416
+ import { Element } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
7417
+ import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
7418
+ import { MappedinMap, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
7419
+ import { MAP_RENDER_MODE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
7420
+ class JSONSceneLoader {
7421
+ defaultExtrudeSettings: {
7422
+ amount: number;
7423
+ bevelEnabled: boolean;
7424
+ };
7425
+ materials: {};
7426
+ scale: number;
7427
+ assetManager: DefaultAssetManager;
7428
+ setAssetManager<T extends DefaultAssetManager>(am: T): void;
7429
+ overlayHeight: number;
7430
+ /**
7431
+ Takes in either an object containing polygons and generates a 3D scene based
7432
+ on it, or a string URL to fetch those polygons from.
7433
+ **/
7434
+ load(polygons: string | MappedinPolygon[], mapClass: MappedinMap, mapLoadingStrategy?: MAP_RENDER_MODE): Promise<{
7435
+ container: any;
7436
+ elements: Element[];
7437
+ visibleLayers: Set<unknown>;
7438
+ }>;
7439
+ _build(polygons: MappedinPolygon[], mapClass: MappedinMap, mapLoadingStrategy?: MAP_RENDER_MODE): Promise<{
7440
+ container: any;
7441
+ elements: Element[];
7442
+ visibleLayers: Set<unknown>;
7443
+ }>;
7444
+ }
7445
+ const _default: JSONSceneLoader;
7446
+ export default _default;
7447
+ }
7448
+
6821
7449
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
6822
7450
  /**
6823
7451
  * Tasks that can be submitted to the renderer. The `STATIC_AND_ANIMATED` task
@@ -6827,7 +7455,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
6827
7455
  ANIMATED = "animated",
6828
7456
  ALWAYS_ON_TOP = "always_on_top",
6829
7457
  ALL = "all",
6830
- TWEEN = "tween"
7458
+ TWEEN = "tween",
7459
+ ALL_WITHOUT_EFFECTS = "all_without_effects"
6831
7460
  }
6832
7461
  export default RENDER;
6833
7462
  }
@@ -7362,7 +7991,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Task
7362
7991
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.SceneManager' {
7363
7992
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
7364
7993
  import type { ICore, TCameraAnimationOptions, TFocusOnCameraOptions, TCameraTargets } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
7365
- import { MapObject, MapViewScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
7994
+ import { MapViewScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
7366
7995
  export type TSceneTransitionOptions = {
7367
7996
  /**
7368
7997
  * Map to set as active during the transition. This will decide where the camera will be positioned, as well as which
@@ -7388,7 +8017,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
7388
8017
  };
7389
8018
  };
7390
8019
  class SceneManager {
7391
- #private;
8020
+ core: ICore;
7392
8021
  currentScene: MapViewScene;
7393
8022
  /**
7394
8023
  * MapObjects that have been loaded and positioned in the scene
@@ -7402,6 +8031,29 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-
7402
8031
  export default SceneManager;
7403
8032
  }
7404
8033
 
8034
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/MapView.DynamicFocusSceneManager' {
8035
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8036
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8037
+ import { MapViewScene, DynamicFocusScene } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8038
+ class DynamicFocusSceneManager {
8039
+ dynamicFocusScene: DynamicFocusScene;
8040
+ core: ICore;
8041
+ constructor(core: ICore, baseMap: MappedinMap);
8042
+ panBounds: any;
8043
+ mapShouldSetOnUserInteraction: boolean;
8044
+ get currentScene(): {
8045
+ resize: () => void;
8046
+ currentMap: MappedinMap;
8047
+ mapObjects: Map<string, MapObject>;
8048
+ };
8049
+ get currentMap(): MappedinMap;
8050
+ determineTargetMap(): void;
8051
+ update(): void;
8052
+ transitionTo(scene?: MapViewScene): Promise<void>;
8053
+ }
8054
+ export default DynamicFocusSceneManager;
8055
+ }
8056
+
7405
8057
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed' {
7406
8058
  export class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD> {
7407
8059
  /**
@@ -7423,238 +8075,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-s
7423
8075
  }
7424
8076
  }
7425
8077
 
7426
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject' {
7427
- export namespace TASK_PRIORITY {
7428
- const VISIBLE_MAP_HIGH: number;
7429
- const VISIBLE_MAP_LOW: number;
7430
- const VISIBLE_MAP_MARKER: number;
7431
- const ASYNC_MAP_HIGH: number;
7432
- const ASYNC_MAP_LOW: number;
7433
- const ASYNC_MAP_MARKER: number;
7434
- const MAP_LOADED: number;
7435
- }
7436
- export const SCENE_FROM_LIVE_JSON: false;
7437
- /**
7438
- * A handle to a 3D marker added to a map.
7439
- *
7440
- * @class ThreeJSMarkerHandle
7441
- */
7442
- export class ThreeJSMarkerHandle {
7443
- constructor({ mapId, object }: {
7444
- mapId: any;
7445
- object: any;
7446
- });
7447
- _mapId: any;
7448
- _object: any;
7449
- /**
7450
- * Return the ThreeJS object associated with this marker, so that it
7451
- * can be moved around, scaled, etc.
7452
- *
7453
- * @property {Object3D} object
7454
- */
7455
- get object(): any;
7456
- _destroy(): void;
7457
- }
7458
- export default MapObject;
7459
- class MapObject extends PubSub {
7460
- constructor(mapClass: any, polygonMeshesById: any, showCount: any, core: any, loadOptions?: {});
7461
- _flippableImagedById: {};
7462
- _started: boolean;
7463
- _loaderPromise: null;
7464
- _promiseResolve: null;
7465
- hoverableMeshChildren: any[];
7466
- visible: boolean;
7467
- objectsDictionary: {};
7468
- north: null;
7469
- mapScale: null;
7470
- object: any;
7471
- labels: Set<any>;
7472
- tooltips: Set<any>;
7473
- markers: Set<any>;
7474
- box: any;
7475
- textObjects: any[];
7476
- labelBatchCreator: null;
7477
- imagesToFlip: any[];
7478
- seenByCamera: boolean;
7479
- threeJSMarkers: Map<any, any>;
7480
- core: any;
7481
- mapClass: any;
7482
- polygonMeshesById: any;
7483
- _showCount: any;
7484
- loadMethod: string;
7485
- loadAsync: any;
7486
- _taskScheduler: any;
7487
- id: any;
7488
- mapRenderingStrategy: any;
7489
- _highPriorityTasks: FrameTaskGroup;
7490
- _lowPriorityTasks: FrameTaskGroup;
7491
- _markerTasks: FrameTaskGroup;
7492
- _mapLoadedTasks: FrameTaskGroup;
7493
- _visibilityLatch: boolean | null;
7494
- _objLoadedComplete: boolean;
7495
- _objLoaded(object: any): any;
7496
- _objLoadedMerged(object: any): Promise<any>;
7497
- enableImageFlipping(polygonId: any, rotation: any): void;
7498
- fadeIn(options?: {}): {
7499
- start: () => Promise<void>;
7500
- };
7501
- fadeOut(options?: {}): {
7502
- start: () => Promise<void>;
7503
- };
7504
- fade({ direction, duration, delay, easing, onStart, onComplete, layers, }: {
7505
- direction?: string | undefined;
7506
- duration?: number | undefined;
7507
- delay?: number | undefined;
7508
- easing?: any;
7509
- onStart?: (() => void) | undefined;
7510
- onComplete?: (() => void) | undefined;
7511
- layers?: any[] | undefined;
7512
- }): {
7513
- start: () => Promise<void>;
7514
- };
7515
- elements: any;
7516
- boundingBox: {
7517
- min: any;
7518
- max: any;
7519
- } | undefined;
7520
- loadPolygonNow(polygonId: any): void;
7521
- _addElementToScene(element: any): void;
7522
- /** *
7523
- 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.
7524
-
7525
- If needed, this could be modified to
7526
-
7527
- Returns a Promise that will be Done when the OBJ, MTL and textures have been downloaded, and the objectsDictionary has been generated.
7528
-
7529
- **/
7530
- load(): null;
7531
- loadMethodUsed: string | undefined;
7532
- _dispose(objectToDispose: any): void;
7533
- add(childObjectToAdd: any): void;
7534
- /**
7535
- * Convert lat/lon to local map position vector
7536
- */
7537
- getPositionLatLon(lat: any, lon: any): any;
7538
- /**
7539
- * Previously, each map was centered around 0,0,0 and scaled to fit the map.
7540
- * With scene manager, each map is positioned and scaled relative to the base map/world
7541
- * Since most 3D objects (like blue dot) are added to the map via `getPositionLatLon`, they already
7542
- * have the map's matrix applied, on top of being affected as a child of the map's own transform
7543
- * This method inverts the map's matrix to resolve the double matrix application issue.
7544
- * TODO: investigate a better way to handle this
7545
- */
7546
- addToObject(child: any): void;
7547
- /**
7548
- * Translates objects that are added to the map (such as blue dot), assuming they are added via `getPositionLatLon`,
7549
- * or `convertTo3DMapPosition`, where the map's matrix has already been applied.
7550
- */
7551
- translateChild(child: any, position: any): void;
7552
- getMapScale(): null;
7553
- getNorth(): null;
7554
- disableAllImageFlipping(): void;
7555
- /**
7556
- * Return true if this map has been loaded to the point where it can be
7557
- * manipulated as a complete object. In synchronous mode, this requires all
7558
- * loading tasks to be completed, but in async mode, only high-priority
7559
- * tasks (adding polygons to the world) have to be completed.
7560
- */
7561
- isReady(): boolean;
7562
- /**
7563
- * Return true if this map has been loaded to the point where the only tasks
7564
- * remaining are marker tasks.
7565
- */
7566
- isFullyLoaded(): boolean;
7567
- /**
7568
- * A function that should be called when the map is made visible, in order
7569
- * to kick off its tasks.
7570
- */
7571
- onVisible(): void;
7572
- /**
7573
- * A function that should be called when the map is made invisible, in order
7574
- * to postpone its tasks.
7575
- */
7576
- onInvisible(): void;
7577
- /**
7578
- * Queue a task on this map that will be executed when the high and low
7579
- * priority tasks have been processed.
7580
- */
7581
- addPendingMarkerTask(marker: any, callback: any): void;
7582
- /**
7583
- * Queue a task on this map that must be completed before the map will be
7584
- * considered `isReady` in synchronous loading mode.
7585
- */
7586
- addPendingLowPriorityTask(name: any, callback: any): void;
7587
- /**
7588
- * Queue a task on this map that will be queued when the map is loaded, or
7589
- * immediately if the map has already been loaded.
7590
- */
7591
- addPendingMapLoadedTask(name: any, callback: any): void;
7592
- /**
7593
- * Queue a task on this map that must be completed before the map will be
7594
- * considered `isReady`, and will be evaluated before any low-priority
7595
- * tasks.
7596
- */
7597
- _addPendingHighPriorityTask(name: any, callback: any): void;
7598
- /**
7599
- * Add a ThreeJS marker to this map object. This should be called through
7600
- * the `MapView3D`.
7601
- *
7602
- * @method addThreeJSMarker
7603
- * @param {Object} options
7604
- * @param {Object3D} [options.object] the marker object to add to the scene
7605
- * @param {Vector3} [options.position=null] if provided, sets the object's position on the map
7606
- * @param {Euler} [options.rotation=null] if provided, sets the object's rotation relative to the map
7607
- * @param {Vector3} [options.scale=null] if provided, sets the object's scale relative to the map
7608
- * @return {ThreeJSMarkerHandle} a unique identifier for the marker
7609
- */
7610
- addThreeJSMarker(options: {
7611
- object?: any;
7612
- position?: any;
7613
- rotation?: any;
7614
- scale?: any;
7615
- }): ThreeJSMarkerHandle;
7616
- /**
7617
- * Remove the given `ThreeJSMarker` from this map.
7618
- *
7619
- * @method removeThreeJSMarker
7620
- * @param {ThreeJSMarkerHandle} markerHandle the marker to remove
7621
- * @return {boolean} true if the marker existed on the map and was removed;
7622
- * false if the marker does not exist on the map
7623
- */
7624
- removeThreeJSMarker(markerHandle: ThreeJSMarkerHandle): boolean;
7625
- /**
7626
- * Remove all `ThreeJSMarker` from this map.
7627
- *
7628
- * @method removeThreeJSMarker
7629
- */
7630
- _removeThreeJSMarkers(): void;
7631
- removeLabels(): void;
7632
- /**
7633
- * Called when a task group that may be required for map loading completes,
7634
- * to see if all the relevant task groups have been completed.
7635
- */
7636
- _checkIfLoaded(): void;
7637
- mapLoaded: any;
7638
- /**
7639
- * Called when the root ThreeJS object has been created, and child elements
7640
- * may be added.
7641
- */
7642
- _onRootObjectCreated(): void;
7643
- _popinChildObjects(): void;
7644
- }
7645
- import { PubSub } from "@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub";
7646
- import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler";
7647
- }
7648
-
7649
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.CameraLayers' {
7650
- export default CAMERA_LAYER;
7651
- namespace CAMERA_LAYER {
7652
- const STATIC: number;
7653
- const ANIMATED: number;
7654
- const ALWAYS_ON_TOP: number;
7655
- }
7656
- }
7657
-
7658
8078
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager' {
7659
8079
  import { Texture } from 'three';
7660
8080
  import type { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
@@ -7677,14 +8097,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-m
7677
8097
  }
7678
8098
  }
7679
8099
 
7680
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.HoverLabel' {
7681
- export default HoverLabel;
7682
- /**
7683
- * @type {any}
7684
- */
7685
- let HoverLabel: any;
7686
- }
7687
-
7688
8100
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
7689
8101
  import SmartCollisionEngine from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
7690
8102
  import { Rectangle } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
@@ -7728,6 +8140,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7728
8140
  visible: boolean;
7729
8141
  rank: number;
7730
8142
  id: string;
8143
+ layer: string;
7731
8144
  _bboxes?: [string, Rectangle, (collider: TCustomCollider<any>) => void, TGetBoundingBox][];
7732
8145
  offscreen?: boolean;
7733
8146
  setAction: (action: EColliderAction) => void;
@@ -7750,7 +8163,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7750
8163
  colliderDidUpdatePosition?: (prop: [x: number, y: number]) => void;
7751
8164
  }
7752
8165
  class BaseCollider implements ICollider {
7753
- __engine: any;
8166
+ __engine?: SmartCollisionEngine;
7754
8167
  _initialRank: number;
7755
8168
  screenPosition: [number, number];
7756
8169
  enabled: boolean;
@@ -7758,7 +8171,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7758
8171
  mapId: string;
7759
8172
  id: string;
7760
8173
  action: EColliderAction;
7761
- getBoundingBoxForCurrentStrategy: undefined;
8174
+ getBoundingBoxForCurrentStrategy: any;
7762
8175
  rank: number;
7763
8176
  visible: boolean;
7764
8177
  offscreen: boolean;
@@ -7767,6 +8180,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7767
8180
  width: number;
7768
8181
  height: number;
7769
8182
  };
8183
+ layer: string;
7770
8184
  flipIfNeeded(): void;
7771
8185
  constructor(options: any);
7772
8186
  setPosition(position: MappedinNode | MappedinCoordinate, updateCollisionEngine?: boolean): void;
@@ -7838,11 +8252,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
7838
8252
  /**
7839
8253
  * The container element for this marker. This element's position is automatically updated.
7840
8254
  */
7841
- get containerEl(): any;
8255
+ get containerEl(): HTMLDivElement;
7842
8256
  /**
7843
8257
  * The content that was provided when creating this marker.
7844
8258
  */
7845
- get contentEl(): any;
8259
+ get contentEl(): HTMLDivElement;
8260
+ /**
8261
+ * Force an update on the Marker. Call this if the contents of the Marker have changed since
8262
+ * it was created. Otherwise, the Marker may still collide as if it were the original size.
8263
+ */
8264
+ update(): void;
7846
8265
  }
7847
8266
  class MarkersController {
7848
8267
  #private;
@@ -7943,6 +8362,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7943
8362
  colliderDidMount(): void;
7944
8363
  setAction(action: any): void;
7945
8364
  colliderDidNotFindAHome(): void;
8365
+ colliderDidUpdatePosition(pos: any): void;
7946
8366
  colliderDidGoOffscreen(): void;
7947
8367
  colliderDidUpdateVisiblity(): void;
7948
8368
  }
@@ -8076,7 +8496,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8076
8496
  };
8077
8497
  static scale: number;
8078
8498
  static overlayHeight: number;
8079
- static getDefaultMaterial(): any;
8499
+ static getDefaultMaterial(): MeshLambertMaterial;
8080
8500
  static getWeightedCenter(vertices: any): any;
8081
8501
  static getBoundingCentre(vertices: any): {
8082
8502
  x: number;
@@ -8099,7 +8519,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8099
8519
  };
8100
8520
  load(): Promise<this>;
8101
8521
  _addLabel(poly: MappedinPolygon, mapClass: MappedinMap): void;
8102
- static imagesLoadingInProgress: Map<string, Promise<[any, any]>>;
8522
+ static imagesLoadingInProgress: Map<string, Promise<[Texture, MeshLambertMaterial]>>;
8103
8523
  _addImage(polygon: MappedinPolygon, mapClass: MappedinMap): void;
8104
8524
  static _normalizeColor(color: any): number;
8105
8525
  static _getMaterial(color: string, opacity: number, map: MappedinMap['id']): any;
@@ -8108,15 +8528,99 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8108
8528
  export default Element;
8109
8529
  }
8110
8530
 
8111
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.FlippableImage' {
8112
- export default FlippableImage;
8113
- /**
8114
- * @type {any}
8115
- */
8116
- let FlippableImage: any;
8531
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/building' {
8532
+ import { Object3D } from 'three';
8533
+ import { MappedinMap, MappedinMapGroup } from '@mappedin/react-native-sdk/core/packages/get-venue';
8534
+ import type { ICore, MapObject } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8535
+ import { LayerGroup } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
8536
+ class Building {
8537
+ layerGroup: LayerGroup;
8538
+ mapGroup: MappedinMapGroup;
8539
+ defaultMap: MappedinMap;
8540
+ activeMap: MappedinMap;
8541
+ visibleMap?: MappedinMap;
8542
+ readonly startingMap: MappedinMap;
8543
+ baseMap: MappedinMap;
8544
+ object: Object3D;
8545
+ mapObjects: MapObject[];
8546
+ constructor(core: ICore, mapGroup: MappedinMapGroup, layerGroup: LayerGroup, startingMap: MappedinMap, baseMap: MappedinMap);
8547
+ loading: boolean;
8548
+ activeMapOpacity: number;
8549
+ buildingOpacity: number;
8550
+ animating: boolean;
8551
+ /**
8552
+ * Set the opacity of the currently active map in the building
8553
+ */
8554
+ setActiveMapOpacity(opacity: number, duration?: number): void;
8555
+ tweenActiveMapOpacity(targetOpacity: number, duration?: number): void;
8556
+ /**
8557
+ * Set the opacity of the building outline
8558
+ */
8559
+ setBuildingOutlineOpacity(opacity: number): void;
8560
+ get activeMapObject(): MapObject;
8561
+ get defaultMapObject(): MapObject;
8562
+ get baseMapObject(): MapObject;
8563
+ state: string;
8564
+ /**
8565
+ * The building is in view, so we should have the correct map loaded and ready to be displayed
8566
+ */
8567
+ onInView(): void;
8568
+ /**
8569
+ * The building is out of view, so we can safely reset the map to the default map
8570
+ */
8571
+ onOutOfView(): void;
8572
+ setMap(map: MappedinMap): Promise<void>;
8573
+ }
8574
+ export default Building;
8575
+ }
8576
+
8577
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/scene-manager/dynamic-focus-scene-manager/dynamic-focus-scene' {
8578
+ import { Object3D, Box3, Raycaster } from 'three';
8579
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8580
+ import type { ICore, MapObject } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8581
+ import { Building } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8582
+ import { LayerGroup } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
8583
+ class DynamicFocusScene {
8584
+ buildings: Building[];
8585
+ object: Object3D;
8586
+ panBounds: Box3;
8587
+ loaded: boolean;
8588
+ baseMapObject: MapObject;
8589
+ raycasters: Raycaster[];
8590
+ baseMap: MappedinMap;
8591
+ options: {
8592
+ indoorsFullyVisibleZoomLevel: number;
8593
+ buildingFullyVisibleZoomLevel: number;
8594
+ setMapAtZoomLevel: number;
8595
+ baseMap: MappedinMap;
8596
+ preloadDefaultMaps: boolean;
8597
+ };
8598
+ constructor(core: ICore, baseMap: MappedinMap);
8599
+ resize: () => void;
8600
+ buildRaycasters(): void;
8601
+ updateRaycasters(): void;
8602
+ /**
8603
+ * Expand the pan bounds to the base map bounds
8604
+ * In dynamic focus mode, these bounds will be retained no matter which building or map is visible
8605
+ */
8606
+ expandToBaseMapBounds(): void;
8607
+ load(): Promise<void>;
8608
+ currentMap: MappedinMap;
8609
+ setMap(map: MappedinMap, fromUserInteraction?: boolean): Promise<void>;
8610
+ buildingVisiblityMap: Map<Building, boolean>;
8611
+ buildingsByPolygonId: Map<string, Building>;
8612
+ get buildingsInView(): Building[];
8613
+ determineBuildingsInView(): Building[];
8614
+ /** Given zoom and camera position, let's figure out the currently active map */
8615
+ determineCurrentMap(): MappedinMap;
8616
+ setOpacities(buildingsInView?: Building[], centerMap?: MappedinMap): void;
8617
+ createBuildings(buildingGeometries: [string, LayerGroup][]): Promise<Building[]>;
8618
+ }
8619
+ export default DynamicFocusScene;
8117
8620
  }
8118
8621
 
8119
8622
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController' {
8623
+ import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
8120
8624
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8121
8625
  class PolygonColorsController {
8122
8626
  #private;
@@ -8124,6 +8628,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8124
8628
  setPolygonColor(polygon: any, color: any, highlighted?: boolean): void;
8125
8629
  clearPolygonColor(polygon: any): void;
8126
8630
  clearAllPolygonColors(): void;
8631
+ setPolygonOutlineColor(color: string): void;
8632
+ addPolygonOutline(polygon: MappedinPolygon): void;
8633
+ removePolygonOutline(polygon: MappedinPolygon): void;
8634
+ removeAllPolygonOutlines(): void;
8127
8635
  }
8128
8636
  export default PolygonColorsController;
8129
8637
  }
@@ -8142,9 +8650,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8142
8650
  }
8143
8651
 
8144
8652
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/TooltipsController' {
8145
- import { ICore, TCreateTooltipCommonOptions, TCreateTooltipOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8653
+ import { ICore, TCreateTooltipCommonOptions, TCreateTooltipOptions, SmartTooltip } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8146
8654
  import { MappedinNode, MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue';
8147
- import { SmartTooltip } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8148
8655
  class TooltipsController {
8149
8656
  #private;
8150
8657
  constructor(core: ICore);
@@ -8207,118 +8714,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8207
8714
  export default ThreeDMarkersController;
8208
8715
  }
8209
8716
 
8210
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-dot-manager' {
8211
- export const DEFAULT_MIN_RADIUS: 8;
8212
- export const DEFAULT_MAX_RADIUS: 65;
8213
- export const DEFAULT_RADIUS_UPDATE_INTERVAL: 3;
8214
- export default BlueDotManager;
8215
- /**
8216
- * @private
8217
- * An interface for showing a position (typically the user's position) on a 3D map.
8218
- *
8219
- * @class BlueDotManager
8220
- */
8221
- class BlueDotManager extends PubSub {
8222
- /**
8223
- * @param [options.minRadius] The ring around the blue dot will only be drawn if `options.radius` is greater than or equal to this value, in metres. Must be >= 0.
8224
- * @param [options.radiusUpdateInterval] The width of radius update steps, in metres. For example, if interval is 3 and assume `minRadius` is 8, then the radius will be updated on 8, 11, 14, 17, etc. Must be >= 0.
8225
- */
8226
- constructor({ threeDMarkerLayer, core, minRadius, maxRadius, radiusUpdateInterval, radiusTweenOptions, }?: {
8227
- threeDMarkerLayer: any;
8228
- core: any;
8229
- minRadius?: number | undefined;
8230
- maxRadius?: number | undefined;
8231
- radiusUpdateInterval?: number | undefined;
8232
- radiusTweenOptions?: {
8233
- duration: number;
8234
- easing: any;
8235
- } | undefined;
8236
- });
8237
- threeDMarkerLayer: any;
8238
- core: any;
8239
- minRadius: number;
8240
- maxRadius: number;
8241
- radiusUpdateInterval: number;
8242
- radiusTweenOptions: {
8243
- duration: number;
8244
- easing: any;
8245
- };
8246
- /**
8247
- * The current state of the 3D blue dots. Null if blue dot is not currently being displayed.
8248
- */
8249
- state: any;
8250
- /**
8251
- * The last known radius that was set, in the original metres units.
8252
- */
8253
- prevRadius: any;
8254
- /**
8255
- * Used to animate the blue dot accuracy ring size change.
8256
- */
8257
- radiusTween: any;
8258
- /**
8259
- * The last known bearing angle that was set, in degrees.
8260
- */
8261
- prevBearing: any;
8262
- /**
8263
- * Used to animate the blue dot bearing angle change.
8264
- */
8265
- bearingTween: any;
8266
- /**
8267
- The current zoom level, so new dots can be added at the proper size.
8268
- */
8269
- currentX: any;
8270
- /**
8271
- * Calculates the new radius given the candidate value as well as other relevant parameters. @see constructor
8272
- * @param {number} candidateRadius
8273
- */
8274
- computeNewRadius(candidateRadius: number): number;
8275
- updateBlueDotSize(): void;
8276
- setBlueDotSizeFromZoom(cameraX: any): void;
8277
- /**
8278
- * Update the state of the 3D blue dot, creating blue dots if necessary.
8279
- *
8280
- * @method update
8281
- * @param {Object} options
8282
- * @param {Coordinates} options.coordinates The lat-long coordinates for the blue dot. Follows the Coordinates Web API.
8283
- * @param {string} [options.mode]
8284
- * @param {number} [options.bearing] The angle in degrees around the blue dot at which the bearing indicator should appear.
8285
- * @param {number} options.radius The outer radius of the blue dot, in metres.
8286
- * @param {string} [options.mapId] The primary map of the blue dot. Specify this or options.map.
8287
- * @param {MapObject} [options.map] The primary map of the blue dot. Specify this or options.mapId.
8288
- * @param {number} [options.minRadius] The ring around the blue dot will only be drawn if `options.radius` is greater than or equal to this value. Must be >= 0.
8289
- * @param {number} [options.minRadiusDelta] The minimum amount by which the radius must change in order for the blue dot ring radius to be updated. Must be >= 0.
8290
- * @param {string} [options.baseColor] Base Color of Active Blue Dot that we use to interpolate into other variants
8291
- */
8292
- update(options: {
8293
- coordinates: any;
8294
- mode?: string | undefined;
8295
- bearing?: number | undefined;
8296
- radius: number;
8297
- mapId?: string | undefined;
8298
- map?: any;
8299
- minRadius?: number | undefined;
8300
- minRadiusDelta?: number | undefined;
8301
- baseColor?: string | undefined;
8302
- }): void;
8303
- blueDots: any[] | undefined;
8304
- positionTween: any;
8305
- currentPositionLatLon: any;
8306
- animateBearing(fromBearing: any, toBearing: any): void;
8307
- setBearing(bearing: any): void;
8308
- getBlueDotForMap(mapOrMapId: any): any;
8309
- /**
8310
- * Remove the 3D blue dot from the maps.
8311
- *
8312
- * @method cleanup
8313
- */
8314
- cleanup(): void;
8315
- }
8316
- import { PubSub } from "@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub";
8317
- }
8318
-
8319
8717
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/EventSystem' {
8320
8718
  import { Object3D, Color } from 'three';
8321
- import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8719
+ import type { ICore, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8322
8720
  import { BlueDotManager, Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8323
8721
  class EventSystem {
8324
8722
  core: ICore;
@@ -8376,6 +8774,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8376
8774
  detectCollidersUnderMouse: () => any[];
8377
8775
  detectPolygonsUnderMouse: () => string[];
8378
8776
  detectPathsUnderMouse: () => Path[];
8777
+ detectWatermarkUnderMouse: () => boolean;
8379
8778
  detectMapsUnderMouse: () => any;
8380
8779
  getMouseMapPosition: () => {
8381
8780
  x: number;
@@ -8383,36 +8782,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8383
8782
  };
8384
8783
  checkMouseIntersectsBlueDot: () => boolean;
8385
8784
  doHoverEffect: () => void;
8386
- onPolygonHoverOut: (polygonId: any) => false | undefined;
8387
- onPolygonHoverOver: (polygon: any) => false | undefined;
8785
+ onPolygonHoverOut: (polygonId: string) => boolean;
8786
+ onPolygonHoverOver: (polygon: MappedinPolygon | string) => boolean;
8388
8787
  setHoverColor: (color: string) => void;
8389
8788
  destroy(): void;
8390
8789
  }
8391
8790
  export default EventSystem;
8392
8791
  }
8393
8792
 
8394
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.ClosedPolygonManager' {
8395
- export default ClosedPolygonManager;
8396
- class ClosedPolygonManager {
8397
- constructor({ scene, getPolygonMeshFromId, tryRendering }: {
8398
- scene: any;
8399
- getPolygonMeshFromId: any;
8400
- tryRendering: any;
8401
- });
8402
- scene: any;
8403
- getPolygonMeshFromId: any;
8404
- tryRendering: any;
8405
- stencilSheet: any;
8406
- polygonsMarkedAsClosed: {};
8407
- onMapChanged(map: any): void;
8408
- currentMap: any;
8409
- dispose(): void;
8410
- markPolygonAsClosed(polygonId: any): void;
8411
- markPolygonAsOpen(polygonId: any): void;
8412
- markAllPolygonsAsOpen(): void;
8413
- }
8414
- }
8415
-
8416
8793
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BinaryAssetManager' {
8417
8794
  import { Texture } from 'three';
8418
8795
  /**
@@ -8480,6 +8857,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8480
8857
  remove: (colliderId: string) => void;
8481
8858
  updateMap: (colliderId: string, from: string, to: string) => void;
8482
8859
  update: () => void;
8860
+ debouncedUpdate: any;
8483
8861
  resize: (container: any) => void;
8484
8862
  destroy: () => void;
8485
8863
  }
@@ -8563,17 +8941,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8563
8941
  nodes: MappedinNode[];
8564
8942
  };
8565
8943
  options: {
8566
- zoom?: number | undefined;
8944
+ zoom?: number;
8567
8945
  tilt: number;
8568
8946
  rotation: number;
8569
- position?: MappedinNode | import("../../internal").MappedinCoordinate | undefined;
8947
+ position?: MappedinNode | import("../../internal").MappedinCoordinate;
8570
8948
  easing: CAMERA_EASING_MODE;
8571
8949
  };
8572
8950
  };
8573
- })[] | undefined;
8951
+ })[];
8574
8952
  getDisableOptions: (params: TParams) => (MapViewScene | {
8575
8953
  activeMap: MappedinMap;
8576
- })[] | undefined;
8954
+ })[];
8577
8955
  getShowOverviewOptions: (params: TParams) => (MapViewStackScene | {
8578
8956
  activeMap: MappedinMap;
8579
8957
  focusOn: {
@@ -8582,8 +8960,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8582
8960
  duration: number;
8583
8961
  };
8584
8962
  };
8585
- verticalDistanceBetweenMaps: number | undefined;
8586
- })[] | undefined;
8963
+ verticalDistanceBetweenMaps: number;
8964
+ })[];
8587
8965
  getScrollToMapOptions: (params: TParams) => (MapViewStackScene | {
8588
8966
  focusOn: {
8589
8967
  targets: {
@@ -8594,620 +8972,84 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/contro
8594
8972
  easing: CAMERA_EASING_MODE;
8595
8973
  };
8596
8974
  };
8597
- activeMap: MappedinMap;
8598
- })[] | undefined;
8599
- getEnableOptions: (params: TParams) => void;
8600
- getShowOverviewTransition: (options: any) => () => Promise<void>;
8601
- getZoomInToMapTransition: (options: any) => () => Promise<void>;
8602
- getScrollToMapTransition: (options: any) => () => Promise<void>;
8603
- getDisableTransition: (options: any) => () => Promise<void>;
8604
- getEnableTransition: () => () => void;
8605
- states: TState;
8606
- transition(currentState: STACKED_MAPS_STATE, actionName: ACTION): TTargetTransitionFunction[] | void;
8607
- exec(transitions: TTargetTransitionFunction[] | void, params: TParams): Promise<void>;
8608
- disable: () => Promise<void>;
8609
- enable: (opts?: {
8610
- verticalDistanceBetweenMaps?: number | undefined;
8611
- } | undefined) => Promise<void>;
8612
- get nodesInJourney(): MappedinNode[];
8613
- showOverview: () => Promise<void>;
8614
- scrollToMap: (map: MappedinMap) => Promise<void>;
8615
- zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform | undefined) => Promise<void>;
8616
- get currentMap(): MappedinMap;
8617
- }
8618
- export default StackedMapsController;
8619
- }
8620
-
8621
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.ui' {
8622
- import { IBlueDotCore, BlueDotManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8623
- import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
8624
- import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
8625
- enum ZOOM_CONDITION {
8626
- EXPIRED = 0,
8627
- IN_PROGRESS = 1,
8628
- COMPLETED = 2
8629
- }
8630
- export interface IBlueDotUI extends IPubSub {
8631
- blueDotTooltips: any[];
8632
- setBlueDotPosition: () => void;
8633
- showBlueDotBearing: () => void;
8634
- addGhostMarkers: () => void;
8635
- addLocationUncertainMarkersAndTooltips: () => void;
8636
- addBlueDotMarker: () => void;
8637
- removeTooltips: () => void;
8638
- removeBlueDot: () => void;
8639
- centerBlueDot: () => void;
8640
- endFollowing: () => void;
8641
- zoomCondition: ZOOM_CONDITION;
8642
- isFollowing: boolean;
8643
- useRotationMode: boolean;
8644
- }
8645
- type TBlueDotUIProps = {
8646
- core: ICore;
8647
- blueDotManager: BlueDotManager;
8648
- controller: IBlueDotCore;
8649
- data: any;
8650
- };
8651
- const BlueDotUI: ({ core, blueDotManager, controller }: TBlueDotUIProps) => IBlueDotUI;
8652
- export default BlueDotUI;
8653
- }
8654
-
8655
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/utils' {
8656
- /**
8657
- * Utils function listing
8658
- *
8659
- * - scrubMaterial
8660
- * - getDeviceID
8661
- * - getSessionID
8662
- * - getObjectID
8663
- * - getObject
8664
- * - getBoundingBox
8665
- * - getBiggestBoundingBox
8666
- * - upackBoundingBox
8667
- * - getMapScale
8668
- * - throttle -> taken from lodash.js
8669
- * - getProjectionScaleFactor
8670
- * - getZoom
8671
- */
8672
- export function isGatewayKey(key: any): boolean;
8673
- export function getCombinedBoundingBox(objects: any): any;
8674
- export function getMapsBoundingBox(maps: any, mapPadding: any): any;
8675
- export function scrubMaterial(material: any): void;
8676
- export function getDeviceID(): string;
8677
- export function getSessionID(): string;
8678
- export function getObjectId(object: any): any;
8679
- export function getObject(obj: any, array: any): any;
8680
- export function getBoundingBox(object: any): any;
8681
- export function getBiggestBoundingBox(objects: any): {
8682
- min: any;
8683
- max: any;
8684
- };
8685
- export function unpackBoundingBox(boundingBox: any): any[];
8686
- export function getMapScale(map: any): number;
8687
- export function getNorth(map: any): number;
8688
- export function throttle(func: any, wait: any, options: any): (...args: any[]) => any;
8689
- export function debounce(func: any, wait: any, immediate: any): (...args: any[]) => void;
8690
- export function flatten(list: any): any;
8691
- export function uniq(arr: any): any;
8692
- export function toStyleString(styles: any): string;
8693
- /**
8694
- /* getProjectionScaleFactor()
8695
- /* finds the scale ratio between screen coordinates and 3D coordinates (in X-Z plane)
8696
- /*
8697
- * R
8698
- * /|
8699
- * C : Camera / |
8700
- * PQ : Projection Plane / |
8701
- * OR : Origin / |
8702
- * F : FOV / |
8703
- * Q / |
8704
- * /| |
8705
- * / | |
8706
- * / | |
8707
- * / | |
8708
- * / | |
8709
- * / F/2 | |
8710
- * C ------------P------------ O
8711
- *
8712
- *
8713
- * ProjectionScaleFactor = ( OR / PQ )
8714
- * PQ = canvasHeight / 2
8715
- * CQ = zoom
8716
- *
8717
- * OR / C0 = tan(F/2)
8718
- * so OR = CO * tan(F/2)
8719
- */
8720
- export function getProjectionScaleFactor(FOV: any, canvasHeight: any, zoom: any): number;
8721
- /** getZoom
8722
- *
8723
- * C - Camera, OP -- picture plane (canvas), S - origin,
8724
- * QR - front side of maps Bounding Box, F: FOV
8725
- *
8726
- * Z-axis
8727
- * R_____|______
8728
- * /| | |
8729
- * / | | |
8730
- * P/ | | | maps BB
8731
- * /| | | |
8732
- * / | | | |
8733
- * / | | | |
8734
- * / F |E |T |S |
8735
- * C /--------|-----|-----|-----|------ orthogonal to Y axis, midpoint of focus maps
8736
- * \ | | | |
8737
- * \ | | | |
8738
- * \ | | | |
8739
- * \ | | | |
8740
- * \| | | |
8741
- * O\ | | |
8742
- * \ | | |
8743
- * \|_____|_____|
8744
- * Q
8745
- *
8746
- *
8747
- * We want to get CS, which is the camera zoom
8748
- *
8749
- */
8750
- export function getZoom(focusBox: any, focusBoxHeight: any, FOV: any): any;
8751
- export function calculateTwoDProjections({ maps, width, height, camera }: {
8752
- maps: any;
8753
- width: any;
8754
- height: any;
8755
- camera: any;
8756
- }): any;
8757
- export function splitLine(startNode: any, endNode: any, segments: any): any[];
8758
- export function isObject(item: any): any;
8759
- export function cyrb53(str: any, seed?: number): number;
8760
- export function addMarginMultiplierToBoundingBox(bbox: any, multiplier: any): any;
8761
- export function tweenPromise({ from, to, duration, easing, delay, onUpdate, onStart, onComplete, }: {
8762
- from: any;
8763
- to: any;
8764
- duration?: number | undefined;
8765
- easing?: any;
8766
- delay?: number | undefined;
8767
- onUpdate?: ((_: any) => void) | undefined;
8768
- onStart?: (() => void) | undefined;
8769
- onComplete?: (() => void) | undefined;
8770
- }): {
8771
- start(core: any): Promise<any>;
8772
- };
8773
- export function getPrimaryLocationForPolygon(polygon: any, venue: any): any;
8774
- export function determineStartingMap(venue: any, options: any): any;
8775
- }
8776
-
8777
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapManager' {
8778
- export default MapManager;
8779
- class MapManager extends PubSub {
8780
- constructor(polygonMeshesById: any, renderer: any, core: any, taskScheduler: any, loadOptions?: {});
8781
- mapObjects: Map<any, any>;
8782
- currentMap: undefined;
8783
- object: any;
8784
- _showCount: number;
8785
- _mapObjectsSortedByElevationDirty: boolean;
8786
- expanded: boolean;
8787
- polygonMeshesById: any;
8788
- core: any;
8789
- renderer: any;
8790
- loadOptions: {};
8791
- addMap(mapClass: any, callback?: () => void): any;
8792
- setMap(mapClassOrId: any, callback: any): Promise<any>;
8793
- removeMap(mapClassOrId: any): void;
8794
- removeAllMaps(): void;
8795
- loadMaps(maps: any, startingMap: any, onFirstMapLoaded?: () => void, onDataLoaded?: () => void, onError?: () => void): void;
8796
- /**
8797
- * Expand maps to display within view, typically used for multi-floor navigation. When passed a connection, maps included will not be displayed, instead, their 2d projection
8798
- will be available in the resulting promise, which can be used to display a 2D component in the client-side app.
8799
- *
8800
- * @method expandMaps
8801
- * @param mapIds {Array} Array of mapIds or mapObjects to display while expanded. For connections, pass &#123; connection: true, maps: [], connectionNodes: [], &#125;
8802
- * @param options {Object} Options object @optional
8803
- @param [options.focus=false] {Boolean} Focus the camera onto expanded maps
8804
- @param [options.debug=false] {Boolean} Display cubes around focus bounding box for debug info
8805
- @param [options.rotation=0] {Number} Rotation of scene relative to zero (degrees)
8806
- @param [options.duration=300] {Number} Duration of focus animation in ms
8807
- @returns {Promise} Promise that resolves to 2d screen projections of each layer/map (see example)
8808
- @example
8809
- // expand maps with 3 connection maps in between
8810
- expandMaps(
8811
- '55e89771d982bc06ca000000',
8812
- {
8813
- connection: true,
8814
- // connection nodes are an exit node from the '55e89771' man and entry node for the '55e9c73f' map
8815
- connectionNodes: [{
8816
- map: "55e89771",
8817
- x: 6232,
8818
- y: 4575
8819
- }, {
8820
- map: "55e9c73",
8821
- x: 5945.000000000001,
8822
- y: 4059.000000000001
8823
- }],
8824
- maps: [
8825
- '55e9acbf',
8826
- '55e8a9ed',
8827
- '55e85e23'
8828
- ]
8829
- },
8830
- '55e9c73f'
8831
- );
8832
-
8833
- // resulting promise (sorted by elevation (top to bottom))
8834
-
8835
- [
8836
- {
8837
- min: { x: -100, y: -50 },
8838
- max: { x: -100, y: -50 }
8839
- },
8840
- {
8841
- min: { x: -100, y: -50 },
8842
- max: { x: -100, y: -50 }
8843
- },
8844
- {
8845
- min: { x: -100, y: -50 },
8846
- max: { x: -100, y: -50 }
8847
- }
8848
- ]
8849
- */
8850
- expandMaps(mapsToExpand: any, options: any): Promise<any>;
8851
- /**
8852
- * Contract maps and display the current map
8853
- *
8854
- * @method contractMaps
8855
- * @param options {Object} Options object @optional
8856
- @param [options.focus] {Boolean} Focus the camera onto current map
8857
- @param [options.debug] {Boolean} Display cubes around focus bounding box for debug info
8858
- @param [options.duration=300] {Number} Duration of focus animation in ms
8859
- */
8860
- contractMaps(options?: any): Promise<any>;
8861
- expandPanBounds(bounds: any): void;
8862
- /**
8863
- * This can be used to invoke a callback function for _every_ set map invocation.
8864
- * @param {Function} cb callback function
8865
- */
8866
- addPersistentSetMapCallback(cb: Function): void;
8867
- persistentSetMapCallbacks: any;
8868
- setMapCallbacks: any[] | undefined;
8869
- get mapObjectsSortedByElevation(): any[];
8870
- _mapObjectsSortedByElevation: any[] | undefined;
8871
- get visibleMaps(): any[];
8872
- getCompoundBoundingBoxPoints(objects: any): any[];
8873
- multiFloorView: MultiFloorView | undefined;
8874
- renderedMaps: any[] | undefined;
8875
- projections: any[] | undefined;
8876
- mapsFullyLoaded(callback?: () => void): Promise<void>;
8877
- /**
8878
- * Scroll maps up
8879
- * This will shift maps down to show next one (above)
8880
- */
8881
- scrollMapsUp(): Promise<any>;
8882
- /**
8883
- * Scroll maps down
8884
- * This will shift maps up to show next one (below)
8885
- */
8886
- scrollMapsDown(): Promise<any>;
8887
- tiltMaps(tilt: any): void;
8888
- resize(): void;
8889
- }
8890
- import { PubSub } from "@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub";
8891
- import MultiFloorView from "@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MultiFloorView";
8892
- }
8893
-
8894
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.DebugUI' {
8895
- /**
8896
- * A DOM element that can be populated with performance information.
8897
- *
8898
- * @class DebugUI
8899
- * @private
8900
- */
8901
- export default class DebugUI {
8902
- _element: HTMLDivElement;
8903
- _titleElement: HTMLSelectElement;
8904
- _minimizeElement: HTMLButtonElement;
8905
- _performancePanelElement: HTMLDivElement;
8906
- _performanceEntries: Map<any, any>;
8907
- _sortedPerformanceEntryNames: any[];
8908
- _overviewGraph: LineGraph;
8909
- _controlPanels: Map<any, any>;
8910
- _sortedControlPanelNames: any[];
8911
- _minimized: boolean;
8912
- destroy(): void;
8913
- /**
8914
- * Return the DOM element used by this `DebugUI`, which may be
8915
- * added as a child of any other DOM element to display it.
8916
- *
8917
- * @method element
8918
- * @return {Element} the ui's root element
8919
- */
8920
- get element(): Element;
8921
- /**
8922
- * Log the given entries to this performance logger, and update the display
8923
- * accordingly. If a given key isn't already being logged, an entry will be
8924
- * added for it. If a key is being logged but isn't reported, it will be
8925
- * treated as if it had a value of `0` reported.
8926
- *
8927
- * @method reportFramePerformance
8928
- * @param {string -> number} entries the most recent recorded values for each
8929
- * named frame update
8930
- */
8931
- reportFramePerformance(entries: any): void;
8932
- /**
8933
- * Add the given controls to the given panels. More efficient than adding
8934
- * controls one-by-one since it only recomputes positions after all controls
8935
- * are added.
8936
- *
8937
- * @method addDebugControls
8938
- * @param {category: string: [{name: string, description: string, control: DebugUIControl}]} categories
8939
- * a mapping from category to a list of control names and controls
8940
- */
8941
- addDebugControls(categories: any): void;
8942
- /**
8943
- * Add the given control to a panel.
8944
- *
8945
- * @method addDebugControl
8946
- * @param {string} category the name of the panel the control will be put under
8947
- * @param {string} name the name of the control
8948
- * @param {string} description a description for the control (tooltip)
8949
- * @param {DebugUIControl} control the control to add to the panel
8950
- */
8951
- addDebugControl(category: string, name: string, description: string, control: any): void;
8952
- /**
8953
- * Remove the given controls from the UI.
8954
- *
8955
- * @method removeDebugControls
8956
- * @param {category: string: [name: string]} categories
8957
- * a mapping from category to a list of control names to remove
8958
- */
8959
- removeDebugControls(categories: any): void;
8960
- /**
8961
- * Remove the given control from a panel.
8962
- *
8963
- * @method removeDebugControl
8964
- * @param {string} category the name of the panel the control will be put under
8965
- * @param {string} name the name of the control
8966
- */
8967
- removeDebugControl(category: string, name: string): void;
8968
- _addDebugControl(category: any, name: any, description: any, control: any): void;
8969
- _removeDebugControl(category: any, name: any): void;
8970
- _onMinimizeClicked(): void;
8971
- _onCategoryChanged(): void;
8972
- }
8973
- /**
8974
- * A graph on a HTML canvas element that will display the values in the given
8975
- * time series.
8976
- *
8977
- * @class LineGraph
8978
- * @private
8979
- */
8980
- class LineGraph {
8981
- /**
8982
- * Return a new `LineGraph` displaying information from the given list of
8983
- * time series.
8984
- *
8985
- * @constructor
8986
- * @param {[TimeSeries]} seriesList the list of time series that will be
8987
- * displayed on this graph.
8988
- * @param {number} width the width of this canvas element, in pixels
8989
- * @param {number} height the width of this canvas element, in pixels
8990
- */
8991
- constructor({ seriesList, width, height }: [TimeSeries]);
8992
- _gradients: Map<any, any>;
8993
- _canvas: HTMLCanvasElement;
8994
- _context: CanvasRenderingContext2D | null;
8995
- destroy(): void;
8996
- /**
8997
- * @method element
8998
- * @return {Element} DOM element that can be added to display this graph
8999
- */
9000
- get element(): Element;
9001
- /**
9002
- * Clear this canvas and re-draw the time series lines.
9003
- *
9004
- * @method redraw
9005
- */
9006
- redraw(): void;
9007
- /**
9008
- * Set the list of time series that this graph displays.
9009
- *
9010
- * @method setSeriesList
9011
- * @param {[TimeSeries]} series series to display
9012
- */
9013
- setSeriesList(series: [TimeSeries]): void;
9014
- _seriesList: [TimeSeries] | undefined;
8975
+ activeMap: MappedinMap;
8976
+ })[];
8977
+ getEnableOptions: (params: TParams) => void;
8978
+ getShowOverviewTransition: (options: any) => () => Promise<void>;
8979
+ getZoomInToMapTransition: (options: any) => () => Promise<void>;
8980
+ getScrollToMapTransition: (options: any) => () => Promise<void>;
8981
+ getDisableTransition: (options: any) => () => Promise<void>;
8982
+ getEnableTransition: () => () => void;
8983
+ states: TState;
8984
+ transition(currentState: STACKED_MAPS_STATE, actionName: ACTION): TTargetTransitionFunction[] | void;
8985
+ exec(transitions: TTargetTransitionFunction[] | void, params: TParams): Promise<void>;
8986
+ disable: () => Promise<void>;
8987
+ enable: (opts?: {
8988
+ verticalDistanceBetweenMaps?: number;
8989
+ }) => Promise<void>;
8990
+ get nodesInJourney(): MappedinNode[];
8991
+ showOverview: () => Promise<void>;
8992
+ scrollToMap: (map: MappedinMap) => Promise<void>;
8993
+ zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
8994
+ get currentMap(): MappedinMap;
9015
8995
  }
9016
- /**
9017
- * A time series that averages values that are reported to it and inserts them
9018
- * into a ring buffer.
9019
- *
9020
- * @class TimeSeries
9021
- * @private
9022
- */
9023
- class TimeSeries {
9024
- constructor({ windowSize, totalAccumulationCount, hue, }: {
9025
- windowSize?: number | undefined;
9026
- totalAccumulationCount?: number | undefined;
9027
- hue?: number | undefined;
9028
- });
9029
- windowSize: number;
9030
- hue: number;
9031
- _totalAccumulationCount: number;
9032
- _ringBuffer: any[];
9033
- _ringBufferLength: number;
9034
- _ringBufferPointer: number;
9035
- _accumulatorValue: number;
9036
- _accumulatorCount: number;
9037
- _changed: boolean;
9038
- destroy(): void;
9039
- /**
9040
- * Incorporate the given value into the time series. This will accumulate up
9041
- * to `LINE_GRAPH_ACCUMULATION_COUNT` values, at which point they will be
9042
- * averaged and inserted into the time series. If the number of averaged entries
9043
- * exceeds `LINE_GRAPH_WINDOW_SIZE`, the ring buffer will drop the oldest
9044
- * entry.
9045
- *
9046
- * This will set the `changed()` flag if an accumulated value has been added
9047
- * to the ring buffer.
9048
- *
9049
- * @method report
9050
- * @param {number} value the value to add to the time series
9051
- */
9052
- report(value: number): void;
9053
- /**
9054
- * Return the entry at the given index in the ring buffer. The value
9055
- * at `length - 1` is the most recently accumulated value.
9056
- *
9057
- * @method at
9058
- * @param {number} i the index to retrieve
9059
- * @return {number} the accumulated value at the given index
9060
- */
9061
- at(i: number): number;
9062
- /**
9063
- * @method maximumValue
9064
- * @return {number} the maximum value in this time series
9065
- */
9066
- maximumValue(): number;
8996
+ export default StackedMapsController;
8997
+ }
8998
+
8999
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/LayerController' {
9000
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
9001
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
9002
+ class LayerController {
9003
+ #private;
9004
+ constructor(core: ICore);
9067
9005
  /**
9068
- * Return true if this time series has changed since the previous `report()`
9069
- * invocation.
9070
- *
9071
- * @method changed
9072
- * @return {boolean}
9006
+ * Show a set of layers on the current map, and hide all other layers. This also hides any colliders associated with the hidden layers.
9073
9007
  */
9074
- changed(): boolean;
9008
+ showLayers(layers: string[]): void;
9009
+ getAllLayersForMap(map: MappedinMap): Promise<{
9010
+ [layerName: string]: boolean;
9011
+ }>;
9075
9012
  /**
9076
- * Return the number of accumulated values in this time series. Will never
9077
- * exceed `LINE_GRAPH_WINDOW_SIZE`.
9078
- *
9079
- * @return {number} number of accumulated entries
9013
+ * Return a list of all visible layers for a map, this will NOT trigger a map load, and is mainly used internally
9014
+ * which is why its synchronous
9080
9015
  */
9081
- get length(): number;
9016
+ getVisibleLayersForLoadedMap(map: MappedinMap): string[];
9082
9017
  }
9083
- export {};
9018
+ export default LayerController;
9084
9019
  }
9085
9020
 
9086
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.DebugUIControl' {
9087
- export class DebugUIScalarSlider {
9088
- constructor({ minimum, maximum, step, current, onValueChanged }: {
9089
- minimum: any;
9090
- maximum: any;
9091
- step: any;
9092
- current: any;
9093
- onValueChanged: any;
9094
- });
9095
- _minimum: any;
9096
- _maximum: any;
9097
- _step: any;
9098
- _onValueChanged: any;
9099
- _element: HTMLInputElement;
9100
- destroy(): void;
9101
- addValueChangedListener(listener: any): void;
9102
- setValue(value: any): void;
9103
- get element(): HTMLInputElement;
9104
- get value(): string;
9105
- get displayedValue(): string;
9106
- get height(): number;
9107
- }
9108
- export class DebugUICheckbox {
9109
- constructor({ current, onValueChanged }: {
9110
- current: any;
9111
- onValueChanged: any;
9112
- });
9113
- _onValueChanged: any;
9114
- _element: HTMLDivElement;
9115
- _titleElement: HTMLInputElement;
9116
- destroy(): void;
9117
- addValueChangedListener(listener: any): void;
9118
- get element(): HTMLDivElement;
9119
- get titleElement(): HTMLInputElement;
9120
- get value(): boolean;
9121
- get displayedValue(): "true" | "false";
9122
- get height(): number;
9123
- get titleElementWidth(): number;
9124
- }
9125
- export class DebugUIDropdown {
9126
- constructor({ values, current, onValueChanged }: {
9127
- values: any;
9128
- current: any;
9129
- onValueChanged: any;
9130
- });
9131
- _values: any;
9132
- _onValueChanged: any;
9133
- _element: HTMLSelectElement;
9134
- destroy(): void;
9135
- addValueChangedListener(listener: any): void;
9136
- get element(): HTMLSelectElement;
9137
- get value(): string;
9138
- get displayedValue(): string;
9139
- get height(): number;
9140
- }
9141
- export class DebugUIButton {
9142
- constructor({ label, onClick }: {
9143
- label: any;
9144
- onClick: any;
9145
- });
9146
- _onClick: any;
9147
- _element: HTMLButtonElement;
9148
- destroy(): void;
9149
- addValueChangedListener(): void;
9150
- addClickListener(listener: any): void;
9151
- get element(): HTMLButtonElement;
9152
- get value(): string;
9153
- get displayedValue(): string;
9154
- get height(): number;
9155
- }
9156
- export class DebugUIColorPicker {
9157
- constructor({ current, onValueChanged }: {
9158
- current: any;
9159
- onValueChanged: any;
9160
- });
9161
- _onValueChanged: any;
9162
- _element: HTMLDivElement;
9163
- _titleElement: HTMLDivElement;
9164
- _color: any;
9165
- _listeners: any[];
9166
- _colorPickerMain: HTMLCanvasElement;
9167
- _colorPickerBottomSlider: HTMLCanvasElement;
9168
- _requestAnimationFrameHandle: number | null;
9169
- _requestAnimationFrameUpdate(): void;
9170
- _pickingMain: boolean;
9171
- _pickingX: number;
9172
- _pickingY: number;
9173
- _moveListener: (e: any) => void;
9174
- _upListener: any;
9175
- _pickingBottomSlider: boolean;
9176
- _bottomMoveListener: (e: any) => void;
9177
- _bottomUpListener: any;
9178
- _mode: string;
9179
- _modeButtons: {};
9180
- destroy(): void;
9181
- _destroyed: boolean | undefined;
9182
- addValueChangedListener(listener: any): void;
9183
- setValue(color: any): void;
9184
- _requestAnimationFrame(): void;
9185
- _notify(): void;
9186
- _updateMain(x: any, y: any): void;
9187
- _updateBottomSlider(x: any): void;
9188
- redraw(): void;
9189
- get element(): HTMLDivElement;
9190
- get titleElement(): HTMLDivElement;
9191
- get value(): any;
9192
- get displayedValue(): string;
9193
- get height(): number;
9194
- get titleElementWidth(): number;
9195
- }
9196
- export class DebugUIPanel {
9197
- constructor({ name }: {
9198
- name: any;
9199
- });
9200
- _name: any;
9201
- _element: HTMLDivElement;
9202
- _entries: any[];
9203
- _height: number;
9204
- destroy(): void;
9205
- get element(): HTMLDivElement;
9206
- get height(): number;
9207
- addControl(name: any, description: any, control: any): void;
9208
- removeControl(name: any): void;
9209
- _updateLayout(): void;
9021
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.ui' {
9022
+ import { IBlueDotCore, BlueDotManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9023
+ import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
9024
+ import type { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9025
+ enum ZOOM_CONDITION {
9026
+ EXPIRED = 0,
9027
+ IN_PROGRESS = 1,
9028
+ COMPLETED = 2
9029
+ }
9030
+ export interface IBlueDotUI extends IPubSub {
9031
+ blueDotTooltips: any[];
9032
+ setBlueDotPosition: () => void;
9033
+ showBlueDotBearing: () => void;
9034
+ addGhostMarkers: () => void;
9035
+ addLocationUncertainMarkersAndTooltips: () => void;
9036
+ addBlueDotMarker: () => void;
9037
+ removeTooltips: () => void;
9038
+ removeBlueDot: () => void;
9039
+ centerBlueDot: () => void;
9040
+ endFollowing: () => void;
9041
+ zoomCondition: ZOOM_CONDITION;
9042
+ isFollowing: boolean;
9043
+ useRotationMode: boolean;
9210
9044
  }
9045
+ type TBlueDotUIProps = {
9046
+ core: ICore;
9047
+ blueDotManager: BlueDotManager;
9048
+ controller: IBlueDotCore;
9049
+ data: any;
9050
+ };
9051
+ const BlueDotUI: ({ core, blueDotManager, controller }: TBlueDotUIProps) => IBlueDotUI;
9052
+ export default BlueDotUI;
9211
9053
  }
9212
9054
 
9213
9055
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView' {
@@ -9227,6 +9069,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9227
9069
  import { BlueDot } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/BlueDot';
9228
9070
  import { Camera } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera';
9229
9071
  import { StackedMaps } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/StackedMaps';
9072
+ import OutdoorView from '@mappedin/react-native-sdk/core/packages/renderer/public/api/OutdoorView';
9073
+ import { Layers } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Layers';
9074
+ import { DynamicFocus } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus';
9075
+ import { TN8AOConfiguration } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.EffectComposer';
9230
9076
  /**
9231
9077
  * Primary API class for controlling and interacting with a 3D map.
9232
9078
  */
@@ -9265,9 +9111,24 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9265
9111
  */
9266
9112
  options: TMapViewOptions;
9267
9113
  /**
9114
+ * @experimental
9268
9115
  * API for showing multiple maps as a vertical stack.
9269
9116
  */
9270
9117
  StackedMaps: StackedMaps;
9118
+ /**
9119
+ * @experimental
9120
+ * API to control outdoor context rendering.
9121
+ */
9122
+ OutdoorView: OutdoorView;
9123
+ /**
9124
+ * API to control layer visibility.
9125
+ */
9126
+ Layers: Layers;
9127
+ /**
9128
+ * @experimental
9129
+ * API to dynamically set the map focus as you pan over map groups.
9130
+ */
9131
+ DynamicFocus?: DynamicFocus;
9271
9132
  /**
9272
9133
  * @hidden
9273
9134
  */
@@ -9281,7 +9142,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9281
9142
  * @deprecated Please use {@link FloatingLabels.labelAllLocations} or {@link FlatLabels.labelAllLocations} instead.
9282
9143
  * This may be removed in a future version of the SDK. The array this returns is now always empty.
9283
9144
  */
9284
- labelAllLocations(options?: TLabelAllLocationFloatingLabelOptions | TLabelAllLocationFlatLabelOptions): never[];
9145
+ labelAllLocations(options?: TLabelAllLocationFloatingLabelOptions | TLabelAllLocationFlatLabelOptions): any[];
9285
9146
  /**
9286
9147
  * Get the nearest {@link MappedinNode} on a map to an XY-coordinate on the screen.
9287
9148
  * This can be useful for generating directions from an arbitrary point on the map.
@@ -9422,6 +9283,71 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9422
9283
  * ```
9423
9284
  */
9424
9285
  clearAllPolygonColors(): void;
9286
+ /**
9287
+ * @experimental
9288
+ * Sets a color that the outline of a {@link MappedinPolygon} instance will receive.
9289
+ * If no color is set the outline will default to red (#ff0000). See also {@link addPolygonOutline},
9290
+ * {@link removePolygonOutline} and {@link removeAllPolygonOutlines}.
9291
+ *
9292
+ * ```ts
9293
+ * mapView.setPolygonOutlineColor("#0000ff");
9294
+ * ```
9295
+ *
9296
+ * @param color The color to set the outline to.
9297
+ */
9298
+ setPolygonOutlineColor(color: string): void;
9299
+ /**
9300
+ * @experimental
9301
+ * Given a {@link MappedinPolygon}, the polygon will be outlined. The outline color of the polygon is
9302
+ * set using {@link setPolygonOutlineColor}, the default color is red (#ff0000). See also
9303
+ * {@link removePolygonOutline} and {@link removeAllPolygonOutlines}.
9304
+ *
9305
+ * ```ts
9306
+ * // Find the polygons of the Apple store and change them to blue
9307
+ * const location = mapView.venue.locations.find((l) => l.name === "Apple")!;
9308
+ * for (const polygon of location.polygons) {
9309
+ * mapView.addPolygonOutline(polygon);
9310
+ * }
9311
+ * ```
9312
+ *
9313
+ * @param polygon The {@link MappedinPolygon} to outline.
9314
+ */
9315
+ addPolygonOutline(polygon: MappedinPolygon): void;
9316
+ /**
9317
+ * @experimental
9318
+ * Removes the outline on a {@link MappedinPolygon}. See also {@link setPolygonOutlineColor},
9319
+ * {@link addPolygonOutline} and {@link removeAllPolygonOutlines}.
9320
+ *
9321
+ * ```ts
9322
+ * mapView.setPolygonOutlineColor("#0000ff");
9323
+ * mapView.addPolygonOutline(polygon);
9324
+ *
9325
+ * ...
9326
+ *
9327
+ * // Remove the outline from the polygon
9328
+ * mapView.removePolygonOutline(polygon);
9329
+ * ```
9330
+ *
9331
+ * @param polygon The {@link MappedinPolygon} to remove the outline of.
9332
+ */
9333
+ removePolygonOutline(polygon: MappedinPolygon): void;
9334
+ /**
9335
+ * @experimental
9336
+ * Removes outlines on all {@link MappedinPolygon} instances. See also {@link setPolygonOutlineColor},
9337
+ * {@link addPolygonOutline} and {@link removePolygonOutline}.
9338
+ *
9339
+ * ```ts
9340
+ * mapView.setPolygonOutlineColor("#0000ff");
9341
+ * mapView.addPolygonOutline(polygon1);
9342
+ * mapView.addPolygonOutline(polygon2);
9343
+ *
9344
+ * ...
9345
+ *
9346
+ * // Remove the outline from all polygons
9347
+ * mapView.removeAllPolygonOutlines();
9348
+ * ```
9349
+ */
9350
+ removeAllPolygonOutlines(): void;
9425
9351
  /**
9426
9352
  * Makes a {@link MappedinPolygon} interactive. This means it will receive a hover effect and
9427
9353
  * respond to the `CLICK` {@link E_SDK_EVENT}. See also {@link on} and {@link addInteractivePolygonsForAllLocations}.
@@ -9634,9 +9560,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9634
9560
  */
9635
9561
  setBackgroundColor(color: string, alpha?: number): void;
9636
9562
  /**
9637
- * Sets a color that {@link MappedinPolygon} instances will receive when they are
9563
+ * Sets the color that all {@link MappedinPolygon} instances will receive when they are
9638
9564
  * beneath a cursor. This only applies to interactive polygons set using {@link addInteractivePolygon}
9639
- * or {@link addInteractivePolygonsForAllLocations}.
9565
+ * or {@link addInteractivePolygonsForAllLocations}. Hover colors set by {@link setPolygonHoverColor} will take
9566
+ * precedence over this value.
9640
9567
  *
9641
9568
  * ```ts
9642
9569
  * // Make all location polygons interactive and have a red hover color
@@ -9645,6 +9572,46 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9645
9572
  * ```
9646
9573
  */
9647
9574
  setHoverColor(color: string): void;
9575
+ /**
9576
+ * Sets a color that a {@link MappedinPolygon} instance will receive when it is beneath a cursor.
9577
+ * This will take precedence over the value set by {@link setHoverColor} and only applies to an interactive polygon set using {@link addInteractivePolygon}
9578
+ * or {@link addInteractivePolygonsForAllLocations}. See also {@link clearPolygonHoverColor} and {@link clearAllPolygonHoverColors}.
9579
+ *
9580
+ * ```ts
9581
+ * // Make polygon interactive and have a red hover color
9582
+ * mapView.addInteractivePolygon(polygon);
9583
+ * mapView.setPolygonHoverColor(polygon, "#ff0000");
9584
+ * ```
9585
+ */
9586
+ setPolygonHoverColor(polygon: MappedinPolygon, color: string): void;
9587
+ /**
9588
+ * Resets a {@link MappedinPolygon} back to it's original hover color or the default hover color set by
9589
+ * {@link setHoverColor}. See also {@link clearAllPolygonHoverColors} and {@link setPolygonHoverColor}.
9590
+ *
9591
+ * ```ts
9592
+ * mapView.setPolygonHoverColor(polygon, "#ff0000");
9593
+ *
9594
+ * ...
9595
+ *
9596
+ * // Reset polygon to origin hover color
9597
+ * mapView.clearPolygonHoverColor(polygon);
9598
+ * ```
9599
+ */
9600
+ clearPolygonHoverColor(polygon: MappedinPolygon): void;
9601
+ /**
9602
+ * Resets all {@link MappedinPolygon} instances back to their original hover colors or the default hover color set by
9603
+ * {@link setHoverColor}. See also {@link clearPolygonHoverColor} and {@link setPolygonHoverColor}.
9604
+ *
9605
+ * ```ts
9606
+ * mapView.setPolygonHoverColor(polygon1, "#ff0000");
9607
+ * mapView.setPolygonHoverColor(polygon1, "#00ff00");
9608
+ *
9609
+ * ...
9610
+ *
9611
+ * mapView.clearAllPolygonHoverColors();
9612
+ * ```
9613
+ */
9614
+ clearAllPolygonHoverColors(): void;
9648
9615
  /**
9649
9616
  * @deprecated This should no longer need to be called externally and is now a no-op.
9650
9617
  */
@@ -9709,6 +9676,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
9709
9676
  * @returns An array of {@link MappedinPolygon} instances intersecting the given coordinate.
9710
9677
  */
9711
9678
  getPolygonsAtScreenCoordinate(x: number, y: number, options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
9679
+ /**
9680
+ * Create a {@link MappedinCoordinate} on a given {@link MappedinMap} from an XY-coordinate on screen.
9681
+ *
9682
+ * @param x The x value of a screen coordinate.
9683
+ * @param y The y value of a screen coordinate.
9684
+ * @param map The {@link MappedinMap} the coordinate should belong to.
9685
+ * @returns A {@link MappedinCoordinate} on the given map.
9686
+ */
9687
+ getMappedinCoordinateAtScreenCoordinate(x: number, y: number, map: MappedinMap): MappedinCoordinate;
9688
+ setAmbientOcclusionSettings(settings: TN8AOConfiguration): void;
9712
9689
  /**
9713
9690
  * Destroy the mapView instance and reclaim memory.
9714
9691
  *
@@ -9732,7 +9709,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
9732
9709
  import { Tile } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.Tile';
9733
9710
  import { IOutdoorContextProvider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Outdoor-Context.provider';
9734
9711
  /**
9735
- * @experimental
9712
+ * @deprecated Use {@link OutdoorView} instead.
9736
9713
  */
9737
9714
  export enum TILE_RENDER_MODES {
9738
9715
  NORMAL = 0,
@@ -9740,7 +9717,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
9740
9717
  }
9741
9718
  export const TILE_COLOR = "#f0f0f1";
9742
9719
  /**
9743
- * @experimental
9720
+ * @deprecated Use {@link OutdoorView} instead.
9744
9721
  */
9745
9722
  export type TTileManagerOptions = {
9746
9723
  tileRenderMode?: TILE_RENDER_MODES;
@@ -9767,8 +9744,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
9767
9744
  _renderVisibleTiles(): void;
9768
9745
  cachedZoomLevel: number;
9769
9746
  visible: boolean;
9770
- fadeOut(): Promise<any>;
9771
- fadeIn(): Promise<any>;
9747
+ fadeOut(): any;
9748
+ fadeIn(): any;
9772
9749
  fetchTiles(): void;
9773
9750
  zoomLevelToAltitudeMap: number[][];
9774
9751
  plane: Object3D;
@@ -9786,18 +9763,19 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
9786
9763
  * [ ][7][6][5][ ]
9787
9764
  * [ ][ ][ ][ ][ ]
9788
9765
  */
9789
- populateLayer(layerId: number | undefined, center: MappedinCoordinate, zoomLevel: number, metersPerTile: number, referenceMap: MappedinMap): void;
9766
+ populateLayer(layerId: number, center: MappedinCoordinate, zoomLevel: number, metersPerTile: number, referenceMap: MappedinMap): void;
9790
9767
  checkIfTileIsInBoundingBox(tile: Tile): any;
9791
9768
  }
9792
9769
  }
9793
9770
 
9794
9771
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core' {
9795
9772
  import '../internal/externals/globalThisPolyfill';
9796
- import { Mesh, PerspectiveCamera, Scene, Vector2 } from 'three';
9773
+ import { Color, Mesh, PerspectiveCamera, Scene, Vector2 } from 'three';
9797
9774
  import '../internal/object3D.destroy';
9798
- import type { TGetPolygonsAtCoordinateOptions, TMapViewOptions, TPadding } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9799
- 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 } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9775
+ import type { TGetPolygonsAtCoordinateOptions, TMapViewOptions, TPadding, MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
9776
+ 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';
9800
9777
  import { Mappedin as IMappedin, MappedinCoordinate, MappedinMap, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
9778
+ import { E_MAP_CHANGED_REASON } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
9801
9779
  export const raycaster: any;
9802
9780
  let Mappedin: any;
9803
9781
  /**
@@ -9829,6 +9807,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9829
9807
  flatLabels: FlatLabelsController;
9830
9808
  paths: PathsController;
9831
9809
  polygonColors: PolygonColorsController;
9810
+ polygonHoverColors: PolygonHoverColorsController;
9832
9811
  polygonInteraction: PolygonInteractionController;
9833
9812
  polygonStates: PolygonStatesController;
9834
9813
  polygonImages: PolygonImagesController;
@@ -9837,6 +9816,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9837
9816
  threeDMarkers: ThreeDMarkersController;
9838
9817
  blueDot: BlueDotController;
9839
9818
  camera: CameraController;
9819
+ outdoorViewController?: OutdoorViewController;
9820
+ watermark: WatermarkController;
9821
+ layerController: LayerController;
9840
9822
  options: TMapViewOptions & {
9841
9823
  onDataLoaded?: (data: IMappedin) => void;
9842
9824
  onFirstMapLoaded?: (data: IMappedin) => void;
@@ -9855,13 +9837,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9855
9837
  taskScheduler: TaskScheduler;
9856
9838
  renderer: Renderer;
9857
9839
  highlightedPolygons: Record<string, string>;
9840
+ outlinedPolygons: Map<string, MappedinPolygon>;
9858
9841
  scene: Scene;
9859
9842
  focusZoomFactor: number;
9860
9843
  cameraObject: PerspectiveCamera;
9861
9844
  polygonMeshesById: Record<string, Mesh>;
9862
9845
  textLabelsByPolygonId: Record<string, FlatLabel>;
9863
9846
  labelOrientationDelay: number;
9847
+ isWebGL2: boolean;
9864
9848
  interactivePolygons: Record<string, boolean>;
9849
+ polygonHoverColorsById: Record<string, Color>;
9865
9850
  mapManager: MapManager | undefined;
9866
9851
  sceneManager: SceneManager | undefined;
9867
9852
  mapObjects: Map<MappedinMap['id'], MapObject>;
@@ -9881,14 +9866,20 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9881
9866
  billboardManager: BillboardManager;
9882
9867
  stackedMaps: StackedMapsController;
9883
9868
  tileManager: TileManager;
9869
+ setMapReason?: E_MAP_CHANGED_REASON;
9884
9870
  /**
9885
9871
  * Get all maps that are "visible" in the scene.
9886
9872
  */
9887
9873
  get visibleMapsInCurrentScene(): any[];
9888
- constructor(container: HTMLDivElement, venue: IMappedin, options: (TMapViewOptions & {
9889
- onDataLoaded?: ((data: IMappedin) => void) | undefined;
9890
- onFirstMapLoaded?: ((data: IMappedin) => void) | undefined;
9891
- }) | undefined, MapView: MapView);
9874
+ get visibleMapObjectsInCurrentScene(): MapObject[];
9875
+ /**
9876
+ * Returns all currently visible layers
9877
+ */
9878
+ get visibleLayersInCurrentScene(): {};
9879
+ constructor(container: HTMLDivElement, venue: IMappedin, options: TMapViewOptions & {
9880
+ onDataLoaded?: (data: IMappedin) => void;
9881
+ onFirstMapLoaded?: (data: IMappedin) => void;
9882
+ }, MapView: MapView);
9892
9883
  get currentMap(): string | null;
9893
9884
  setState(state: STATE): Promise<void>;
9894
9885
  getPolygon: (polygon: any) => any;
@@ -9897,11 +9888,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9897
9888
  focusOn: (options: any) => any;
9898
9889
  focusOnPolygon: (polygon: any, changeZoom: any, duration: any, curve: any) => any;
9899
9890
  focusOnPath: (path: any, polygons: any, changeZoom: any, duration: any, curve: any) => any;
9900
- getCameraFrameForPoints: (pointCloud: any, horizontalFovFactor: any, verticalFovFactor: any, padding: any, ignoreZoom: any) => {
9891
+ getCameraFrameForPoints: (pointCloud: any, horizontalFovFactor: any, verticalFovFactor: any, padding: any, ignoreZoom?: boolean, minZoom?: any, maxZoom?: any) => {
9901
9892
  position: any;
9902
9893
  zoom: any;
9903
9894
  };
9904
- setPadding: (padding?: TPadding | undefined) => void;
9895
+ setPadding: (padding?: TPadding) => void;
9905
9896
  getZoomLevelForPolygon: (polygon: any) => any;
9906
9897
  getZoomLevelForCurrentMap: () => any;
9907
9898
  getZoomLevelForObject: (object: any) => any;
@@ -9914,7 +9905,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9914
9905
  * @param longitude {Number} Longitude of position
9915
9906
  * @returns A position you can use with a Marker either initially or to update later when the user (for example) moves
9916
9907
  */
9917
- getPositionLatLon: (lat: number, lon: number, map?: string | MappedinMap | null | undefined) => any;
9908
+ getPositionLatLon: (lat: number, lon: number, map?: string | MappedinMap | null) => any;
9918
9909
  lockNorth: (element: any, offset?: number) => void;
9919
9910
  unlockNorth: (element: any) => void;
9920
9911
  convertTo3DMapPosition: (nodeOrCoordinate: MappedinNode | MappedinCoordinate) => any;
@@ -9953,9 +9944,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9953
9944
  */
9954
9945
  hideDebugUI: () => void;
9955
9946
  determineNewLabelSize: () => void;
9956
- setMap: (map: string | MappedinMap) => Promise<null>;
9957
- getPolygonsAtScreenCoordinate: (x: number, y: number, options?: TGetPolygonsAtCoordinateOptions | undefined) => any;
9958
- getPolygonsAtCoordinate: (coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions | undefined) => any;
9947
+ mapSetInProgress: Promise<any>;
9948
+ mapSetResolved: any;
9949
+ setMap: (map: string | MappedinMap) => any;
9950
+ setMapWithReason: (map: string | MappedinMap, reason: E_MAP_CHANGED_REASON) => any;
9951
+ getPolygonsAtScreenCoordinate: (x: number, y: number, options?: TGetPolygonsAtCoordinateOptions) => any;
9952
+ getPolygonsAtCoordinate: (coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions) => any;
9959
9953
  getNearestNodeByScreenCoordinate(x: number, y: number, mapOrMapId?: MappedinMap | MappedinMap['id']): MappedinNode;
9960
9954
  /**
9961
9955
  * Destroys instance and frees resources
@@ -9969,7 +9963,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core'
9969
9963
 
9970
9964
  declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera' {
9971
9965
  import { E_CAMERA_DIRECTION } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
9972
- import CameraController, { TCameraAnimationOptions, TCameraTargets, TCameraTransform, TFocusOnCameraOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
9966
+ import CameraController, { TCameraAnimationOptions, TCameraInteractionsSetOptions, TCameraTargets, TCameraTransform, TFocusOnCameraOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
9973
9967
  /**
9974
9968
  * API to control and respond to the state of the camera within the scene.
9975
9969
  */
@@ -10014,7 +10008,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Cam
10014
10008
  /**
10015
10009
  * The current camera animation, if any. Resolves when the animation finishes.
10016
10010
  */
10017
- get currentAnimation(): Promise<undefined> | undefined;
10011
+ get currentAnimation(): Promise<undefined>;
10018
10012
  /**
10019
10013
  * Current Camera zoom (in meters)
10020
10014
  */
@@ -10078,6 +10072,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Cam
10078
10072
  * ```
10079
10073
  */
10080
10074
  interactions: {
10075
+ /**
10076
+ * Enable or disable specific user interactions.
10077
+ *
10078
+ * ```ts
10079
+ * mapView.Camera.interactions.set({ zoom: false });
10080
+ * ```
10081
+ *
10082
+ * @param options An object defining the interactions to switch on or off.
10083
+ *
10084
+ */
10085
+ set: (options: TCameraInteractionsSetOptions) => void;
10081
10086
  /**
10082
10087
  * Enable all user interactions.
10083
10088
  */
@@ -10150,6 +10155,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Cam
10150
10155
  * @param transform The new transform of the camera.
10151
10156
  */
10152
10157
  set(transform: TCameraTransform): void;
10158
+ /**
10159
+ * Convert a Mercator Zoom Level to altitude, which can be used in the Camera APIs
10160
+ */
10161
+ convertZoomLevelToAltitude(zoomLevel: number): any;
10162
+ /**
10163
+ * Convert the altitude returned by getZoom into Mercator Zoom level
10164
+ */
10165
+ convertAltitudeToZoomLevel(altitude: number): any;
10153
10166
  /**
10154
10167
  * Smoothly transition the camera's transform to be in a new configuration. See also {@link set}.
10155
10168
  *
@@ -10419,6 +10432,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Sta
10419
10432
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
10420
10433
  import { STACKED_MAPS_STATE, StackedMapsController, TCameraTransform } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10421
10434
  /**
10435
+ * @experimental
10422
10436
  * API for showing multiple maps involved in a {@link Journey} as a vertical stack.
10423
10437
  */
10424
10438
  export class StackedMaps {
@@ -10451,8 +10465,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Sta
10451
10465
  * @returns Promise when all animations are complete.
10452
10466
  */
10453
10467
  enable: (opts?: {
10454
- verticalDistanceBetweenMaps?: number | undefined;
10455
- } | undefined) => Promise<void>;
10468
+ verticalDistanceBetweenMaps?: number;
10469
+ }) => Promise<void>;
10456
10470
  /**
10457
10471
  * @experimental
10458
10472
  *
@@ -10519,7 +10533,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Sta
10519
10533
  *
10520
10534
  * @returns Promise when all animations are complete.
10521
10535
  */
10522
- zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform | undefined) => Promise<void>;
10536
+ zoomInToMap: (map: MappedinMap, cameraTransform?: TCameraTransform) => Promise<void>;
10523
10537
  /**
10524
10538
  * @experimental
10525
10539
  *
@@ -10531,6 +10545,110 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Sta
10531
10545
  }
10532
10546
  }
10533
10547
 
10548
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/OutdoorView' {
10549
+ import { OutdoorViewController } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10550
+ /**
10551
+ * @experimental
10552
+ * API to control outdoor view rendering. Outdoor view can be enabled when
10553
+ * initializing the {@link MapView} with `outdoorView: { enabled: true }` in {@link TMapViewOptions}.
10554
+ * @example
10555
+ * ```typescript
10556
+ * const mapView = await showVenue(document.getElementById('mappedin-map'), venue, {
10557
+ * multiBufferRendering: true,
10558
+ * outdoorView: {
10559
+ * enabled: true,
10560
+ * },
10561
+ * });
10562
+ * ```
10563
+ */
10564
+ export class OutdoorView {
10565
+ #private;
10566
+ /**
10567
+ * @private
10568
+ */
10569
+ constructor(outdoorViewController: OutdoorViewController | undefined);
10570
+ /**
10571
+ * @experimental
10572
+ * @param style A style object conforming to the [Maplibre Style Spec](https://maplibre.org/maplibre-style-spec/)
10573
+ * @returns
10574
+ */
10575
+ setStyle(style: any): void;
10576
+ /**
10577
+ * @experimental
10578
+ * A position definition for the attribution control to be placed, can be in one of the corners of the map.
10579
+ *
10580
+ * @param {string} style A position definition
10581
+ * @returns
10582
+ */
10583
+ setAttributionPosition(position: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'): void;
10584
+ }
10585
+ export default OutdoorView;
10586
+ }
10587
+
10588
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/DynamicFocus' {
10589
+ import { DynamicFocusSceneManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10590
+ /**
10591
+ * @experimental
10592
+ * API to dynamically set the map focus as you pan over map groups. Dynamic Focus can be enabled when
10593
+ * initializing the {@link MapView} with base map set in {@link TMapViewOptions}
10594
+ * @example
10595
+ * ```typescript
10596
+ * const mapView = await showVenue(document.getElementById('mappedin-map'), venue, {
10597
+ * dynamicFocus: {
10598
+ * baseMap: venue.maps[0],
10599
+ * },
10600
+ * });
10601
+ * ```
10602
+ */
10603
+ class DynamicFocus {
10604
+ #private;
10605
+ /**
10606
+ * @hidden
10607
+ */
10608
+ constructor(dynamicFocusSceneManager: DynamicFocusSceneManager);
10609
+ /**
10610
+ * @experimental
10611
+ * Controls whether the map should be set when the user pans over to it.
10612
+ *
10613
+ * @example
10614
+ * ```ts
10615
+ * if (mapView.DynamicFocus) {
10616
+ * mapView.DynamicFocus.setMapOnUserInteraction = false;
10617
+ * }
10618
+ * ```
10619
+ */
10620
+ set setMapOnUserInteraction(value: boolean);
10621
+ /**
10622
+ * @experimental
10623
+ * Returns the current boolean value whether the map should be set when the user pans over it.
10624
+ *
10625
+ * @example
10626
+ * ```ts
10627
+ * if(mapView.DynamicFocus && mapView.DynamicFocus.setMapOnUserInteraction) {
10628
+ * mapView.DynamicFocus.setMapOnUserInteraction = false;
10629
+ * }
10630
+ * ```
10631
+ */
10632
+ get setMapOnUserInteraction(): boolean;
10633
+ /**
10634
+ * @experimental
10635
+ * Force Dynamic Focus to evaluate and set the current map based on camera position.
10636
+ *
10637
+ * @example
10638
+ * ```ts
10639
+ * // Animate the camera to focus on a building
10640
+ * await mapView.Camera.focusOn({
10641
+ * polygons: venue.locations.find(l => l.name === 'Building')?.polygons,
10642
+ * });
10643
+ * // Force Dynamic Focus update
10644
+ * mapView.DynamicFocus?.update();
10645
+ * ```
10646
+ */
10647
+ update(): void;
10648
+ }
10649
+ export { DynamicFocus };
10650
+ }
10651
+
10534
10652
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree' {
10535
10653
  export function contains(rect1: Rectangle, rect2: Rectangle): boolean;
10536
10654
  export function intersects(rect1: Rectangle, rect2: Rectangle): boolean;
@@ -10566,103 +10684,135 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-
10566
10684
  export { QuadTree, Rectangle };
10567
10685
  }
10568
10686
 
10569
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MultiFloorView' {
10570
- export namespace VIEW_STATE {
10571
- const SINGLE_FLOOR: string;
10572
- const MULTI_FLOOR: string;
10573
- }
10574
- export namespace START {
10575
- const TOP: string;
10576
- const BOTTOM: string;
10577
- }
10578
- export namespace DIR {
10579
- const DOWN: string;
10580
- const UP: string;
10581
- }
10582
- export default MultiFloorView;
10583
- class MultiFloorView {
10584
- constructor(mapView: any, object: any, maps: any, options: any);
10585
- _focusMapsStart: string;
10586
- _focusMapsDir: string;
10587
- _focusMapsLen: number;
10588
- _focusAnimCurve: any;
10589
- _focusAnimDuration: number;
10590
- rotationAxis: any;
10591
- mapBoundingBoxes: any[];
10592
- _helperBoundingBoxes: any[];
10593
- mapAxesHelpers: any[];
10594
- mapView: any;
10595
- object: any;
10596
- options: any;
10597
- padding: any;
10598
- rotation: any;
10599
- maps: any;
10600
- debug: any;
10601
- mapSpacing: number;
10602
- mapTilt: number;
10603
- resize(): void;
10604
- focusOnMaps({ start, len, dir, mapIndices, duration, curve, }?: {
10605
- start?: string | undefined;
10606
- len?: number | undefined;
10607
- dir?: string | undefined;
10608
- mapIndices: any;
10609
- duration?: number | undefined;
10610
- curve?: any;
10611
- }): Promise<any>;
10612
- get viewPortHeight(): number;
10613
- get viewPortWidth(): number;
10614
- positionMaps(): void;
10615
- addMaps(maps: any): void;
10616
- removeMaps(): void;
10617
- addMapBoundingBoxes(): void;
10618
- removeMapBoundingBoxes(): void;
10619
- removeHelperBoundingBoxes(): void;
10620
- addAxesHelpers(): void;
10621
- removeAxesHelpers(): void;
10622
- set mapTiltDegrees(arg: number);
10623
- get mapTiltDegrees(): number;
10624
- /**
10625
- * Display 2D screen projections of each 3D map object in the journey. Useful for drawing 2D elements on screen.
10626
- *
10627
- * @attribute projections
10628
- * @readOnly
10629
- *
10630
- * @returns {Array} Array for Objects with min/max x/y values
10631
- * @example
10632
-
10633
- projections = [{
10634
- max: {
10635
- x: 1062.4393974378236,
10636
- y: 745.7583492891705
10637
- },
10638
- min: {
10639
- x: 17.560602562176346,
10640
- y: 225.0806956450056
10641
- }
10642
- ...
10643
- ]
10644
- */
10645
- get projections(): any[];
10646
- tiltMaps(tiltRad: any): void;
10647
- _focusBox: any;
10648
- _scrollWindow: number | undefined;
10649
- tween: any;
10650
- getFocusMaps(start: any, dir: any, len: any): any;
10651
- getFocusBox(): any;
10652
- getVisibleMaps(): any;
10653
- getVisibleMapIds(): any;
10654
- getVisibleMapIndices(): number[];
10655
- getMapsByIndices(indices: any): any;
10656
- get bottomMapVisible(): any;
10657
- get topMapVisible(): any;
10658
- scrollMapsUp(): Promise<any>;
10659
- scrollMapsDown(): Promise<any>;
10660
- destroy(): void;
10687
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Layers' {
10688
+ import { LayerController, MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer/internal';
10689
+ /**
10690
+ * @experimental
10691
+ * API to control per-map layer management, visibility and interpolations.
10692
+ */
10693
+ export class Layers {
10694
+ #private;
10695
+ /**
10696
+ * @private
10697
+ */
10698
+ constructor(layerController: LayerController | undefined);
10699
+ /**
10700
+ * Returns a mapping of all layers for a map, and whether they are visible or not.
10701
+ */
10702
+ getAllLayersForMap(map: MappedinMap): Promise<any[] | {
10703
+ [layerName: string]: boolean;
10704
+ }>;
10705
+ /**
10706
+ * Re-renders the map only showing the layers specified in the array. This will discard any polygons that have been highlighted.
10707
+ */
10708
+ showLayers(layers: string[]): void;
10661
10709
  }
10710
+ export default LayerController;
10662
10711
  }
10663
10712
 
10664
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/object3D.destroy' {
10665
- export default Object3D;
10713
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.EffectComposer' {
10714
+ import { N8AOPostPass } from 'n8ao';
10715
+ import { EffectComposer as PPEffectComposer, EffectPass, Pass, ShaderPass, RenderPass, ClearPass, Effect } from 'postprocessing';
10716
+ import type { PerspectiveCamera, Scene, Texture, Mesh } from 'three';
10717
+ import { Color } from 'three';
10718
+ import type { TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
10719
+ import { Uniform } from 'three';
10720
+ export type TCompositeUniforms = {
10721
+ animatedColorOpacity: Uniform;
10722
+ inputBuffer: Uniform;
10723
+ staticSceneColorTexture: Uniform;
10724
+ staticSceneDepthTexture: Uniform;
10725
+ animatedSceneColorTexture: Uniform;
10726
+ animatedSceneDepthTexture: Uniform;
10727
+ alwaysOnTopSceneColorTexture: Uniform;
10728
+ alwaysOnBottomSceneColorTexture: Uniform;
10729
+ };
10730
+ type TAmbientOcclusionOptions = Pick<TMapViewOptions, 'aoQuality' | 'aoResolution' | 'aoEnabled'>;
10731
+ export type TPostProcessingOptions = TAmbientOcclusionOptions & {
10732
+ antialias?: boolean;
10733
+ compositeUniforms?: TCompositeUniforms;
10734
+ };
10735
+ export type TPass = (RenderPass | ShaderPass | EffectPass | AmbientOcclusionPass) & {
10736
+ name: string;
10737
+ };
10738
+ export enum EAOQualities {
10739
+ performance = "Performance",
10740
+ low = "Low",
10741
+ medium = "Medium",
10742
+ high = "High",
10743
+ ultra = "Ultra"
10744
+ }
10745
+ export enum EPass {
10746
+ RenderPass = "RenderPass",
10747
+ CompositeRenderPass = "CompositeRenderPass",
10748
+ AmbientOcclusionPass = "AmbientOcclusionPass",
10749
+ EffectsPass = "EffectsPass",
10750
+ FinalPass = "FinalPass"
10751
+ }
10752
+ export enum EEffect {
10753
+ FXAA = "FXAAEffect",
10754
+ Outline = "OutlineEffect"
10755
+ }
10756
+ export type TN8AOConfiguration = {
10757
+ aoSamples?: number;
10758
+ aoRadius?: number;
10759
+ denoiseSamples?: number;
10760
+ denoiseRadius?: number;
10761
+ intensity?: number;
10762
+ denoiseIterations?: number;
10763
+ renderMode?: number;
10764
+ color?: Color;
10765
+ gammaCorrection?: boolean;
10766
+ logarithmicDepthBuffer?: boolean;
10767
+ screenSpaceRadius?: boolean;
10768
+ halfRes?: boolean;
10769
+ depthAwareUpsampling?: boolean;
10770
+ autoRenderBeauty?: boolean;
10771
+ };
10772
+ export class CustomRenderPass extends Pass {
10773
+ effectComposer: EffectComposer;
10774
+ clearPass: ClearPass;
10775
+ constructor(effectComposer: any);
10776
+ render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
10777
+ initialize(_: any, __: any, frameBufferType: any): void;
10778
+ }
10779
+ export class AmbientOcclusionPass extends N8AOPostPass {
10780
+ effectComposer: EffectComposer;
10781
+ cachePass: ShaderPass;
10782
+ constructor(effectComposer: EffectComposer, configuration: TN8AOConfiguration);
10783
+ setAOConfiguration(configuration: TN8AOConfiguration): void;
10784
+ setQualityMode(aoQuality: any): void;
10785
+ get distanceFalloff(): number;
10786
+ initialize(renderer: any, alpha: any, frameBufferType: any): void;
10787
+ render(renderer: any, inputBuffer: any, outputBuffer: any, deltaTime: any, stencilTest: any): void;
10788
+ }
10789
+ export class CustomEffectPass extends EffectPass {
10790
+ constructor(camera?: PerspectiveCamera, ...effects: Effect[]);
10791
+ getEffects(): Effect[];
10792
+ setEffects(effects: Effect[]): void;
10793
+ }
10794
+ export class EffectComposer {
10795
+ options: TPostProcessingOptions;
10796
+ isWebGL2: boolean;
10797
+ effectComposer: PPEffectComposer;
10798
+ scene: Scene;
10799
+ camera: PerspectiveCamera;
10800
+ depthTexture?: Texture;
10801
+ renderer: any;
10802
+ ambientOcclusionPass: AmbientOcclusionPass | null;
10803
+ constructor(renderer: any, options: TPostProcessingOptions);
10804
+ get initialized(): boolean;
10805
+ init(scene: Scene, camera: PerspectiveCamera): void;
10806
+ render(): void;
10807
+ setSize(width: number, height: number): void;
10808
+ getPassByName(passName: EPass): TPass | null;
10809
+ getEffectByName(name: EEffect): Effect | null;
10810
+ setAmbientOcclusionConfiguration(configuration: TN8AOConfiguration): void;
10811
+ setPolygonOutlineColor(color: string): void;
10812
+ addSelectionForOutline(polygonMesh: Mesh): void;
10813
+ removeSelectionForOutline(polygonMesh: Mesh): void;
10814
+ }
10815
+ export {};
10666
10816
  }
10667
10817
 
10668
10818
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.Tile' {
@@ -10693,13 +10843,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
10693
10843
  rendered: boolean;
10694
10844
  discardTexture(): void;
10695
10845
  applyTexture(): void;
10696
- render(metersPerTile: number, referenceMap: MappedinMap): any;
10846
+ render(metersPerTile: number, referenceMap: MappedinMap): Mesh;
10697
10847
  }
10698
10848
  }
10699
10849
 
10700
10850
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Outdoor-Context.provider' {
10701
10851
  /**
10702
- * @experimental
10852
+ * @deprecated Use {@link OutdoorView} instead.
10703
10853
  * The universal outdoor context interface
10704
10854
  */
10705
10855
  export interface IOutdoorContextProvider {
@@ -10714,7 +10864,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
10714
10864
  fetchAttribution?(zoomLevel: number, bounds: [number, number, number, number]): Promise<Response>;
10715
10865
  }
10716
10866
  /**
10717
- * @experimental
10867
+ * @deprecated Use {@link OutdoorView} instead.
10718
10868
  * Azure maps outdoor context class
10719
10869
  */
10720
10870
  export class AzureOutdoorContextProvider implements IOutdoorContextProvider {
@@ -10736,14 +10886,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
10736
10886
  fetchTile(tileX: number, tileY: number, zoom: number, signal: AbortSignal): Promise<Response>;
10737
10887
  }
10738
10888
  /**
10739
- * @experimental
10889
+ * @deprecated Use {@link OutdoorView} instead.
10740
10890
  * Google maps outdoor context class
10741
10891
  */
10742
10892
  export class GoogleOutdoorContextProvider implements IOutdoorContextProvider {
10743
10893
  apiKey: string;
10744
10894
  sessionToken: string;
10745
10895
  lang: string;
10746
- constructor(lang: string | undefined, apiKey: string);
10896
+ constructor(lang: string, apiKey: string);
10747
10897
  makeURL(x: number, y: number, zoom: number): string;
10748
10898
  /**
10749
10899
  * Returns the Google session token
@@ -10755,7 +10905,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdo
10755
10905
  fetchTile(tileX: number, tileY: number, zoom: number, signal: any): Promise<Response>;
10756
10906
  }
10757
10907
  /**
10758
- * @experimental
10908
+ * @deprecated Use {@link OutdoorView} instead.
10759
10909
  * OpenStreetMap maps outdoor context class
10760
10910
  */
10761
10911
  export class OpenStreetMapOutdoorContext implements IOutdoorContextProvider {