@mappedin/react-sdk 6.0.1-beta.37 → 6.0.1-beta.39

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.
@@ -65,7 +65,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
65
65
  import type { ParsedMVF as TMVF, StyleCollection as TMVFStyleCollection, Style as TMVFStyle, LineStringStyle as TMVFLineStringStyle, PolygonStyle as TMVFPolygonStyle, PointStyle as TMVFPointStyle, ParsedMVFLocalePack, OperationHours, SiblingGroup, LocationState } from '@mappedin/mvf';
66
66
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
67
67
  export type { Text3D as Text3DApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
68
- import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState } from '@mappedin/react-sdk/geojson/src';
68
+ import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, EnvMapOptions, MapViewState, UpdateModelState, InitializeModelState, WatermarkUpdateOptions } from '@mappedin/react-sdk/geojson/src';
69
69
  import { enableTestMode, preloadFont } from '@mappedin/react-sdk/geojson/src';
70
70
  export type { PubSub } from '@packages/internal/common/pubsub';
71
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
@@ -76,6 +76,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
76
76
  import type { TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TFollowMode, TFollowCameraOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
77
77
  import type { TExpandOptions, TStackedMapsEvents, TStackedMapsState } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
78
78
  export { setLoggerLevel, E_SDK_LOG_LEVEL } from '@packages/internal/common/Mappedin.Logger';
79
+ /**
80
+ * @internal
81
+ * @hidden
82
+ * Must be called before {@link show3dMap}
83
+ */
84
+ export function __setWatermarkOnClickFn(fn: () => void): void;
79
85
  /**
80
86
  * Represents all the available antialiasing options.
81
87
  */
@@ -97,7 +103,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
97
103
  * @interface
98
104
  * Options for the watermark.
99
105
  */
100
- export type TWatermarkOptions = Omit<WatermarkOptions, 'visible'>;
106
+ export type TWatermarkOptions = WatermarkUpdateOptions;
101
107
  /**
102
108
  * Options for showing a 3D map.
103
109
  *
@@ -282,6 +288,23 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
282
288
  * @internal
283
289
  */
284
290
  imagePlacementOptions?: TImagePlacementOptions;
291
+ /**
292
+ * Enable or disable the flip of images to face the camera.
293
+ * @default true
294
+ */
295
+ flipImagesToFaceCamera?: boolean;
296
+ /**
297
+ * Automatically inject necessary styles into the document head. If `false`, the `index.css` file needs to be manually imported.
298
+ *
299
+ * ```ts
300
+ * import '@mappedin/mappedin-js/lib/index.css';
301
+ * ...
302
+ * await show3dMap(...);
303
+ * ```
304
+ *
305
+ * @default true
306
+ */
307
+ injectStyles?: boolean;
285
308
  /**
286
309
  * @hidden
287
310
  * @internal
@@ -385,7 +408,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
385
408
  export type * from 'geojson';
386
409
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, TFocusTarget, IFocusable, IAnchorable, TMapDataObjectTypes, } from '@mappedin/react-sdk/mappedin-js/src/types';
387
410
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
388
- export type { Label, Marker, Path, Shape, CameraTransform, Model, Image, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
411
+ export type { Label, Marker, Path, PathSegment, Shape, CameraTransform, Model, Image, Text3D, } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
389
412
  export type { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
390
413
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
391
414
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
@@ -631,7 +654,7 @@ declare module '@mappedin/react-sdk/react-sdk/src/Model' {
631
654
  import type { TupleToObjectWithPropNames } from '@mappedin/react-sdk/react-sdk/src/type-utils';
632
655
  import type Mappedin from '@mappedin/react-sdk/react-sdk/src';
633
656
  type ParamsArray = Parameters<Mappedin.MapView['Models']['add']>;
634
- type StreamAgentParameterNames = ['models', 'options'];
657
+ type StreamAgentParameterNames = ['target', 'url', 'options'];
635
658
  /**
636
659
  * @interface
637
660
  */
@@ -774,6 +797,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
774
797
  readonly analyticsBaseUri: string;
775
798
  readonly tileServerUri: string;
776
799
  };
800
+ /**
801
+ * Get an access token for use with Mappedin's API.
802
+ *
803
+ * @returns {string} The current access token
804
+ */
805
+ getAccessToken(): Promise<string | undefined>;
806
+ /**
807
+ * Get a SAS token for fetching images on non-public maps.
808
+ *
809
+ * @returns {string} The SAS token
810
+ */
811
+ getSasToken(): Promise<string | undefined>;
777
812
  /**
778
813
  * The name of the map.
779
814
  *
@@ -963,7 +998,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
963
998
  * @param options Optional parameters for getting directions.
964
999
  * @returns Directions from the start to the destination point.
965
1000
  * @example
966
- * const directions = await map.getDirections(space1, space2);
1001
+ * const directions = map.getDirections(space1, space2);
967
1002
  */
968
1003
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
969
1004
  /**
@@ -974,7 +1009,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
974
1009
  * @param options Optional parameters for getting directions.
975
1010
  * @returns Directions from the start to the destination points.
976
1011
  * @example
977
- * const directions = await map.getDirections(space1, [space2, space3]);
1012
+ * const directions = map.getDirections(space1, [space2, space3]);
978
1013
  */
979
1014
  getDirectionsMultiDestination: (from: TNavigationTarget, to: (TNavigationTarget | TNavigationTarget[])[], options?: TGetDirectionsOptions) => Directions[] | undefined;
980
1015
  /**
@@ -1054,8 +1089,26 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1054
1089
  * The interactive facades which the user interaction passed through.
1055
1090
  */
1056
1091
  facades: Facade[];
1092
+ /**
1093
+ * Whether the user clicked on the Blue Dot.
1094
+ */
1095
+ blueDot: boolean;
1057
1096
  };
1058
1097
  export type THoverPayload = Omit<TClickPayload, 'pointerEvent'>;
1098
+ export type TFloorChangePayload = {
1099
+ /**
1100
+ * The floor that is being changed to.
1101
+ */
1102
+ floor: Floor;
1103
+ /**
1104
+ * The floor that is being changed from.
1105
+ */
1106
+ previousFloor: Floor;
1107
+ /**
1108
+ * The reason for the floor change.
1109
+ */
1110
+ reason?: TFloorChangeReason;
1111
+ };
1059
1112
  /**
1060
1113
  * Defines the structure and types of events emitted in the context of the map.
1061
1114
  */
@@ -1075,23 +1128,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1075
1128
  'camera-change': CameraTransform;
1076
1129
  /**
1077
1130
  * Emitted when a floor change starts.
1078
- *
1079
- * @property {Floor} floor - The floor being changed to.
1080
1131
  */
1081
- 'floor-change-start': {
1082
- floor: Floor;
1083
- };
1132
+ 'floor-change-start': TFloorChangePayload;
1084
1133
  /**
1085
1134
  * Emitted after the floor change is complete.
1086
- *
1087
- * @property {string} [reason] - The reason for the floor change.
1088
- * @property {Floor} floor - The new active floor.
1089
1135
  */
1090
- 'floor-change': {
1091
- reason?: TFloorChangeReason;
1092
- floor: Floor;
1093
- previousFloor: Floor;
1094
- };
1136
+ 'floor-change': TFloorChangePayload;
1095
1137
  /**
1096
1138
  * Only emitted when dynamic focus is enabled. Emitted when a different facade recieves
1097
1139
  * focus due to the camera moving. This always occurs when the active floor changes to
@@ -1170,6 +1212,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1170
1212
  markers: Marker[];
1171
1213
  labels: Label[];
1172
1214
  floors: Floor[];
1215
+ blueDot: boolean;
1173
1216
  };
1174
1217
  };
1175
1218
  }
@@ -1190,13 +1233,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1190
1233
  import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
1191
1234
  import Facade from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade';
1192
1235
  import type { MapDataRecords, EnterpriseMapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
1193
- import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseCategory as MVFEnterpriseCategory, Language, AreaCollection, TilesetStyle } from '@mappedin/mvf';
1236
+ import type { AnnotationCollection, ParsedMVF, Connection as MVFConnection, EntranceCollection, NodeCollection, ObstructionCollection, SpaceCollection, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, Language, AreaCollection, TilesetStyle } from '@mappedin/mvf';
1194
1237
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
1195
1238
  import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
1196
1239
  import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
1197
1240
  import EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
1198
1241
  import { PubSub } from '@packages/internal/common';
1199
- import type { LanguagePack, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1242
+ import type { LanguagePack, LanguagePackRecords, Places, TMapDataInternalOptions } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types';
1200
1243
  import { type LocalePackUrls } from '@packages/internal/mvf-utils';
1201
1244
  import type { EnvControl, TGetMapDataOptions } from '@packages/internal/mvf-utils/mvf-utils';
1202
1245
  import type { TMapDataObjectTypes, TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -1387,6 +1430,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1387
1430
  get locationCategories(): LocationCategory[];
1388
1431
  get mvfFloors(): MVFFloor[];
1389
1432
  get mvfFloorStacks(): MVFFloorStack[];
1433
+ getAccessToken(): Promise<string | undefined>;
1434
+ getSasToken(): Promise<string | undefined>;
1390
1435
  getByType(type: string): object[];
1391
1436
  getByType(type: 'location-profile'): LocationProfile[];
1392
1437
  getByType(type: 'location-category'): LocationCategory[];
@@ -1437,7 +1482,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1437
1482
  */
1438
1483
  getMVFFeatureByType(type: 'floor-stack'): MVFFloorStack[];
1439
1484
  getMVFFeatureByType(type: 'floor'): MVFFloor[];
1440
- getPropTranslation(type: 'enterprise-location' | 'enterprise-category', prop: string, id: string, fallback: MVFEnterpriseLocation[keyof MVFEnterpriseLocation] | MVFEnterpriseCategory[keyof MVFEnterpriseCategory]): unknown;
1485
+ getPropTranslation<T extends keyof LanguagePackRecords, P extends keyof NonNullable<NonNullable<LanguagePackRecords[T]>[string]>>(type: T, prop: P, id: string, fallback: NonNullable<NonNullable<LanguagePackRecords[T]>[string]>[P]): string | NonNullable<NonNullable<LanguagePackRecords[T]>[string]>[P] | undefined;
1441
1486
  /**
1442
1487
  * change the langauge of the data objects in mapdata
1443
1488
  */
