@mappedin/react-native-sdk 5.9.1 → 5.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  // ../three
7
7
  // ../@tweenjs/tween.js
8
8
  // ../minisearch
9
- // ../geojson
9
+ // ../@mappedin/mvf
10
10
 
11
11
  declare module '@mappedin/react-native-sdk' {
12
12
  export { MiMapView } from '@mappedin/react-native-sdk/wrappers/react-native-sdk/src/MiMapView';
@@ -434,7 +434,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/index.rn' {
434
434
  export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
435
435
  export type { TGetVenueBundleOptions, TGetVenueOptions, TMappedinDirective, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineSearchAllOptions, TMappedinOfflineAllSearchMatch, } from '@mappedin/react-native-sdk/core/packages/get-venue';
436
436
  export { MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinDirections, MappedinNavigatable, MappedinCoordinate, MappedinRankings, OfflineSearch, MappedinCollectionType, } from '@mappedin/react-native-sdk/core/packages/get-venue';
437
- export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
437
+ export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
438
438
  }
439
439
 
440
440
  declare module '@mappedin/react-native-sdk/wrappers/common' {
@@ -604,7 +604,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
604
604
  import { TOOLTIP_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
605
605
  import type { Euler, Object3D, Vector3 } from 'three';
606
606
  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';
607
- import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
607
+ import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
608
608
  export type { TEnableBlueDotOptions, TFloatingLabelAppearance };
609
609
  /**
610
610
  An extension of the GeolocationPosition type.
@@ -1226,13 +1226,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.types'
1226
1226
  */
1227
1227
  [E_CAMERA_EVENT.TILT_CHANGED]: number;
1228
1228
  };
1229
- export type { default as BlueDotLayer } from '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot';
1230
- export type { default as JourneyLayer } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey';
1229
+ export type { default as BlueDotController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/BlueDotController';
1230
+ export type { default as Journey } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Journey';
1231
1231
  }
1232
1232
 
1233
1233
  declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
1234
1234
  import type { TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types';
1235
1235
  import { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
1236
+ export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/react-native-sdk/core/common/Mappedin.Logger';
1236
1237
  /**
1237
1238
  * This is how we can avoid bundling in node-fetch (via isomorphic fetch),
1238
1239
  * which keeps popping up in security advisories
@@ -1365,12 +1366,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue' {
1365
1366
  /**
1366
1367
  * @internal
1367
1368
  */
1368
- export function downloadVenueBundleMVF(options: TGetVenueBundleOptions,
1369
- /**
1370
- * use Web Workers to speed up MVF parsing. This is likely only benefitial for larger venues,
1371
- * and may be determental to smaller ones, hence it is off by default
1372
- */
1373
- useWorker?: boolean): Promise<unknown>;
1369
+ export function downloadVenueBundleMVF(options: TGetVenueBundleOptions): Promise<unknown>;
1374
1370
  /**
1375
1371
  * Returns a {@link Mappedin} object hydrated with JSON data.
1376
1372
  * @param {string|Object} mappedinSerializableData A JSON string or object representing a venue.
@@ -1682,9 +1678,10 @@ declare module '@mappedin/react-native-sdk/core/packages/navigator' {
1682
1678
  export { Navigator, NavigationGraph };
1683
1679
  export type { IDirectionsResult } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator';
1684
1680
  export { E_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator/Navigator';
1681
+ export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/react-native-sdk/core/common/Mappedin.Logger';
1685
1682
  }
1686
1683
 
1687
- declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1684
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController' {
1688
1685
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
1689
1686
  import { MappedinNode, MappedinPolygon, MappedinCoordinate } from '@mappedin/react-native-sdk/core/packages/get-venue';
1690
1687
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
@@ -1728,80 +1725,27 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1728
1725
  /**
1729
1726
  * The Camera object specifies a view of the map and allows manipulation of that view.
1730
1727
  */
1731
- class Camera extends PubSub<CAMERA_EVENT_PAYLOAD, E_CAMERA_EVENT> {
1728
+ class CameraController extends PubSub<CAMERA_EVENT_PAYLOAD, E_CAMERA_EVENT> {
1732
1729
  #private;
1730
+ core: ICore;
1731
+ currentAnimation?: Promise<undefined>;
1733
1732
  /**
1734
1733
  *
1735
1734
  * @private
1736
1735
  */
1737
1736
  constructor(core: ICore);
1738
- /**
1739
- * The current camera animation, if any. Resolves when the animation finishes.
1740
- */
1741
- get currentAnimation(): Promise<undefined> | undefined;
1742
- /**
1743
- * Current Camera zoom (in meters)
1744
- */
1745
1737
  get zoom(): number;
1746
- /**
1747
- * Current Camera rotation (in radians) from north
1748
- */
1749
1738
  get rotation(): number;
1750
- /**
1751
- * Current camera tilt angle (in radians), relative to a top-down view.
1752
- *
1753
- * ex: 0 means the camera is facing top-down, π/2 means the camera is
1754
- * facing directly from the side.
1755
- */
1756
1739
  get tilt(): number;
1757
- /**
1758
- * Get the minimum distance (in meters) the camera is allowed to get to the ground.
1759
- */
1760
1740
  get minZoom(): number;
1761
- /**
1762
- * Set the minimum distance (in meters) the camera is allowed to get to the ground.
1763
- */
1764
1741
  set minZoom(meters: number);
1765
- /**
1766
- * Get the maximum distance (in meters) the camera is allowed to get from the ground.
1767
- */
1768
1742
  get maxZoom(): number;
1769
- /**
1770
- * Set the maximum distance (in meters) the camera is allowed to get from the ground.
1771
- */
1772
1743
  set maxZoom(meters: number);
1773
- /**
1774
- * Get the current maximum tilt angle (in radians) the camera is allowed to use.
1775
- */
1776
1744
  get maxTilt(): number;
1777
- /**
1778
- * Sets the maximum tilt angle (in radians) the camera is allowed to use.
1779
- *
1780
- * Tilt angle must be between 0 and π/2 radians. It will be clamped within
1781
- * this range if it exceeds it on either end.
1782
- *
1783
- * As tilt angle approaches π/2 radians, this will impact overall touch controls
1784
- * and should be used sparingly.
1785
- */
1786
1745
  set maxTilt(radians: number);
1787
- /**
1788
- * Get the current camera position, which is at the center of the map.
1789
- * @returns the position as a coordinate
1790
- */
1791
1746
  get position(): MappedinCoordinate;
1792
- /**
1793
- * User camera interactions
1794
- */
1795
1747
  interactions: {
1796
- /**
1797
- * Enable all user interactions. This does not affect programmatic
1798
- * Camera controls, such as `set` and `focusOn`
1799
- */
1800
1748
  enable: () => void;
1801
- /**
1802
- * Disable all user interactions. This does not affect programmatic
1803
- * Camera controls, such as `set` and `focusOn`
1804
- */
1805
1749
  disable: () => void;
1806
1750
  };
1807
1751
  setSafeAreaInsets(insets: {
@@ -1810,7 +1754,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1810
1754
  bottom: number;
1811
1755
  right: number;
1812
1756
  }): void;
1813
- getSafeAreaInsets(): import("./MapView.types").TPadding;
1757
+ getSafeAreaInsets(): import("../../MapView.types").TPadding;
1814
1758
  /**
1815
1759
  * Focus the Camera view on a collection of targets and animate to that state.
1816
1760
  * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
@@ -1836,7 +1780,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/Camera' {
1836
1780
  */
1837
1781
  cancelAnimation(): void;
1838
1782
  }
1839
- export default Camera;
1783
+ export default CameraController;
1840
1784
  }
1841
1785
 
1842
1786
  declare module '@mappedin/react-native-sdk/wrappers/common/events' {
@@ -2424,7 +2368,7 @@ declare module '@mappedin/react-native-sdk/wrappers/common/pub-sub' {
2424
2368
  }
2425
2369
 
2426
2370
  declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface' {
2427
- import { TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
2371
+ import { BlueDotController, CameraController, STATE, TPadding } from '@mappedin/react-native-sdk/core/packages/renderer';
2428
2372
  import { MappedinMap, Mappedin, MappedinCoordinate, MappedinPolygon, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
2429
2373
  import { Vector2, Vector3, Mesh } from 'three';
2430
2374
  import { changeListenerFn, TGetPolygonsAtCoordinateOptions, TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
@@ -2436,9 +2380,17 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2436
2380
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
2437
2381
  import { FlatLabel } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.LabelAtlas';
2438
2382
  import MapObject from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
2439
- import PathsController from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
2383
+ import PathsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
2440
2384
  import FloatingLabelsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FloatingLabelsController';
2441
2385
  import FlatLabelsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/FlatLabelsController';
2386
+ import PolygonColorsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController';
2387
+ import MarkersController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
2388
+ import PolygonInteractionController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonInteractionController';
2389
+ import TooltipsController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/TooltipsController';
2390
+ import PolygonStatesController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonStatesController';
2391
+ import PolygonImagesController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonImagesController';
2392
+ import ThreeDMarkersController from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/ThreeDMarkersController';
2393
+ import EventSystem from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/EventSystem';
2442
2394
  export type TFocusOptionsLegacy = {
2443
2395
  /**
2444
2396
  * An array of Nodes to focus in on
@@ -2494,9 +2446,25 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2494
2446
  /**
2495
2447
  * Controllers
2496
2448
  */
2449
+ eventSystem: EventSystem;
2497
2450
  floatingLabels: FloatingLabelsController;
2498
2451
  flatLabels: FlatLabelsController;
2499
2452
  paths: PathsController;
2453
+ polygonColors: PolygonColorsController;
2454
+ polygonInteraction: PolygonInteractionController;
2455
+ polygonStates: PolygonStatesController;
2456
+ polygonImages: PolygonImagesController;
2457
+ markers: MarkersController;
2458
+ tooltips: TooltipsController;
2459
+ threeDMarkers: ThreeDMarkersController;
2460
+ blueDot: BlueDotController;
2461
+ camera: CameraController;
2462
+ state: STATE;
2463
+ options: TMapViewOptions & {
2464
+ onDataLoaded?: (data: Mappedin) => void;
2465
+ onFirstMapLoaded?: (data: Mappedin) => void;
2466
+ };
2467
+ currentPath?: MappedinNode[];
2500
2468
  referenceMap: MappedinMap;
2501
2469
  taskScheduler: TaskScheduler;
2502
2470
  sceneManager: SceneManager | undefined;
@@ -2597,7 +2565,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2597
2565
  * @param hoverableMeshChildren
2598
2566
  * @param options {@link TGetPolygonsAtCoordinateOptions}
2599
2567
  */
2600
- getPolygonsAtScreenCoordinate(coordinate: Vector2, hoverableMeshChildren: any[], options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
2568
+ getPolygonsAtScreenCoordinate(x: number, y: number, options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
2601
2569
  /**
2602
2570
  * Returns all polygons at the specified screen coordinate.
2603
2571
  *
@@ -2605,7 +2573,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2605
2573
  * @param hoverableMeshChildren
2606
2574
  * @param options {@link TGetPolygonsAtCoordinateOptions}
2607
2575
  */
2608
- getPolygonsAtCoordinate(coordinate: MappedinCoordinate, hoverableMeshChildren: any[], options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
2576
+ getPolygonsAtCoordinate(coordinate: MappedinCoordinate, options?: TGetPolygonsAtCoordinateOptions): MappedinPolygon[];
2609
2577
  currentInteractionEvent: INTERNAL_EVENT | undefined;
2610
2578
  interactivePolygons: Record<string, boolean>;
2611
2579
  highlightedPolygons: Record<string, string>;
@@ -2654,6 +2622,8 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/Core.i
2654
2622
  focusOn(focusOptions: TFocusOptionsLegacy): Tween;
2655
2623
  canvasWidth: number;
2656
2624
  canvasHeight: number;
2625
+ setState(state: STATE): Promise<void>;
2626
+ getNearestNodeByScreenCoordinate(x: number, y: number, mapOrMapId?: MappedinMap | MappedinMap['id']): MappedinNode;
2657
2627
  destroy(): void;
2658
2628
  }
2659
2629
  }
@@ -3487,7 +3457,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3487
3457
  enable(updateEngine?: boolean): void;
3488
3458
  get totalTextBoxHeight(): number;
3489
3459
  get totalTextBoxWidth(): number;
3490
- get totalMarkerSize(): number;
3460
+ get totalMarkerSize(): any;
3491
3461
  get strategies(): TColliderStrategy[];
3492
3462
  getCachedSymbol(orientation: any, textAlign: any, xCoordinate: any): any;
3493
3463
  invalidate(): void;
@@ -3514,7 +3484,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3514
3484
  import { PubSub, IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
3515
3485
  import { MappedinMap, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
3516
3486
  import { TGeolocationObject } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
3517
- import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
3518
3487
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
3519
3488
  import BlueDotManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-dot-manager';
3520
3489
  export const DEFAULT_BLUE_DOT_COLOR = "#2266ff";
@@ -3591,6 +3560,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3591
3560
  enableBlueDot: (options?: TEnableBlueDotOptions) => void;
3592
3561
  disableBlueDot: () => void;
3593
3562
  enableBlueDotOptions: TEnableBlueDotOptions;
3563
+ enabled: boolean;
3594
3564
  state: TBlueDotStateChange;
3595
3565
  /**
3596
3566
  Whether blue dot should be allowed with missing floor level information.
@@ -3660,13 +3630,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3660
3630
  export const FALLBACK_TO_GPS_TIMEOUT = 10000;
3661
3631
  type TBlueDotProps = {
3662
3632
  data: any;
3663
- mapView: MapView;
3664
3633
  core: ICore;
3665
3634
  manager: BlueDotManager;
3666
3635
  };
3667
3636
  export type TLatLonProps = [number, number];
3668
3637
  const BlueDot: {
3669
- ({ data, mapView, core, manager }: TBlueDotProps): IBlueDotCore;
3638
+ ({ data, core, manager }: TBlueDotProps): IBlueDotCore;
3670
3639
  FakeGeolocation: typeof FakeGeolocation;
3671
3640
  };
3672
3641
  export default BlueDot;
@@ -3751,10 +3720,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3751
3720
  export default SmartTooltip;
3752
3721
  }
3753
3722
 
3754
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths' {
3723
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController' {
3755
3724
  import { TPathOptions, MappedinNode } from '@mappedin/react-native-sdk/core/packages/renderer';
3756
3725
  import { ANIMATION_TWEENS } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
3757
3726
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
3727
+ /**
3728
+ * @hidden
3729
+ * @internal
3730
+ */
3758
3731
  export type TPathOptionsInternal = TPathOptions & {
3759
3732
  curve?: typeof ANIMATION_TWEENS;
3760
3733
  drawConnectionSegments?: boolean;
@@ -3762,6 +3735,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3762
3735
  curve?: typeof ANIMATION_TWEENS;
3763
3736
  };
3764
3737
  };
3738
+ /**
3739
+ * @hidden
3740
+ * @internal
3741
+ */
3765
3742
  export type TInternalPathSegment = {
3766
3743
  id: string;
3767
3744
  nodes: MappedinNode[];
@@ -3791,6 +3768,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3791
3768
  get nodes(): MappedinNode[];
3792
3769
  }
3793
3770
  /**
3771
+ * @hidden
3772
+ * @internal
3773
+ *
3794
3774
  * Represents all the segments created for a single call to drawPath()
3795
3775
  */
3796
3776
  export class InternalPath {
@@ -3800,6 +3780,10 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3800
3780
  options: TPathOptionsInternal;
3801
3781
  constructor(nodes: MappedinNode[], pathSegments: TInternalPathSegment[], options: TPathOptionsInternal);
3802
3782
  }
3783
+ /**
3784
+ * @hidden
3785
+ * @internal
3786
+ */
3803
3787
  class PathsController {
3804
3788
  #private;
3805
3789
  constructor(core: ICore);
@@ -3860,50 +3844,44 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
3860
3844
  export default PathsController;
3861
3845
  }
3862
3846
 
3863
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot' {
3864
- import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/public/MapView';
3847
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/BlueDotController' {
3865
3848
  import { E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT } from '@mappedin/react-native-sdk/core/packages/renderer';
3849
+ import { IBlueDotCore } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
3866
3850
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
3867
3851
  import { TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
3868
3852
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
3869
- import EventSystemLayer from '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem';
3870
3853
  /**
3854
+ * @hidden
3855
+ * @internal
3856
+ *
3871
3857
  * Blue Dot Layer used for controlling the Blue Dot and listening to Blue Dot state change and position update events. Use the {@link on}-method to set listeners for {@link TBlueDotStateChange} and {@link TBlueDotPositionUpdate} events.
3872
3858
  */
3873
- class BlueDotLayer extends PubSub<E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT> {
3859
+ class BlueDotController extends PubSub<E_BLUEDOT_EVENT_PAYLOAD, E_BLUEDOT_EVENT> {
3874
3860
  #private;
3861
+ core: ICore;
3862
+ blueDotCore: IBlueDotCore;
3875
3863
  /**
3876
3864
  * @private
3877
3865
  */
3878
- constructor(mapView: MapView, core: ICore, eventsLayer: EventSystemLayer);
3879
- on<EVENT_NAME extends E_BLUEDOT_EVENT>(eventName: EVENT_NAME, fn: (payload: E_BLUEDOT_EVENT_PAYLOAD[EVENT_NAME] extends {
3880
- data: null;
3881
- } ? E_BLUEDOT_EVENT_PAYLOAD[EVENT_NAME]['data'] : E_BLUEDOT_EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3882
- off<EVENT_NAME extends E_BLUEDOT_EVENT>(eventName: EVENT_NAME, fn: (payload: E_BLUEDOT_EVENT_PAYLOAD[EVENT_NAME]) => void): void;
3883
- /**
3884
- * Enables Blue Dot. BlueDot then emits {@link TBlueDotStateChange} and {@link TBlueDotPositionUpdate} events via {@link E_BLUEDOT_EVENT}
3885
- */
3866
+ constructor(core: ICore);
3886
3867
  enable(options?: TEnableBlueDotOptions): void;
3887
- /**
3888
- * Disables Blue Dot and stops emitting events.
3889
- */
3890
3868
  disable(): void;
3891
3869
  }
3892
- export default BlueDotLayer;
3870
+ export default BlueDotController;
3893
3871
  }
3894
3872
 
3895
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey' {
3896
- import { MapView, TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
3873
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Journey' {
3874
+ import { TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
3897
3875
  import { MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue';
3898
- import { Journey } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Journey';
3876
+ import { JourneyController } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/JourneyController';
3877
+ import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
3899
3878
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
3900
- import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
3901
- class JourneyLayer {
3879
+ class Journey {
3902
3880
  #private;
3903
3881
  /**
3904
3882
  * @private
3905
3883
  */
3906
- constructor(mapView: MapView, core: ICore);
3884
+ constructor(core: ICore);
3907
3885
  /**
3908
3886
  * Draw a Journey based on directions. Example usage:
3909
3887
  *
@@ -3917,7 +3895,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey
3917
3895
  *
3918
3896
  * Use options to set connection (such as elevators and escalators) HTML tooltip template, departure and destination marker templates, path style and polygon higlight color. If no options are set, sane defaults are used to draw markers, tooltips and polygon highlights.
3919
3897
  */
3920
- draw(directions: MappedinDirections | MappedinDirections[], options?: TJourneyOptions): Journey;
3898
+ draw(directions: MappedinDirections | MappedinDirections[], options?: TJourneyOptions): JourneyController;
3921
3899
  /**
3922
3900
  * Set the step of a multipart Journey
3923
3901
  */
@@ -3931,7 +3909,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey
3931
3909
  */
3932
3910
  clear(): void;
3933
3911
  }
3934
- export default JourneyLayer;
3912
+ export default Journey;
3935
3913
  }
3936
3914
 
3937
3915
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.types' {
@@ -4261,6 +4239,28 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin' {
4261
4239
  export {};
4262
4240
  }
4263
4241
 
4242
+ declare module '@mappedin/react-native-sdk/core/common/Mappedin.Logger' {
4243
+ export const MI_DEBUG_KEY = "mi-debug";
4244
+ export enum E_SDK_LOG_LEVEL {
4245
+ LOG = 0,
4246
+ WARN = 1,
4247
+ ERROR = 2,
4248
+ SILENT = 3
4249
+ }
4250
+ export function setLoggerLevel(level: E_SDK_LOG_LEVEL): void;
4251
+ const Logger: {
4252
+ logState: E_SDK_LOG_LEVEL;
4253
+ loggingEnabled(): boolean;
4254
+ log(...args: any[]): void;
4255
+ warn(...args: any[]): void;
4256
+ error(...args: any[]): void;
4257
+ assert(...args: any[]): void;
4258
+ time(label: string): void;
4259
+ timeEnd(label: string): void;
4260
+ };
4261
+ export default Logger;
4262
+ }
4263
+
4264
4264
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocation' {
4265
4265
  import type { TLocation, TColor, TGalleryImage, TLogo, TOpeningHours, TPhone, TPicture, TSiblingGroup, TSocial } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.API.types';
4266
4266
  import type { Mappedin } from '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin';
@@ -5882,12 +5882,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-s
5882
5882
 
5883
5883
  declare module '@mappedin/react-native-sdk/core/packages/renderer' {
5884
5884
  import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/public/MapView';
5885
- import { getVenue, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
5885
+ import { getVenue, getVenueMVF, getVenueBundle, Mappedin, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, MappedinDestinationSet, MappedinMap, TGetVenueBundleOptions, TGetVenueOptions } from '@mappedin/react-native-sdk/core/packages/get-venue';
5886
5886
  import { PositionUpdater } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.core';
5887
5887
  import type { TMapViewOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
5888
5888
  import { MARKER_ANCHOR } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Marker';
5889
- export type { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Markers';
5890
- export type { Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
5889
+ export { E_SDK_LOG_LEVEL, setLoggerLevel } from '@mappedin/react-native-sdk/core/common/Mappedin.Logger';
5890
+ export type { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
5891
+ export type { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
5891
5892
  export { BEARING_TYPE, ACTION_TYPE } from '@mappedin/react-native-sdk/core/packages/navigator';
5892
5893
  export type { IDirectionsResult, E_MESSAGES as E_GET_DIRECTIONS_MESSAGES } from '@mappedin/react-native-sdk/core/packages/navigator';
5893
5894
  export type { IFlatLabels, FlatLabels } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/FlatLabels';
@@ -5916,9 +5917,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
5916
5917
  */
5917
5918
  function showVenue<T extends Mappedin>(el: HTMLElement, venue: T, options?: TMapViewOptions): Promise<MapView>;
5918
5919
  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, } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
5919
- export { getVenue, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, MappedinDestinationSet, MARKER_ANCHOR, };
5920
+ export { getVenue, getVenueMVF, getVenueBundle, showVenue, downloadBundle, getVenueBundleURL, downloadVenueBundleMVF, PositionUpdater, MappedinDestinationSet, MARKER_ANCHOR, };
5920
5921
  import DefaultAssetManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager';
5921
- import { TTileManagerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Mappedin.TileManager';
5922
+ import { TTileManagerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.TileManager';
5922
5923
  /**
5923
5924
  * @internal
5924
5925
  */
@@ -5936,7 +5937,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
5936
5937
  export type { TMappedinInitializeOptions };
5937
5938
  export * from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
5938
5939
  export type { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/public/MapView';
5939
- export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, default as Camera, } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
5940
+ export type { TSafeAreaInsets, TCameraTargets, TFocusOnCameraOptions, TCameraTransform, TCameraAnimationOptions, default as CameraController, } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
5940
5941
  export type { TGetVenueOptions, TShowVenueOptions, TMappedinOfflineSearchOptions, TMappedinOfflineSearchResult, TMappedinOfflineSearchSuggestions, TMappedinOfflineAllSearchMatch, TMappedinOfflineSearchAllOptions, } from '@mappedin/react-native-sdk/core/packages/get-venue';
5941
5942
  export { Mappedin, MappedinDirections, MappedinLocation, MappedinPolygon, MappedinNode, MappedinCategory, MappedinMap, MappedinEvent, MappedinMapGroup, MappedinVenue, MappedinVortex, MappedinNavigatable, MappedinCoordinate, OfflineSearch, MAP_RENDER_MODE, setFetchFn, MappedinCollectionType, } from '@mappedin/react-native-sdk/core/packages/get-venue';
5942
5943
  /**
@@ -5960,12 +5961,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer' {
5960
5961
  /**
5961
5962
  * @internal
5962
5963
  */
5963
- OpenStreetMapOutdoorContext, } from './layers/Outdoor-Context/Outdoor-Context.provider';
5964
+ OpenStreetMapOutdoorContext, } from './internal/outdoor-context/Outdoor-Context.provider';
5964
5965
  export type {
5965
5966
  /**
5966
5967
  * @internal
5967
5968
  */
5968
- IOutdoorContextProvider, } from './layers/Outdoor-Context/Outdoor-Context.provider';
5969
+ IOutdoorContextProvider, } from './internal/outdoor-context/Outdoor-Context.provider';
5969
5970
  }
5970
5971
 
5971
5972
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.RenderTasks' {
@@ -5989,16 +5990,16 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
5989
5990
  import { E_SDK_EVENT_PAYLOAD, TCreateMarkerOptions, TLabelAllLocationFlatLabelOptions, TLabelAllLocationFloatingLabelOptions, TMapViewOptions, TPathOptions, TCreateTooltipCommonOptions, TCreateTooltipOptions, TMapClickEvent } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
5990
5991
  import { E_SDK_EVENT, STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
5991
5992
  import SmartTooltip from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
5992
- import Camera from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
5993
- import { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Markers';
5993
+ import { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
5994
5994
  import { PubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub.typed';
5995
- import BlueDotLayer from '@mappedin/react-native-sdk/core/packages/renderer/layers/BlueDot';
5996
- import JourneyLayer from '@mappedin/react-native-sdk/core/packages/renderer/layers/Journey';
5995
+ import Journey from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Journey';
5997
5996
  import { TGetPolygonsAtCoordinateOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
5998
5997
  import { IFlatLabels } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/FlatLabels';
5999
5998
  import { IFloatingLabels } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/FloatingLabels';
6000
- import { MarkersLayer } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Markers';
6001
- import { PathsLayer } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Paths';
5999
+ import { Markers } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Markers';
6000
+ import { Paths } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Paths';
6001
+ import { BlueDot } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/BlueDot';
6002
+ import { Camera } from '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera';
6002
6003
  export enum INTERNAL_EVENT {
6003
6004
  ON_FIRST_MAP_LOADED = 0,
6004
6005
  TEXTURE_LOADED = 1,
@@ -6064,14 +6065,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/MapView
6064
6065
  };
6065
6066
  export class MapView extends PubSub<E_SDK_EVENT_PAYLOAD, E_SDK_EVENT> {
6066
6067
  #private;
6067
- currentPath?: MappedinNode[];
6068
- BlueDot: BlueDotLayer;
6069
- Journey: JourneyLayer;
6068
+ Journey: Journey;
6070
6069
  Camera: Camera;
6071
6070
  FlatLabels: IFlatLabels<void>;
6072
6071
  FloatingLabels: IFloatingLabels<void>;
6073
- Markers: MarkersLayer;
6074
- Paths: PathsLayer;
6072
+ Markers: Markers;
6073
+ Paths: Paths;
6074
+ BlueDot: BlueDot;
6075
6075
  options: TMapViewOptions;
6076
6076
  constructor(container: HTMLElement, venue: Mappedin, options?: TMapViewOptions & {
6077
6077
  onFirstMapLoaded: () => void;
@@ -6884,7 +6884,7 @@ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.Task
6884
6884
 
6885
6885
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.SceneManager' {
6886
6886
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
6887
- import { TCameraTransform, TCameraAnimationOptions } from '@mappedin/react-native-sdk/core/packages/renderer/Camera';
6887
+ import { TCameraTransform, TCameraAnimationOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
6888
6888
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
6889
6889
  import MapViewScene from '@mappedin/react-native-sdk/core/packages/renderer/MapView.Scene';
6890
6890
  export type TSceneTransitionOptions = {
@@ -7196,161 +7196,401 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7196
7196
  import { FrameTaskGroup } from "@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.TaskScheduler";
7197
7197
  }
7198
7198
 
7199
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
7200
- import SmartCollisionEngine from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
7201
- import { Rectangle } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
7202
- import { MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
7203
- export type TRange = [number, number, number, number];
7204
- type TCustomCollider<T> = ICollider & T;
7205
- export type TColliderStrategyProps = {
7206
- x: number;
7207
- y: number;
7208
- totalHeight?: number;
7209
- totalWidth?: number;
7210
- };
7211
- export type TColliderStrategy = {
7212
- name: string;
7213
- getBoundingBox: (TColliderStrategyProps: any) => TRange;
7214
- onStrategySelected: (collider: TCustomCollider<any>) => void;
7215
- };
7216
- export type TGetBoundingBox = ({ x, y }: {
7217
- x: any;
7218
- y: any;
7219
- }) => [number, number, number, number];
7220
- export type TDimensions = {
7221
- width: number;
7222
- height: number;
7223
- };
7224
- export enum EColliderAction {
7225
- 'initial' = 0,
7226
- 'show' = 1,
7227
- 'hide' = 2
7228
- }
7229
- export type TColliderPosition = {
7230
- nodeOrCoordinate: MappedinNode | MappedinCoordinate;
7231
- height?: number;
7232
- };
7233
- export interface ICollider {
7234
- dimensions: TDimensions;
7235
- screenPosition: [number, number];
7236
- getBoundingBoxForCurrentStrategy?: TGetBoundingBox;
7237
- options?: Record<string, unknown>;
7238
- mapId: string;
7239
- visible: boolean;
7240
- rank: number;
7241
- id: string;
7242
- _bboxes?: [string, Rectangle, (collider: TCustomCollider<any>) => void, TGetBoundingBox][];
7243
- offscreen?: boolean;
7244
- setAction: (action: EColliderAction) => void;
7245
- action?: EColliderAction;
7246
- position: TColliderPosition;
7247
- __engine?: SmartCollisionEngine;
7248
- enable: () => void;
7249
- disable: () => void;
7250
- enabled: boolean;
7251
- promote?: () => void;
7252
- demote?: () => void;
7253
- setPriority?: (rank: number) => void;
7254
- resetPriority?: () => void;
7255
- readonly strategies: TColliderStrategy[];
7256
- colliderDidMount?: () => void;
7257
- colliderDidNotFindAHome?: () => void;
7258
- colliderDidGoOffscreen?: () => void;
7259
- colliderDidGoOutsideGrid?: () => void;
7260
- colliderDidUpdateVisiblity?: () => void;
7261
- colliderDidUpdatePosition?: (prop: [x: number, y: number]) => void;
7262
- }
7263
- class BaseCollider implements ICollider {
7264
- __engine: any;
7265
- _initialRank: number;
7266
- screenPosition: [number, number];
7267
- enabled: boolean;
7268
- options: any;
7269
- mapId: string;
7270
- id: string;
7271
- action: EColliderAction;
7272
- getBoundingBoxForCurrentStrategy: undefined;
7273
- rank: number;
7274
- visible: boolean;
7275
- offscreen: boolean;
7276
- position: any;
7277
- dimensions: {
7278
- width: number;
7279
- height: number;
7280
- };
7281
- flipIfNeeded(): void;
7282
- constructor(options: any);
7283
- setPosition(position: MappedinNode | MappedinCoordinate): void;
7284
- setPriority(rank: any): void;
7285
- setAction(action: any): void;
7286
- resetPriority(): void;
7287
- promote(): void;
7288
- demote(): void;
7289
- get strategies(): TColliderStrategy[];
7290
- removeSelf(): void;
7291
- enable(): void;
7292
- disable(): void;
7293
- colliderDidUpdatePosition(pos: any): void;
7294
- colliderDidNotFindAHome(): void;
7295
- colliderDidMount(): void;
7296
- colliderDidUpdateVisiblity(): void;
7297
- }
7298
- export default BaseCollider;
7299
- }
7300
-
7301
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave-text' {
7302
- export type TDrawFn = (ctx: CanvasRenderingContext2D, x: number, y: number) => void;
7303
- type TShave = (str: string, size: number, maxWidth: number, maxLines?: number, lineHeight?: number, options?: {
7304
- strokeText: boolean;
7305
- }) => {
7306
- maxWidth: number;
7307
- maxHeight: number;
7308
- lines: number;
7309
- draw: TDrawFn;
7310
- };
7311
- export const shaveText: TShave;
7312
- export {};
7313
- }
7314
-
7315
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
7316
- export default FakeGeolocation;
7317
- class FakeGeolocation {
7318
- constructor(options: any);
7319
- active: boolean;
7320
- positions: any[];
7321
- positionIndex: number;
7322
- timerList: any[];
7323
- timeElapsed: number;
7324
- startTime: number | undefined;
7325
- startPos: number;
7326
- endPos: number;
7327
- smoothingType: any;
7328
- isActive(): boolean;
7329
- setCallbacks(success: any, error: any, options: any): void;
7330
- watchPosition(success: any, error: any, options: any): void;
7331
- sendPositionResponse(position: any): void;
7332
- start(): void;
7333
- pause(): void;
7334
- speed: any;
7335
- setPositions(positions: any): void;
7336
- successCallback: any;
7337
- errorCallback: any;
7338
- options: any;
7339
- clearWatch(): void;
7340
- reset(): void;
7199
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonColorsController' {
7200
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7201
+ class PolygonColorsController {
7202
+ #private;
7203
+ constructor(core: ICore);
7204
+ setPolygonColor(polygon: any, color: any): void;
7205
+ clearPolygonColor(polygon: any): void;
7206
+ clearAllPolygonColors(): void;
7341
7207
  }
7208
+ export default PolygonColorsController;
7342
7209
  }
7343
7210
 
7344
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
7345
- import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
7346
- import { E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
7211
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController' {
7212
+ import { MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
7213
+ import { TCreateMarkerOptions, TAnimationOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
7214
+ import InternalMarker from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Marker';
7215
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7216
+ import TWEEN from '@tweenjs/tween.js';
7347
7217
  /**
7348
- What we just learned about the user's position.
7349
- */
7350
- export enum ACTION {
7351
- gotPosition = 0,
7352
- gotPositionWithFloor = 1,
7353
- gotError = 2,
7218
+ * A marker containing some HTML content.
7219
+ */
7220
+ export class Marker {
7221
+ #private;
7222
+ constructor(internalMarker: InternalMarker);
7223
+ /**
7224
+ * A generated ID for this marker.
7225
+ */
7226
+ get id(): string;
7227
+ /**
7228
+ * The container element for this marker. This element's position is automatically updated.
7229
+ */
7230
+ get containerEl(): any;
7231
+ /**
7232
+ * The content that was provided when creating this marker.
7233
+ */
7234
+ get contentEl(): any;
7235
+ }
7236
+ class MarkersController {
7237
+ #private;
7238
+ markersMap: Map<string, {
7239
+ marker: Marker;
7240
+ internalMarker: InternalMarker;
7241
+ }>;
7242
+ animations: Map<string, {
7243
+ tween: TWEEN.Tween;
7244
+ resolver: () => void;
7245
+ }>;
7246
+ constructor(core: ICore);
7247
+ /**
7248
+ * Create a new Marker, containing some HTML, at the specified position
7249
+ * @param nodeOrCoordinate the position for the Marker
7250
+ * @param contentHtml the content to show in the Marker
7251
+ * @param options options for the display of the Marker
7252
+ * @returns the Marker object that was created.
7253
+ */
7254
+ add(nodeOrCoordinate: MappedinNode | MappedinCoordinate, contentHtml: string, options?: TCreateMarkerOptions): Marker;
7255
+ updateMap(internalMarker: InternalMarker, from: string, to: string): void;
7256
+ /**
7257
+ * Moves a Marker to a new position instantaneously.
7258
+ * @param markerOrMarkerId the Marker to move
7259
+ * @param target the new position for this Marker
7260
+ */
7261
+ setPosition(markerOrMarkerId: Marker | Marker['id'], target: MappedinNode | MappedinCoordinate): void;
7262
+ /**
7263
+ * Moves a Marker to a new position over time.
7264
+ * @param markerOrMarkerId the Marker to move
7265
+ * @param target the new position for this Marker
7266
+ * @param options the options for how this movement should be animated
7267
+ */
7268
+ animate(markerOrMarkerId: Marker | Marker['id'], target: MappedinCoordinate | MappedinNode, options?: TAnimationOptions): Promise<void>;
7269
+ /**
7270
+ * Removes a Marker.
7271
+ * @param markerOrMarkerId the Marker to be removed
7272
+ */
7273
+ remove(markerOrMarkerId: Marker | Marker['id']): void;
7274
+ /**
7275
+ * Remove all Markers from all maps.
7276
+ */
7277
+ removeAll(): void;
7278
+ }
7279
+ export default MarkersController;
7280
+ }
7281
+
7282
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonInteractionController' {
7283
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7284
+ class PolygonInteractionController {
7285
+ #private;
7286
+ constructor(core: ICore);
7287
+ addInteractivePolygon(polygon: any): void;
7288
+ addInteractivePolygonsForAllLocations(options: any): void;
7289
+ removeInteractivePolygon(polygon: any): void;
7290
+ removeAllInteractivePolygons(): void;
7291
+ }
7292
+ export default PolygonInteractionController;
7293
+ }
7294
+
7295
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/TooltipsController' {
7296
+ import { MappedinCoordinate, TCreateTooltipCommonOptions, TCreateTooltipOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
7297
+ import { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
7298
+ import SmartTooltip from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartTooltip';
7299
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7300
+ class TooltipsController {
7301
+ #private;
7302
+ constructor(core: ICore);
7303
+ createTooltip(nodeOrCoordinate: MappedinNode | MappedinCoordinate,
7304
+ /**
7305
+ * Html that will be placed inside a wrapper with its own styling in the tooltip
7306
+ */
7307
+ contentHtml: string, options?: TCreateTooltipOptions): SmartTooltip;
7308
+ createCustomTooltip(nodeOrCoordinate: MappedinNode | MappedinCoordinate,
7309
+ /**
7310
+ * Html that will be displayed by the tooltip without any added styling
7311
+ */
7312
+ contentHtml: string, selector: string, options?: TCreateTooltipCommonOptions): SmartTooltip;
7313
+ /**
7314
+ * Removes a {@link Tooltip} you have added previously.
7315
+ *
7316
+ * @param tooltip {Tooltip} A Tooltip that has previously been returned from {@link IMapView3D.createTooltip}.
7317
+ */
7318
+ removeTooltip(tooltipOrTooltipId: SmartTooltip | SmartTooltip['id']): void;
7319
+ removeAllTooltips(): void;
7320
+ }
7321
+ export default TooltipsController;
7322
+ }
7323
+
7324
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonStatesController' {
7325
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7326
+ class PolygonStatesController {
7327
+ #private;
7328
+ constructor(core: ICore);
7329
+ updateClosedStateForPolygon(options: any): void;
7330
+ openAllPolygons(): void;
7331
+ destroy(): void;
7332
+ }
7333
+ export default PolygonStatesController;
7334
+ }
7335
+
7336
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PolygonImagesController' {
7337
+ import { MappedinPolygon } from '@mappedin/react-native-sdk/core/packages/renderer';
7338
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7339
+ class PolygonImagesController {
7340
+ #private;
7341
+ constructor(core: ICore);
7342
+ enableImageFlippingForAllLocations(options: any): void;
7343
+ enableImageFlippingForPolygon(polygon: MappedinPolygon): void;
7344
+ disableImageFlippingForAllPolygons(): void;
7345
+ }
7346
+ export default PolygonImagesController;
7347
+ }
7348
+
7349
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/ThreeDMarkersController' {
7350
+ import { TCreateThreeDMarkerOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
7351
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7352
+ import { ThreeJSMarkerHandle } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
7353
+ class ThreeDMarkersController {
7354
+ #private;
7355
+ constructor(core: ICore);
7356
+ createThreeJSMarker(options: TCreateThreeDMarkerOptions): ThreeJSMarkerHandle;
7357
+ removeThreeJSMarker(markerHandle: ThreeJSMarkerHandle): boolean;
7358
+ removeAllThreeJSMarkers(): void;
7359
+ }
7360
+ export default ThreeDMarkersController;
7361
+ }
7362
+
7363
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/EventSystem' {
7364
+ import { Object3D, Color } from 'three';
7365
+ import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7366
+ import BlueDotManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-dot-manager';
7367
+ import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
7368
+ class EventSystem {
7369
+ core: ICore;
7370
+ blueDotManager?: BlueDotManager;
7371
+ rendererDomElement: any;
7372
+ currentHover: string | null;
7373
+ hoverLabel: any;
7374
+ hoverColor: Color;
7375
+ options: {
7376
+ disableHover: boolean;
7377
+ };
7378
+ constructor(core: ICore);
7379
+ setBlueDotManager: (blueDotManager: any) => void;
7380
+ touchCount: number;
7381
+ zoomOut(): void;
7382
+ zoomIn(event: any): void;
7383
+ onPointerMove: (event: any) => void;
7384
+ onPointerUp: (event: any) => void;
7385
+ /**
7386
+ * We've confirmed that a map click has occured, so handle that here
7387
+ */
7388
+ handleMapClick(event: any): void;
7389
+ onPointerDown: (event: any) => void;
7390
+ incrementTouches: (event: any) => void;
7391
+ decrementTouches: (event: any) => void;
7392
+ clearMouse: () => void;
7393
+ getMousePos: (event: any) => {
7394
+ x: number;
7395
+ y: number;
7396
+ };
7397
+ getScaledMousePos: (event: any) => {
7398
+ x: number;
7399
+ y: number;
7400
+ };
7401
+ cursorPos: {
7402
+ x: number;
7403
+ y: number;
7404
+ };
7405
+ mouse: {
7406
+ x: number;
7407
+ y: number;
7408
+ };
7409
+ mouseDownStart: {
7410
+ time: number;
7411
+ clientX: number;
7412
+ clientY: number;
7413
+ };
7414
+ scaledCursorPos: {
7415
+ x: number;
7416
+ y: number;
7417
+ };
7418
+ hasTouched: boolean;
7419
+ calculateMouseCoordinates: (event: any) => void;
7420
+ getMouseRayIntersects: (objects: Object3D | Object3D[]) => any;
7421
+ detectCollidersUnderMouse: () => any;
7422
+ detectPolygonsUnderMouse: () => string[];
7423
+ detectPathsUnderMouse: () => Path[];
7424
+ detectMapsUnderMouse: () => any;
7425
+ getMouseMapPosition: () => {
7426
+ x: number;
7427
+ y: number;
7428
+ };
7429
+ checkMouseIntersectsBlueDot: () => boolean;
7430
+ doHoverEffect: () => void;
7431
+ onPolygonHoverOut: (polygonId: any) => false | undefined;
7432
+ onPolygonHoverOver: (polygon: any) => false | undefined;
7433
+ setHoverColor: (color: string) => void;
7434
+ destroy(): void;
7435
+ }
7436
+ export default EventSystem;
7437
+ }
7438
+
7439
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider' {
7440
+ import SmartCollisionEngine from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine';
7441
+ import { Rectangle } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
7442
+ import { MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
7443
+ export type TRange = [number, number, number, number];
7444
+ type TCustomCollider<T> = ICollider & T;
7445
+ export type TColliderStrategyProps = {
7446
+ x: number;
7447
+ y: number;
7448
+ totalHeight?: number;
7449
+ totalWidth?: number;
7450
+ };
7451
+ export type TColliderStrategy = {
7452
+ name: string;
7453
+ getBoundingBox: (TColliderStrategyProps: any) => TRange;
7454
+ onStrategySelected: (collider: TCustomCollider<any>) => void;
7455
+ };
7456
+ export type TGetBoundingBox = ({ x, y }: {
7457
+ x: any;
7458
+ y: any;
7459
+ }) => [number, number, number, number];
7460
+ export type TDimensions = {
7461
+ width: number;
7462
+ height: number;
7463
+ };
7464
+ export enum EColliderAction {
7465
+ 'initial' = 0,
7466
+ 'show' = 1,
7467
+ 'hide' = 2
7468
+ }
7469
+ export type TColliderPosition = {
7470
+ nodeOrCoordinate: MappedinNode | MappedinCoordinate;
7471
+ height?: number;
7472
+ };
7473
+ export interface ICollider {
7474
+ dimensions: TDimensions;
7475
+ screenPosition: [number, number];
7476
+ getBoundingBoxForCurrentStrategy?: TGetBoundingBox;
7477
+ options?: Record<string, unknown>;
7478
+ mapId: string;
7479
+ visible: boolean;
7480
+ rank: number;
7481
+ id: string;
7482
+ _bboxes?: [string, Rectangle, (collider: TCustomCollider<any>) => void, TGetBoundingBox][];
7483
+ offscreen?: boolean;
7484
+ setAction: (action: EColliderAction) => void;
7485
+ action?: EColliderAction;
7486
+ position: TColliderPosition;
7487
+ __engine?: SmartCollisionEngine;
7488
+ enable: () => void;
7489
+ disable: () => void;
7490
+ enabled: boolean;
7491
+ promote?: () => void;
7492
+ demote?: () => void;
7493
+ setPriority?: (rank: number) => void;
7494
+ resetPriority?: () => void;
7495
+ readonly strategies: TColliderStrategy[];
7496
+ colliderDidMount?: () => void;
7497
+ colliderDidNotFindAHome?: () => void;
7498
+ colliderDidGoOffscreen?: () => void;
7499
+ colliderDidGoOutsideGrid?: () => void;
7500
+ colliderDidUpdateVisiblity?: () => void;
7501
+ colliderDidUpdatePosition?: (prop: [x: number, y: number]) => void;
7502
+ }
7503
+ class BaseCollider implements ICollider {
7504
+ __engine: any;
7505
+ _initialRank: number;
7506
+ screenPosition: [number, number];
7507
+ enabled: boolean;
7508
+ options: any;
7509
+ mapId: string;
7510
+ id: string;
7511
+ action: EColliderAction;
7512
+ getBoundingBoxForCurrentStrategy: undefined;
7513
+ rank: number;
7514
+ visible: boolean;
7515
+ offscreen: boolean;
7516
+ position: any;
7517
+ dimensions: {
7518
+ width: number;
7519
+ height: number;
7520
+ };
7521
+ flipIfNeeded(): void;
7522
+ constructor(options: any);
7523
+ setPosition(position: MappedinNode | MappedinCoordinate): void;
7524
+ setPriority(rank: any): void;
7525
+ setAction(action: any): void;
7526
+ resetPriority(): void;
7527
+ promote(): void;
7528
+ demote(): void;
7529
+ get strategies(): TColliderStrategy[];
7530
+ removeSelf(): void;
7531
+ enable(): void;
7532
+ disable(): void;
7533
+ colliderDidUpdatePosition(pos: any): void;
7534
+ colliderDidNotFindAHome(): void;
7535
+ colliderDidMount(): void;
7536
+ colliderDidUpdateVisiblity(): void;
7537
+ }
7538
+ export default BaseCollider;
7539
+ }
7540
+
7541
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/shave-text' {
7542
+ export type TDrawFn = (ctx: CanvasRenderingContext2D, x: number, y: number) => void;
7543
+ type TShave = (str: string, size: number, maxWidth: number, maxLines?: number, lineHeight?: number, options?: {
7544
+ strokeText: boolean;
7545
+ }) => {
7546
+ maxWidth: number;
7547
+ maxHeight: number;
7548
+ lines: number;
7549
+ draw: TDrawFn;
7550
+ };
7551
+ export const shaveText: TShave;
7552
+ export {};
7553
+ }
7554
+
7555
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/fake-geolocation' {
7556
+ export default FakeGeolocation;
7557
+ class FakeGeolocation {
7558
+ constructor(options: any);
7559
+ active: boolean;
7560
+ positions: any[];
7561
+ positionIndex: number;
7562
+ timerList: any[];
7563
+ timeElapsed: number;
7564
+ startTime: number | undefined;
7565
+ startPos: number;
7566
+ endPos: number;
7567
+ smoothingType: any;
7568
+ isActive(): boolean;
7569
+ setCallbacks(success: any, error: any, options: any): void;
7570
+ watchPosition(success: any, error: any, options: any): void;
7571
+ sendPositionResponse(position: any): void;
7572
+ start(): void;
7573
+ pause(): void;
7574
+ speed: any;
7575
+ setPositions(positions: any): void;
7576
+ successCallback: any;
7577
+ errorCallback: any;
7578
+ options: any;
7579
+ clearWatch(): void;
7580
+ reset(): void;
7581
+ }
7582
+ }
7583
+
7584
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.BlueDot/Mappedin.BlueDot.StateMachine' {
7585
+ import { IPubSub } from '@mappedin/react-native-sdk/core/packages/renderer/internal/pub-sub';
7586
+ import { E_BLUEDOT_STATE, E_BLUEDOT_MARKER_STATE } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
7587
+ /**
7588
+ What we just learned about the user's position.
7589
+ */
7590
+ export enum ACTION {
7591
+ gotPosition = 0,
7592
+ gotPositionWithFloor = 1,
7593
+ gotError = 2,
7354
7594
  timedOut = 3,
7355
7595
  disabledBlueDot = 4,
7356
7596
  enabledBlueDot = 5
@@ -7403,7 +7643,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-
7403
7643
  /**
7404
7644
  * @private
7405
7645
  * An interface for showing a position (typically the user's position) on a 3D map.
7406
- * Constructed automatically by {{#crossLink "MapView3D"}}{{/crossLink}}.
7407
7646
  *
7408
7647
  * @class BlueDotManager
7409
7648
  */
@@ -7412,8 +7651,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-
7412
7651
  * @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.
7413
7652
  * @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.
7414
7653
  */
7415
- constructor({ mapView, threeDMarkerLayer, core, minRadius, maxRadius, radiusUpdateInterval, radiusTweenOptions, }?: {
7416
- mapView: any;
7654
+ constructor({ threeDMarkerLayer, core, minRadius, maxRadius, radiusUpdateInterval, radiusTweenOptions, }?: {
7417
7655
  threeDMarkerLayer: any;
7418
7656
  core: any;
7419
7657
  minRadius?: number | undefined;
@@ -7424,7 +7662,6 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-
7424
7662
  easing: any;
7425
7663
  } | undefined;
7426
7664
  });
7427
- mapView: any;
7428
7665
  threeDMarkerLayer: any;
7429
7666
  core: any;
7430
7667
  minRadius: number;
@@ -7539,344 +7776,60 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
7539
7776
  export default HTMLCollider;
7540
7777
  }
7541
7778
 
7542
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/EventSystem' {
7543
- import { Object3D, Color } from 'three';
7544
- import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
7545
- import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7546
- import BlueDotManager from '@mappedin/react-native-sdk/core/packages/renderer/internal/blue-dot-manager';
7547
- import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
7548
- class EventSystemLayer {
7549
- mapView: MapView;
7550
- core: ICore;
7551
- blueDotManager?: BlueDotManager;
7552
- rendererDomElement: any;
7553
- currentHover: string | null;
7554
- hoverLabel: any;
7555
- hoverColor: Color;
7556
- options: {
7557
- disableHover: boolean;
7558
- };
7559
- blueDot?: Object3D;
7560
- constructor(mapView: MapView, core: ICore);
7561
- setBlueDotManager: (blueDotManager: any) => void;
7562
- touchCount: number;
7563
- zoomOut(): void;
7564
- zoomIn(event: any): void;
7565
- onPointerMove: (event: any) => void;
7566
- onPointerUp: (event: any) => void;
7567
- /**
7568
- * We've confirmed that a map click has occured, so handle that here
7569
- */
7570
- handleMapClick(event: any): void;
7571
- onPointerDown: (event: any) => void;
7572
- incrementTouches: (event: any) => void;
7573
- decrementTouches: (event: any) => void;
7574
- clearMouse: () => void;
7575
- getMousePos: (event: any) => {
7576
- x: number;
7577
- y: number;
7578
- };
7579
- getScaledMousePos: (event: any) => {
7580
- x: number;
7581
- y: number;
7582
- };
7583
- cursorPos: {
7584
- x: number;
7585
- y: number;
7586
- };
7587
- mouse: {
7588
- x: number;
7589
- y: number;
7590
- };
7591
- mouseDownStart: {
7592
- time: number;
7593
- clientX: number;
7594
- clientY: number;
7595
- };
7596
- scaledCursorPos: {
7597
- x: number;
7598
- y: number;
7599
- };
7600
- hasTouched: boolean;
7601
- calculateMouseCoordinates: (event: any) => void;
7602
- getMouseRayIntersects: (objects: Object3D | Object3D[]) => any;
7603
- detectCollidersUnderMouse: () => any;
7604
- detectPolygonsUnderMouse: () => string[];
7605
- detectPathsUnderMouse: () => Path[];
7606
- detectMapsUnderMouse: () => any;
7607
- getMouseMapPosition: () => {
7608
- x: number;
7609
- y: number;
7610
- };
7611
- checkMouseIntersectsBlueDot: () => boolean;
7612
- doHoverEffect: () => void;
7613
- onPolygonHoverOut: (polygonId: any) => false | undefined;
7614
- onPolygonHoverOver: (polygon: any) => false | undefined;
7615
- setHoverColor: (color: string) => void;
7616
- destroy(): void;
7617
- }
7618
- export default EventSystemLayer;
7619
- }
7620
-
7621
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Journey' {
7779
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/JourneyController' {
7622
7780
  import type Directive from '@mappedin/react-native-sdk/core/packages/navigator/Directive';
7623
7781
  import type INode from '@mappedin/react-native-sdk/core/packages/navigator/interfaces/INode';
7624
7782
  import { TJourneyOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
7625
7783
  import { MappedinDirections } from '@mappedin/react-native-sdk/core/packages/get-venue';
7626
- import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
7627
7784
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
7628
- import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
7785
+ import { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
7629
7786
  export type TMappedinDirections = {
7630
- distance: number;
7631
- path: INode[];
7632
- instructions: Directive[];
7633
- };
7634
- /**
7635
- *
7636
- * The Journey class represents a journey from point A to point B. This includes any intermediate connections, such as stairs or elevators.
7637
- * The idea is to provide a higher level API with enough hooks to customize the experience. Also, to ensure only 1 journey is allowed at once.
7638
- * This version does not support "stacked view" - but that can be added in the future
7639
- *
7640
- * @internal
7641
- */
7642
- export class Journey {
7643
- #private;
7644
- distance: number;
7645
- accessible: boolean;
7646
- get isMultiFloor(): boolean;
7647
- get mapIdsInvolvedInJourney(): string[];
7648
- constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions | undefined, mapView: MapView, core: ICore);
7649
- setStep: (step: any) => void;
7650
- setStepByPath: (path: Path) => void;
7651
- static instance: Journey | null;
7652
- static create(directions: MappedinDirections | MappedinDirections[], options: any, mapView: MapView, core: ICore): Journey;
7653
- destroy(): void;
7654
- }
7655
- }
7656
-
7657
- declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
7658
- import { FeatureCollection, Polygon, Point, MultiPolygon, Position } from 'geojson';
7659
- type ManifestFile = {
7660
- type: 'file';
7661
- name: string;
7662
- };
7663
- type ManifestFolder = {
7664
- type: 'folder';
7665
- name: string;
7666
- children: ManifestFile[];
7667
- };
7668
- type OpeningHours = {
7669
- opens: string;
7670
- closes: string;
7671
- dayOfWeek: string;
7672
- validFrom?: string;
7673
- validThrough?: string;
7674
- };
7675
- type Image = {
7676
- original?: string;
7677
- xlarge?: string;
7678
- xxlarge?: string;
7679
- medium?: string;
7680
- '140x140'?: string;
7681
- xsmall?: string;
7682
- xxsmall?: string;
7683
- '66x66'?: string;
7684
- small?: string;
7685
- large?: string;
7686
- };
7687
- type PolygonImage = string;
7688
- type Phone = {
7689
- number: string;
7690
- extension?: string;
7691
- };
7692
- type Link = {
7693
- label: string;
7694
- url: string;
7695
- };
7696
- type Social = {
7697
- facebook?: string;
7698
- twitter?: string;
7699
- instagram?: string;
7700
- website?: string;
7701
- };
7702
- type LocationState = {
7703
- type: string;
7704
- start?: string;
7705
- end?: string;
7706
- };
7707
- type SiblingGroup = {
7708
- label: string;
7709
- siblings: string[];
7710
- };
7711
- export type MILocationProperties = {
7712
- id: string;
7713
- address?: string | null;
7714
- categories: string[];
7715
- description?: string | null;
7716
- email?: string | null;
7717
- externalId?: string | null;
7718
- hours?: OpeningHours[] | null;
7719
- links?: Link[] | null;
7720
- logo?: Image | null;
7721
- name: string;
7722
- phone?: Phone | null;
7723
- picture?: Image | null;
7724
- services?: string | null;
7725
- siblingGroups?: SiblingGroup[] | null;
7726
- social?: Social | null;
7727
- spaces?: TLocationSpaceReference[] | null;
7728
- states?: LocationState[] | null;
7729
- type: string;
7730
- };
7731
- export type MICategoryProperties = {
7732
- id: string;
7733
- name: string;
7734
- picture?: Image;
7735
- };
7736
- export type MIBuildingProperties = {
7737
- id: string;
7738
- name: string;
7739
- venue: string;
7740
- };
7741
- export type MILevelProperties = {
7742
- id: string;
7743
- abbreviation?: string;
7744
- building?: string;
7745
- elevation?: number;
7746
- name: string;
7747
- };
7748
- export type MIPolygonlikeProperties = {
7749
- id: string;
7750
- altitude?: string;
7751
- color?: string;
7752
- externalId?: string | null;
7753
- height?: string;
7754
- layer?: string;
7755
- level: string;
7756
- parent?: string | null;
7757
- };
7758
- type TPseudoNodeSpaceReference = {
7759
- node: string;
7760
- map: string;
7761
- };
7762
- export type TRealSpaceReference = {
7763
- id: string;
7764
- map: string;
7765
- };
7766
- type TLocationSpaceReference = TPseudoNodeSpaceReference | TRealSpaceReference;
7767
- export type TEntrances = {
7768
- id: string;
7769
- level: string;
7770
- };
7771
- export type MISpaceProperties = MIPolygonlikeProperties & {
7772
- entrances: TEntrances[];
7773
- };
7774
- export type MIObstructionProperties = MIPolygonlikeProperties;
7775
- export type MIConnectionProperties = {
7776
- id: string;
7777
- accessible: boolean;
7778
- destinations: string[];
7779
- level: string;
7780
- multiplier: number;
7781
- name: string;
7782
- type: string;
7783
- weight: number;
7784
- };
7785
- export type MINodeProperties = {
7786
- id: string;
7787
- accessible: boolean;
7788
- externalId: string | null;
7789
- level: string;
7790
- multiplier: number;
7791
- neighbors: string[];
7792
- weight: number;
7793
- };
7794
- export type MIManifestProperties = {
7795
- name: string;
7796
- folder_struct: (ManifestFolder | ManifestFile)[];
7797
- version: string;
7798
- time: string;
7799
- };
7800
- export type MIStyle = {
7801
- id: string;
7802
- /** The altitude of the bottom of the geometry, in metres. */
7803
- altitude: number;
7804
- color: string;
7805
- height: number;
7806
- image?: PolygonImage;
7807
- opacity: number;
7808
- };
7809
- export type MIImageInstance = {
7810
- /** The local path or URL of the image. */
7811
- path: string;
7812
- /** The position of the centre of the image, in [long, lat] form. */
7813
- position: Position;
7814
- /** The altitude of the image, in metres. */
7815
- altitude: number;
7816
- /** Euler angles representing the rotation of the image, in degrees. Angles are in XYZ order. */
7817
- rotation: {
7818
- x: number;
7819
- y: number;
7820
- z: number;
7821
- };
7822
- /** The size of the image, in metres. */
7823
- size: {
7824
- x: number;
7825
- y: number;
7826
- };
7827
- /** The portion of the image to display. */
7828
- viewBox: {
7829
- top: number;
7830
- left: number;
7831
- width: number;
7832
- height: number;
7833
- };
7834
- /**
7835
- * A space or obstruction to associate this image with. If provided,
7836
- * changes to the polygon's visibility will affect this image.
7837
- * */
7838
- polygonId?: string;
7839
- };
7840
- export type MIGeoJSONManifestCollection = FeatureCollection<Point, MIManifestProperties>;
7841
- export type MIGeoJSONBuildingCollection = FeatureCollection<Polygon, MIBuildingProperties>;
7842
- export type MIGeoJSONConnectionCollection = FeatureCollection<Point, MIConnectionProperties>;
7843
- export type MIGeoJSONLevelCollection = FeatureCollection<Polygon | MultiPolygon, MILevelProperties>;
7844
- export type MIGeoJSONSpaceCollection = FeatureCollection<Polygon, MISpaceProperties>;
7845
- export type MIGeoJSONObstructionCollection = FeatureCollection<Polygon, MIObstructionProperties>;
7846
- export type MIGeoJSONNodeCollection = FeatureCollection<Point, MINodeProperties>;
7847
- export type MIGeoJSONLocationCollection = FeatureCollection<null, MILocationProperties>;
7848
- export type MIGeoJSONCategoryCollection = FeatureCollection<null, MICategoryProperties>;
7849
- export type WithIDs<T> = Map<string, T>;
7850
- export type MIStyleCollection = MIStyle[];
7851
- /**
7852
- * A mapping of polygon IDs to style IDs;
7853
- */
7854
- export type MIPolygonStyle = {
7855
- [key in string]: string;
7787
+ distance: number;
7788
+ path: INode[];
7789
+ instructions: Directive[];
7856
7790
  };
7857
- export type MIImageInstanceCollection = MIImageInstance[];
7858
7791
  /**
7859
- * The entire data collection for an MVF, in a single JSON collection.
7860
- *
7861
- */
7862
- export type MVFDataJSON = {
7863
- connection: WithIDs<MIGeoJSONConnectionCollection>;
7864
- level: WithIDs<MIGeoJSONLevelCollection>;
7865
- node: WithIDs<MIGeoJSONNodeCollection>;
7866
- obstruction: WithIDs<MIGeoJSONObstructionCollection>;
7867
- space: WithIDs<MIGeoJSONSpaceCollection>;
7868
- building: MIGeoJSONBuildingCollection;
7869
- category: MIGeoJSONCategoryCollection;
7870
- style: MIStyleCollection;
7871
- polygonStyle: WithIDs<MIPolygonStyle>;
7872
- imageInstance: WithIDs<MIImageInstanceCollection>;
7873
- location: MIGeoJSONLocationCollection;
7874
- manifest: MIGeoJSONManifestCollection;
7875
- };
7876
- export type MVFData = MVFDataJSON & {
7877
- imageBinaries: WithIDs<Uint8Array>;
7792
+ *
7793
+ * The Journey class represents a journey from point A to point B. This includes any intermediate connections, such as stairs or elevators.
7794
+ * The idea is to provide a higher level API with enough hooks to customize the experience. Also, to ensure only 1 journey is allowed at once.
7795
+ * This version does not support "stacked view" - but that can be added in the future
7796
+ *
7797
+ * @internal
7798
+ */
7799
+ export class JourneyController {
7800
+ #private;
7801
+ distance: number;
7802
+ accessible: boolean;
7803
+ core: ICore;
7804
+ get isMultiFloor(): boolean;
7805
+ get mapIdsInvolvedInJourney(): string[];
7806
+ constructor(directions: MappedinDirections | MappedinDirections[], options: TJourneyOptions | undefined, core: ICore);
7807
+ setStep: (step: any) => void;
7808
+ setStepByPath: (path: Path) => void;
7809
+ static instance: JourneyController | null;
7810
+ static create(directions: MappedinDirections | MappedinDirections[], options: any, core: ICore): JourneyController;
7811
+ destroy(): void;
7812
+ }
7813
+ }
7814
+
7815
+ declare module '@mappedin/react-native-sdk/core/packages/get-venue/Mappedin.MVF.types' {
7816
+ import { ManifestCollection, NodeCollection, ObstructionCollection, SpaceCollection, Connections, Maps, EntranceCollection, MapStacks, StyleCollection } from '@mappedin/mvf';
7817
+ export type WithIDs<T> = Map<string, T>;
7818
+ /**
7819
+ * The entire data collection for an MVF, in a single JSON collection.
7820
+ *
7821
+ */
7822
+ export type MVFData = {
7823
+ obstruction: WithIDs<ObstructionCollection>;
7824
+ space: WithIDs<SpaceCollection>;
7825
+ node: WithIDs<NodeCollection>;
7826
+ entrance: WithIDs<EntranceCollection>;
7827
+ connection: Connections;
7828
+ map: Maps;
7829
+ mapstack: MapStacks;
7830
+ manifest: ManifestCollection;
7831
+ style: StyleCollection;
7878
7832
  };
7879
- export {};
7880
7833
  }
7881
7834
 
7882
7835
  declare module '@mappedin/react-native-sdk/core/packages/get-venue/MappedinLocationRankings' {
@@ -8014,128 +7967,45 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8014
7967
  import { Vector3 } from 'three';
8015
7968
  import { TColliderStrategy } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
8016
7969
  /**
8017
- *
8018
- * A Marker is an html element that allows users to attach an image or text to a MappedinNode, while interacting (colliding) with other elements.
8019
- *
8020
- * Make your own and add it directly to the map with {{#crossLink "MapView/createSmartMarker:method"}}{{/crossLink}}, or use the constructor and add it when you want.
8021
- *
8022
- * You will need to specify at least `options.position`, `options.contentHtml` and `options.map`.
8023
- *
8024
- *
8025
- * @class Marker
8026
- *
8027
- * @constructor
8028
- * @param options {Object} Passes on options (e.g. contentHtml, position, map, padding, defaultAnchorType, enabledAnchorTypes, collisionRank) to MapView.Tooltip's options argument.
8029
- * @param [options.contentHtml] Use mappedin's default tooltip styling with custom inner html content
8030
- * @param [options.id] If omitted, an id will be generated automatically
8031
- * @param [options.position] should be something you got from {{#crossLink "MapView/getPositionPolygon:method"}}{{/crossLink}} or {{#crossLink "MapView/getPositionNode:method"}}{{/crossLink}}.
8032
- * @param [options.anchor] Anchor point to node
8033
- * @param [options.map] The map ID where the tooltip should be displayed
8034
- * @param [options.collisionRank] The rank of the object used when comparing colliders to determine which should be shown.
8035
- */
7970
+ * @hidden
7971
+ * @internal
7972
+ */
8036
7973
  export type TSmartMarkerOptions = {
8037
- contentHtml?: string;
8038
- position: Vector3;
8039
- mapId: string;
8040
- id?: string;
8041
- anchor?: MARKER_ANCHOR;
8042
- collisionRank?: COLLISION_RANKING_TIERS;
7974
+ contentHtml?: string;
7975
+ position: Vector3;
7976
+ mapId: string;
7977
+ id?: string;
7978
+ anchor?: MARKER_ANCHOR;
7979
+ collisionRank?: COLLISION_RANKING_TIERS;
8043
7980
  };
8044
7981
  type TTooltipStyle = {
8045
- top?: string;
8046
- left?: string;
7982
+ top?: string;
7983
+ left?: string;
8047
7984
  };
8048
7985
  export enum MARKER_ANCHOR {
8049
- CENTER = 0,
8050
- TOP = 1,
8051
- BOTTOM = 2,
8052
- LEFT = 3,
8053
- RIGHT = 4
8054
- }
8055
- class InternalMarker extends HTMLCollider implements IHTMLCollider {
8056
- _el: Element | null;
8057
- style: TTooltipStyle;
8058
- polygon: any;
8059
- constructor(options: TSmartMarkerOptions);
8060
- get strategies(): TColliderStrategy[];
8061
- colliderDidMount(): void;
8062
- setAction(action: any): void;
8063
- colliderDidNotFindAHome(): void;
8064
- colliderDidGoOffscreen(): void;
8065
- colliderDidUpdateVisiblity(): void;
7986
+ CENTER = 0,
7987
+ TOP = 1,
7988
+ BOTTOM = 2,
7989
+ LEFT = 3,
7990
+ RIGHT = 4
8066
7991
  }
8067
- export default InternalMarker;
8068
- }
8069
-
8070
- declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Markers' {
8071
- import { MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
8072
- import { TCreateMarkerOptions, TAnimationOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
8073
- import InternalMarker from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Marker';
8074
- import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8075
- import TWEEN from '@tweenjs/tween.js';
8076
7992
  /**
8077
- * A marker containing some HTML content.
7993
+ * @hidden
7994
+ * @internal
8078
7995
  */
8079
- export class Marker {
8080
- #private;
8081
- constructor(internalMarker: InternalMarker);
8082
- /**
8083
- * A generated ID for this marker.
8084
- */
8085
- get id(): string;
8086
- /**
8087
- * The container element for this marker. This element's position is automatically updated.
8088
- */
8089
- get containerEl(): any;
8090
- /**
8091
- * The content that was provided when creating this marker.
8092
- */
8093
- get contentEl(): any;
8094
- }
8095
- class MarkersController {
8096
- #private;
8097
- markersMap: Map<string, {
8098
- marker: Marker;
8099
- internalMarker: InternalMarker;
8100
- }>;
8101
- animations: Map<string, {
8102
- tween: TWEEN.Tween;
8103
- resolver: () => void;
8104
- }>;
8105
- constructor(core: ICore);
8106
- /**
8107
- * Create a new Marker, containing some HTML, at the specified position
8108
- * @param nodeOrCoordinate the position for the Marker
8109
- * @param contentHtml the content to show in the Marker
8110
- * @param options options for the display of the Marker
8111
- * @returns the Marker object that was created.
8112
- */
8113
- add(nodeOrCoordinate: MappedinNode | MappedinCoordinate, contentHtml: string, options?: TCreateMarkerOptions): Marker;
8114
- updateMap(internalMarker: InternalMarker, from: string, to: string): void;
8115
- /**
8116
- * Moves a Marker to a new position instantaneously.
8117
- * @param markerOrMarkerId the Marker to move
8118
- * @param target the new position for this Marker
8119
- */
8120
- setPosition(markerOrMarkerId: Marker | Marker['id'], target: MappedinNode | MappedinCoordinate): void;
8121
- /**
8122
- * Moves a Marker to a new position over time.
8123
- * @param markerOrMarkerId the Marker to move
8124
- * @param target the new position for this Marker
8125
- * @param options the options for how this movement should be animated
8126
- */
8127
- animate(markerOrMarkerId: Marker | Marker['id'], target: MappedinCoordinate | MappedinNode, options?: TAnimationOptions): Promise<void>;
8128
- /**
8129
- * Removes a Marker.
8130
- * @param markerOrMarkerId the Marker to be removed
8131
- */
8132
- remove(markerOrMarkerId: Marker | Marker['id']): void;
8133
- /**
8134
- * Remove all Markers from all maps.
8135
- */
8136
- removeAll(): void;
7996
+ class InternalMarker extends HTMLCollider implements IHTMLCollider {
7997
+ _el: Element | null;
7998
+ style: TTooltipStyle;
7999
+ polygon: any;
8000
+ constructor(options: TSmartMarkerOptions);
8001
+ get strategies(): TColliderStrategy[];
8002
+ colliderDidMount(): void;
8003
+ setAction(action: any): void;
8004
+ colliderDidNotFindAHome(): void;
8005
+ colliderDidGoOffscreen(): void;
8006
+ colliderDidUpdateVisiblity(): void;
8137
8007
  }
8138
- export default MarkersController;
8008
+ export default InternalMarker;
8139
8009
  }
8140
8010
 
8141
8011
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.AssetManager' {
@@ -8148,14 +8018,13 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8148
8018
  }
8149
8019
  }
8150
8020
 
8151
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Mappedin.TileManager' {
8021
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.TileManager' {
8152
8022
  import { Box3 } from 'three';
8153
8023
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8154
8024
  import { MappedinCoordinate, MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
8155
8025
  import Object3D from '@mappedin/react-native-sdk/core/packages/renderer/internal/object3D.destroy';
8156
- import { MapView } from '@mappedin/react-native-sdk/core/packages/renderer/public/MapView';
8157
- import { Tile } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Mappedin.Tile';
8158
- import { IOutdoorContextProvider } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Outdoor-Context.provider';
8026
+ import { Tile } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.Tile';
8027
+ import { IOutdoorContextProvider } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Outdoor-Context.provider';
8159
8028
  export enum TILE_RENDER_MODES {
8160
8029
  NORMAL = 0,
8161
8030
  AGGRESSIVE = 1
@@ -8179,7 +8048,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor
8179
8048
  currentAbortController: AbortController;
8180
8049
  attributionEl: HTMLDivElement;
8181
8050
  outdoorContextProvider: IOutdoorContextProvider;
8182
- constructor(mapView: MapView, core: ICore);
8051
+ constructor(core: ICore);
8183
8052
  createAttributionEl(): void;
8184
8053
  renderVisibleTiles: () => void;
8185
8054
  _renderVisibleTiles(): void;
@@ -8218,12 +8087,12 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/bundle-asset-m
8218
8087
  }
8219
8088
  }
8220
8089
 
8221
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Markers' {
8090
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Markers' {
8222
8091
  import { TAnimationOptions } from '@mappedin/react-native-sdk/core/packages/renderer';
8223
8092
  import { MappedinCoordinate, MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
8224
8093
  import { TCreateMarkerOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
8225
- import MarkersController, { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Markers';
8226
- export class MarkersLayer {
8094
+ import MarkersController, { Marker } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/MarkersController';
8095
+ export class Markers {
8227
8096
  #private;
8228
8097
  constructor(markersController: MarkersController);
8229
8098
  get markers(): Marker[];
@@ -8260,14 +8129,14 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Markers
8260
8129
  }
8261
8130
  }
8262
8131
 
8263
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Paths' {
8132
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Paths' {
8264
8133
  import { MappedinNode } from '@mappedin/react-native-sdk/core/packages/get-venue';
8265
8134
  import { TPathOptions } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
8266
- import PathsController, { Path } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.Paths';
8135
+ import PathsController, { Path } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/PathsController';
8267
8136
  /**
8268
8137
  * Add and remove paths from maps.
8269
8138
  */
8270
- export class PathsLayer {
8139
+ export class Paths {
8271
8140
  #private;
8272
8141
  constructor(pathsController: PathsController);
8273
8142
  /**
@@ -8284,7 +8153,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Paths'
8284
8153
  /**
8285
8154
  * Remove a path from all maps it exists on.
8286
8155
  *
8287
- * @param path A {@link Path} instance returned from {@link PathsLayer.add}.
8156
+ * @param path A {@link Path} instance returned from {@link Paths.add}.
8288
8157
  */
8289
8158
  remove(path: Path): void;
8290
8159
  /**
@@ -8294,11 +8163,147 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Paths'
8294
8163
  }
8295
8164
  }
8296
8165
 
8166
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/BlueDot' {
8167
+ import { BlueDotController, TEnableBlueDotOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.types';
8168
+ export class BlueDot {
8169
+ #private;
8170
+ constructor(controller: BlueDotController);
8171
+ on: BlueDotController['on'];
8172
+ off: BlueDotController['off'];
8173
+ /**
8174
+ * Enables Blue Dot. BlueDot then emits {@link TBlueDotStateChange} and {@link TBlueDotPositionUpdate} events via {@link E_BLUEDOT_EVENT}
8175
+ */
8176
+ enable(options?: TEnableBlueDotOptions): void;
8177
+ /**
8178
+ * Disables Blue Dot and stops emitting events.
8179
+ */
8180
+ disable(): void;
8181
+ }
8182
+ }
8183
+
8184
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/public/api/Camera' {
8185
+ import { E_CAMERA_DIRECTION } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.enums';
8186
+ import CameraController, { TCameraAnimationOptions, TCameraTargets, TCameraTransform, TFocusOnCameraOptions } from '@mappedin/react-native-sdk/core/packages/renderer/private/controllers/CameraController';
8187
+ export class Camera {
8188
+ #private;
8189
+ constructor(controller: CameraController);
8190
+ on: CameraController['on'];
8191
+ off: CameraController['off'];
8192
+ /**
8193
+ * The current camera animation, if any. Resolves when the animation finishes.
8194
+ */
8195
+ get currentAnimation(): Promise<undefined> | undefined;
8196
+ /**
8197
+ * Current Camera zoom (in meters)
8198
+ */
8199
+ get zoom(): number;
8200
+ /**
8201
+ * Current Camera rotation (in radians) from north
8202
+ */
8203
+ get rotation(): number;
8204
+ /**
8205
+ * Current camera tilt angle (in radians), relative to a top-down view.
8206
+ *
8207
+ * ex: 0 means the camera is facing top-down, π/2 means the camera is
8208
+ * facing directly from the side.
8209
+ */
8210
+ get tilt(): number;
8211
+ /**
8212
+ * Get the minimum distance (in meters) the camera is allowed to get to the ground.
8213
+ */
8214
+ get minZoom(): number;
8215
+ /**
8216
+ * Set the minimum distance (in meters) the camera is allowed to get to the ground.
8217
+ */
8218
+ set minZoom(meters: number);
8219
+ /**
8220
+ * Get the maximum distance (in meters) the camera is allowed to get from the ground.
8221
+ */
8222
+ get maxZoom(): number;
8223
+ /**
8224
+ * Set the maximum distance (in meters) the camera is allowed to get from the ground.
8225
+ */
8226
+ set maxZoom(meters: number);
8227
+ /**
8228
+ * Get the current maximum tilt angle (in radians) the camera is allowed to use.
8229
+ */
8230
+ get maxTilt(): number;
8231
+ /**
8232
+ * Sets the maximum tilt angle (in radians) the camera is allowed to use.
8233
+ *
8234
+ * Tilt angle must be between 0 and π/2 radians. It will be clamped within
8235
+ * this range if it exceeds it on either end.
8236
+ *
8237
+ * As tilt angle approaches π/2 radians, this will impact overall touch controls
8238
+ * and should be used sparingly.
8239
+ */
8240
+ set maxTilt(radians: number);
8241
+ /**
8242
+ * Get the current camera position, which is at the center of the map.
8243
+ * @returns the position as a coordinate
8244
+ */
8245
+ get position(): import("../..").MappedinCoordinate;
8246
+ /**
8247
+ * User camera interactions
8248
+ */
8249
+ interactions: {
8250
+ /**
8251
+ * Enable all user interactions. This does not affect programmatic
8252
+ * Camera controls, such as `set` and `focusOn`
8253
+ */
8254
+ enable: () => void;
8255
+ /**
8256
+ * Disable all user interactions. This does not affect programmatic
8257
+ * Camera controls, such as `set` and `focusOn`
8258
+ */
8259
+ disable: () => void;
8260
+ };
8261
+ setSafeAreaInsets(insets: {
8262
+ top: number;
8263
+ left: number;
8264
+ bottom: number;
8265
+ right: number;
8266
+ }): void;
8267
+ getSafeAreaInsets(): import("../..").TPadding;
8268
+ /**
8269
+ * Focus the Camera view on a collection of targets and animate to that state.
8270
+ * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
8271
+ */
8272
+ focusOn(targets: TCameraTargets, options?: TFocusOnCameraOptions & TCameraAnimationOptions): Promise<any>;
8273
+ /**
8274
+ * Set the Camera's view to a new state.
8275
+ */
8276
+ set(transform: TCameraTransform): void;
8277
+ /**
8278
+ * Animate the Camera's view to smoothly transition to a new state over time.
8279
+ *
8280
+ * @returns a Promise that resolves when the animation finishes, or rejects when it is cancelled.
8281
+ */
8282
+ animate(transform: TCameraTransform, options?: TCameraAnimationOptions): Promise<undefined>;
8283
+ /**
8284
+ * Moves the Camera view in a relative direction by a given distance in meters.
8285
+ * @returns a Promise that resolves when the translation animation finishes, or rejects when it is cancelled.
8286
+ */
8287
+ translate(direction: E_CAMERA_DIRECTION, distance: number, options?: TCameraAnimationOptions): Promise<unknown>;
8288
+ /**
8289
+ * Cancel the currently active Camera animation.
8290
+ */
8291
+ cancelAnimation(): void;
8292
+ }
8293
+ }
8294
+
8297
8295
  declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.Scene' {
8298
8296
  import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/get-venue';
8299
8297
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8300
8298
  import MapObject from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.MapObject';
8301
8299
  import { TSceneTransitionOptions } from '@mappedin/react-native-sdk/core/packages/renderer/MapView.SceneManager';
8300
+ export function getPanBoundsForObject(mapObject: MapObject, currentPanBounds: any): {
8301
+ min: any;
8302
+ max: any;
8303
+ margin: any;
8304
+ radius: any;
8305
+ center: any;
8306
+ };
8302
8307
  class MapViewScene {
8303
8308
  #private;
8304
8309
  maps: MappedinMap[];
@@ -8323,7 +8328,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/MapView.Scene'
8323
8328
  declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollisionEngine' {
8324
8329
  import './Mappedin.SmartCollisionEngine.scss';
8325
8330
  import { ICollider, TRange, TColliderPosition } from '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappedin.SmartCollider';
8326
- import { MappedinMap, MapView } from '@mappedin/react-native-sdk/core/packages/renderer';
8331
+ import { MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer';
8327
8332
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8328
8333
  import { Rectangle, QuadTree } from '@mappedin/react-native-sdk/core/packages/renderer/internal/quad-tree';
8329
8334
  export const COLLIDER_STRATEGY_LOW_PRIORITY = "LOW_PRIORITY";
@@ -8343,10 +8348,9 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/Mappe
8343
8348
  offscreenRanges: TRange[];
8344
8349
  get sortedColliders(): ICollider[];
8345
8350
  initialized: boolean;
8346
- mapView: MapView;
8347
8351
  core: ICore;
8348
8352
  screen: Rectangle;
8349
- constructor(mapView: any, core: ICore);
8353
+ constructor(core: ICore);
8350
8354
  beginUpdate(): void;
8351
8355
  init: (container: HTMLDivElement, projectFn: (position: TColliderPosition, mapId: MappedinMap['id']) => {
8352
8356
  x: number;
@@ -8406,11 +8410,11 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/objec
8406
8410
  export default Object3D;
8407
8411
  }
8408
8412
 
8409
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Mappedin.Tile' {
8413
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.Tile' {
8410
8414
  import { Texture, Mesh, MeshBasicMaterial } from 'three';
8411
8415
  import { ICore } from '@mappedin/react-native-sdk/core/packages/renderer/private/Core.interface';
8412
8416
  import { MappedinCoordinate, MappedinMap } from '@mappedin/react-native-sdk/core/packages/renderer/index.rn';
8413
- import { TileManager } from '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Mappedin.TileManager';
8417
+ import { TileManager } from '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Mappedin.TileManager';
8414
8418
  export class Tile {
8415
8419
  #private;
8416
8420
  center: MappedinCoordinate;
@@ -8438,7 +8442,7 @@ declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor
8438
8442
  }
8439
8443
  }
8440
8444
 
8441
- declare module '@mappedin/react-native-sdk/core/packages/renderer/layers/Outdoor-Context/Outdoor-Context.provider' {
8445
+ declare module '@mappedin/react-native-sdk/core/packages/renderer/internal/outdoor-context/Outdoor-Context.provider' {
8442
8446
  /**
8443
8447
  * @experimental
8444
8448
  * The universal outdoor context interface