@@ -1476,15 +1521,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1476
1521
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images, DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
1477
1522
  import type { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1478
1523
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1479
- import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1524
+ import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1525
+ import type { Annotation, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1526
+ import type { TCoordinateParams } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate';
1480
1527
  import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/react-sdk/mappedin-js/src/types';
1481
- import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1528
+ import type { Label, Marker, Image, Shape, Text3D as Text3DView, Model, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1482
1529
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1483
1530
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1484
1531
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1485
1532
  import type { InspectorOption } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspector';
1486
1533
  import { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
1487
1534
  import type { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
1535
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
1488
1536
  /**
1489
1537
  * The MapView class is the main class for rendering and interacting with the map.
1490
1538
  *
@@ -1569,14 +1617,19 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1569
1617
  *
1570
1618
  * | target | state |
1571
1619
  * |-----------|----------------|
1572
- * | {@link Door} | {@link TDoorsState} |
1573
- * | {@link Label} | {@link TLabelState} |
1574
- * | {@link MapObject} | {@link TGeometryState} |
1575
- * | {@link Marker} | {@link TMarkerState} |
1576
- * | {@link Space} | {@link TGeometryState} |
1577
- * | {@link Shape} | {@link TShapeState} |
1578
- * | {@link DOORS} | {@link TDoorsState} |
1579
- * | {@link WALLS} | {@link TWallsState} |
1620
+ * | {@link Door} | {@link TDoorsState} |
1621
+ * | {@link Facade} | {@link TGeometryState} |
1622
+ * | {@link Label} | {@link TLabelState} |
1623
+ * | {@link MapObject} | {@link TGeometryState} |
1624
+ * | {@link Marker} | {@link TMarkerState} |
1625
+ * | {@link Model} | {@link UpdateModelState} |
1626
+ * | {@link Path} | {@link TGeometryState} |
1627
+ * | {@link PathSegment} | {@link TGeometryState} |
1628
+ * | {@link Space} | {@link TGeometryState} |
1629
+ * | {@link Shape} | {@link TShapeState} |
1630
+ * | {@link Text3DView} | {@link UpdatableText3DState} |
1631
+ * | {@link DOORS} | {@link TDoorsState} |
1632
+ * | {@link WALLS} | {@link TWallsState} |
1580
1633
  *
1581
1634
  * @param target The target to update.
1582
1635
  * @param state The new state to apply to the target.
@@ -1584,7 +1637,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1584
1637
  * // Update the color of a space to red.
1585
1638
  * map.updateState(space, { color: 'red' });
1586
1639
  */
1587
- updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model>(target: T, state: TUpdateState<T>): any;
1640
+ updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS | Model | Path | PathSegment>(target: T, state: TUpdateState<T>): any;
1588
1641
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1589
1642
  /**
1590
1643
  * Update global state of the MapView
@@ -1652,7 +1705,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1652
1705
  * @hidden
1653
1706
  */
1654
1707
  updateWatermark(options: WatermarkUpdateOptions): void;
1655
- getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1708
+ getState<T extends Space | Model | Text3DView | MapObject | Label | Marker | Image | Shape | Path | PathSegment | string>(target: T): TGetState<T>;
1656
1709
  setHoverColor(c: string): void;
1657
1710
  getHoverColor(): string | undefined;
1658
1711
  /**
@@ -1682,7 +1735,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1682
1735
  * @param options Optional parameters for getting directions.
1683
1736
  * @returns Directions from the start to the destination point.
1684
1737
  * @example
1685
- * const directions = await map.getDirections(space1, space2);
1738
+ * const directions = map.getDirections(space1, space2);
1686
1739
  */
1687
1740
  getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], options?: TGetDirectionsOptions) => Directions | undefined;
1688
1741
  /**
@@ -1708,13 +1761,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1708
1761
  * @param latitude The latitude of the coordinate.
1709
1762
  * @param longitude The longitude of the coordinate.
1710
1763
  * @param floor Optional floor information if applicable.
1711
- * @returns The created coordinate object.
1764
+ * @returns The created Coordinate object.
1712
1765
  * @example
1713
1766
  * // Create a coordinate at the CN Tower.
1714
1767
  * const coord = map.createCoordinate(43.642567, -79.387054);
1768
+ *
1769
+ * // Alternatively, you can directly use the Coordinate constructor:
1770
+ * import { Coordinate } from '@mappedin/mappedin-js';
1771
+ * const coord = new Coordinate(43.642567, -79.387054, floor?.id);
1715
1772
  */
1716
1773
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
1774
+ /**
1775
+ * Creates a {@link Coordinate} on the map using a params object.
1776
+ *
1777
+ * @param params An object containing the coordinate parameters.
1778
+ * @param params.latitude The latitude of the coordinate in decimal degrees.
1779
+ * @param params.longitude The longitude of the coordinate in decimal degrees.
1780
+ * @param params.floorId Optional ID of the floor this coordinate is on.
1781
+ * @param params.verticalOffset Optional vertical offset from the floor in meters.
1782
+ * @returns The created Coordinate object.
1783
+ * @example
1784
+ * // Create a coordinate at the CN Tower using params object.
1785
+ * const coord = map.createCoordinate({
1786
+ * latitude: 43.642567,
1787
+ * longitude: -79.387054
1788
+ * });
1789
+ *
1790
+ * // Alternatively, you can directly use the Coordinate constructor:
1791
+ * import { Coordinate } from '@mappedin/mappedin-js';
1792
+ * const coord = new Coordinate({
1793
+ * latitude: 43.642567,
1794
+ * longitude: -79.387054,
1795
+ * floorId: 'floor1',
1796
+ * verticalOffset: 10
1797
+ * });
1798
+ */
1799
+ createCoordinate(params: TCoordinateParams): Coordinate;
1800
+ /**
1801
+ * Create a {@link Coordinate} from an X and Y position measured in pixels from the top left
1802
+ * corner of the map canvas.
1803
+ *
1804
+ * @experimental
1805
+ */
1717
1806
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
1807
+ /**
1808
+ * Get the X and Y of a {@link Coordinate} measured from the top left corner of the map canvas.
1809
+ *
1810
+ * @experimental
1811
+ */
1812
+ getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
1813
+ x: number;
1814
+ y: number;
1815
+ };
1718
1816
  /**
1719
1817
  * @hidden
1720
1818
  * @experimental
@@ -1985,9 +2083,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1985
2083
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1986
2084
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1987
2085
  import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, EnterpriseLocation, Node, Area, Facade, FloorStack, Annotation, EnterpriseCategory, EnterpriseVenue, LocationCategory, LocationProfile } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1988
- import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
2086
+ import type { Label, Marker, Model, Image, Shape, Text3D, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1989
2087
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1990
- import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState, ImagePlacementOptions } from '@mappedin/react-sdk/geojson/src';
2088
+ import type { InsetPaddingOption, UpdatableText3DState, Text3DState, AddText3DOptions, EnvMapOptions, InitializeModelState, ModelState, UpdateModelState as GeoJsonUpdateModelState, ImagePlacementOptions, LabelAppearance } from '@mappedin/react-sdk/geojson/src';
2089
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
2090
+ export type UpdateModelState = Omit<GeoJsonUpdateModelState, 'position' | 'scale'> & {
2091
+ position?: Coordinate;
2092
+ scale?: number | [number, number, number];
2093
+ };
1991
2094
  export type DeepRequired<T> = Required<{
1992
2095
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1993
2096
  }>;
@@ -2072,11 +2175,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2072
2175
  type: 'label';
2073
2176
  };
2074
2177
  /**
2075
- * Defines the state for a model when its appearance is updated.
2178
+ * Defines the state for a model
2076
2179
  */
2077
2180
  export type TModelState = {
2078
2181
  type: 'model';
2079
- } & ModelState;
2182
+ } & Omit<ModelState, 'position' | 'parent'> & {
2183
+ position: Coordinate;
2184
+ };
2080
2185
  /**
2081
2186
  * Defines the state for an image when its appearance is updated.
2082
2187
  */
@@ -2161,6 +2266,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2161
2266
  */
2162
2267
  zIndex?: number;
2163
2268
  };
2269
+ export type TPathState = {
2270
+ type: 'path';
2271
+ /**
2272
+ * The color of the path.
2273
+ */
2274
+ color: string;
2275
+ };
2164
2276
  /**
2165
2277
  * Represents the state of a shape.
2166
2278
  */
@@ -2236,6 +2348,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2236
2348
  topTexture?: {
2237
2349
  url: string;
2238
2350
  };
2351
+ flipImageToFaceCamera?: boolean;
2239
2352
  };
2240
2353
  export enum WALLS {
2241
2354
  Exterior = "exterior-walls",
@@ -2248,9 +2361,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2248
2361
  /**
2249
2362
  * The type for updating the state of map elements (colors, texts, etc.).
2250
2363
  */
2251
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends string ? Record<string, any> : never;
2252
- export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
2253
- export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2364
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : T extends Model ? Partial<UpdateModelState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject | Facade ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Text3D ? UpdatableText3DState : T extends Path ? Partial<TPathState> : T extends PathSegment ? Partial<TPathState> : T extends string ? Record<string, any> : never;
2365
+ export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState> | Partial<TPathState>;
2366
+ export type TGetState<T> = T extends WALLS ? TWallsState | undefined : T extends DOORS ? TDoorsState | undefined : T extends Marker ? TMarkerState | undefined : T extends Shape ? TShapeState | undefined : T extends Model ? TModelState | undefined : T extends Label ? TLabelState | undefined : T extends Image ? TImageState | undefined : T extends Text3D ? Text3DState | undefined : T extends Space | MapObject ? TGeometryState | undefined : T extends Path ? TPathState | undefined : T extends PathSegment ? TPathState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | TPathState | undefined : never;
2254
2367
  /**
2255
2368
  * Options for {@link Camera} animations on the map.
2256
2369
  */
@@ -2492,113 +2605,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2492
2605
  };
2493
2606
  /**
2494
2607
  * Control how a {@link Label} looks
2608
+ * @interface
2495
2609
  */
2496
- export type TLabelAppearance = {
2497
- /**
2498
- * Margin around the label and marker in pixels. This will affect label density. Minimum is 6px.
2499
- * @default 6
2500
- */
2501
- margin?: number;
2502
- text?: {
2503
- /**
2504
- * Number of lines to display when text spans multiple lines.
2505
- */
2506
- numLines?: number;
2507
- /**
2508
- * Text size in pixels
2509
- */
2510
- size?: number;
2511
- /**
2512
- * Maxiumum width of text in pixels.
2513
- */
2514
- maxWidth?: number;
2515
- /**
2516
- * Line height sets the height of a line box. It's commonly used to set the distance between lines of text.
2517
- *
2518
- * @default 1.2
2519
- */
2520
- lineHeight?: number;
2521
- /**
2522
- * Text foreground color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2523
- */
2524
- foregroundColor?: string;
2525
- /**
2526
- * Text background color. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2527
- */
2528
- backgroundColor?: string;
2529
- };
2530
- marker?: {
2531
- foregroundColor?: {
2532
- /**
2533
- * Foreground color of the marker when it is active. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2534
- */
2535
- active?: string;
2536
- /**
2537
- * Foreground color of the marker when it is inactive (grayed out due to being outranked by other labels around). Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2538
- */
2539
- inactive?: string;
2540
- };
2541
- backgroundColor?: {
2542
- /**
2543
- * Background color of the marker when it is active. Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2544
- */
2545
- active?: string;
2546
- /**
2547
- * Background color of the marker when it is inactive (grayed out due to being outranked by other labels around). Color can be set using CSS colors names `DarkGoldenRod`, as Hex strings `#0000FF` or the rgb values `rgb(255,0,0)`.
2548
- */
2549
- inactive?: string;
2550
- };
2551
- /**
2552
- * Size of bounding box of the icon in pixels
2553
- * @default 10
2554
- */
2555
- iconSize?: number;
2556
- /**
2557
- * Icon to be placed inside label. Supports SVG or a URL to png or jpeg.
2558
- *
2559
- * @example
2560
- * ```ts
2561
- * // SVG
2562
- * mapView.Labels.add(space, space.name, {
2563
- * appearance: {
2564
- * icon: `<svg>...</svg>`
2565
- * },
2566
- * });
2567
- * ```
2568
- *
2569
- * @example
2570
- * ```ts
2571
- * // Image URL
2572
- * mapView.Labels.add(space, space.name, {
2573
- * appearance: {
2574
- * icon: 'https://example.com/icon.png',
2575
- * },
2576
- * });
2577
- * ```
2578
- */
2579
- icon?: string;
2580
- /**
2581
- * How the icon should fit inside the marker.
2582
- * - `fill` will stretch the icon to fill the marker.
2583
- * - `cover` will maintain aspect ratio and fill the marker.
2584
- * - `contain` will maintain aspect ratio and fit the icon inside the marker.
2585
- * @default 'cover'
2586
- */
2587
- iconFit?: 'contain' | 'fill' | 'cover';
2588
- /**
2589
- * Padding around the icon, in pixels.
2590
- * @default 4
2591
- */
2592
- iconPadding?: number;
2593
- /**
2594
- * Defines when the icon becomes visible relative to the current zoom level
2595
- * anything below 0 will result in icons never showing up
2596
- * 0 ensures icons show up at maxZoom (fully zoomed in)
2597
- * 1 ensures they always show up
2598
- */
2599
- iconVisibilityThreshold?: number;
2600
- };
2601
- };
2610
+ export type TLabelAppearance = LabelAppearance;
2602
2611
  /**
2603
2612
  * Defines the priority levels for collider collision handling, allowing customization of collider visibility in congested areas.
2604
2613
  *
@@ -2710,10 +2719,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2710
2719
  */
2711
2720
  rotation?: [number, number, number];
2712
2721
  /**
2713
- * Optional. Determines the scale of the model.
2722
+ * Optional. Determines the scale of the model. Can be a single number to scale uniformly in all dimensions,
2723
+ * or an array of three numbers [x, y, z] to scale differently in each dimension.
2714
2724
  * @default [1, 1, 1]
2715
2725
  */
2716
- scale?: [number, number, number];
2726
+ scale?: number | [number, number, number];
2717
2727
  /**
2718
2728
  * Whether the Model should be clickable
2719
2729
  * @default false
@@ -2727,7 +2737,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2727
2737
  /**
2728
2738
  * Options for controlling the behavior of a {@link Model}.
2729
2739
  */
2730
- export type TAddModelOptions = Omit<InitializeModelState, 'verticalOffset'>;
2740
+ export type TAddModelOptions = Omit<InitializeModelState, 'scale'> & {
2741
+ scale?: number | [number, number, number];
2742
+ };
2731
2743
  /**
2732
2744
  * @interface
2733
2745
  */
@@ -3048,6 +3060,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/constants' {
3048
3060
  imagePlacementOptions: {
3049
3061
  mode: "default";
3050
3062
  };
3063
+ flipImagesToFaceCamera: true;
3051
3064
  };
3052
3065
  export const EXTERIOR_WALLS_ID = "ExteriorWalls";
3053
3066
  export const WALLS_ID = "Walls";
@@ -3075,6 +3088,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-do
3075
3088
  import { Coordinate, type Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3076
3089
  import type { TBlueDotOptions, TBlueDotPositionUpdate } from '@mappedin/react-sdk/mappedin-js/src/types';
3077
3090
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
3091
+ export const GEOMETRY_ID = "blue-dot";
3078
3092
  export type TBlueDotEvents = {
3079
3093
  /**
3080
3094
  * Emitted when the Blue Dot's position is updated.
@@ -3400,7 +3414,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects' {
3400
3414
  export { Marker } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/marker';
3401
3415
  export { Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image';
3402
3416
  export { Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model';
3403
- export { Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3417
+ export { Path, PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3404
3418
  export { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
3405
3419
  export { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape';
3406
3420
  export { Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d';
@@ -3635,6 +3649,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
3635
3649
  * Sets the active path by directions.
3636
3650
  */
3637
3651
  setActivePathByDirections(target: Directions): void;
3652
+ /**
3653
+ * @internal
3654
+ */
3655
+ drawSync(directions: Directions | Directions[], options?: TNavigationOptions): void;
3638
3656
  /**
3639
3657
  * Draws the specified directions on the map.
3640
3658
  * @param directions The directions to be drawn.
@@ -3720,6 +3738,7 @@ declare module '@mappedin/react-sdk/react-sdk/src' {
3720
3738
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3721
3739
  import type { ParsedMVF } from '@mappedin/mvf';
3722
3740
  import type { DirectionsCollection } from '@packages/internal/geojson-navigator';
3741
+ import { Navigator } from '@packages/internal/geojson-navigator';
3723
3742
  import { Connection, Coordinate, Node, type MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
3724
3743
  import type { TDirectionInstruction, TDirectionZone, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
3725
3744
  /**
@@ -3760,6 +3779,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3760
3779
  get instructions(): TDirectionInstruction[];
3761
3780
  }
3762
3781
  export class DirectionsInternal {
3782
+ navigator: Navigator;
3763
3783
  /**
3764
3784
  * @hidden
3765
3785
  */
@@ -3792,9 +3812,18 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions' {
3792
3812
  * Get the node IDs that should be excluded from the navigation graph.
3793
3813
  *
3794
3814
  * @hidden
3815
+ * @param excludedConnections {Connection[]}
3816
+ */
3817
+ getExcludedNodeIds: (excludedConnections: Connection[]) => string[];
3818
+ /**
3819
+ * Get the node IDs of connections that do not match the accessibility setting provided.
3820
+ * A disabled connection node is a connection node that acts as a regular node
3821
+ * (ie. the edges that would cause a floor change are ignored).
3822
+ *
3823
+ * @hidden
3795
3824
  * @param accessible {boolean}
3796
3825
  */
3797
- getExcludedNodeIds: (accessible: boolean, excludedConnections: Connection[]) => string[];
3826
+ getDisabledConnectionNodeIds: (accessible: boolean) => string[];
3798
3827
  }
3799
3828
  /**
3800
3829
  * Get the nodes from the navigation target.
@@ -3815,7 +3844,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3815
3844
  import type Annotation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation';
3816
3845
  import type Connection from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/connection';
3817
3846
  import type MapObject from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object';
3818
- import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature } from '@mappedin/mvf';
3847
+ import type { EnterpriseLocation as MvfEnterpriseLocation, EnterpriseCategory as MvfEnterpriseCategory, ParsedMVFLocalePack, Feature, FloorStack as MvfFloorStack, FloorProperties as MvfFloor } from '@mappedin/mvf';
3819
3848
  import type { PartialExcept } from '@mappedin/mvf/dist/locale';
3820
3849
  import type { LocalePackUrls } from '@packages/internal/mvf-utils';
3821
3850
  import type { LanguagePackHydrationItem } from '@mappedin/react-sdk/mappedin-js/src/types';
@@ -3826,19 +3855,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/types' {
3826
3855
  export type Places = Space | Floor | Door | Connection | MapObject | PointOfInterest | Annotation | Area;
3827
3856
  export type LocationWithLocale = PartialExcept<MvfEnterpriseLocation, 'id'>;
3828
3857
  export type CategoryWithLocale = PartialExcept<MvfEnterpriseCategory, 'id'>;
3858
+ export type FloorStackWithLocale = PartialExcept<MvfFloorStack, 'id'>;
3859
+ export type FloorWithLocale = PartialExcept<MvfFloor, 'id'>;
3860
+ export type LanguagePackRecords = {
3861
+ 'enterprise-location': Record<string, LocationWithLocale> | undefined;
3862
+ 'enterprise-category': Record<string, CategoryWithLocale> | undefined;
3863
+ 'floor-stack': Record<string, FloorStackWithLocale> | undefined;
3864
+ floor: Record<string, FloorWithLocale> | undefined;
3865
+ };
3829
3866
  export type LanguagePack = {
3830
3867
  type: 'downloaded';
3831
3868
  data: ParsedMVFLocalePack;
3832
- optimized: {
3833
- locations: Record<string, LocationWithLocale> | undefined;
3834
- categories: Record<string, CategoryWithLocale> | undefined;
3835
- };
3869
+ optimized: LanguagePackRecords;
3836
3870
  } | {
3837
3871
  type: 'initial';
3838
- optimized: {
3839
- locations: Record<string, MvfEnterpriseLocation>;
3840
- categories: Record<string, MvfEnterpriseCategory>;
3841
- };
3872
+ optimized: LanguagePackRecords;
3842
3873
  };
3843
3874
  export type TMapDataInternalOptions = {
3844
3875
  env?: EnvControl;
@@ -4447,6 +4478,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor' {
4447
4478
  toJSON(): {
4448
4479
  id: string;
4449
4480
  name: string;
4481
+ shortName: string;
4450
4482
  elevation: number;
4451
4483
  spaces: string[];
4452
4484
  objects: string[];
@@ -4670,10 +4702,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/object' {
4670
4702
 
4671
4703
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate' {
4672
4704
  import type { IFocusable, IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
4673
- type TCoordinateParams = {
4705
+ /**
4706
+ * Parameters for creating a Coordinate.
4707
+ */
4708
+ export type TCoordinateParams = {
4709
+ /**
4710
+ * The latitude of the coordinate in decimal degrees.
4711
+ */
4674
4712
  latitude: number;
4713
+ /**
4714
+ * The longitude of the coordinate in decimal degrees.
4715
+ */
4675
4716
  longitude: number;
4717
+ /**
4718
+ * Optional ID of the floor this coordinate is on.
4719
+ */
4676
4720
  floorId?: string;
4721
+ /**
4722
+ * Optional vertical offset from the floor in meters.
4723
+ */
4677
4724
  verticalOffset?: number;
4678
4725
  };
4679
4726
  /**
@@ -4710,7 +4757,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4710
4757
  readonly floorId?: string;
4711
4758
  /**
4712
4759
  * The vertical position of the coordinate, offset from the floor.
4713
- * @internal
4714
4760
  */
4715
4761
  readonly verticalOffset: number;
4716
4762
  /**
@@ -4721,7 +4767,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/coordinate'
4721
4767
  */
4722
4768
  static is(instance: object): instance is Coordinate;
4723
4769
  /**
4724
- * @internal
4770
+ * Creates a new Coordinate instance.
4771
+ *
4772
+ * @param latitudeOrParams Either a latitude number or a TCoordinateParams object containing coordinate details
4725
4773
  */
4726
4774
  constructor(latitudeOrParams: TCoordinateParams);
4727
4775
  /**
@@ -4955,7 +5003,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/annotation'
4955
5003
  }
4956
5004
 
4957
5005
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink' {
4958
- import type { Hyperlink as MVFHyperlink } from '@mappedin/mvf';
5006
+ import type { LocationLink, Hyperlink as MVFHyperlink } from '@mappedin/mvf';
4959
5007
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
4960
5008
  /**
4961
5009
  * A class representing hyperlink link data within the map.
@@ -4977,7 +5025,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink'
4977
5025
  * @internal
4978
5026
  */
4979
5027
  constructor(options: {
4980
- mvfData: MVFHyperlink;
5028
+ mvfData: MVFHyperlink | LocationLink;
4981
5029
  });
4982
5030
  /**
4983
5031
  * Gets the url of the hyperlink.
@@ -5151,6 +5199,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5151
5199
  toJSON(): {
5152
5200
  id: string;
5153
5201
  name: string;
5202
+ shortName: string;
5154
5203
  type: "Building" | "Outdoor" | undefined;
5155
5204
  floors: string[];
5156
5205
  };
@@ -5293,7 +5342,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5293
5342
  locationProfilesByCategoryId: Record<string, LocationProfile[]>;
5294
5343
  locationProfilesByAttachedFeatureId: Record<string, LocationProfile[]>;
5295
5344
  };
5296
- export const processMVFSpaces: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "spacesById" | "spacesByExternalId" | "spaceIdsByDestinationNodeId" | "poisById" | "poisByExternalId" | "mvfSpacesById" | "objectEntranceNodeIdsByObstructionId" | "connectionsById" | "connectionIdsByLatLon" | "mvfSpacesByFloorId" | "mvfPoisByFloorId">;
5345
+ export const processMVFSpaces: (mvf: ParsedMVF, mvfConnectionsByNodeId: MapDataRecords["mvfConnectionsByNodeId"], data: MapDataInternal) => Pick<MapDataRecords, "spacesById" | "spacesByExternalId" | "spaceIdsByDestinationNodeId" | "poisById" | "poisByExternalId" | "mvfSpacesById" | "objectEntranceNodeIdsByObstructionId" | "connectionsById" | "connectionIdsByLatLon" | "mvfSpacesByFloorId" | "mvfPoisByFloorId">;
5297
5346
  export const processMVFNodes: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "nodesById" | "nodesByExternalId" | "mvfNodesById" | "mvfNodesByFloorId">;
5298
5347
  export const processMVFObstructions: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "objectsById" | "objectsByExternalId" | "mvfObstructionById" | "obstructionIdByEntranceId">;
5299
5348
  export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "floorsByExternalId" | "mvfFloorsById">;
@@ -5321,7 +5370,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5321
5370
  import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
5322
5371
  /**
5323
5372
  * An EnterpriseLocation contains metadata about a location, such as its name, description, logo, phone number, social medial links, hours of operation and more.
5324
- * They can be accessed using the {@link MapData.getByType()} method as shown below.
5373
+ * They can be accessed using the {@link MapData.getByType} method as shown below.
5325
5374
  *
5326
5375
  * ```typescript
5327
5376
  * const allLocations = mapData.getByType('enterprise-location');
@@ -5329,7 +5378,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location' {
5329
5378
  *
5330
5379
  * Refer to the [EnterpriseLocation Guide](https://developer.mappedin.com/web-sdk/enterprise-data#enterprise-locations) for more information and interactive examples.
5331
5380
  */
5332
- class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces'>, IFocusable {
5381
+ class EnterpriseLocation extends BaseMetaData implements Omit<MVFEnterpriseLocation, 'polygons' | 'nodes' | 'links' | 'spaces' | 'categories'>, IFocusable {
5333
5382
  #private;
5334
5383
  /**
5335
5384
  * @internal
@@ -5520,7 +5569,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category' {
5520
5569
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5521
5570
  /**
5522
5571
  * An EnterpriseCategory groups one or more EnterpriseLocation. These allow similar locations to be sorted in a logical fashion.
5523
- * For example a mall may group locations into Food Court, Footwear and Women's Fashion. They can be accessed using the {@link MapData.getByType()} method as shown below.
5572
+ * For example a mall may group locations into Food Court, Footwear and Women's Fashion. They can be accessed using the {@link MapData.getByType} method as shown below.
5524
5573
  *
5525
5574
  * ```typescript
5526
5575
  * const categories = mapData.getByType('enterprise-category');
@@ -5616,7 +5665,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue' {
5616
5665
  import BaseMetaData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-metadata-object';
5617
5666
  /**
5618
5667
  * The EnterpriseVenue class holds metadata bout the map, which includes the map name, supported languages, default language, top locations and more.
5619
- * It can be accessed using the {@link MapData.getByType()} method as shown below.
5668
+ * It can be accessed using the {@link MapData.getByType} method as shown below.
5620
5669
  *
5621
5670
  * ```typescript
5622
5671
  * const venue = mapData.getByType('enterprise-venue');
@@ -5985,13 +6034,92 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspec
5985
6034
  export type InspectorOption = Partial<InspectorState>;
5986
6035
  }
5987
6036
 
6037
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
6038
+ import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
6039
+ import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
6040
+ /**
6041
+ * @experimental
6042
+ *
6043
+ * A segment of a complete path. This can be a continuous portion of the path on a single floor, or
6044
+ * the transition of a path between two floors, or a transition between indoors and outdoors.
6045
+ */
6046
+ export class PathSegment implements IFocusable {
6047
+ readonly id: string;
6048
+ readonly coordinates: Coordinate[];
6049
+ /**
6050
+ * @internal
6051
+ */
6052
+ static readonly __type = "PathSegment";
6053
+ /**
6054
+ * @internal
6055
+ */
6056
+ readonly __type = "PathSegment";
6057
+ /**
6058
+ * Checks if the provided instance is a PathSegment.
6059
+ */
6060
+ static is(instance: object): instance is PathSegment;
6061
+ constructor(id: string, coordinates: Coordinate[]);
6062
+ /** @internal */
6063
+ get focusTarget(): Coordinate[];
6064
+ }
6065
+ /**
6066
+ * Class representing a path on the {@link MapView}.
6067
+ *
6068
+ * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
6069
+ */
6070
+ export class Path implements IFocusable {
6071
+ /**
6072
+ * The path's id
6073
+ */
6074
+ id: string;
6075
+ /**
6076
+ * The promise that resolves when the current path animation is complete.
6077
+ */
6078
+ animation: Promise<void>;
6079
+ /**
6080
+ * The coordinates of the path.
6081
+ */
6082
+ coordinates: Coordinate[];
6083
+ /**
6084
+ * @experimental
6085
+ *
6086
+ * The segments of the path.
6087
+ */
6088
+ segments: PathSegment[];
6089
+ /**
6090
+ * @internal
6091
+ */
6092
+ static readonly __type = "Path";
6093
+ /**
6094
+ * @internal
6095
+ */
6096
+ readonly __type = "Path";
6097
+ /**
6098
+ * Checks if the provided instance is a Path.
6099
+ *
6100
+ * @param instance The instance to check.
6101
+ * @returns {boolean} True if the instance is a Path, false otherwise.
6102
+ */
6103
+ static is(instance: object): instance is Path;
6104
+ /** @internal */
6105
+ get focusTarget(): Coordinate[];
6106
+ /**
6107
+ * @internal
6108
+ */
6109
+ constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[], segments: {
6110
+ id: string | number;
6111
+ coordinates: Coordinate[];
6112
+ }[]);
6113
+ }
6114
+ }
6115
+
5988
6116
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/types' {
5989
6117
  import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
5990
6118
  export type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
5991
6119
  }
5992
6120
 
5993
6121
  declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5994
- import './marker.scss';
6122
+ import '../styles/marker.scss';
5995
6123
  import { Vector2 } from 'three';
5996
6124
  import type { Entity2DHTMLDivElement, EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
5997
6125
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
@@ -6181,7 +6309,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
6181
6309
  name: MarkerAnchor;
6182
6310
  getBoundingBox: () => number[];
6183
6311
  }[];
6184
- toPackedMessage(lockToCurrentStrategy?: boolean): {
6312
+ toPackedMessage(isPanning?: boolean): {
6185
6313
  x: number;
6186
6314
  y: number;
6187
6315
  enabled: boolean;
@@ -6728,12 +6856,17 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6728
6856
  */
6729
6857
  iconFit?: 'contain' | 'fill' | 'cover';
6730
6858
  /**
6731
- * Defines when the icon becomes visible relative to the current zoom level
6732
- * anything below 0 will result in icons never showing up
6733
- * 0 ensures icons show up at maxZoom (fully zoomed in)
6734
- * 1 ensures they always show up
6859
+ * Whether the icon should overflow the circle of the marker.
6860
+ * @default 'hidden'
6861
+ */
6862
+ iconOverflow?: 'visible' | 'hidden';
6863
+ /**
6864
+ * Defines the zoom level at which the icon becomes visible.
6865
+ * Infinity ensures the icon is never visible.
6866
+ * -Infinity ensures the icon is always visible.
6867
+ * @default -Infinity
6735
6868
  */
6736
- iconVisibilityThreshold?: number;
6869
+ iconVisibleAtZoomLevel?: number;
6737
6870
  };
6738
6871
  };
6739
6872
  /**
@@ -6799,8 +6932,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6799
6932
  iconSize?: number;
6800
6933
  iconPadding: number;
6801
6934
  iconFit: 'fill' | 'contain' | 'cover';
6935
+ iconOverflow: 'visible' | 'hidden';
6802
6936
  icon?: string;
6803
- iconVisibilityThreshold?: number;
6937
+ iconVisibleAtZoomLevel?: number;
6804
6938
  };
6805
6939
  };
6806
6940
  export type LabelOptions = {
@@ -6880,6 +7014,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6880
7014
  text: string;
6881
7015
  style: TStyle;
6882
7016
  projection: Vector2;
7017
+ labelCacheId?: string;
6883
7018
  _cache: {};
6884
7019
  appearance: LabelAppearanceFillenIn;
6885
7020
  options: LabelOptions;
@@ -6911,7 +7046,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6911
7046
  imageHash?: number;
6912
7047
  markerSize: number;
6913
7048
  iconVisible: boolean;
6914
- zoomProportion: number;
6915
7049
  dp: (v?: number) => number;
6916
7050
  setEntity(): void;
6917
7051
  constructor(text: string, options: AddLabelOptions, state: RendererState);
@@ -6922,7 +7056,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
6922
7056
  onStrategySelected: (strategyIndex: any) => void;
6923
7057
  updatePosition(): void;
6924
7058
  disable(): void;
6925
- toPackedMessage(lockToCurrentStrategy?: boolean): {
7059
+ toPackedMessage(isPanning?: boolean): {
6926
7060
  x: number;
6927
7061
  y: number;
6928
7062
  enabled: boolean;
@@ -7106,7 +7240,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
7106
7240
  }
7107
7241
 
7108
7242
  declare module '@mappedin/react-sdk/geojson/src/types/geometry' {
7109
- export type Position = [lon: number, lat: number, alt?: number];
7243
+ export type Position = [lon: number, lat: number] | [lon: number, lat: number, alt: number];
7110
7244
  }
7111
7245
 
7112
7246
  declare module '@mappedin/react-sdk/geojson/src/types' {
@@ -7653,6 +7787,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
7653
7787
  set topTexture(texture: Texture);
7654
7788
  get topTexture(): string;
7655
7789
  get topTextureInstance(): Texture | undefined;
7790
+ set blendTexture(value: boolean);
7656
7791
  get featureBbox(): BBox;
7657
7792
  texturesVisible: boolean;
7658
7793
  showTextures(): void;
@@ -7760,7 +7895,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7760
7895
  /**
7761
7896
  * The parent container of the marker
7762
7897
  */
7763
- readonly parent: EntityId<GeometryGroupState> | string | number;
7898
+ readonly parent?: EntityId<GeometryGroupState> | string | number;
7764
7899
  /**
7765
7900
  * The position of the model in [lon, lat]
7766
7901
  */
@@ -7774,17 +7909,19 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7774
7909
  * ```
7775
7910
  */
7776
7911
  interactive: boolean;
7777
- } & Partial<ModelStyle>;
7912
+ } & Partial<Omit<ModelStyle, 'rotation' | 'scale'>> & Pick<ModelStyle, 'rotation' | 'scale'>;
7778
7913
  /**
7779
7914
  * initialize model state
7780
7915
  * @interface
7781
7916
  */
7782
- export type InitializeModelState = Omit<Partial<Omit<ModelState, 'url'> & Pick<ModelStyle, 'url'>>, 'id' | 'type' | 'parent' | 'position'>;
7917
+ export type InitializeModelState = Omit<Partial<ModelState>, 'id' | 'type' | 'parent' | 'position'>;
7783
7918
  /**
7784
7919
  * updatable model state
7785
7920
  * @interface
7786
7921
  */
7787
- export type UpdateModelState = Omit<InitializeModelState, 'url'>;
7922
+ export type UpdateModelState = Omit<InitializeModelState, 'url'> & {
7923
+ position?: Position;
7924
+ };
7788
7925
  export const modelPropertiesSchema: z.ZodObject<{
7789
7926
  rotation: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
7790
7927
  altitude: z.ZodOptional<z.ZodNumber>;
@@ -7795,17 +7932,17 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7795
7932
  }, "strip", z.ZodTypeAny, {
7796
7933
  altitude?: number | undefined;
7797
7934
  verticalOffset?: number | undefined;
7798
- id?: string | number | undefined;
7799
- interactive?: boolean | undefined;
7800
7935
  rotation?: number[] | undefined;
7801
7936
  scale?: number[] | undefined;
7937
+ id?: string | number | undefined;
7938
+ interactive?: boolean | undefined;
7802
7939
  }, {
7803
7940
  altitude?: number | undefined;
7804
7941
  verticalOffset?: number | undefined;
7805
- id?: string | number | undefined;
7806
- interactive?: boolean | undefined;
7807
7942
  rotation?: number[] | undefined;
7808
7943
  scale?: number[] | undefined;
7944
+ id?: string | number | undefined;
7945
+ interactive?: boolean | undefined;
7809
7946
  }>;
7810
7947
  export const featureSchema: z.ZodObject<{
7811
7948
  type: z.ZodEnum<["Feature"]>;
@@ -7829,17 +7966,17 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7829
7966
  }, "strip", z.ZodTypeAny, {
7830
7967
  altitude?: number | undefined;
7831
7968
  verticalOffset?: number | undefined;
7832
- id?: string | number | undefined;
7833
- interactive?: boolean | undefined;
7834
7969
  rotation?: number[] | undefined;
7835
7970
  scale?: number[] | undefined;
7971
+ id?: string | number | undefined;
7972
+ interactive?: boolean | undefined;
7836
7973
  }, {
7837
7974
  altitude?: number | undefined;
7838
7975
  verticalOffset?: number | undefined;
7839
- id?: string | number | undefined;
7840
- interactive?: boolean | undefined;
7841
7976
  rotation?: number[] | undefined;
7842
7977
  scale?: number[] | undefined;
7978
+ id?: string | number | undefined;
7979
+ interactive?: boolean | undefined;
7843
7980
  }>;
7844
7981
  }, "strip", z.ZodTypeAny, {
7845
7982
  type: "Feature";
@@ -7850,10 +7987,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7850
7987
  properties: {
7851
7988
  altitude?: number | undefined;
7852
7989
  verticalOffset?: number | undefined;
7853
- id?: string | number | undefined;
7854
- interactive?: boolean | undefined;
7855
7990
  rotation?: number[] | undefined;
7856
7991
  scale?: number[] | undefined;
7992
+ id?: string | number | undefined;
7993
+ interactive?: boolean | undefined;
7857
7994
  };
7858
7995
  }, {
7859
7996
  type: "Feature";
@@ -7864,10 +8001,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7864
8001
  properties: {
7865
8002
  altitude?: number | undefined;
7866
8003
  verticalOffset?: number | undefined;
7867
- id?: string | number | undefined;
7868
- interactive?: boolean | undefined;
7869
8004
  rotation?: number[] | undefined;
7870
8005
  scale?: number[] | undefined;
8006
+ id?: string | number | undefined;
8007
+ interactive?: boolean | undefined;
7871
8008
  };
7872
8009
  }>;
7873
8010
  export const addModelFeatureSchema: z.ZodObject<{
@@ -7894,17 +8031,17 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7894
8031
  }, "strip", z.ZodTypeAny, {
7895
8032
  altitude?: number | undefined;
7896
8033
  verticalOffset?: number | undefined;
7897
- id?: string | number | undefined;
7898
- interactive?: boolean | undefined;
7899
8034
  rotation?: number[] | undefined;
7900
8035
  scale?: number[] | undefined;
8036
+ id?: string | number | undefined;
8037
+ interactive?: boolean | undefined;
7901
8038
  }, {
7902
8039
  altitude?: number | undefined;
7903
8040
  verticalOffset?: number | undefined;
7904
- id?: string | number | undefined;
7905
- interactive?: boolean | undefined;
7906
8041
  rotation?: number[] | undefined;
7907
8042
  scale?: number[] | undefined;
8043
+ id?: string | number | undefined;
8044
+ interactive?: boolean | undefined;
7908
8045
  }>;
7909
8046
  }, "strip", z.ZodTypeAny, {
7910
8047
  type: "Feature";
@@ -7915,10 +8052,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7915
8052
  properties: {
7916
8053
  altitude?: number | undefined;
7917
8054
  verticalOffset?: number | undefined;
7918
- id?: string | number | undefined;
7919
- interactive?: boolean | undefined;
7920
8055
  rotation?: number[] | undefined;
7921
8056
  scale?: number[] | undefined;
8057
+ id?: string | number | undefined;
8058
+ interactive?: boolean | undefined;
7922
8059
  };
7923
8060
  }, {
7924
8061
  type: "Feature";
@@ -7929,10 +8066,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7929
8066
  properties: {
7930
8067
  altitude?: number | undefined;
7931
8068
  verticalOffset?: number | undefined;
7932
- id?: string | number | undefined;
7933
- interactive?: boolean | undefined;
7934
8069
  rotation?: number[] | undefined;
7935
8070
  scale?: number[] | undefined;
8071
+ id?: string | number | undefined;
8072
+ interactive?: boolean | undefined;
7936
8073
  };
7937
8074
  }>, "many">;
7938
8075
  }, "strip", z.ZodTypeAny, {
@@ -7946,10 +8083,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7946
8083
  properties: {
7947
8084
  altitude?: number | undefined;
7948
8085
  verticalOffset?: number | undefined;
7949
- id?: string | number | undefined;
7950
- interactive?: boolean | undefined;
7951
8086
  rotation?: number[] | undefined;
7952
8087
  scale?: number[] | undefined;
8088
+ id?: string | number | undefined;
8089
+ interactive?: boolean | undefined;
7953
8090
  };
7954
8091
  }[];
7955
8092
  }, {
@@ -7963,10 +8100,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7963
8100
  properties: {
7964
8101
  altitude?: number | undefined;
7965
8102
  verticalOffset?: number | undefined;
7966
- id?: string | number | undefined;
7967
- interactive?: boolean | undefined;
7968
8103
  rotation?: number[] | undefined;
7969
8104
  scale?: number[] | undefined;
8105
+ id?: string | number | undefined;
8106
+ interactive?: boolean | undefined;
7970
8107
  };
7971
8108
  }[];
7972
8109
  }>;
@@ -8001,6 +8138,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
8001
8138
  #private;
8002
8139
  mesh?: Geometry3DObject3D | Group;
8003
8140
  readonly type = "model";
8141
+ positionDirty: boolean;
8004
8142
  outline?: LineSegments;
8005
8143
  geometry?: Object3D;
8006
8144
  material?: BatchedStandardMaterial;
@@ -8014,6 +8152,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
8014
8152
  position: Vector3;
8015
8153
  get altitude(): number;
8016
8154
  set altitude(value: number);
8155
+ getRotation(): number[] | undefined;
8156
+ setRotation(value: [number, number, number]): void;
8157
+ getScale(): number[] | undefined;
8158
+ setScale(value: [number, number, number]): void;
8017
8159
  get opacity(): number;
8018
8160
  set opacity(value: number);
8019
8161
  }
@@ -8069,6 +8211,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8069
8211
  import { Group as TweenGroup } from '@tweenjs/tween.js';
8070
8212
  import { Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
8071
8213
  import { Occlusion2DSystem } from '@mappedin/react-sdk/geojson/src/systems/2d-occlusion/system';
8214
+ import type { FloatingFloorTextProperties } from '@mappedin/mvf';
8072
8215
  export type * from '@mappedin/react-sdk/geojson/src/types';
8073
8216
  export const raycaster: Raycaster;
8074
8217
  /**
@@ -8166,6 +8309,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8166
8309
  addCustomGeometry(id: string, feature: Feature<Point>, builder: CustomGeometryBuilder, style?: {
8167
8310
  visible?: boolean;
8168
8311
  altitude?: number;
8312
+ interactive?: boolean;
8169
8313
  }, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<ShapeState>;
8170
8314
  /**
8171
8315
  * Add a geometry group from GeoJSON data
@@ -8184,6 +8328,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8184
8328
  * Add an HTML Marker at a GeoJSON coordinate.
8185
8329
  */
8186
8330
  addMarker2D(coordinate: Position, contentHTML: string, options?: AddMarkerOptions, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<MarkerState> | undefined;
8331
+ addText3D(id: string, geometry: Feature<Point, FloatingFloorTextProperties>, options: AddText3DOptions, parent?: EntityId<GroupContainerState> | string | null): EntityId<Text3DState>;
8187
8332
  /**
8188
8333
  * Labels an existing 3D geometry with a text area.
8189
8334
  *
@@ -8205,10 +8350,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8205
8350
  */
8206
8351
  labelText3D(meshGeometryId: string, content: string, options?: AddText3DOptions & {
8207
8352
  parentId?: string;
8208
- }): {
8209
- id: string | number;
8210
- type: "text3d";
8211
- } | undefined;
8353
+ }): EntityId<Text3DState> | undefined;
8212
8354
  /**
8213
8355
  * Add a 2D label at a GeoJSON coordinate.
8214
8356
  */
@@ -8273,6 +8415,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
8273
8415
  setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<UpdateModelState>): void;
8274
8416
  setState<T extends EntityId<ImageState>>(object: T | T['id'], state: Partial<ImageState>): void;
8275
8417
  setState<T extends EntityId<Text3DState>>(object: T | T['id'], state: Partial<UpdatableText3DState>): void;
8418
+ setState<T extends EntityId<PathState>>(object: T | T['id'], state: Partial<PathState>): void;
8276
8419
  setState<T extends EntityState>(object: T | T['id'], state: Partial<T>): void;
8277
8420
  /**
8278
8421
  * Project a screen coordinate to a geographic coordinate
@@ -8645,6 +8788,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
8645
8788
  import type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
8646
8789
  import type { MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
8647
8790
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8791
+ import { type FloorTextCommonProperties } from '@mappedin/mvf';
8648
8792
  /**
8649
8793
  * State representing an Text3D
8650
8794
  */
@@ -9013,8 +9157,12 @@ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
9013
9157
  mesh: Geometry3DObject3D;
9014
9158
  textMesh?: Text;
9015
9159
  readonly type = "text3d";
9016
- feature: Feature<Point, Text3DProperties>;
9017
- constructor(feature: Feature<Point, Text3DProperties>);
9160
+ feature: Feature<Point, Text3DProperties | (FloorTextCommonProperties & {
9161
+ verticalOffset: number;
9162
+ })>;
9163
+ constructor(feature: Feature<Point, Text3DProperties | (FloorTextCommonProperties & {
9164
+ verticalOffset: number;
9165
+ })>);
9018
9166
  get visible(): boolean;
9019
9167
  set visible(visible: boolean);
9020
9168
  parent?: GroupContainerObject3D;
@@ -9184,6 +9332,10 @@ declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
9184
9332
  DEFAULT = 0,
9185
9333
  OUTLINES = 1
9186
9334
  }
9335
+ /**
9336
+ * Duration of zoom in/out animation when double tapping with one finger or single tapping with two fingers.
9337
+ */
9338
+ export const TAP_ZOOM_DURATION = 250;
9187
9339
  }
9188
9340
 
9189
9341
  declare module '@mappedin/react-sdk/geojson/src/utils/debug' {
@@ -9253,6 +9405,11 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
9253
9405
  * @hidden
9254
9406
  */
9255
9407
  onClick?: () => void;
9408
+ /**
9409
+ * Whether the watermark is interactive.
9410
+ * @default true
9411
+ */
9412
+ interactive?: boolean;
9256
9413
  /**
9257
9414
  * Whether the watermark should be visible.
9258
9415
  * @hidden
@@ -9263,6 +9420,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
9263
9420
  export type WatermarkUpdateOptions = Omit<WatermarkOptions, 'onClick' | 'visible'> & {
9264
9421
  /** Show the Mappedin watermark. Once it is visible it cannot be hidden again. */
9265
9422
  visible?: true;
9423
+ /** Set the interactivity of the watermark. */
9424
+ interactive?: boolean;
9266
9425
  };
9267
9426
  export class WatermarkSystem extends PubSub<{
9268
9427
  'texture-loaded': void;
@@ -9300,9 +9459,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/text3d/system' {
9300
9459
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
9301
9460
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
9302
9461
  import { PubSub } from '@packages/internal/common';
9303
- import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
9304
9462
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
9305
- import type { Text } from 'troika-three-text';
9463
+ import type { Text, BatchedText } from 'troika-three-text';
9306
9464
  export class Text3DSystem extends PubSub<{
9307
9465
  render: undefined;
9308
9466
  }> {
@@ -9332,7 +9490,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter' {
9332
9490
 
9333
9491
  declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
9334
9492
  import type { Map } from '@mappedin/react-sdk/packages/outdoor-context-v4';
9335
- import './style.scss';
9493
+ import '../../styles/html-controls.scss';
9336
9494
  /**
9337
9495
  * All possible control anchor positions.
9338
9496
  */
@@ -9370,6 +9528,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles' {
9370
9528
  export { StyleComponent, DEFAULT_COLOR, type MaterialSide } from '@mappedin/react-sdk/geojson/src/components/styles/style';
9371
9529
  export { Text3DStyleComponent, type Text3DStyle, DEFAULT_TEXT_STYLE } from '@mappedin/react-sdk/geojson/src/components/styles/text-style';
9372
9530
  export { ModelStyleComponnet, type ModelStyle } from '@mappedin/react-sdk/geojson/src/components/styles/model-style';
9531
+ export { DEFAULT_ROTATION, DEFAULT_SCALE } from '@mappedin/react-sdk/geojson/src/components/styles/constants';
9373
9532
  }
9374
9533
 
9375
9534
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
@@ -9381,7 +9540,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9381
9540
  import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9382
9541
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
9383
9542
  import { Label, Marker, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9384
- import { Text3D as Text3DView, Model, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9543
+ import { Text3D as Text3DView, Model, Path, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9385
9544
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
9386
9545
  import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
9387
9546
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
@@ -9399,6 +9558,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9399
9558
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
9400
9559
  import { type BBox } from 'geojson';
9401
9560
  import { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
9561
+ import { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
9402
9562
  export class GeoJsonApi {
9403
9563
  core: RendererCore;
9404
9564
  mapObjects: GeojsonApiMapObject[];
@@ -9430,7 +9590,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9430
9590
  get DynamicFocus(): import("..").DynamicFocus;
9431
9591
  get StackedMaps(): import("..").StackedMaps;
9432
9592
  constructor(rendererCore: RendererCore, mapView: MapView);
9433
- updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
9593
+ updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Model | Door | Facade | WALLS | DOORS | Path | PathSegment | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
9434
9594
  update: () => void;
9435
9595
  getMapDataInternal(): MapDataInternal | undefined;
9436
9596
  getMapData(): MapData | undefined;
@@ -9440,11 +9600,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
9440
9600
  updateWatermark(options: WatermarkUpdateOptions): void;
9441
9601
  get currentFloorStack(): FloorStack;
9442
9602
  get currentFloor(): Floor;
9443
- getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | string>(target: T): TGetState<T>;
9603
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | Model | Path | PathSegment | string>(target: T): TGetState<T>;
9444
9604
  setHoverColor(c: string): void;
9445
9605
  getHoverColor(): string | undefined;
9446
- createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
9447
9606
  createCoordinateFromScreenCoordinate(x: number, y: number, floor?: Floor): Coordinate | undefined;
9607
+ getScreenCoordinateFromCoordinate(coordinate: Coordinate): {
9608
+ x: number;
9609
+ y: number;
9610
+ };
9448
9611
  isInView(target: Space | MapObject | Label | Marker | string): boolean;
9449
9612
  auto(): {
9450
9613
  labels: Label[];
@@ -9465,13 +9628,13 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9465
9628
  import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
9466
9629
  import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
9467
9630
  import type { Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
9468
- import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction, TAddText3DOptions, IAnchorable, TAddLabelOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
9631
+ import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddImageOptions, TDirectionInstruction, TAddText3DOptions, IAnchorable, TAddLabelOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
9469
9632
  import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
9470
9633
  import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
9471
9634
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
9472
9635
  import type { Path, Shape, Label } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
9473
- import { Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9474
- import type { Coordinate, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9636
+ import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9637
+ import { Space, Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9475
9638
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
9476
9639
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
9477
9640
  import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
@@ -9484,7 +9647,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9484
9647
  previousFloorId: string;
9485
9648
  };
9486
9649
  'floor-change-start': {
9650
+ reason?: TFloorChangeReason;
9487
9651
  floorId: string;
9652
+ previousFloorId: string;
9488
9653
  };
9489
9654
  'navigation-connection-click': {
9490
9655
  fromFloor?: Floor;
@@ -9518,7 +9683,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9518
9683
  processFloorChange(floorId: string): void;
9519
9684
  setFloor(floorId: string, reason?: TFloorChangeReason): void;
9520
9685
  Models: {
9521
- add: (id: string, targets: TAddModel[], opts: TAddModelOptions & {
9686
+ add: (id: string, targets: Coordinate[], opts: TAddModelOptions & {
9522
9687
  floorId?: string;
9523
9688
  }) => (import("@mappedin/core-sdk").GeometryState | import("@mappedin/core-sdk").ModelState)[];
9524
9689
  remove: (_id: string, _groupId: string) => void;
@@ -9571,8 +9736,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
9571
9736
  removeAll: () => void;
9572
9737
  };
9573
9738
  Paths: {
9574
- add: (coordinates: Coordinate[], options?: TAddPathOptions) => {
9575
- paths: EntityId<PathState>[];
9739
+ add: (coordinates: Coordinate[], options?: TAddPathOptions & {
9740
+ id?: string;
9741
+ }) => {
9742
+ paths: (EntityId<PathState> & {
9743
+ coordinates: Coordinate[];
9744
+ })[];
9576
9745
  animation: Promise<void>;
9577
9746
  };
9578
9747
  remove: (entityIds: string[]) => void;
@@ -9724,6 +9893,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/image' {
9724
9893
  }
9725
9894
 
9726
9895
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
9896
+ import { IAnchorable } from '@mappedin/react-sdk/mappedin-js/src/types';
9727
9897
  /**
9728
9898
  * Class representing a 3D model on the {@link MapView}.
9729
9899
  *
@@ -9740,6 +9910,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
9740
9910
  * Refer to the [3D Models Guide](https://developer.mappedin.com/web-sdk/3d-models) for more information and interactive examples.
9741
9911
  */
9742
9912
  export class Model {
9913
+ #private;
9743
9914
  /**
9744
9915
  * The model's id
9745
9916
  */
@@ -9756,6 +9927,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
9756
9927
  * @internal
9757
9928
  */
9758
9929
  readonly __type = "Model";
9930
+ get target(): IAnchorable;
9759
9931
  /**
9760
9932
  * Checks if the provided instance is of type Model
9761
9933
  *
@@ -9766,41 +9938,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/model' {
9766
9938
  /**
9767
9939
  * @internal
9768
9940
  */
9769
- constructor(id: string, groupId: string);
9770
- }
9771
- }
9772
-
9773
- declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path' {
9774
- import { type Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9775
- import type { IFocusable } from '@mappedin/react-sdk/mappedin-js/src/types';
9776
- /**
9777
- * Class representing a path on the {@link MapView}.
9778
- *
9779
- * Paths are used to indicate a route on the map and can be added and removed using {@link Paths.add} and {@link Paths.remove}.
9780
- */
9781
- export class Path implements IFocusable {
9782
- /**
9783
- * The label's id
9784
- */
9785
- id: string;
9786
- /**
9787
- * The promise that resolves when the current path animation is complete.
9788
- */
9789
- animation: Promise<void>;
9790
- /**
9791
- * The coordinates of the path.
9792
- */
9793
- coordinates: Coordinate[];
9941
+ constructor(id: string, groupId: string, target: IAnchorable);
9794
9942
  /**
9795
9943
  * @internal
9796
9944
  */
9797
- readonly __type: 'Path';
9798
- /** @internal */
9799
- get focusTarget(): Coordinate[];
9800
- /**
9801
- * @internal
9802
- */
9803
- constructor(id: string, drawAnimation: Promise<void>, coordinates: Coordinate[]);
9945
+ updateTarget(target: IAnchorable): void;
9804
9946
  }
9805
9947
  }
9806
9948
 
@@ -10210,15 +10352,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
10210
10352
  }
10211
10353
 
10212
10354
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
10213
- import type { TAddModelOptions, TAddModel } from '@mappedin/react-sdk/mappedin-js/src/types';
10355
+ import type { TAddModelOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
10214
10356
  import { Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
10215
10357
  import type { CurrentMapGetter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/types';
10358
+ import type { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
10216
10359
  /**
10217
10360
  * Adding 3D models to a map can be a great way to represent landmarks to help users find key locations. They could also be used to show the location of assets or represent furniture to provide a rich indoor layout.
10218
10361
 
10219
10362
  * Mappedin JS supports models in Graphics Library Transmission Format (GLTF) and GL Transmission Format Binary (GLB) format. Models with nested meshes are not supported and should not be used.
10220
10363
  *
10221
- * 3D Models can be added to a {@link Coordinate}, {@link Door} or {@link Space}.
10364
+ * 3D Models can be added to a {@link Coordinate}.
10222
10365
  * When adding the same model to multiple locations at the same time always use an array instead of calling the add method multiple times.
10223
10366
  * This allows the SDK to re-use the same instance of the model to reduce RAM usage and rendering time, resulting in better performance.
10224
10367
  *
@@ -10247,20 +10390,28 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
10247
10390
  groupId: string;
10248
10391
  } | undefined;
10249
10392
  /**
10250
- * Adds a model to the map.
10393
+ * Adds a 3D model to the map at the specified coordinate.
10251
10394
  *
10252
- * @param models The model or models to add to the map.
10253
- * @param options Optional additional options for the {@link Model}.
10254
- * @returns {Model | undefined} The created {@link Model}, or undefined if creation failed.
10395
+ * @param coordinate - The {@link Coordinate} where the model will be placed.
10396
+ * @param url - The URL to the GLTF or GLB model file or a inline base64 encoded 3D asset from the {@link https://mappedin.com/3d-assets|Mappedin 3D Assets} library.
10397
+ * @param options - Configuration options for the model using {@link TAddModelOptions}.
10398
+ * @returns A {@link Model} instance representing the added 3D model.
10255
10399
  * @example
10256
- * // Add a {@link Model} to the map.
10257
- * mapView.Models.add(coordinate);
10400
+ * ```ts
10401
+ * // Add a model to a coordinate
10402
+ * import { truck } from '@mappedin/3d-assets';
10403
+ * const model = mapView.Models.add(coordinate, truck, {
10404
+ * scale: [0.5, 0.5, 0.5],
10405
+ * rotation: [0, 90, 0],
10406
+ * interactive: true
10407
+ * });
10408
+ * ```
10258
10409
  */
10259
- add(models: TAddModel, options: TAddModelOptions): Model;
10410
+ add(coordinate: Coordinate, url: string, options: TAddModelOptions): Model;
10260
10411
  /**
10261
10412
  * Removes a model from the map.
10262
10413
  *
10263
- * @param model {Model} The {@link Model} which should be removed.
10414
+ * @param model - The {@link Model} instance which should be removed.
10264
10415
  * @example
10265
10416
  * mapView.Models.remove(model);
10266
10417
  */
@@ -10268,8 +10419,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
10268
10419
  /**
10269
10420
  * Remove all the models from the map.
10270
10421
  *
10422
+ * @returns An array of all removed {@link Model} instances.
10271
10423
  * @example
10272
- * mapView.Models.removeAll();
10424
+ * const removedModels = mapView.Models.removeAll();
10273
10425
  */
10274
10426
  removeAll(): Model[];
10275
10427
  }
@@ -10287,7 +10439,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
10287
10439
  *
10288
10440
  * Paths can be drawn from one coordinate to another using {@link Paths.add}. If using just two coordinates, the path will be drawn straight between the two points.
10289
10441
  * This may work for some scenarios, but in most cases an app will need to show the user their walking path, going through doors and avoiding walls and other objects.
10290
- * Such a path of coordinates can be created by calling the {@link MapData.getDirections()} method, passing in a start and end {@link TNavigationTarget}. Note that a Space requires an entrance to be used as a target.
10442
+ * Such a path of coordinates can be created by calling the {@link MapData.getDirections} method, passing in a start and end {@link TNavigationTarget}. Note that a Space requires an entrance to be used as a target.
10291
10443
  *
10292
10444
  * The width of the path is set using the {@link TAddPathOptions.nearRadius} and {@link TAddPathOptions.farRadius} parameters. These values are in meters. `nearRadius` is the path width used at the lowest zoom level closest to the ground and `farRadius` is used at the highest zoom level. Additional path styles are outlined later in this guide in the Path Styles section.
10293
10445
  *
@@ -10560,6 +10712,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/navigation/index' {
10560
10712
  * Sets the active path by directions.
10561
10713
  */
10562
10714
  setActivePathByDirections(target: Directions): void;
10715
+ /**
10716
+ * @internal
10717
+ */
10718
+ drawSync(directions: Directions | Directions[], options?: TNavigationOptions): void;
10563
10719
  /**
10564
10720
  * Draws the specified directions on the map.
10565
10721
  * @param directions The directions to be drawn.
@@ -11457,7 +11613,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/opening-hou
11457
11613
 
11458
11614
  declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
11459
11615
  import { QuadTree } from '@packages/internal/quad-tree';
11460
- import './style.scss';
11616
+ import '../../styles/collisions.scss';
11461
11617
  import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
11462
11618
  import type LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
11463
11619
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
@@ -11524,7 +11680,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/system' {
11524
11680
  currentMsgId: string;
11525
11681
  working: boolean;
11526
11682
  componentArray: (MarkerComponent | LabelComponent)[];
11527
- update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, useAllStrategies?: boolean) => void;
11683
+ update: (watermarkWidth: number, watermarkHeight: number, watermarkPosition?: WatermarkPosition, isPanning?: boolean) => void;
11528
11684
  resize(watermarkWidth: number, watermarkHeight: number, watermarkPosition: WatermarkPosition): void;
11529
11685
  /**
11530
11686
  * Resolve collisions
@@ -11734,21 +11890,20 @@ declare module '@mappedin/react-sdk/geojson/src/components/interaction' {
11734
11890
 
11735
11891
  declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
11736
11892
  import { type Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
11737
- import { Text, BatchedText } from 'troika-three-text';
11893
+ import { BatchedText, Text } from 'troika-three-text';
11738
11894
  import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
11739
11895
  import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
11740
- export function createTroikaText(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11896
+ export function createTroikaTextPoint(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11897
+ text: Text;
11898
+ }>;
11899
+ export function createTroikaTextArea(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
11741
11900
  text: Text;
11742
11901
  } | undefined>;
11743
11902
  export { BatchedText, Text };
11744
11903
  /**
11745
- * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
11904
+ * Promise caches the base64 font string. Then shared across all needed
11746
11905
  */
11747
- export type ModuleType = {
11748
- createTroikaText: typeof createTroikaText;
11749
- preloadFont: typeof preloadFont;
11750
- BatchedText: typeof BatchedText;
11751
- };
11906
+ export let fontPreloadLoadPromise: Promise<string> | undefined;
11752
11907
  /**
11753
11908
  * Preloads a font from the given URL. Enable developer to preload font way before scene is ready
11754
11909
  *
@@ -11756,6 +11911,15 @@ declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
11756
11911
  * @returns A promise that resolves when the font is successfully preloaded, or rejects with an error if the font cannot be loaded.
11757
11912
  */
11758
11913
  export function preloadFont(fontUrl?: string): Promise<string>;
11914
+ /**
11915
+ * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
11916
+ */
11917
+ export type ModuleType = {
11918
+ createTroikaTextPoint: typeof createTroikaTextPoint;
11919
+ createTroikaTextArea: typeof createTroikaTextArea;
11920
+ preloadFont: typeof preloadFont;
11921
+ BatchedText: typeof BatchedText;
11922
+ };
11759
11923
  }
11760
11924
 
11761
11925
  declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style' {
@@ -11984,6 +12148,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
11984
12148
  set texture(texture: Texture);
11985
12149
  get topTexture(): Texture;
11986
12150
  set topTexture(texture: Texture);
12151
+ get blendTexture(): boolean;
12152
+ set blendTexture(value: boolean);
11987
12153
  setGradientShading(start: number, end: number, intensity: number): void;
11988
12154
  setColor(batchId: number, color: Color, topColor: Color): void;
11989
12155
  getColor(batchId: number): {
@@ -12141,6 +12307,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
12141
12307
  import type { ModelStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
12142
12308
  export class MeshCreationAndOptimizationSystem extends PubSub<{
12143
12309
  'model-loaded': void;
12310
+ 'geometry-2d-added': void;
12144
12311
  }> {
12145
12312
  state: RendererState;
12146
12313
  convertTo3DMapPosition: any;
@@ -12226,7 +12393,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
12226
12393
  right?: OffscreenCanvas | HTMLCanvasElement;
12227
12394
  };
12228
12395
  };
12229
- update: (newZoom: number, minZoom: number, maxZoom: number) => void;
12396
+ update: (zoomLevel: number) => void;
12230
12397
  processText: (text: string, size: number, maxWidth: number, maxLines: number, lineHeight: number) => {
12231
12398
  textDrawFn: import("@packages/internal/shave-text/shave-text").TDrawFn;
12232
12399
  width: number;
@@ -12245,15 +12412,17 @@ declare module '@mappedin/react-sdk/geojson/src/systems/draw/system' {
12245
12412
  import { PubSub } from '@packages/internal/common';
12246
12413
  import { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
12247
12414
  import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
12248
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
12415
+ import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
12249
12416
  import type { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
12417
+ import type { Vector3 } from 'three';
12250
12418
  import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
12251
12419
  export class DrawSystem extends PubSub<{
12252
12420
  'texture-loaded': void;
12253
12421
  }> {
12254
12422
  #private;
12255
12423
  state: RendererState;
12256
- constructor(state: RendererState);
12424
+ convertTo3DMapPosition: (position: Position) => Vector3;
12425
+ constructor(state: RendererState, convertTo3DMapPosition: (position: Position) => Vector3);
12257
12426
  processTextures(component: MeshComponent, styleComponent: StyleComponent | GeometryGroupStyleComponent, interactionComponent?: InteractionComponent): void;
12258
12427
  update(): void;
12259
12428
  destroy(): void;
@@ -12293,6 +12462,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/render/system' {
12293
12462
  'post-render': undefined;
12294
12463
  }> {
12295
12464
  constructor(renderer: Renderer, state: RendererState, mode: RendererCore['mode'], scene: Scene, cameraObject: PerspectiveCamera, viewCamera: Camera, systems: Systems);
12465
+ needs2DRecompute: boolean;
12296
12466
  twoDdirty: boolean;
12297
12467
  threeDdirty: boolean;
12298
12468
  update: (sync?: boolean) => Promise<any> | undefined;
@@ -12569,7 +12739,15 @@ declare module '@mappedin/react-sdk/geojson/src/systems/image/system' {
12569
12739
  'image-loaded': void;
12570
12740
  }> {
12571
12741
  constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition'], initialBearing?: number, naturalBearing?: number, imagePlacementOptions?: ImagePlacementOptions);
12572
- imageLoadingCache: Map<string, Promise<Texture>>;
12742
+ /**
12743
+ * We need to track the loaded state separately from the promise since we can't check
12744
+ * the resolution state of a promise after it settles. This allows components to check
12745
+ * if an image has finished loading without having to await the promise.
12746
+ */
12747
+ imageLoadingCache: Map<string, {
12748
+ loaded: boolean;
12749
+ promise: Promise<Texture>;
12750
+ }>;
12573
12751
  update(cameraRotationRadians: number): void;
12574
12752
  }
12575
12753
  }
@@ -13054,19 +13232,42 @@ declare module '@mappedin/react-sdk/geojson/src/components/styles/model-style' {
13054
13232
  * If both the `material` and `color` properties are provided, `material` property updates will take higher precedence than `color` property updates.
13055
13233
  */
13056
13234
  color: string;
13235
+ /**
13236
+ * The rotation of the model in degrees [x, y, z].
13237
+ * - x: Rotation around x-axis (pitch)
13238
+ * - y: Rotation around y-axis (yaw)
13239
+ * - z: Rotation around z-axis (roll), where z points up
13240
+ *
13241
+ * Rotations are applied in order: x, then y, then z.
13242
+ * 0 degrees means the model faces north (or the parent group's forward direction).
13243
+ * Positive rotations follow the right-hand rule.
13244
+ */
13245
+ rotation: [number, number, number];
13246
+ /**
13247
+ * The scale of the model in [x, y, z]
13248
+ */
13249
+ scale: [number, number, number];
13057
13250
  };
13058
13251
  export class ModelStyleComponnet implements Partial<ModelStyle> {
13059
13252
  dirty: boolean;
13060
13253
  visible: boolean;
13061
13254
  opacity: number;
13062
13255
  verticalOffset: number;
13256
+ interactive: boolean;
13063
13257
  color?: string;
13064
13258
  material?: ModelStyle['material'];
13259
+ rotation?: [number, number, number];
13260
+ scale?: [number, number, number];
13065
13261
  constructor(init?: Partial<ModelStyle>);
13066
13262
  }
13067
13263
  export {};
13068
13264
  }
13069
13265
 
13266
+ declare module '@mappedin/react-sdk/geojson/src/components/styles/constants' {
13267
+ export const DEFAULT_SCALE: number[];
13268
+ export const DEFAULT_ROTATION: number[];
13269
+ }
13270
+
13070
13271
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
13071
13272
  import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
13072
13273
  import type { RendererCore, BBox } from '@mappedin/core-sdk';
@@ -13106,15 +13307,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
13106
13307
 
13107
13308
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
13108
13309
  import { Coordinate, type MapObject, type Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
13109
- import type { Position, EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
13110
- import type { WithPolygonImage } from '@packages/internal/mvf-utils';
13310
+ import type { EntranceCollection, LineString, Polygon, Point, SpaceProperties, ObstructionProperties, StyleCollection, PolygonStyle, LineStringStyle, Feature, ObstructionCollection, PointStyle } from '@mappedin/mvf';
13311
+ import type { PolygonFeatureProperties } from '@packages/internal/mvf-utils';
13111
13312
  import type { BBox, FeatureCollection, MultiLineString } from 'geojson';
13112
- import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
13313
+ import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle, Position } from '@mappedin/core-sdk';
13113
13314
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/react-sdk/mappedin-js/src';
13114
13315
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
13115
- import type { Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
13316
+ import type { Image, Path, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
13116
13317
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
13117
13318
  import type { Tween } from '@tweenjs/tween.js';
13319
+ import type { PathSegment } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
13118
13320
  export function convertCoordinateToPosition(coord: Coordinate): Position;
13119
13321
  export function convertPositionToCoordinate(coord: Position): Coordinate;
13120
13322
  export const cutEntrancesFromLineStrings: (lineStrings: ObstructionCollection["features"], entranceCollection: EntranceCollection["features"]) => {
@@ -13139,9 +13341,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
13139
13341
  export type WithId<T> = T & {
13140
13342
  id?: string;
13141
13343
  };
13142
- export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Polygon | LineString | Point, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
13344
+ export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, PolygonFeatureProperties<SpaceProperties | ObstructionProperties>>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Polygon | LineString | Point, PolygonFeatureProperties<SpaceProperties | ObstructionProperties>>[]>;
13143
13345
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
13144
- export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
13346
+ export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Path | PathSegment | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
13145
13347
  export function tweenToPromise(tween: Tween): Promise<void>;
13146
13348
  export function getBoundingBox(geometry: GeoJSON.Feature<GeoJSON.Polygon | GeoJSON.MultiPolygon, any>): BBox;
13147
13349
  export function expandBbox(bbox: BBox, bboxToExpand: BBox): number[];
@@ -13275,7 +13477,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-proc
13275
13477
  }
13276
13478
 
13277
13479
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13278
- import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
13480
+ import { PerspectiveCamera, Vector3, Object3D, Mesh, Intersection, Object3DEventMap } from 'three';
13279
13481
  import { Raycaster } from 'three';
13280
13482
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
13281
13483
  import { QuadTree } from '@packages/internal/quad-tree';
@@ -13284,7 +13486,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13284
13486
  import type { EntityMesh } from '@mappedin/react-sdk/geojson/src/types';
13285
13487
  import { TapsController } from '@mappedin/react-sdk/geojson/src/systems/interactions/tap-controller';
13286
13488
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
13287
- import 'style.scss';
13489
+ import '../../styles/interactions.scss';
13288
13490
  import type { EntityBatchedMesh } from '@mappedin/react-sdk/geojson/src/components/mesh';
13289
13491
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
13290
13492
  type InteractionPayload = {
@@ -13339,7 +13541,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13339
13541
  entities: (Object3D | EntityMesh<Geometry3D> | EntityBatchedMesh)[];
13340
13542
  groups: GroupContainerObject3D[];
13341
13543
  };
13342
- getMouseRayIntersects(): import("three").Intersection<Object3D<import("three").Object3DEventMap>>[];
13544
+ getMouseRayIntersects(): Intersection<Object3D<Object3DEventMap>>[];
13343
13545
  destroy(): void;
13344
13546
  debugPanel: HTMLDivElement | undefined;
13345
13547
  enableDebug(): void;
@@ -13357,7 +13559,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
13357
13559
  getCursor(): CursorTypes;
13358
13560
  resize: () => void;
13359
13561
  }
13360
- export function findModelParent(object: Object3D): Object3D<import("three").Object3DEventMap> | undefined;
13562
+ export function findModelParent(object: Object3D): Object3D<Object3DEventMap> | undefined;
13361
13563
  export {};
13362
13564
  }
13363
13565
 
@@ -13368,6 +13570,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13368
13570
  import * as CAMERA_CONSTANTS from '@mappedin/react-sdk/geojson/src/systems/camera/constants';
13369
13571
  import type { AnimateCameraTarget, CameraControlsOptions, CameraFocusOnOptions } from '@mappedin/react-sdk/geojson/src/systems/camera/types';
13370
13572
  import type { InsetPadding, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
13573
+ export enum CameraControlsState {
13574
+ NONE = -1,
13575
+ ROTATE = 0,
13576
+ DOLLY = 1,
13577
+ PAN = 2,
13578
+ WHEEL_ZOOM = 3,
13579
+ TOUCH_TILT = 4,
13580
+ TOUCH_DOLLY = 5,
13581
+ TOUCH_PAN = 6,
13582
+ MULTI = 7,
13583
+ PEDESTAL = 8,
13584
+ TOUCH_PEDESTAL = 9
13585
+ }
13371
13586
  type CameraEventName = (typeof CAMERA_CONSTANTS.EVENTS)[number];
13372
13587
  type SpecificCameraEvents = {
13373
13588
  'multi-start': {
@@ -13407,6 +13622,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13407
13622
  dirty: boolean;
13408
13623
  zoomDirty: boolean;
13409
13624
  rotationDirty: boolean;
13625
+ panDirty: boolean;
13410
13626
  /**
13411
13627
  * Factor that controls how fast zooming in and out happens in response to mouse wheel events
13412
13628
  *
@@ -13555,6 +13771,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/camera/system' {
13555
13771
  * @default 1.2
13556
13772
  */
13557
13773
  maxTilt: number;
13774
+ state: CameraControlsState;
13558
13775
  constructor(camera: PerspectiveCamera, scene: Scene, renderer: WebGLRenderer, rendererState: RendererState, options: CameraControlsOptions);
13559
13776
  /**
13560
13777
  * The amount the camera is shifted up/down
@@ -21864,6 +22081,7 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator' {
21864
22081
 
21865
22082
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator' {
21866
22083
  import type { Position, Feature, MultiPolygon, Polygon } from 'geojson';
22084
+ import { NavigationGraph } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigation-graph';
21867
22085
  import type { NodeCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
21868
22086
  import type { ObstructionCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/obstruction';
21869
22087
  import type { SpaceCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/space';
@@ -21898,6 +22116,7 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
21898
22116
  [index: string]: any;
21899
22117
  };
21900
22118
  export class Navigator {
22119
+ graph: NavigationGraph;
21901
22120
  /**
21902
22121
  * Constructs a Navigator instance to manage pathfinding with optional obstructions and grouping features.
21903
22122
  *
@@ -21919,14 +22138,16 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
21919
22138
  * @param {string[]} originIds - IDs of origin nodes.
21920
22139
  * @param {string[]} destinationNodeIds - IDs of destination nodes.
21921
22140
  * @param {string[]} [excludedNodeIds] - IDs of nodes to exclude from pathfinding.
22141
+ * @param {string[]} [disabledConnectionNodeIds] - IDs of connection nodes that are disabled (ie. act as regular nodes).
21922
22142
  * @param {SimplifyDirectionsOptions} [simplify] - Options to simplify the pathfinding result.
21923
22143
  * @returns {DirectionsCollection} A collection of directional features representing the path.
21924
22144
  */
21925
- getDirections({ zones: directionsZones, originIds, destinationNodeIds, excludedNodeIds, simplify, multiplicativeDistanceWeightScaling, }: {
22145
+ getDirections({ zones: directionsZones, originIds, destinationNodeIds, excludedNodeIds, disabledConnectionNodeIds, simplify, multiplicativeDistanceWeightScaling, }: {
21926
22146
  originIds: string[];
21927
22147
  destinationNodeIds: string[];
21928
22148
  zones?: DirectionsZone[];
21929
22149
  excludedNodeIds?: string[];
22150
+ disabledConnectionNodeIds?: string[];
21930
22151
  simplify?: SimplifyDirectionsOptions;
21931
22152
  multiplicativeDistanceWeightScaling?: boolean;
21932
22153
  }): DirectionsCollection;
@@ -25643,6 +25864,10 @@ declare module '@mappedin/react-sdk/packages/outdoor-context-v4/ui/handler/tap_z
25643
25864
  }
25644
25865
  }
25645
25866
 
25867
+ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigation-graph' {
25868
+ export * from '@mappedin/react-sdk/packages/geojson-navigator/src/navigation-graph/navigation-graph';
25869
+ }
25870
+
25646
25871
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src/types/space' {
25647
25872
  import type { LineString, Polygon, Point, Feature } from 'geojson';
25648
25873
  import type { SpaceProperties, SpaceCollection } from '@mappedin/mvf';
@@ -28319,6 +28544,56 @@ declare module '@mappedin/react-sdk/packages/outdoor-context-v4/source/terrain_s
28319
28544
  }
28320
28545
  }
28321
28546
 
28547
+ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigation-graph/navigation-graph' {
28548
+ import { Edge } from '@mappedin/react-sdk/packages/geojson-navigator/src/edge';
28549
+ import type { NodeCollection, NodeFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
28550
+ import type { DirectionsZone } from '@mappedin/react-sdk/packages/geojson-navigator/src/navigator';
28551
+ /**
28552
+ * Represents a navigation graph for pathfinding operations, holding nodes and edges with utilities to perform routing.
28553
+ * @see {@link https://mappedin.atlassian.net/wiki/spaces/SDK/pages/234487854/A+Search+Algorithm+in+Navigation+Graph}
28554
+ * @hidden
28555
+ */
28556
+ export class NavigationGraph {
28557
+ #private;
28558
+ readonly edges: {
28559
+ [propName: string]: Edge[];
28560
+ };
28561
+ readonly nodesById: {
28562
+ [propName: string]: NodeFeature;
28563
+ };
28564
+ readonly nodesByGroup: Map<string, NodeFeature[]>;
28565
+ constructor({ nodes, groupBy, multiplicativeDistanceWeightScaling, }: {
28566
+ nodes: NodeCollection;
28567
+ groupBy: string;
28568
+ multiplicativeDistanceWeightScaling?: boolean;
28569
+ });
28570
+ /**
28571
+ * Calculates the shortest Euclidean distance from the origin node to any of the destination nodes.
28572
+ *
28573
+ * @param {NodeFeature} origin - The origin node.
28574
+ * @param {NodeFeature[]} destinations - An array of destination nodes.
28575
+ * @returns {number} The shortest Euclidean distance.
28576
+ */
28577
+ getShortestEuclideanDistance(origin: NodeFeature, destinations: NodeFeature[]): number;
28578
+ /**
28579
+ * Performs A* pathfinding from specified origins to destinations, considering optional constraints like accessibility.
28580
+ *
28581
+ * @param {string[]} originIds - Array of origin node IDs.
28582
+ * @param {string[]} destinationNodeIds - Array of destination node IDs.
28583
+ * @param {Set<string>} [excludedNodeIds] - Optional set of node IDs to exclude from pathfinding.
28584
+ * @param {Set<string>} [disabledConnectionNodeIds] - Optional set of connection node IDs that are disabled (ie. act as regular nodes).
28585
+ * @returns {Edge[]} An array of edges representing the shortest path, or an empty array if no path is found.
28586
+ */
28587
+ aStar({ originIds, destinationNodeIds, excludedNodeIds, disabledConnectionNodeIds, zones, }: {
28588
+ originIds: string[];
28589
+ destinationNodeIds: string[];
28590
+ zones: DirectionsZone[];
28591
+ excludedNodeIds?: Set<string>;
28592
+ disabledConnectionNodeIds?: Set<string>;
28593
+ }): Edge[];
28594
+ }
28595
+ }
28596
+
28322
28597
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src/edge/edge' {
28323
28598
  import type { NodeFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
28324
28599
  /**