@mappedin/react-sdk 6.0.1-beta.23 → 6.0.1-beta.25

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.
@@ -18,7 +18,9 @@
18
18
  // ../react/@packages/internal/shave-text/shave-text
19
19
  // ../react/@tweenjs/tween.js
20
20
  // ../react/@turf/turf
21
+ // ../react/troika-three-text
21
22
  // ../react/@packages/internal/quad-tree
23
+ // ../react/@mappedin/core-sdk/src/components/text3d
22
24
  // ../react/minisearch
23
25
  // ../react/three/addons/loaders/GLTFLoader.js
24
26
  // ../react/@mapbox/point-geometry
@@ -62,8 +64,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
62
64
  import type { Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
63
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';
64
66
  import { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
65
- import type { InsetPadding, InsetPaddingOption, Shading, PaintStyle, LineStyle, WatermarkOptions } from '@mappedin/react-sdk/geojson/src';
66
- import { enableTestMode } from '@mappedin/react-sdk/geojson/src';
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, MapViewState } from '@mappedin/react-sdk/geojson/src';
69
+ import { enableTestMode, preloadFont } from '@mappedin/react-sdk/geojson/src';
67
70
  export type { PubSub } from '@packages/internal/common/pubsub';
68
71
  import type { TMappedinMapLibreOverlayEvents } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
69
72
  import { MappedinMapLibreOverlay } from '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay';
@@ -89,92 +92,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
89
92
  */
90
93
  quality?: 'low' | 'medium' | 'high' | 'ultra';
91
94
  };
92
- /**
93
- * Represents all the available ambient occlusion options.
94
- */
95
- type TAmbientOcclusionOptions = {
96
- /**
97
- * Enable ambient occlusion. Only works in single buffer mode and when device supports WebGL2.
98
- *
99
- * @default false
100
- */
101
- enabled?: boolean;
102
- /**
103
- * Change the quality of ambient occlusion in the scene. Greater quality means less noise, but worse performance.
104
- *
105
- * The quality modes are as follows:
106
-
107
- *Temporal stability refers to how consistent the AO is from frame to frame - it's important for a smooth experience.*
108
- | Quality Mode | AO Samples | Denoise Samples | Denoise Radius | Best For
109
- |:---:|:---:|:---:|:---:|:---:|
110
- | Performance (Less temporal stability, a bit noisy) | 8 | 4 | 12 | Mobile, Low-end iGPUs and laptops |
111
- | Low (Temporally stable, but low-frequency noise) | 16 | 4 | 12 | High-End Mobile, iGPUs, laptops |
112
- | Medium (Temporally stable and barely any noise) | 16 | 8 | 12 | High-End Mobile, laptops, desktops |
113
- | High (Significantly sharper AO, barely any noise) | 64 | 8 | 6 | Desktops, dedicated GPUs |
114
- | Ultra (Sharp AO, No visible noise whatsoever) | 64 | 16 | 6 | Desktops, dedicated GPUs|
115
-
116
- Generally, half-res mode at "Ultra" quality is slightly slower than full-res mode at "Performance" quality, but produces significantly better results.
117
-
118
- If you wish to make entirely custom quality setup, you can manually change `aoSamples`, `denoiseSamples` and `denoiseRadius`.
119
- *
120
- * @default 'medium'
121
- */
122
- quality?: 'performance' | 'low' | 'medium' | 'high' | 'ultra';
123
- samples?: number;
124
- /**
125
- * Controls the radius/size of the ambient occlusion in world units. Should be set to how far you want the occlusion to extend from a given object.
126
- * Set it too low, and AO becomes an edge detector. Too high, and the AO becomes "soft" and might not highlight the details you want.
127
- */
128
- radius?: number;
129
- denoiseSamples?: number;
130
- denoiseRadius?: number;
131
- /**
132
- * A purely artistic control for the intensity of the AO has the effect of darkening areas with more ambient occlusion.
133
- * Useful to make the effect more pronounced. An intensity of 2 generally produces soft ambient occlusion that isn't too noticeable,
134
- * whereas one of 5 produces heavily prominent ambient occlusion.
135
- */
136
- intensity?: number;
137
- denoiseIterations?: number;
138
- renderMode?: number;
139
- /**
140
- * The color of the ambient occlusion. By default, it is black, but it can be changed to any color to offer a crude approximation of global illumination.
141
- * Recommended in scenes where bounced light has a uniform "color", for instance a scene that is predominantly lit by a blue sky.
142
- * The color is expected to be in the sRGB color space, and is automatically converted to linear space for you. Keep the color pretty dark for sensible results.
143
- *
144
- * Color formats:\
145
- * RGB String: `rgb(255, 0, 0)` or `rgb(100%, 0%, 0%)`\
146
- * HSL String: `hsl(0, 100%, 50%)`\
147
- * X11 color name - all 140 color names are supported. Note the lack of CamelCase in the name: `skyblue`
148
- */
149
- color?: string;
150
- /**
151
- * Should be automatically set to the correct value. If you are getting washed out colors, try setting `gammaCorrection` to false, and if you are getting dark colors, try setting it to true.
152
- */
153
- gammaCorrection?: boolean;
154
- logarithmicDepthBuffer?: boolean;
155
- /**
156
- * When screenSpaceRadius is set to true, the `aoRadius` parameter represents the size of the ambient occlusion effect in pixels (recommended to be set between 16 and 64).
157
- * The `distanceFalloff` parameter becomes a ratio, representing the percent of the screen space radius at which the AO should fade away - it should be set to 0.2 in most cases,
158
- * but it accepts any value between 0 and 1 (technically even higher than 1, though that is not recommended).
159
- */
160
- screenSpaceRadius?: boolean;
161
- /**
162
- * Use half-resolution" mode for performance-critical applications. This will cause the AO to be calculated at half the resolution of the screen, and then upscaled to the full resolution.
163
- * This is a great way to get a performance boost (generally 2x-4x) at the cost of some quality (the AO will lack fine details and temporal stability will be slightly reduced).
164
- * @default 'full'
165
- */
166
- resolution?: 'half' | 'full';
167
- /**
168
- * The half `aoResolution` mode uses depth-aware upscaling by default.
169
- * The AO effect looks bad without depth-aware upscaling, so it is not recommended to disable it.
170
- * However, if performance is truly that critical, you can do so by setting `depthAwareUpsampling` to false.
171
- */
172
- depthAwareUpsampling?: boolean;
173
- /**
174
- * It is recommended to not change this value, otherwise rendering issues may occur.
175
- */
176
- autoRenderBeauty?: boolean;
177
- };
178
95
  /**
179
96
  * @interface
180
97
  * Options for the watermark.
@@ -396,19 +313,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src' {
396
313
  * @experimental
397
314
  */
398
315
  export const createMapLibreOverlay: (mapData: MapData, showMapOptions?: TShow3DMapOptions) => MappedinMapLibreOverlay;
399
- export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
400
316
  export const show3dMap: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
401
- export { parseMVF, unzipMVF, enableTestMode };
402
- export type { MapView, MapData, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAmbientOcclusionOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, };
317
+ /**
318
+ * @internal
319
+ * @deprecated Use {@link show3dMap} instead.
320
+ */
321
+ export const show3dMapGeojson: (el: HTMLElement, mapData: MapData, options?: TShow3DMapOptions) => Promise<MapView>;
322
+ export { parseMVF, unzipMVF, enableTestMode, preloadFont };
323
+ export type { MapView, MapData, MapViewState, MappedinMapLibreOverlay, TMappedinMapLibreOverlayEvents, TBlueDotEvents, TBlueDotAction, TBlueDotState, GeolocationPositionExtended, TStackedMapsEvents, TExpandOptions, TStackedMapsState, TFollowMode, TFollowCameraOptions, TEvents, TEventPayload, TFloorChangeReason, TClickPayload, THoverPayload, TShow3DMapOptions, TGetMapDataOptions, TGetMapDataWithAccessTokenOptions, TGetMapDataWithCredentialsOptions, TGetMapDataSharedOptions, TAntialiasingOptions, TMVF, PaintStyle, LineStyle, Shading, TMVFStyleCollection, TMVFStyle, TMVFLineStringStyle, TMVFPolygonStyle, TMVFPointStyle, Environment, InsetPadding, InsetPaddingOption, OperationHours, SiblingGroup, LocationState, Text3DState, AddText3DOptions, UpdatableText3DState, InitializeText3DState, };
403
324
  export type * from 'geojson';
404
325
  export type { TUpdateState, TUpdateStates, TLabelState, TGeometryState, TModelState, TShapeState, TDoorsState, TImageState, TWallsState, TCameraAnimationOptions, TAnimationOptions, TFocusOnOptions, TEasingFunction, TCameraTarget, TNavigationTarget, TDirectionZone, TCameraFocusOnTarget, TFocusable, TAddMarkerOptions, TAddPathOptions, TLabelAppearance, TAddLabelOptions, TAddModelOptions, TAddModel, TAddImageOptions, TGetDirectionsOptions, TCollisionRankingTier, TMarkerAnchor, TDirectionInstruction, TDirectionInstructionAction, TGetState, TMarkerState, TBlueDotOptions, TBlueDotPositionUpdate, } from '@mappedin/react-sdk/mappedin-js/src/types';
405
326
  export { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
406
- export type { Label, Marker, Path, Shape, CameraTransform, Model, Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
327
+ export type { Label, Marker, Path, Shape, CameraTransform, Model, Image, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
328
+ export type { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
407
329
  export type { Navigation, TNavigationOptions } from '@mappedin/react-sdk/mappedin-js/src/navigation';
408
330
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
409
- export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image as ImageData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
331
+ export { Coordinate, Annotation, Connection, Door, Floor, FloorStack, MapObject, PointOfInterest, Space, Image as ImageData, Hyperlink, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, Facade, Node, type Places, } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
410
332
  export type { Camera, Models, Labels, BlueDot, Markers, Paths, Exporter, Directions, Style, Shapes, Outdoor, Images, StackedMaps, } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
411
333
  export type { SearchResult, SearchResultItem, SearchResultEnterpriseCategory, SearchResultEnterpriseLocations, SearchResultPlaces, SearchOptions, Search, Suggestion, MatchInfo, } from '@mappedin/react-sdk/mappedin-js/src/search';
334
+ export type { TFindNearestOptions, TFindNearestResult, TQueriables, Query } from '@mappedin/react-sdk/mappedin-js/src/query';
412
335
  export type { Analytics, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics';
413
336
  }
414
337
 
@@ -725,13 +648,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
725
648
  import { Analytics } from '@mappedin/react-sdk/mappedin-js/src/analytics';
726
649
  import { PubSub } from '@packages/internal/common';
727
650
  import type { TSearchOptions } from '@packages/internal/mvf-utils';
728
- import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
651
+ import type { Connection, Door, Floor, MapDataInternal, Space, MapObject, PointOfInterest, Annotation, Coordinate, FloorStack, Node, Facade, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
729
652
  import type EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
730
653
  import type EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
731
654
  import type EnterpriseVenue from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/venue';
732
655
  import { Search } from '@mappedin/react-sdk/mappedin-js/src/search';
733
656
  import type { TNavigationTarget, TGetDirectionsOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
734
657
  import type { Directions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
658
+ import { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
735
659
  /**
736
660
  * A WeakMap to associate {@link MapData} instances with their internal representation.
737
661
  * We need a way to get the internal data object from the API
@@ -769,6 +693,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
769
693
  * console.log(suggestions);
770
694
  */
771
695
  Search: Search;
696
+ Query: Query;
772
697
  /**
773
698
  * Constructs a new instance of {@link MapData}.
774
699
  *
@@ -847,6 +772,12 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
847
772
  * const floorStacks = mapData.getByType('floor-stack');
848
773
  */
849
774
  getByType(type: 'floor-stack'): FloorStack[];
775
+ /**
776
+ * @returns The facades ({@link Facade}) within the map.
777
+ * @example
778
+ * const facades = mapData.getByType('facade');
779
+ */
780
+ getByType(type: 'facade'): Facade[];
850
781
  /**
851
782
  * @returns The connections ({@link Connection}) on the map.
852
783
  * @example
@@ -910,7 +841,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
910
841
  * @example
911
842
  * const space = mapData.getById('space', 'space-id');
912
843
  */
913
- getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'area' ? Area | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
844
+ getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'facade' ? Facade | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'area' ? Area | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : undefined;
914
845
  getById(type: string, id: string): object | undefined;
915
846
  /**
916
847
  * Changes the language of the map data.
@@ -982,7 +913,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data' {
982
913
  declare module '@mappedin/react-sdk/mappedin-js/src/events' {
983
914
  import type { ClickPayload } from '@mappedin/core-sdk';
984
915
  import type { TStackedMapsEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
985
- import type { Coordinate, Floor, MapObject, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
916
+ import type { Coordinate, Facade, Floor, MapObject, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
986
917
  import type { Label, Marker, Model, Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
987
918
  import type { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
988
919
  import type { TBlueDotEvents } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot';
@@ -1026,6 +957,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/events' {
1026
957
  * Details about the pointer event which triggered the interaction.
1027
958
  */
1028
959
  pointerEvent: ClickPayload['pointerEvent'];
960
+ /**
961
+ * The interactive facades which the user interaction passed through.
962
+ */
963
+ facades: Facade[];
1029
964
  };
1030
965
  export type THoverPayload = Omit<TClickPayload, 'pointerEvent'>;
1031
966
  /**
@@ -1140,6 +1075,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1140
1075
  import Hyperlink from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/hyperlink';
1141
1076
  import Image from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image';
1142
1077
  import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
1078
+ import Facade from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade';
1143
1079
  import type { MapDataRecords } from '@mappedin/react-sdk/mappedin-js/src/utils/data-creation';
1144
1080
  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 } from '@mappedin/mvf';
1145
1081
  import { AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics';
@@ -1153,6 +1089,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1153
1089
  import type { TGetDirectionsOptions, TNavigationTarget } from '@mappedin/react-sdk/mappedin-js/src/types';
1154
1090
  import { type Directions, DirectionsInternal } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/directions';
1155
1091
  import { type THydrateMapDataBundle } from '@mappedin/react-sdk/mappedin-js/src';
1092
+ import { Query } from '@mappedin/react-sdk/mappedin-js/src/query';
1156
1093
  /**
1157
1094
  * Internal class representing detailed map data.
1158
1095
  *
@@ -1166,6 +1103,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1166
1103
  }> {
1167
1104
  #private;
1168
1105
  Analytics: AnalyticsInternal;
1106
+ Query: Query;
1169
1107
  /**
1170
1108
  * Represents the parsed Mappedin Venue Format (MVF) data.
1171
1109
  */
@@ -1194,6 +1132,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1194
1132
  spacesById: MapDataRecords['spacesById'];
1195
1133
  floorsById: MapDataRecords['floorsById'];
1196
1134
  floorStacksById: MapDataRecords['floorStacksById'];
1135
+ facadesById: MapDataRecords['facadesById'];
1136
+ facadesBySpaceId: MapDataRecords['facadesBySpaceId'];
1197
1137
  connectionsById: MapDataRecords['connectionsById'];
1198
1138
  objectsById: MapDataRecords['objectsById'];
1199
1139
  doorsById: MapDataRecords['doorsById'];
@@ -1215,6 +1155,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1215
1155
  mvfFloorsById: MapDataRecords['mvfFloorsById'];
1216
1156
  mvfFloorStacksById: MapDataRecords['mvfFloorStacksById'];
1217
1157
  mvfAreasById: MapDataRecords['mvfAreasById'];
1158
+ mvfNodesByFloorId: MapDataRecords['mvfNodesByFloorId'];
1159
+ mvfSpacesByFloorId: MapDataRecords['mvfSpacesByFloorId'];
1160
+ mvfPoisByFloorId: MapDataRecords['mvfPoisByFloorId'];
1161
+ mvfEntrancesByFloorId: MapDataRecords['mvfEntrancesByFloorId'];
1162
+ mvfAnnotationsByFloorId: MapDataRecords['mvfAnnotationsByFloorId'];
1218
1163
  localePacksUrls: LocalePackUrls;
1219
1164
  currentLanguage?: Language;
1220
1165
  /**
@@ -1268,6 +1213,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1268
1213
  */
1269
1214
  get floors(): Floor[];
1270
1215
  get floorStacks(): FloorStack[];
1216
+ get facades(): Facade[];
1271
1217
  /**
1272
1218
  * Retrieves all doors in the map.
1273
1219
  *
@@ -1299,6 +1245,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1299
1245
  get categories(): EnterpriseCategory[];
1300
1246
  get mvfFloors(): MVFFloor[];
1301
1247
  get mvfFloorStacks(): MVFFloorStack[];
1248
+ getByType(type: string): object[];
1249
+ getByType(type: 'space'): Space[];
1250
+ getByType(type: 'area'): Area[];
1251
+ getByType(type: 'door'): Door[];
1252
+ getByType(type: 'floor'): Floor[];
1253
+ getByType(type: 'floor-stack'): FloorStack[];
1254
+ getByType(type: 'connection'): Connection[];
1255
+ getByType(type: 'object'): MapObject[];
1256
+ getByType(type: 'point-of-interest'): PointOfInterest[];
1257
+ getByType(type: 'annotation'): Annotation[];
1258
+ getByType(type: 'node'): Node[];
1259
+ getByType(type: 'enterprise-location'): EnterpriseLocation[];
1260
+ getByType(type: 'enterprise-category'): EnterpriseCategory[];
1261
+ getByType(type: 'enterprise-venue'): EnterpriseVenue | undefined;
1262
+ getByType(type: 'facade'): Facade[];
1302
1263
  /**
1303
1264
  * Retrieves an object by its type and ID.
1304
1265
  *
@@ -1306,18 +1267,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1306
1267
  * @param id The ID of the object.
1307
1268
  * @returns {Space | Door | Floor | Connection | MapObject | undefined} The requested object, or undefined if not found.
1308
1269
  */
1309
- getById(type: 'node', id: string): Node | undefined;
1310
- getById(type: 'space', id: string): Space | undefined;
1311
- getById(type: 'door', id: string): Door | undefined;
1312
- getById(type: 'floor', id: string): Floor | undefined;
1313
- getById(type: 'floor-stack', id: string): FloorStack | undefined;
1314
- getById(type: 'connection', id: string): Connection | undefined;
1315
- getById(type: 'object', id: string): MapObject | undefined;
1316
- getById(type: 'point-of-interest', id: string): PointOfInterest | undefined;
1317
- getById(type: 'annotation', id: string): Annotation | undefined;
1318
- getById(type: 'area', id: string): Area | undefined;
1319
- getById(type: 'enterprise-location', id: string): EnterpriseLocation | undefined;
1320
- getById(type: 'enterprise-category', id: string): EnterpriseCategory | undefined;
1270
+ getById<T extends string>(type: T, id: string): T extends 'node' ? Node | undefined : T extends 'space' ? Space | undefined : T extends 'door' ? Door | undefined : T extends 'floor' ? Floor | undefined : T extends 'floor-stack' ? FloorStack | undefined : T extends 'connection' ? Connection | undefined : T extends 'object' ? MapObject | undefined : T extends 'point-of-interest' ? PointOfInterest | undefined : T extends 'annotation' ? Annotation | undefined : T extends 'enterprise-location' ? EnterpriseLocation | undefined : T extends 'enterprise-category' ? EnterpriseCategory | undefined : T extends 'area' ? Area | undefined : T extends 'facade' ? Facade | undefined : undefined;
1271
+ getById(type: string, id: string): object | undefined;
1321
1272
  getMapDataById(id: string): Places | undefined;
1322
1273
  /**
1323
1274
  * Retrieves a feature by its type and ID from the Mappedin Venue Format (MVF) data.
@@ -1365,26 +1316,28 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects' {
1365
1316
  */
1366
1317
  destroy(): void;
1367
1318
  }
1368
- export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1319
+ export { Node, Area, MapDataInternal, Space, Floor, FloorStack, Facade, Connection, MapObject, Door, Coordinate, PointOfInterest, Annotation, Hyperlink, Image, EnterpriseLocation, EnterpriseCategory, EnterpriseVenue, };
1369
1320
  export type { TSpaceType } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space';
1370
1321
  export type { Places };
1371
1322
  }
1372
1323
 
1373
1324
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1374
- import type { RendererCore, WatermarkUpdateOptions } from '@mappedin/core-sdk';
1325
+ import type { RendererCore, WatermarkUpdateOptions } from '@mappedin/react-sdk/geojson/src';
1375
1326
  import { PubSub } from '@packages/internal/common';
1376
1327
  import { type TEvents, type TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
1377
1328
  import type { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
1378
1329
  import type { Camera, Labels, Markers, Models, Paths, Exporter, Directions, Style, Outdoor, Images } from '@mappedin/react-sdk/mappedin-js/src/api-geojson';
1379
1330
  import type { BlueDot } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot';
1380
1331
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
1381
- import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1382
- import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates } from '@mappedin/react-sdk/mappedin-js/src/types';
1383
- import type { Label, Marker, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1332
+ import type { Annotation, Coordinate, Door, Floor, MapObject, PointOfInterest, Space, Node, EnterpriseLocation, FloorStack, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1333
+ import type { DOORS, WALLS, TGetDirectionsOptions, TGetState, TNavigationTarget, TUpdateState, TUpdateStates, GlobalState, UpdateGlobalState } from '@mappedin/react-sdk/mappedin-js/src/types';
1334
+ import type { Label, Marker, Image, Shape, Text3D as Text3DView } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1384
1335
  import type { TEventPayload } from '@mappedin/react-sdk/mappedin-js/src/events';
1385
1336
  import type { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
1386
1337
  import type { StackedMaps, TCollapseOptions, TExpandOptions } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
1387
1338
  import type { InspectorOption } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspector';
1339
+ import { Debug } from '@mappedin/react-sdk/mappedin-js/src/debug';
1340
+ import type { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
1388
1341
  /**
1389
1342
  * The MapView class is the main class for rendering and interacting with the map.
1390
1343
  *
@@ -1402,6 +1355,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1402
1355
  * Controls for the map's labels.
1403
1356
  */
1404
1357
  Labels: Labels;
1358
+ /**
1359
+ * @experimental
1360
+ * Controls for the map's 3D texts.
1361
+ */
1362
+ Text3D: Text3D;
1405
1363
  /**
1406
1364
  * Controls for the map's markers.
1407
1365
  */
@@ -1445,9 +1403,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1445
1403
  */
1446
1404
  Outdoor: Outdoor;
1447
1405
  /**
1448
- * Controls for the stacked maps.
1406
+ * Controls for Stacked Maps.
1449
1407
  */
1450
1408
  get StackedMaps(): StackedMaps;
1409
+ /**
1410
+ * @internal
1411
+ * @experimental
1412
+ */
1413
+ get DynamicFocus(): import("./api-geojson/dynamic-focus").DynamicFocus;
1451
1414
  /**
1452
1415
  * @internal
1453
1416
  */
@@ -1474,8 +1437,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1474
1437
  * // Update the color of a space to red.
1475
1438
  * map.updateState(space, { color: 'red' });
1476
1439
  */
1477
- updateState<T extends Space | MapObject | Label | Marker | Shape | Door | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1440
+ updateState<T extends Space | Text3DView | MapObject | Label | Marker | Shape | Door | Facade | WALLS | DOORS>(target: T, state: TUpdateState<T>): any;
1478
1441
  updateState<T extends string & NonNullable<unknown>>(target: T, state: TUpdateStates): any;
1442
+ /**
1443
+ * Update global state of the MapView
1444
+ */
1445
+ updateGlobalState(update: UpdateGlobalState): void;
1446
+ /**
1447
+ * Get global state of the MapView
1448
+ */
1449
+ getGlobalState(): GlobalState;
1479
1450
  update: () => void;
1480
1451
  /**
1481
1452
  * Retrieves the map data for the current map.
@@ -1534,7 +1505,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1534
1505
  * @hidden
1535
1506
  */
1536
1507
  updateWatermark(options: WatermarkUpdateOptions): void;
1537
- getState<T extends Space | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T> | undefined;
1508
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
1538
1509
  setHoverColor(c: string): void;
1539
1510
  getHoverColor(): string | undefined;
1540
1511
  /**
@@ -1653,6 +1624,88 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view' {
1653
1624
  * Enable debug interface. Learn more about the debug interface in the [Debug Mode Guide](https://developer.mappedin.com/web-sdk/getting-started#debug-mode).
1654
1625
  */
1655
1626
  enableDebug(opitons?: InspectorOption): Promise<void>;
1627
+ /**
1628
+ * @experimental
1629
+ * @internal
1630
+ */
1631
+ Debug: Debug;
1632
+ }
1633
+ }
1634
+
1635
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d' {
1636
+ import { Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1637
+ import type { TAddText3DOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
1638
+ import type { CurrentMapGetter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/types';
1639
+ import { Text3D as Text3DView } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1640
+ export class Text3D {
1641
+ #private;
1642
+ /**
1643
+ * @internal
1644
+ */
1645
+ constructor({ currentMapGetter }: {
1646
+ currentMapGetter: CurrentMapGetter;
1647
+ });
1648
+ /**
1649
+ * Creates polygon labels for all spaces.
1650
+ *
1651
+ * @param options - Configuration options for text label creation
1652
+ * @returns An array of Text3DView instances representing the created labels. If the space is already labeled, the designated Text3D instance will be returned.
1653
+ *
1654
+ * @example
1655
+ * ```typescript
1656
+ * const labels = mapView.Text3D.labelAll({
1657
+ * // optional configuration options
1658
+ * });
1659
+ * ```
1660
+ */
1661
+ labelAll(options?: TAddText3DOptions): Text3DView[];
1662
+ /**
1663
+ * Creates a 3D text label for a given space.
1664
+ *
1665
+ * @param target - The target space or enterprise space to label.
1666
+ * @param content - The content of the label. If not provided, target.name will be used
1667
+ * @param options={} - Configuration options for the text label creation.
1668
+ * @returns An array of Text3DView instances representing the created labels.
1669
+ *
1670
+ * @throws {Error} If the target is not a Space.
1671
+ *
1672
+ * @example
1673
+ * ```typescript
1674
+ * const labels = mapView.Text3D.label(space, "Label Content", { fontSize: 12 });
1675
+ * ```
1676
+ */
1677
+ label(target: Space, content?: string, options?: TAddText3DOptions): Text3DView | undefined;
1678
+ /**
1679
+ * Removes one or more Text3D labels from the map
1680
+ *
1681
+ * @param target - Can be either:
1682
+ * - A single Text3DView instance
1683
+ * - An array of Text3DView instances
1684
+ * - A string ID of the Text3DView to remove
1685
+ *
1686
+ * @example
1687
+ * ```typescript
1688
+ * // Remove single text label
1689
+ * mapView.Text3D.remove(text);
1690
+ *
1691
+ * // Remove multiple text labels
1692
+ * mapView.Text3D.remove([text, text]);
1693
+ *
1694
+ * // Remove by ID
1695
+ * mapView.Text3D.remove("text3d-123");
1696
+ * ```
1697
+ */
1698
+ remove(text3dView: Text3DView): void;
1699
+ remove(id: string): void;
1700
+ /**
1701
+ * Removes all Text3D labels from the current map
1702
+ *
1703
+ * @example
1704
+ * ```typescript
1705
+ * mapView.Text3D.removeAll();
1706
+ * ```
1707
+ */
1708
+ removeAll(): void;
1656
1709
  }
1657
1710
  }
1658
1711
 
@@ -1672,20 +1725,26 @@ declare module '@mappedin/react-sdk/geojson/src' {
1672
1725
  import { mountSceneGraphVisualizer } from '@mappedin/react-sdk/geojson/examples/src/utils/scene-graph-visualizer';
1673
1726
  import '../../packages/outdoor-context-v4/css/maplibre-gl.css';
1674
1727
  import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier';
1728
+ export type { Text3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
1729
+ export { TEXT3D_STYLE_UPDATE_PROPS } from '@mappedin/react-sdk/geojson/src/entities/utils';
1675
1730
  export { Navigator } from '@mappedin/react-sdk/packages/geojson-navigator';
1676
1731
  export { interpolate, debounce } from '@mappedin/react-sdk/geojson/src/utils';
1677
1732
  export { MAPPEDIN_LAYER_ID } from '@mappedin/react-sdk/geojson/src/utils/constants';
1733
+ export type { DebugState, Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
1678
1734
  /**
1679
1735
  * Enable test mode for the renderer. This will disable the WebGLRenderer and WebGL1Renderer and replace them with a dummy object
1680
1736
  * so you can run tests against it
1681
1737
  */
1682
- export { enableTestMode } from '@mappedin/react-sdk/geojson/src/services/renderer';
1738
+ export { enableTestMode } from '@mappedin/react-sdk/geojson/src/services/test-mode';
1683
1739
  export { mountSceneGraphVisualizer };
1684
1740
  export type { EntityId, EntityState, LineStyle, PaintStyle, ModelStyle, ModelProperties, Shading } from '@mappedin/react-sdk/geojson/src/types';
1685
1741
  export type * from 'geojson';
1686
1742
  export type { WatermarkUpdateOptions, WatermarkOptions, WatermarkPosition } from '@mappedin/react-sdk/geojson/src/systems/watermark/system';
1743
+ export { preloadFont } from '@mappedin/react-sdk/geojson/src/systems/text3d/system';
1687
1744
  export type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
1688
1745
  export type { AttributionControlOptions, AttributionPosition } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1746
+ export type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
1747
+ export type { AddText3DOptions, InitializeText3DState, UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
1689
1748
  export { ATTRIBUTION_POSITIONS } from '@mappedin/react-sdk/geojson/src/systems/html-controls/system';
1690
1749
  export { ANIMATION_TWEENS } from '@mappedin/react-sdk/geojson/src/camera';
1691
1750
  export type { AddPathOptions, AddMarkerOptions, AddLabelOptions, AnimateToOptions, FocusOnOptions, MapViewState, MarkerState, PathState, GroupContainerState, GeometryGroupState, ShapeState, CustomGeometryBuilder, LabelState, GeometryState, ModelState, EasingCurve, Camera, InsetPadding, InsetPaddingOption, Position, ClickPayload, HoverPayload, CameraPayload, MapEvent, MapEventPayload, CollisionRankingTier, LabelAppearance, RendererCore, };
@@ -1766,10 +1825,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/maplibre-overlay' {
1766
1825
 
1767
1826
  declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1768
1827
  import type { Feature, MultiPolygon, Polygon } from 'geojson';
1769
- import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1770
- import type { Label, Marker, Model, Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1828
+ import type { Coordinate, Floor, Door, Space, MapObject, PointOfInterest, Connection, Annotation, EnterpriseLocation, Node, Area, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
1829
+ import type { Label, Marker, Model, Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
1771
1830
  import type { Language, ParsedMVFLocalePack } from '@mappedin/mvf';
1772
- import type { InsetPaddingOption, Position } from '@mappedin/core-sdk';
1831
+ import type { InsetPaddingOption, Position, UpdatableText3DState, Text3DState, AddText3DOptions } from '@mappedin/react-sdk/geojson/src';
1773
1832
  export type DeepRequired<T> = Required<{
1774
1833
  [K in keyof T]: T[K] extends Required<T[K]> ? T[K] : DeepRequired<T[K]>;
1775
1834
  }>;
@@ -1907,6 +1966,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
1907
1966
  * Visibility of the walls.
1908
1967
  */
1909
1968
  visible: boolean;
1969
+ /**
1970
+ * Height of the walls.
1971
+ */
1972
+ height?: number;
1973
+ /**
1974
+ * Opacity of the walls.
1975
+ */
1976
+ opacity?: number;
1910
1977
  };
1911
1978
  export type TDoorsState = {
1912
1979
  type: 'doors';
@@ -2051,9 +2118,9 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2051
2118
  /**
2052
2119
  * The type for updating the state of map elements (colors, texts, etc.).
2053
2120
  */
2054
- export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS ? Partial<TDoorsState> : T extends Door ? Partial<TDoorsState> : T extends Marker ? Partial<TMarkerState> : T extends Label ? Partial<TLabelState> : T extends Space | MapObject ? Partial<TGeometryState> : T extends Shape ? Partial<Omit<TShapeState, 'height' | 'type'>> : T extends Door ? Partial<TGeometryState> : T extends string ? Record<string, any> : never;
2121
+ export type TUpdateState<T> = T extends WALLS ? Partial<TWallsState> : T extends DOORS | Door ? Partial<TDoorsState> : 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;
2055
2122
  export type TUpdateStates = Partial<Omit<TGeometryState, 'interactive' | 'hoverColor' | 'type'>> | Partial<TMarkerState> | Partial<TLabelState> | Partial<TGeometryState>;
2056
- 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 Space | MapObject ? TGeometryState | undefined : T extends string ? TLabelState | TGeometryState | TMarkerState | TModelState | undefined : never;
2123
+ 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;
2057
2124
  /**
2058
2125
  * Options for {@link Camera} animations on the map.
2059
2126
  */
@@ -2134,7 +2201,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2134
2201
  /**
2135
2202
  * A map element that can be focused on by the camera.
2136
2203
  */
2137
- export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Area | Node | EnterpriseLocation
2204
+ export type TFocusable = Floor | Space | Coordinate | MapObject | Connection | PointOfInterest | Door | Annotation | Area | Node | EnterpriseLocation | Facade
2138
2205
  /**
2139
2206
  * @experimental
2140
2207
  */
@@ -2169,7 +2236,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2169
2236
  /**
2170
2237
  * Defines the target for navigation operations.
2171
2238
  */
2172
- export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node | Area;
2239
+ export type TNavigationTarget = Space | MapObject | Coordinate | Door | PointOfInterest | Connection | EnterpriseLocation | Node | Area | Facade;
2173
2240
  /**
2174
2241
  * Defines the special zone for navigation operations.
2175
2242
  */
@@ -2526,6 +2593,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2526
2593
  */
2527
2594
  url: string;
2528
2595
  };
2596
+ /**
2597
+ * @interface
2598
+ */
2599
+ export type TAddText3DOptions = AddText3DOptions;
2529
2600
  /**
2530
2601
  * Options for controlling the behavior of an {@link Image}.
2531
2602
  */
@@ -2739,6 +2810,21 @@ declare module '@mappedin/react-sdk/mappedin-js/src/types' {
2739
2810
  language: Language;
2740
2811
  localePack: ParsedMVFLocalePack;
2741
2812
  };
2813
+ export type GlobalState = {
2814
+ text3d: {
2815
+ /**
2816
+ * hover color of the text3d
2817
+ */
2818
+ hoverColor: string;
2819
+ };
2820
+ geometry: {
2821
+ /**
2822
+ * hover color of the geometries
2823
+ */
2824
+ hoverColor: string;
2825
+ };
2826
+ };
2827
+ export type UpdateGlobalState = DeepPartial<GlobalState>;
2742
2828
  }
2743
2829
 
2744
2830
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/blue-dot/blue-dot' {
@@ -3028,6 +3114,16 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects' {
3028
3114
  export { Path } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/path';
3029
3115
  export { CameraTransform } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/camera-transform';
3030
3116
  export { Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape';
3117
+ export { Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d';
3118
+ }
3119
+
3120
+ declare module '@mappedin/react-sdk/mappedin-js/src/debug' {
3121
+ import type { RendererCore } from '@mappedin/core-sdk';
3122
+ export class Debug {
3123
+ state: RendererCore['Debug']['state'];
3124
+ constructor(core: RendererCore);
3125
+ update: RendererCore['Debug']['update'];
3126
+ }
3031
3127
  }
3032
3128
 
3033
3129
  declare module '@mappedin/react-sdk/mappedin-js/src/navigation' {
@@ -3284,6 +3380,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search' {
3284
3380
  export { Search } from '@mappedin/react-sdk/mappedin-js/src/search/external';
3285
3381
  }
3286
3382
 
3383
+ declare module '@mappedin/react-sdk/mappedin-js/src/query' {
3384
+ export { Query } from '@mappedin/react-sdk/mappedin-js/src/query/external';
3385
+ export type { TFindNearestOptions, TFindNearestResult, TQueriables } from '@mappedin/react-sdk/mappedin-js/src/query/external';
3386
+ }
3387
+
3287
3388
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics' {
3288
3389
  export { Analytics, AnalyticsInternal } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
3289
3390
  export type { AnalyticsUpdateOptions, AnalyticState, TAnalyticsUpdateState } from '@mappedin/react-sdk/mappedin-js/src/analytics/customer';
@@ -4167,6 +4268,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/space' {
4167
4268
  * @internal
4168
4269
  */
4169
4270
  readonly __type = "space";
4271
+ getMvfData(): import("@mappedin/mvf").Feature<import("@mappedin/mvf").Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, import("@mappedin/mvf").SpaceProperties>;
4170
4272
  /**
4171
4273
  * Checks if the provided instance is of type Space.
4172
4274
  *
@@ -4960,7 +5062,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/image' {
4960
5062
 
4961
5063
  declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack' {
4962
5064
  import type { FloorStack as MVFFloorStack } from '@mappedin/mvf';
4963
- import type { MapDataInternal, Floor } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5065
+ import type { MapDataInternal, Floor, Facade } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
4964
5066
  import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
4965
5067
  /**
4966
5068
  * A class representing floor stack data within the map.
@@ -4989,6 +5091,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
4989
5091
  */
4990
5092
  constructor(data: MapDataInternal, options: {
4991
5093
  mvfData: MVFFloorStack;
5094
+ facadeId?: string;
4992
5095
  });
4993
5096
  /**
4994
5097
  * Gets the type of FloorStack.
@@ -5009,7 +5112,15 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5009
5112
  *
5010
5113
  * @returns {Floor[]} An array of Floor objects in this FloorStack.
5011
5114
  */
5012
- get floors(): Floor[];
5115
+ get floors(): [Floor, ...Floor[]];
5116
+ /**
5117
+ * Get the default floor for this floor stack
5118
+ */
5119
+ get defaultFloor(): Floor;
5120
+ /**
5121
+ * Gets the facade ({@link Facade}) representing this floor stack, if it exists.
5122
+ */
5123
+ get facade(): Facade | undefined;
5013
5124
  /**
5014
5125
  * Serializes the FloorStack data to JSON.
5015
5126
  *
@@ -5031,20 +5142,58 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack
5031
5142
  export default FloorStack;
5032
5143
  }
5033
5144
 
5145
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-data-objects/facade' {
5146
+ import type { Space, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5147
+ import { Coordinate } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5148
+ import BaseMapData from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/base-object';
5149
+ import type { Facade as MVFFacade } from '@mappedin/mvf';
5150
+ /**
5151
+ * A Facade is a collection of spaces that make up the exterior representation of a Floor Stack ({@link FloorStack}).
5152
+ */
5153
+ class Facade extends BaseMapData {
5154
+ #private;
5155
+ static readonly __type = "facade";
5156
+ readonly __type = "facade";
5157
+ /**
5158
+ * Checks if the provided instance is of type Floor.
5159
+ *
5160
+ * @param instance The instance to check.
5161
+ * @returns {boolean} True if the instance is a Floor, false otherwise.
5162
+ */
5163
+ static is(instance: object): instance is Facade;
5164
+ /** @internal */
5165
+ constructor(data: MapDataInternal, options: {
5166
+ mvfData: MVFFacade;
5167
+ floorStackId: string;
5168
+ });
5169
+ /**
5170
+ * Gets the floor stack that this Facade represents.
5171
+ */
5172
+ get floorStack(): import("./floor-stack").default;
5173
+ /**
5174
+ * Gets the collection of spaces that make up this Facade.
5175
+ */
5176
+ get spaces(): Space[];
5177
+ /**
5178
+ * Gets the center {@link Coordinate} of the Facade.
5179
+ */
5180
+ get center(): Coordinate;
5181
+ }
5182
+ export default Facade;
5183
+ }
5184
+
5034
5185
  declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5035
- import type { Feature, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, Point, SpaceCollection, SpaceProperties, Connection as MVFConnection, EntranceCollection, AnnotationCollection, ParsedMVF, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseVenue as MVFEnterpriseVenue, AreaCollection, AreaId, EnterpriseLocationInstance } from '@mappedin/mvf';
5186
+ import type { AnnotationCollection, EntranceCollection, Feature, FeatureCollection, Connection as MVFConnection, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseVenue as MVFEnterpriseVenue, FloorProperties as MVFFloor, FloorStack as MVFFloorStack, NodeCollection, ObstructionCollection, ParsedMVF, Point, SpaceCollection, SpaceProperties, AreaCollection, AreaId, EnterpriseLocationInstance } from '@mappedin/mvf';
5036
5187
  import type { MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5037
- import { Annotation, Connection, Door, Floor, MapObject, PointOfInterest, Space, Area } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5038
- import Node from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/node';
5039
- import EnterpriseLocation from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/location';
5040
- import EnterpriseCategory from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/category';
5041
- import FloorStack from '@mappedin/react-sdk/mappedin-js/src/map-data-objects/floor-stack';
5188
+ import { Annotation, Area, Connection, Door, EnterpriseCategory, EnterpriseLocation, Facade, Floor, FloorStack, MapObject, Node, PointOfInterest, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
5042
5189
  export type MapDataRecords = {
5043
5190
  spacesById: Record<string, Space>;
5044
5191
  nodesById: Record<string, Node>;
5045
5192
  objectsById: Record<string, MapObject>;
5046
5193
  floorsById: Record<string, Floor>;
5047
5194
  floorStacksById: Record<string, FloorStack>;
5195
+ facadesById: Record<string, Facade>;
5196
+ facadesBySpaceId: Record<string, Facade>;
5048
5197
  connectionsById: Record<string, Connection>;
5049
5198
  doorsById: Record<string, Door>;
5050
5199
  doorsByNodeId: Record<string, Door>;
@@ -5071,10 +5220,25 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5071
5220
  mvfCategoriesById: Record<string, MVFEnterpriseCategory>;
5072
5221
  mvfLocationsById: Record<string, MVFEnterpriseLocation>;
5073
5222
  mvfLocationsBySpaceId: Record<string, MVFEnterpriseLocation[]>;
5223
+ mvfNodesByFloorId: {
5224
+ [floorId: string]: NodeCollection['features'][number][];
5225
+ };
5226
+ mvfSpacesByFloorId: {
5227
+ [floorId: string]: SpaceCollection['features'][number][];
5228
+ };
5229
+ mvfPoisByFloorId: {
5230
+ [floorId: string]: FeatureCollection<Point, SpaceProperties>['features'][number][];
5231
+ };
5232
+ mvfEntrancesByFloorId: {
5233
+ [floorId: string]: EntranceCollection['features'][number][];
5234
+ };
5235
+ mvfAnnotationsByFloorId: {
5236
+ [floorId: string]: AnnotationCollection['features'][number][];
5237
+ };
5074
5238
  mvfAreasById: Record<AreaId, AreaCollection['features'][number]>;
5075
5239
  };
5076
5240
  export const processMVFFloors: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorsById" | "mvfFloorsById">;
5077
- export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "mvfFloorStacksById">;
5241
+ export const processMVFFloorStacks: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "floorStacksById" | "mvfFloorStacksById" | "facadesById" | "facadesBySpaceId">;
5078
5242
  export const processMVFAreas: (mvf: ParsedMVF, data: MapDataInternal) => Pick<MapDataRecords, "areasById" | "mvfAreasById">;
5079
5243
  /**
5080
5244
  * @internal
@@ -5098,6 +5262,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5098
5262
  objectsById: Record<string, MapObject>;
5099
5263
  floorsById: Record<string, Floor>;
5100
5264
  floorStacksById: Record<string, FloorStack>;
5265
+ facadesById: Record<string, Facade>;
5266
+ facadesBySpaceId: Record<string, Facade>;
5101
5267
  connectionsById: Record<string, Connection>;
5102
5268
  doorsById: Record<string, Door>;
5103
5269
  doorsByNodeId: Record<string, Door>;
@@ -5121,7 +5287,26 @@ declare module '@mappedin/react-sdk/mappedin-js/src/utils/data-creation' {
5121
5287
  geometry: Point;
5122
5288
  properties: import("@mappedin/mvf").AnnotationProperties;
5123
5289
  }>;
5290
+ mvfNodesByFloorId: {
5291
+ [floorId: string]: Feature<Point, import("@mappedin/mvf").NodeProperties>[];
5292
+ };
5293
+ mvfSpacesByFloorId: {
5294
+ [floorId: string]: Feature<Point | import("@mappedin/mvf").LineString | import("@mappedin/mvf").Polygon, SpaceProperties>[];
5295
+ };
5296
+ mvfPoisByFloorId: {
5297
+ [floorId: string]: Feature<Point, SpaceProperties>[];
5298
+ };
5124
5299
  mvfAreasById: Record<string, import("@mappedin/mvf").Area>;
5300
+ mvfEntrancesByFloorId: {
5301
+ [floorId: string]: Feature<import("@mappedin/mvf").LineString, import("@mappedin/mvf").EntranceProperties>[];
5302
+ };
5303
+ mvfAnnotationsByFloorId: {
5304
+ [floorId: string]: {
5305
+ type: import("@mappedin/mvf").FeatureType;
5306
+ geometry: Point;
5307
+ properties: import("@mappedin/mvf").AnnotationProperties;
5308
+ }[];
5309
+ };
5125
5310
  };
5126
5311
  }
5127
5312
 
@@ -5250,6 +5435,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/inspector/inspec
5250
5435
  export type InspectorOption = Partial<InspectorState>;
5251
5436
  }
5252
5437
 
5438
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/types' {
5439
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
5440
+ export type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
5441
+ }
5442
+
5253
5443
  declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5254
5444
  import './marker.scss';
5255
5445
  import { Vector2 } from 'three';
@@ -5257,7 +5447,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5257
5447
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
5258
5448
  import type { CollisionRankingTier } from '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier';
5259
5449
  import { z } from 'zod';
5260
- import type { PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5450
+ import { type PackedBBoxes } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
5261
5451
  /**
5262
5452
  * State reprsenting a Marker
5263
5453
  */
@@ -5313,14 +5503,14 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5313
5503
  }, "strip", z.ZodTypeAny, {
5314
5504
  interactive?: boolean | "pointer-events-auto" | undefined;
5315
5505
  id?: string | undefined;
5316
- anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5317
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5506
+ anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5507
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5318
5508
  dynamicResize?: boolean | undefined;
5319
5509
  }, {
5320
5510
  interactive?: boolean | "pointer-events-auto" | undefined;
5321
5511
  id?: string | undefined;
5322
- anchor?: "center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "bottom" | "top" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5323
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5512
+ anchor?: "center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right" | ("center" | "left" | "right" | "top" | "bottom" | "top-left" | "top-right" | "bottom-left" | "bottom-right")[] | undefined;
5513
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5324
5514
  dynamicResize?: boolean | undefined;
5325
5515
  }>;
5326
5516
  export function validateMarker(coordinate: Position, contentHTML: string, options: AddMarkerOptions): void;
@@ -5411,7 +5601,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/marker' {
5411
5601
 
5412
5602
  declare module '@mappedin/react-sdk/geojson/src/components/path' {
5413
5603
  import { Vector3 } from 'three';
5414
- import type { Mesh, BufferGeometry } from 'three';
5604
+ import type { BufferGeometry, LineSegments } from 'three';
5415
5605
  import type { EntityId, Position } from '@mappedin/react-sdk/geojson/src/types';
5416
5606
  import type { PathMaterial, PatMeshContainer } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
5417
5607
  import type { FeatureCollection, Point } from 'geojson';
@@ -5590,7 +5780,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/path' {
5590
5780
  mesh: PatMeshContainer;
5591
5781
  material?: PathMaterial;
5592
5782
  geometry?: BufferGeometry;
5593
- outline?: Mesh;
5783
+ outline?: LineSegments;
5594
5784
  feature: FeatureCollection<Point, PathProperties>;
5595
5785
  options: AddPathOptions;
5596
5786
  nearRadius: number;
@@ -5706,6 +5896,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5706
5896
  foregroundColor?: string | undefined;
5707
5897
  backgroundColor?: string | undefined;
5708
5898
  } | undefined;
5899
+ margin?: number | undefined;
5709
5900
  marker?: {
5710
5901
  size?: number | undefined;
5711
5902
  foregroundColor?: {
@@ -5717,7 +5908,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5717
5908
  inactive?: string | undefined;
5718
5909
  } | undefined;
5719
5910
  } | undefined;
5720
- margin?: number | undefined;
5721
5911
  }, {
5722
5912
  text?: {
5723
5913
  size?: number | undefined;
@@ -5727,6 +5917,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5727
5917
  foregroundColor?: string | undefined;
5728
5918
  backgroundColor?: string | undefined;
5729
5919
  } | undefined;
5920
+ margin?: number | undefined;
5730
5921
  marker?: {
5731
5922
  size?: number | undefined;
5732
5923
  foregroundColor?: {
@@ -5738,11 +5929,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5738
5929
  inactive?: string | undefined;
5739
5930
  } | undefined;
5740
5931
  } | undefined;
5741
- margin?: number | undefined;
5742
5932
  }>>;
5743
5933
  }, "strip", z.ZodTypeAny, {
5744
5934
  interactive?: boolean | undefined;
5745
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5935
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5746
5936
  appearance?: {
5747
5937
  text?: {
5748
5938
  size?: number | undefined;
@@ -5752,6 +5942,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5752
5942
  foregroundColor?: string | undefined;
5753
5943
  backgroundColor?: string | undefined;
5754
5944
  } | undefined;
5945
+ margin?: number | undefined;
5755
5946
  marker?: {
5756
5947
  size?: number | undefined;
5757
5948
  foregroundColor?: {
@@ -5763,11 +5954,10 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5763
5954
  inactive?: string | undefined;
5764
5955
  } | undefined;
5765
5956
  } | undefined;
5766
- margin?: number | undefined;
5767
5957
  } | undefined;
5768
5958
  }, {
5769
5959
  interactive?: boolean | undefined;
5770
- rank?: number | "high" | "low" | "medium" | "always-visible" | undefined;
5960
+ rank?: number | "low" | "medium" | "high" | "always-visible" | undefined;
5771
5961
  appearance?: {
5772
5962
  text?: {
5773
5963
  size?: number | undefined;
@@ -5777,6 +5967,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5777
5967
  foregroundColor?: string | undefined;
5778
5968
  backgroundColor?: string | undefined;
5779
5969
  } | undefined;
5970
+ margin?: number | undefined;
5780
5971
  marker?: {
5781
5972
  size?: number | undefined;
5782
5973
  foregroundColor?: {
@@ -5788,7 +5979,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/label' {
5788
5979
  inactive?: string | undefined;
5789
5980
  } | undefined;
5790
5981
  } | undefined;
5791
- margin?: number | undefined;
5792
5982
  } | undefined;
5793
5983
  }>;
5794
5984
  export function validateLabel(coordinate: Position, text: string, options: AddLabelOptions): void;
@@ -6135,9 +6325,12 @@ declare module '@mappedin/react-sdk/geojson/src/entities/group-container' {
6135
6325
  import type { StackComponent } from '@mappedin/react-sdk/geojson/src/components/stack';
6136
6326
  import type { MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
6137
6327
  import type { LabelState } from '@mappedin/react-sdk/geojson/src/components/label';
6328
+ import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
6138
6329
  import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
6139
6330
  import type { PathState } from '@mappedin/react-sdk/geojson/src/components/path';
6140
6331
  import type { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
6332
+ import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
6333
+ import type { EntityTypes } from '@mappedin/react-sdk/geojson/src/renderer';
6141
6334
  export enum GroupContainerComponents {
6142
6335
  Stack = 0,
6143
6336
  Interaction = 1
@@ -6164,7 +6357,8 @@ declare module '@mappedin/react-sdk/geojson/src/entities/group-container' {
6164
6357
  };
6165
6358
  export class GroupContainerObject3D extends Object3D {
6166
6359
  childrenIds: Set<string | number>;
6167
- readonly type = "group-container";
6360
+ children: (GroupContainerObject3D | GeometryGroupObject3D | BatchedText | Geometry2D['object3d'] | NonNullable<Geometry3D['object3d']>)[];
6361
+ readonly type: "group-container";
6168
6362
  userData: {
6169
6363
  entityId: string | number;
6170
6364
  entities2D: Set<string | number>;
@@ -6172,8 +6366,8 @@ declare module '@mappedin/react-sdk/geojson/src/entities/group-container' {
6172
6366
  };
6173
6367
  components: [StackComponent?, InteractionComponent?];
6174
6368
  constructor(id: string);
6175
- addEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3D): void;
6176
- removeEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3D): void;
6369
+ addEntity(entityGroupOrContainer: GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | Geometry3DTypes): void;
6370
+ removeEntity(entityGroupOrContainer: EntityTypes): void;
6177
6371
  setVisible(visible: boolean): void;
6178
6372
  setAltitude(altitude: number): void;
6179
6373
  get altitude(): number;
@@ -6253,7 +6447,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry-group' {
6253
6447
  export type ChildUpdatable<T> = T extends LineStyle ? Partial<Pick<LineStyle, 'color' | 'opacity' | 'visible'>> : Partial<Pick<PaintStyle, 'color' | 'opacity' | 'visible'>>;
6254
6448
  export class GeometryGroupObject3D extends Object3D {
6255
6449
  visible: boolean;
6256
- readonly type = "geometry-group";
6450
+ readonly type: "geometry-group";
6257
6451
  components: [GeometryGroupStyleComponent];
6258
6452
  userData: {
6259
6453
  entityId: string | number;
@@ -6284,7 +6478,8 @@ declare module '@mappedin/react-sdk/geojson/src/types/geometry' {
6284
6478
  }
6285
6479
 
6286
6480
  declare module '@mappedin/react-sdk/geojson/src/types' {
6287
- import { Mesh, Object3D, InstancedMesh, Camera } from 'three';
6481
+ import type { Camera } from 'three';
6482
+ import { Mesh, Object3D, InstancedMesh } from 'three';
6288
6483
  import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
6289
6484
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
6290
6485
  import type { GeometryState } from '@mappedin/react-sdk/geojson/src/components/mesh';
@@ -6296,13 +6491,14 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6296
6491
  import type { MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
6297
6492
  import type { ImageState } from '@mappedin/react-sdk/geojson/src/components/image';
6298
6493
  import type { ShapeState } from '@mappedin/react-sdk/geojson/src/components/custom';
6299
- import type { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities';
6300
6494
  import type { Group as TweenGroup } from '@tweenjs/tween.js';
6301
- import { MaterialSide } from '@mappedin/react-sdk/geojson/src/components/style';
6495
+ import type { MaterialSide } from '@mappedin/react-sdk/geojson/src/components/styles';
6496
+ import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
6497
+ import type { Text3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
6302
6498
  /**
6303
6499
  * The state of an entity, which can be a geometry, geometry group, group container, path, model, label, or marker.
6304
6500
  */
6305
- export type EntityState = GeometryState | GeometryGroupState | GroupContainerState | PathState | ModelState | LabelState | MarkerState | ImageState | ShapeState;
6501
+ export type EntityState = GeometryState | GeometryGroupState | GroupContainerState | PathState | ModelState | LabelState | MarkerState | ImageState | Text3DState | ShapeState;
6306
6502
  /**
6307
6503
  * A wrapper object that contains the ID and type of an entity. This is returned when adding entities to the scene, and can be used
6308
6504
  * to `getState` and `setState` of the entity.
@@ -6554,10 +6750,10 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6554
6750
  */
6555
6751
  'user-interaction-end': undefined;
6556
6752
  /**
6557
- * Fired when a geometry is in focus, meaning it occupies the area closest to the center of the screen. This will only be true for one geometry at a time.
6753
+ * Fired when a geometry is in focus, meaning it occupies the area closest to the center of the screen. Is an array of geometry IDs sorted by most likely to be in focus.
6558
6754
  * Geometries can be added to the focus listener via `mapView.setState(.., { focusable: true })`.
6559
6755
  */
6560
- 'geometry-in-focus': string | number | null;
6756
+ 'geometry-in-focus': string[];
6561
6757
  /**
6562
6758
  * Fired before the scene is rendered. Use this to modify the scene before it is rendered.
6563
6759
  */
@@ -6569,14 +6765,18 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6569
6765
  export type MapEventPayload<EventName extends keyof MapEvent> = MapEvent[EventName] extends {
6570
6766
  data: null;
6571
6767
  } ? MapEvent[EventName]['data'] : MapEvent[EventName];
6572
- export type Geometry3DTypes = Geometry3D | GeometryGroupObject3D | GroupContainerObject3D;
6768
+ /**
6769
+ * All entities in 3D
6770
+ */
6771
+ export type All3DTypes = Geometry3DTypes | GeometryGroupObject3D | GroupContainerObject3D;
6573
6772
  export type RendererState = {
6574
- geometry3DMap: Map<string | number, Geometry3DTypes>;
6773
+ geometry3DMap: Map<string | number, All3DTypes>;
6575
6774
  geometry2DMap: Map<string | number, Geometry2D>;
6576
6775
  geometry2DIdsInScene: Set<Geometry2D['id']>;
6577
- geometry3DIdsInScene: Set<Geometry3DTypes['id']>;
6776
+ geometry3DIdsInScene: Set<All3DTypes['id']>;
6578
6777
  entityScene: GroupContainerObject3D;
6579
6778
  hoverColor: string;
6779
+ text3dHoverColor: string;
6580
6780
  center?: Position;
6581
6781
  insetsPadding: InsetPadding;
6582
6782
  shouldMeasureCanvas: boolean;
@@ -6590,10 +6790,14 @@ declare module '@mappedin/react-sdk/geojson/src/types' {
6590
6790
  tweenGroup: TweenGroup;
6591
6791
  cameraObject: Camera;
6592
6792
  };
6793
+ /**
6794
+ * All of the entities in the scene
6795
+ */
6796
+ export type EntityTypes = Geometry3DTypes | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D;
6593
6797
  }
6594
6798
 
6595
6799
  declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6596
- import type { Texture, BufferGeometry, LineSegments, Mesh, Object3D } from 'three';
6800
+ import type { Texture, BufferGeometry, LineSegments, Mesh } from 'three';
6597
6801
  import { BatchedMesh, Color, Vector3 } from 'three';
6598
6802
  import type { BatchedStandardMaterial } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/batched-material';
6599
6803
  import type { Position } from '@mappedin/react-sdk/geojson/src/types';
@@ -6601,7 +6805,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6601
6805
  import type { BBox } from '@turf/turf';
6602
6806
  import { type ImageProperties } from '@mappedin/react-sdk/geojson/src/components/image';
6603
6807
  import { type BaseTextAreaProperties } from '@mappedin/mvf';
6808
+ import type { Text } from 'troika-three-text';
6604
6809
  export class EntityBatchedMesh extends BatchedMesh {
6810
+ type: "entityBatchedMesh";
6605
6811
  userData: {
6606
6812
  entities: {
6607
6813
  [key: number]: string | number;
@@ -6610,6 +6816,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6610
6816
  };
6611
6817
  }
6612
6818
  export type MeshComponentProperties = {
6819
+ id: string;
6613
6820
  image?: ImageProperties & {
6614
6821
  position: GeoJsonPosition;
6615
6822
  path: string;
@@ -6689,6 +6896,14 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6689
6896
  * The top texture URL of the geometry
6690
6897
  */
6691
6898
  topTexture?: string;
6899
+ /**
6900
+ * Whether the geometry is currently in hover state or not
6901
+ */
6902
+ hovered: boolean;
6903
+ /**
6904
+ * The render order of the geometry
6905
+ */
6906
+ renderOrder?: number;
6692
6907
  };
6693
6908
  export class MeshComponent {
6694
6909
  #private;
@@ -6696,7 +6911,11 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6696
6911
  focusMesh?: Mesh;
6697
6912
  outline?: LineSegments;
6698
6913
  imageMesh?: Mesh;
6699
- textAreaMesh?: Object3D;
6914
+ /**
6915
+ * holds a pointer to space label text if the polygon has label active.
6916
+ */
6917
+ textMesh?: Text;
6918
+ textEntityId?: string;
6700
6919
  readonly type = "geometry";
6701
6920
  dirty: boolean;
6702
6921
  detached: boolean;
@@ -6708,7 +6927,8 @@ declare module '@mappedin/react-sdk/geojson/src/components/mesh' {
6708
6927
  constructor(feature: Feature<Polygon | LineString | MultiPolygon | MultiLineString, MeshComponentProperties>);
6709
6928
  get visible(): boolean;
6710
6929
  set visible(visible: boolean);
6711
- setOpacity(opacity: number): void;
6930
+ get renderOrder(): number;
6931
+ set renderOrder(value: number);
6712
6932
  focusable: boolean;
6713
6933
  color: Color;
6714
6934
  topColor: Color;
@@ -7037,9 +7257,9 @@ declare module '@mappedin/react-sdk/geojson/src/components/model' {
7037
7257
  outline?: LineSegments;
7038
7258
  geometry?: Object3D;
7039
7259
  material?: BatchedStandardMaterial;
7040
- feature: Feature<Point>;
7260
+ feature: Feature<Point, ModelProperties>;
7041
7261
  instanceIndex?: number;
7042
- constructor(feature: Feature<Point>);
7262
+ constructor(feature: Feature<Point, ModelProperties>);
7043
7263
  visible: boolean;
7044
7264
  setOpacity(): void;
7045
7265
  color: Color;
@@ -7058,14 +7278,14 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7058
7278
  import type { GroupContainerState } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7059
7279
  import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7060
7280
  import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
7281
+ import { Renderer } from '@mappedin/react-sdk/geojson/src/services/renderer';
7061
7282
  import { CollisionSystem } from '@mappedin/react-sdk/geojson/src/systems/collisions/system';
7062
7283
  import { InteractionSystem } from '@mappedin/react-sdk/geojson/src/systems/interactions';
7063
- import { ZoomInterpolationSystem } from '@mappedin/react-sdk/geojson/src/systems/zoom-interpolation/zoom-interpolation';
7064
7284
  import type { AddMarkerOptions, MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
7065
7285
  import type { GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter';
7066
7286
  import { ExporterSystem } from '@mappedin/react-sdk/geojson/src/systems/exporter';
7067
7287
  import type { AddLabelOptions, LabelState } from '@mappedin/react-sdk/geojson/src/components/label';
7068
- import type { LineStyle, PaintStyle, RendererCoreOptions, Position, ModelProperties, ModelStyle, EntityState, EntityId, MapEvent, MapEventPayload, RendererState } from '@mappedin/react-sdk/geojson/src/types';
7288
+ import type { LineStyle, PaintStyle, RendererCoreOptions, Position, ModelProperties, ModelStyle, EntityState, EntityId, MapEvent, MapEventPayload, RendererState, EntityTypes } from '@mappedin/react-sdk/geojson/src/types';
7069
7289
  import { MeshCreationAndOptimizationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/system';
7070
7290
  import { DOMVisibilitySystem } from '@mappedin/react-sdk/geojson/src/systems/dom-visiblity/system';
7071
7291
  import { TwoDProjectionSystem } from '@mappedin/react-sdk/geojson/src/systems/2d-projection/system';
@@ -7095,11 +7315,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7095
7315
  import { OutdoorLayers } from '@mappedin/react-sdk/geojson/src/systems/outdoor-layers/system';
7096
7316
  import { PathSystem } from '@mappedin/react-sdk/geojson/src/systems/path';
7097
7317
  import { type ImageProperties, type ImageState, type ImageStyle } from '@mappedin/react-sdk/geojson/src/components/image';
7318
+ import type { AddText3DOptions, Text3DState, UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
7098
7319
  import { MeshDetachmentSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system';
7099
7320
  import { MeshModificationSystem } from '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system';
7100
7321
  import { PreRenderSystem } from '@mappedin/react-sdk/geojson/src/systems/pre-render/system';
7101
- import { PolygonLabelSystem } from '@mappedin/react-sdk/geojson/src/systems/polygon-label/system';
7322
+ import { Text3DSystem } from '@mappedin/react-sdk/geojson/src/systems/text3d/system';
7102
7323
  import { Group as TweenGroup } from '@tweenjs/tween.js';
7324
+ import { Debug } from '@mappedin/react-sdk/geojson/src/utils/debug';
7103
7325
  export type * from '@mappedin/react-sdk/geojson/src/types';
7104
7326
  export const raycaster: Raycaster;
7105
7327
  /**
@@ -7119,7 +7341,6 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7119
7341
  panBoundsSystem: PanBoundsSystem;
7120
7342
  collisionSystem: CollisionSystem;
7121
7343
  interactionSystem: InteractionSystem;
7122
- zoomInterpolationSystem: ZoomInterpolationSystem;
7123
7344
  meshOptimizationSystem: MeshCreationAndOptimizationSystem;
7124
7345
  domVisiblitySystem: DOMVisibilitySystem;
7125
7346
  domMutationSystem: DOMResizeSystem;
@@ -7142,16 +7363,18 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7142
7363
  meshDetachmentSystem: MeshDetachmentSystem;
7143
7364
  meshModificationSystem: MeshModificationSystem;
7144
7365
  preRenderSystem: PreRenderSystem;
7145
- polygonLabelSystem: PolygonLabelSystem;
7366
+ text3DSystem: Text3DSystem;
7146
7367
  };
7147
7368
  export type MapViewState = {
7148
7369
  readonly type: 'map-view';
7149
- hoverColor?: string;
7370
+ hoverColor: string;
7371
+ text3dHoverColor: string;
7150
7372
  };
7151
7373
  class Core extends PubSub<MapEvent> {
7152
7374
  #private;
7153
7375
  options: Omit<RendererCoreOptions, 'outdoorView'>;
7154
7376
  container: HTMLElement;
7377
+ Debug: Debug;
7155
7378
  /**
7156
7379
  * The view camera is used for projecting both the outdoor map and our scene
7157
7380
  */
@@ -7210,6 +7433,31 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7210
7433
  * Add an HTML Marker at a GeoJSON coordinate.
7211
7434
  */
7212
7435
  addMarker2D(coordinate: Position, contentHTML: string, options?: AddMarkerOptions, parent?: EntityId<GroupContainerState> | string | number | null): EntityId<MarkerState> | undefined;
7436
+ /**
7437
+ * Labels an existing 3D geometry with a text area.
7438
+ *
7439
+ * @param meshGeometryId - The ID of the target 3D geometry to label.
7440
+ * @param content - The text content to display.
7441
+ * @param options - Additional options for adding the text label, including:
7442
+ * - parentId: Optional ID of the parent container.
7443
+ * - appearance: Optional appearance settings for the text label.
7444
+ *
7445
+ * @returns An object containing the ID and type of the created or existing text label, or undefined if labeling failed. If geometry is already labeld, the same text id will be returned
7446
+ *
7447
+ * @example
7448
+ * ```typescript
7449
+ * const label = renderer.labelText3D('geometry123', 'Hello World', { parentId: 'parent456', appearance: { color: 'red' } });
7450
+ * if (label) {
7451
+ * console.log(`Label created with ID: ${label.id}`);
7452
+ * }
7453
+ *
7454
+ */
7455
+ labelText3D(meshGeometryId: string, content: string, options?: AddText3DOptions & {
7456
+ parentId?: string;
7457
+ }): {
7458
+ id: string | number;
7459
+ type: "text3d";
7460
+ } | undefined;
7213
7461
  /**
7214
7462
  * Add a 2D label at a GeoJSON coordinate.
7215
7463
  */
@@ -7228,6 +7476,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7228
7476
  * Remove an entity from the renderer and release associated resources.
7229
7477
  */
7230
7478
  remove(object: string | number): void;
7479
+ remove(object: EntityTypes): void;
7231
7480
  /**
7232
7481
  * Show collision boxes for 2D entities for debugging
7233
7482
  */
@@ -7252,13 +7501,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7252
7501
  * Get the current state of the map view, or any entity that was added, regardless of whether it is visible in the scene
7253
7502
  */
7254
7503
  getState(): MapViewState;
7255
- getState<T extends EntityId<EntityState>>(geometryOrGeometryId: T): T extends EntityId<LabelState> ? LabelState : T extends EntityId<GeometryState> ? GeometryState : T extends EntityId<MarkerState> ? MarkerState : T extends EntityId<GeometryGroupState> ? GeometryGroupState : T extends EntityId<GroupContainerState> ? GroupContainerState : T extends EntityId<ModelState> ? ModelState : T extends EntityId<PathState> ? PathState : T extends EntityId<ShapeState> ? ShapeState : T extends EntityId<ImageState> ? ImageState : EntityState;
7504
+ getState<T extends EntityId<EntityState>>(geometryOrGeometryId: T): T extends EntityId<LabelState> ? LabelState : T extends EntityId<GeometryState> ? GeometryState : T extends EntityId<MarkerState> ? MarkerState : T extends EntityId<GeometryGroupState> ? GeometryGroupState : T extends EntityId<GroupContainerState> ? GroupContainerState : T extends EntityId<ModelState> ? ModelState : T extends EntityId<PathState> ? PathState : T extends EntityId<ShapeState> ? ShapeState : T extends EntityId<ImageState> ? ImageState : T extends EntityId<Text3DState> ? Text3DState : EntityState;
7256
7505
  getState(geometryOrGeometryId?: Record<string | number, any> | string | number): EntityState;
7257
7506
  getState<T extends EntityState>(geometryOrGeometryId: T['id']): T extends LabelState ? LabelState : T extends GeometryState ? GeometryState : T extends MarkerState ? MarkerState : T extends GeometryGroupState ? GeometryGroupState : T extends GroupContainerState ? GroupContainerState : T extends ModelState ? ModelState : T extends PathState ? PathState : T extends ShapeState ? ShapeState : T extends ImageState ? ImageState : EntityState;
7258
7507
  /**
7259
7508
  * Set the state of the map view or any entity that was added, regardless of whether it is visible in the scene.
7260
7509
  */
7261
- setState(object: Partial<MapViewState>): void;
7510
+ setState(object: Partial<Omit<MapViewState, 'type'>>): void;
7262
7511
  setState<T extends EntityId<LabelState>>(object: T | T['id'], state: Partial<LabelState>): void;
7263
7512
  setState<T extends EntityId<MarkerState>>(object: T | T['id'], state: Partial<MarkerState>): void;
7264
7513
  setState<T extends EntityId<GeometryGroupState>>(object: T | T['id'], state: Partial<GeometryGroupState>): void;
@@ -7268,6 +7517,7 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7268
7517
  setState<T extends EntityId<PathState>>(object: T | T['id'], state: PathUpdateState): void;
7269
7518
  setState<T extends EntityId<ModelState>>(object: T | T['id'], state: Partial<ModelState>): void;
7270
7519
  setState<T extends EntityId<ImageState>>(object: T | T['id'], state: Partial<ImageState>): void;
7520
+ setState<T extends EntityId<Text3DState>>(object: T | T['id'], state: Partial<UpdatableText3DState>): void;
7271
7521
  setState<T extends EntityState>(object: T | T['id'], state: Partial<T>): void;
7272
7522
  /**
7273
7523
  * Project a screen coordinate to a geographic coordinate
@@ -7310,6 +7560,10 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7310
7560
  * Returns the background color of the renderer. Only applies to "standalone mode"
7311
7561
  */
7312
7562
  get backgroundColor(): import("three").Color;
7563
+ /**
7564
+ * internal
7565
+ */
7566
+ getThreeRenderer(): Renderer;
7313
7567
  /**
7314
7568
  * Returns the current scale of the map in metres per pixel.
7315
7569
  */
@@ -7343,13 +7597,13 @@ declare module '@mappedin/react-sdk/geojson/src/renderer' {
7343
7597
  * The render happens in an animation frame, not matter how frequently it is called
7344
7598
  * @method render
7345
7599
  */
7346
- render: () => void;
7600
+ render: () => Promise<any> | undefined;
7347
7601
  /**
7348
7602
  * Perform a synchronous render of the scene. This bypasses the animation frame and renders immediately.
7349
7603
  *
7350
7604
  * Note: Only use this if you have an animation frame setup elsewhere
7351
7605
  */
7352
- renderSync: () => void;
7606
+ renderSync: () => Promise<any>;
7353
7607
  /**
7354
7608
  * @internal for testing
7355
7609
  */
@@ -7607,39 +7861,482 @@ declare module '@mappedin/react-sdk/geojson/src/utils/collision-ranking-tier' {
7607
7861
  export function convertNumberToCollisionRankingTier(rank: number): CollisionRankingTier;
7608
7862
  }
7609
7863
 
7610
- declare module '@mappedin/react-sdk/packages/geojson-navigator' {
7611
- export * from '@mappedin/react-sdk/packages/geojson-navigator/src';
7612
- }
7613
-
7614
- declare module '@mappedin/react-sdk/geojson/src/utils' {
7615
- import type { Box3, Camera as THREECamera } from 'three';
7616
- import { Box2 } from 'three';
7617
- import { MercatorCoordinate } from '@mappedin/react-sdk/packages/outdoor-context-v4';
7618
- import type { CustomLayerInterface } from '@mappedin/react-sdk/packages/outdoor-context-v4';
7619
- import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
7864
+ declare module '@mappedin/react-sdk/geojson/src/components/text3d' {
7865
+ import type { Position } from '@mappedin/react-sdk/geojson/src/types';
7866
+ import { z } from 'zod';
7867
+ import type { Feature, Point } from 'geojson';
7868
+ import { Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
7869
+ import type { BatchedText, Text } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
7870
+ import type { Text3DStyle } from '@mappedin/react-sdk/geojson/src/components/styles';
7871
+ import type { MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
7620
7872
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
7621
- import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
7622
- import type { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
7623
- import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
7624
- import type { Camera } from '@mappedin/react-sdk/geojson/src/camera';
7625
- export function cartesianToGeographic(centerLat: number, centerLon: number, x: number, y: number): {
7626
- lat: number;
7627
- lon: number;
7628
- };
7629
- export function geographicToCartesian(centerLat: number, centerLon: number, targetLat: number, targetLon: number): {
7630
- x: number;
7631
- y: number;
7632
- };
7633
- export const populateGeometry3DIdsInScene: (tree: any, entities: RendererState["geometry3DIdsInScene"]) => Set<string | number>;
7634
- export const populateGeometry2DIdsInScene: (tree: any, entities: Set<Geometry2D["id"]>) => Set<string | number>;
7635
- export function convertMapLibreStylePaintProps(paint: any): {
7636
- color: any;
7637
- height: any;
7638
- altitude: any;
7639
- opacity: any;
7640
- outline: any;
7641
- };
7642
- export function convertMapLibreLineStylePaintProps(paint: any): {
7873
+ /**
7874
+ * State representing an Text3D
7875
+ */
7876
+ export type Text3DState = {
7877
+ readonly id: string | number;
7878
+ readonly type: 'text3d';
7879
+ /**
7880
+ * The position of the Text3D in [lon, lat, altitude]
7881
+ */
7882
+ readonly position: Position;
7883
+ /**
7884
+ * Whether the Text3D is visible
7885
+ */
7886
+ visible: boolean;
7887
+ /**
7888
+ * Attempt to keep the Text3D facing the camera as much as possible
7889
+ */
7890
+ flipToFaceCamera: boolean;
7891
+ /**
7892
+ * Content of the text3d
7893
+ */
7894
+ content: string;
7895
+ } & Text3DStyle;
7896
+ export const text3DStateSchema: z.ZodObject<{
7897
+ visible: z.ZodBoolean;
7898
+ color: z.ZodString;
7899
+ flipToFaceCamera: z.ZodBoolean;
7900
+ font: z.ZodOptional<z.ZodString>;
7901
+ fontSize: z.ZodNumber;
7902
+ margin: z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
7903
+ outlineColor: z.ZodString;
7904
+ outlineOpacity: z.ZodNumber;
7905
+ outlineBlur: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
7906
+ outlineWidth: z.ZodNumber;
7907
+ outlineOffsetX: z.ZodNumber;
7908
+ outlineOffsetY: z.ZodNumber;
7909
+ strokeWidth: z.ZodNumber;
7910
+ maxWidth: z.ZodOptional<z.ZodNumber>;
7911
+ maxHeight: z.ZodOptional<z.ZodNumber>;
7912
+ strokeOpacity: z.ZodNumber;
7913
+ strokeColor: z.ZodString;
7914
+ fillOpacity: z.ZodNumber;
7915
+ hoverColor: z.ZodOptional<z.ZodString>;
7916
+ id: z.ZodUnion<[z.ZodString, z.ZodNumber]>;
7917
+ type: z.ZodLiteral<"text3d">;
7918
+ position: z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>;
7919
+ content: z.ZodString;
7920
+ }, "strip", z.ZodTypeAny, {
7921
+ type: "text3d";
7922
+ id: string | number;
7923
+ color: string;
7924
+ position: [number, number, number];
7925
+ visible: boolean;
7926
+ flipToFaceCamera: boolean;
7927
+ fontSize: number;
7928
+ margin: number | [number, number, number, number];
7929
+ outlineColor: string;
7930
+ outlineOpacity: number;
7931
+ outlineBlur: string | number;
7932
+ outlineWidth: number;
7933
+ outlineOffsetX: number;
7934
+ outlineOffsetY: number;
7935
+ strokeWidth: number;
7936
+ strokeOpacity: number;
7937
+ strokeColor: string;
7938
+ fillOpacity: number;
7939
+ content: string;
7940
+ maxWidth?: number | undefined;
7941
+ font?: string | undefined;
7942
+ maxHeight?: number | undefined;
7943
+ hoverColor?: string | undefined;
7944
+ }, {
7945
+ type: "text3d";
7946
+ id: string | number;
7947
+ color: string;
7948
+ position: [number, number, number];
7949
+ visible: boolean;
7950
+ flipToFaceCamera: boolean;
7951
+ fontSize: number;
7952
+ margin: number | [number, number, number, number];
7953
+ outlineColor: string;
7954
+ outlineOpacity: number;
7955
+ outlineBlur: string | number;
7956
+ outlineWidth: number;
7957
+ outlineOffsetX: number;
7958
+ outlineOffsetY: number;
7959
+ strokeWidth: number;
7960
+ strokeOpacity: number;
7961
+ strokeColor: string;
7962
+ fillOpacity: number;
7963
+ content: string;
7964
+ maxWidth?: number | undefined;
7965
+ font?: string | undefined;
7966
+ maxHeight?: number | undefined;
7967
+ hoverColor?: string | undefined;
7968
+ }>;
7969
+ /**
7970
+ * @interface
7971
+ */
7972
+ export type InitializeText3DState = Partial<Omit<Text3DState, 'id' | 'type'>>;
7973
+ export const initializeText3DStateSchema: z.ZodObject<Omit<{
7974
+ visible: z.ZodOptional<z.ZodBoolean>;
7975
+ color: z.ZodOptional<z.ZodString>;
7976
+ flipToFaceCamera: z.ZodOptional<z.ZodBoolean>;
7977
+ font: z.ZodOptional<z.ZodOptional<z.ZodString>>;
7978
+ fontSize: z.ZodOptional<z.ZodNumber>;
7979
+ margin: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
7980
+ outlineColor: z.ZodOptional<z.ZodString>;
7981
+ outlineOpacity: z.ZodOptional<z.ZodNumber>;
7982
+ outlineBlur: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
7983
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
7984
+ outlineOffsetX: z.ZodOptional<z.ZodNumber>;
7985
+ outlineOffsetY: z.ZodOptional<z.ZodNumber>;
7986
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
7987
+ maxWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
7988
+ maxHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
7989
+ strokeOpacity: z.ZodOptional<z.ZodNumber>;
7990
+ strokeColor: z.ZodOptional<z.ZodString>;
7991
+ fillOpacity: z.ZodOptional<z.ZodNumber>;
7992
+ hoverColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
7993
+ id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
7994
+ type: z.ZodOptional<z.ZodLiteral<"text3d">>;
7995
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
7996
+ content: z.ZodOptional<z.ZodString>;
7997
+ }, "type" | "id">, "strict", z.ZodTypeAny, {
7998
+ maxWidth?: number | undefined;
7999
+ color?: string | undefined;
8000
+ position?: [number, number, number] | undefined;
8001
+ visible?: boolean | undefined;
8002
+ flipToFaceCamera?: boolean | undefined;
8003
+ font?: string | undefined;
8004
+ fontSize?: number | undefined;
8005
+ margin?: number | [number, number, number, number] | undefined;
8006
+ outlineColor?: string | undefined;
8007
+ outlineOpacity?: number | undefined;
8008
+ outlineBlur?: string | number | undefined;
8009
+ outlineWidth?: number | undefined;
8010
+ outlineOffsetX?: number | undefined;
8011
+ outlineOffsetY?: number | undefined;
8012
+ strokeWidth?: number | undefined;
8013
+ maxHeight?: number | undefined;
8014
+ strokeOpacity?: number | undefined;
8015
+ strokeColor?: string | undefined;
8016
+ fillOpacity?: number | undefined;
8017
+ hoverColor?: string | undefined;
8018
+ content?: string | undefined;
8019
+ }, {
8020
+ maxWidth?: number | undefined;
8021
+ color?: string | undefined;
8022
+ position?: [number, number, number] | undefined;
8023
+ visible?: boolean | undefined;
8024
+ flipToFaceCamera?: boolean | undefined;
8025
+ font?: string | undefined;
8026
+ fontSize?: number | undefined;
8027
+ margin?: number | [number, number, number, number] | undefined;
8028
+ outlineColor?: string | undefined;
8029
+ outlineOpacity?: number | undefined;
8030
+ outlineBlur?: string | number | undefined;
8031
+ outlineWidth?: number | undefined;
8032
+ outlineOffsetX?: number | undefined;
8033
+ outlineOffsetY?: number | undefined;
8034
+ strokeWidth?: number | undefined;
8035
+ maxHeight?: number | undefined;
8036
+ strokeOpacity?: number | undefined;
8037
+ strokeColor?: string | undefined;
8038
+ fillOpacity?: number | undefined;
8039
+ hoverColor?: string | undefined;
8040
+ content?: string | undefined;
8041
+ }>;
8042
+ /**
8043
+ * At this moment updating text margin is not supported
8044
+ * Margin and content update are not handled at the moment.
8045
+ * @interface
8046
+ */
8047
+ export type UpdatableText3DState = Omit<InitializeText3DState, 'margin' | 'position' | 'content'>;
8048
+ export const updateText3DStateSchema: z.ZodObject<Omit<Omit<{
8049
+ visible: z.ZodOptional<z.ZodBoolean>;
8050
+ color: z.ZodOptional<z.ZodString>;
8051
+ flipToFaceCamera: z.ZodOptional<z.ZodBoolean>;
8052
+ font: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8053
+ fontSize: z.ZodOptional<z.ZodNumber>;
8054
+ margin: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
8055
+ outlineColor: z.ZodOptional<z.ZodString>;
8056
+ outlineOpacity: z.ZodOptional<z.ZodNumber>;
8057
+ outlineBlur: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
8058
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
8059
+ outlineOffsetX: z.ZodOptional<z.ZodNumber>;
8060
+ outlineOffsetY: z.ZodOptional<z.ZodNumber>;
8061
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
8062
+ maxWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8063
+ maxHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8064
+ strokeOpacity: z.ZodOptional<z.ZodNumber>;
8065
+ strokeColor: z.ZodOptional<z.ZodString>;
8066
+ fillOpacity: z.ZodOptional<z.ZodNumber>;
8067
+ hoverColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8068
+ id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8069
+ type: z.ZodOptional<z.ZodLiteral<"text3d">>;
8070
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
8071
+ content: z.ZodOptional<z.ZodString>;
8072
+ }, "type" | "id">, "maxWidth" | "position" | "margin" | "maxHeight" | "content">, "strict", z.ZodTypeAny, {
8073
+ color?: string | undefined;
8074
+ visible?: boolean | undefined;
8075
+ flipToFaceCamera?: boolean | undefined;
8076
+ font?: string | undefined;
8077
+ fontSize?: number | undefined;
8078
+ outlineColor?: string | undefined;
8079
+ outlineOpacity?: number | undefined;
8080
+ outlineBlur?: string | number | undefined;
8081
+ outlineWidth?: number | undefined;
8082
+ outlineOffsetX?: number | undefined;
8083
+ outlineOffsetY?: number | undefined;
8084
+ strokeWidth?: number | undefined;
8085
+ strokeOpacity?: number | undefined;
8086
+ strokeColor?: string | undefined;
8087
+ fillOpacity?: number | undefined;
8088
+ hoverColor?: string | undefined;
8089
+ }, {
8090
+ color?: string | undefined;
8091
+ visible?: boolean | undefined;
8092
+ flipToFaceCamera?: boolean | undefined;
8093
+ font?: string | undefined;
8094
+ fontSize?: number | undefined;
8095
+ outlineColor?: string | undefined;
8096
+ outlineOpacity?: number | undefined;
8097
+ outlineBlur?: string | number | undefined;
8098
+ outlineWidth?: number | undefined;
8099
+ outlineOffsetX?: number | undefined;
8100
+ outlineOffsetY?: number | undefined;
8101
+ strokeWidth?: number | undefined;
8102
+ strokeOpacity?: number | undefined;
8103
+ strokeColor?: string | undefined;
8104
+ fillOpacity?: number | undefined;
8105
+ hoverColor?: string | undefined;
8106
+ }>;
8107
+ export type Text3DProperties = {
8108
+ id: string;
8109
+ content: string;
8110
+ textArea?: MeshComponentProperties['textArea'];
8111
+ };
8112
+ export type AddText3DOptions = {
8113
+ appearance?: Partial<InitializeText3DState>;
8114
+ };
8115
+ export const addText3DOptionsSchema: z.ZodObject<{
8116
+ appearance: z.ZodOptional<z.ZodObject<Omit<{
8117
+ visible: z.ZodOptional<z.ZodBoolean>;
8118
+ color: z.ZodOptional<z.ZodString>;
8119
+ flipToFaceCamera: z.ZodOptional<z.ZodBoolean>;
8120
+ font: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8121
+ fontSize: z.ZodOptional<z.ZodNumber>;
8122
+ margin: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
8123
+ outlineColor: z.ZodOptional<z.ZodString>;
8124
+ outlineOpacity: z.ZodOptional<z.ZodNumber>;
8125
+ outlineBlur: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
8126
+ outlineWidth: z.ZodOptional<z.ZodNumber>;
8127
+ outlineOffsetX: z.ZodOptional<z.ZodNumber>;
8128
+ outlineOffsetY: z.ZodOptional<z.ZodNumber>;
8129
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
8130
+ maxWidth: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8131
+ maxHeight: z.ZodOptional<z.ZodOptional<z.ZodNumber>>;
8132
+ strokeOpacity: z.ZodOptional<z.ZodNumber>;
8133
+ strokeColor: z.ZodOptional<z.ZodString>;
8134
+ fillOpacity: z.ZodOptional<z.ZodNumber>;
8135
+ hoverColor: z.ZodOptional<z.ZodOptional<z.ZodString>>;
8136
+ id: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
8137
+ type: z.ZodOptional<z.ZodLiteral<"text3d">>;
8138
+ position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>;
8139
+ content: z.ZodOptional<z.ZodString>;
8140
+ }, "type" | "id">, "strict", z.ZodTypeAny, {
8141
+ maxWidth?: number | undefined;
8142
+ color?: string | undefined;
8143
+ position?: [number, number, number] | undefined;
8144
+ visible?: boolean | undefined;
8145
+ flipToFaceCamera?: boolean | undefined;
8146
+ font?: string | undefined;
8147
+ fontSize?: number | undefined;
8148
+ margin?: number | [number, number, number, number] | undefined;
8149
+ outlineColor?: string | undefined;
8150
+ outlineOpacity?: number | undefined;
8151
+ outlineBlur?: string | number | undefined;
8152
+ outlineWidth?: number | undefined;
8153
+ outlineOffsetX?: number | undefined;
8154
+ outlineOffsetY?: number | undefined;
8155
+ strokeWidth?: number | undefined;
8156
+ maxHeight?: number | undefined;
8157
+ strokeOpacity?: number | undefined;
8158
+ strokeColor?: string | undefined;
8159
+ fillOpacity?: number | undefined;
8160
+ hoverColor?: string | undefined;
8161
+ content?: string | undefined;
8162
+ }, {
8163
+ maxWidth?: number | undefined;
8164
+ color?: string | undefined;
8165
+ position?: [number, number, number] | undefined;
8166
+ visible?: boolean | undefined;
8167
+ flipToFaceCamera?: boolean | undefined;
8168
+ font?: string | undefined;
8169
+ fontSize?: number | undefined;
8170
+ margin?: number | [number, number, number, number] | undefined;
8171
+ outlineColor?: string | undefined;
8172
+ outlineOpacity?: number | undefined;
8173
+ outlineBlur?: string | number | undefined;
8174
+ outlineWidth?: number | undefined;
8175
+ outlineOffsetX?: number | undefined;
8176
+ outlineOffsetY?: number | undefined;
8177
+ strokeWidth?: number | undefined;
8178
+ maxHeight?: number | undefined;
8179
+ strokeOpacity?: number | undefined;
8180
+ strokeColor?: string | undefined;
8181
+ fillOpacity?: number | undefined;
8182
+ hoverColor?: string | undefined;
8183
+ content?: string | undefined;
8184
+ }>>;
8185
+ parentId: z.ZodOptional<z.ZodString>;
8186
+ }, "strict", z.ZodTypeAny, {
8187
+ parentId?: string | undefined;
8188
+ appearance?: {
8189
+ maxWidth?: number | undefined;
8190
+ color?: string | undefined;
8191
+ position?: [number, number, number] | undefined;
8192
+ visible?: boolean | undefined;
8193
+ flipToFaceCamera?: boolean | undefined;
8194
+ font?: string | undefined;
8195
+ fontSize?: number | undefined;
8196
+ margin?: number | [number, number, number, number] | undefined;
8197
+ outlineColor?: string | undefined;
8198
+ outlineOpacity?: number | undefined;
8199
+ outlineBlur?: string | number | undefined;
8200
+ outlineWidth?: number | undefined;
8201
+ outlineOffsetX?: number | undefined;
8202
+ outlineOffsetY?: number | undefined;
8203
+ strokeWidth?: number | undefined;
8204
+ maxHeight?: number | undefined;
8205
+ strokeOpacity?: number | undefined;
8206
+ strokeColor?: string | undefined;
8207
+ fillOpacity?: number | undefined;
8208
+ hoverColor?: string | undefined;
8209
+ content?: string | undefined;
8210
+ } | undefined;
8211
+ }, {
8212
+ parentId?: string | undefined;
8213
+ appearance?: {
8214
+ maxWidth?: number | undefined;
8215
+ color?: string | undefined;
8216
+ position?: [number, number, number] | undefined;
8217
+ visible?: boolean | undefined;
8218
+ flipToFaceCamera?: boolean | undefined;
8219
+ font?: string | undefined;
8220
+ fontSize?: number | undefined;
8221
+ margin?: number | [number, number, number, number] | undefined;
8222
+ outlineColor?: string | undefined;
8223
+ outlineOpacity?: number | undefined;
8224
+ outlineBlur?: string | number | undefined;
8225
+ outlineWidth?: number | undefined;
8226
+ outlineOffsetX?: number | undefined;
8227
+ outlineOffsetY?: number | undefined;
8228
+ strokeWidth?: number | undefined;
8229
+ maxHeight?: number | undefined;
8230
+ strokeOpacity?: number | undefined;
8231
+ strokeColor?: string | undefined;
8232
+ fillOpacity?: number | undefined;
8233
+ hoverColor?: string | undefined;
8234
+ content?: string | undefined;
8235
+ } | undefined;
8236
+ }>;
8237
+ export class Text3DComponent {
8238
+ mesh: Geometry3DObject3D;
8239
+ textMesh?: Text;
8240
+ readonly type = "text3d";
8241
+ feature: Feature<Point, Text3DProperties>;
8242
+ constructor(feature: Feature<Point, Text3DProperties>);
8243
+ get visible(): boolean;
8244
+ set visible(visible: boolean);
8245
+ parent?: GroupContainerObject3D;
8246
+ batchedText?: BatchedText;
8247
+ /**
8248
+ * if this Text3DComponent is a polygon label, populate this id with the polygon entity id
8249
+ * This id is used to prevent drawing text for the same polygon.
8250
+ */
8251
+ polygonEntityId?: string;
8252
+ }
8253
+ }
8254
+
8255
+ declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
8256
+ import type { CollisionRankingTier, GeometryState, LabelState, RendererCore } from '@mappedin/react-sdk/geojson/src';
8257
+ import { type MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
8258
+ import type { PathUpdateState } from '@mappedin/react-sdk/geojson/src/components/path';
8259
+ import type { EntityTypes, All3DTypes, Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8260
+ import type { KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils';
8261
+ import { GeometryGroupObject3D, type GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
8262
+ import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8263
+ import type { Geometry3DTypes, TextGeometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8264
+ import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8265
+ import { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
8266
+ import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8267
+ import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
8268
+ import { type Text3DState, type UpdatableText3DState } from '@mappedin/react-sdk/geojson/src/components/text3d';
8269
+ export function updateInteractivity(entity: All3DTypes | Geometry2D, update: boolean | undefined, state: RendererState): boolean;
8270
+ export function updateGroupColor(entity: GeometryGroupObject3D, state: RendererState, update: Partial<Pick<GeometryGroupState, 'color' | 'topColor'>>): boolean | undefined;
8271
+ export function updateGroupShading(entity: GeometryGroupObject3D, update?: GeometryGroupState['shading']): boolean;
8272
+ export function updateImageProps(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
8273
+ export function updateHeight(entity: Geometry3D | GeometryGroupObject3D, state: RendererState, update?: number): boolean;
8274
+ export function updateColor(entity: Geometry3DTypes | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
8275
+ export function updatePosition(entity: EntityTypes, update: Position | undefined, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): void;
8276
+ export function updateParent(entity: EntityTypes, update: GroupContainerObject3D | undefined): boolean;
8277
+ export function updateEnabled(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: boolean | undefined): void;
8278
+ export function updateMarker(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<MarkerState> | undefined, state: RendererState): boolean;
8279
+ export function updateRank(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: CollisionRankingTier | undefined): boolean;
8280
+ export function updateLabel(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<LabelState> | undefined, state: RendererState): void;
8281
+ export function updateHoverColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: string): void;
8282
+ /** Sets a geometry to be in hovered state, until manually unset or the user interacts with it. */
8283
+ export function updateHovered(entity: Geometry3D, update?: boolean): boolean;
8284
+ export function updateFlipImageToFaceCamera(entity: EntityTypes, update?: boolean): void;
8285
+ export function updateVisibility(entity: EntityTypes, update?: boolean): boolean;
8286
+ export function updateOpacity(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, state: RendererState, update?: number): boolean;
8287
+ export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
8288
+ export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
8289
+ export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
8290
+ export function updateAltitude(entity: EntityTypes, update?: number): boolean;
8291
+ export function updateOutline(entity: All3DTypes, update?: boolean): boolean;
8292
+ export function updateFocusable(entity: Geometry3D, update?: boolean): boolean;
8293
+ export function updateIndividualGeometryRenderOrder(entity: Geometry3D, update?: number): boolean;
8294
+ export function handlePathUpdate(geometry: Geometry3DTypes, update: PathUpdateState): void;
8295
+ export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
8296
+ export function assetGeometryIsText3D(geometry: Geometry3DTypes): asserts geometry is TextGeometry3D;
8297
+ /**
8298
+ * @internal
8299
+ */
8300
+ export const TEXT3D_STYLE_UPDATE_PROPS: KeysOfUnion<UpdatableText3DState>[];
8301
+ /**
8302
+ * Handle state update of the text3d geometry.
8303
+ */
8304
+ export function handleText3DUpdate(geometry: TextGeometry3D, update: Partial<Text3DState>): void;
8305
+ }
8306
+
8307
+ declare module '@mappedin/react-sdk/packages/geojson-navigator' {
8308
+ export * from '@mappedin/react-sdk/packages/geojson-navigator/src';
8309
+ }
8310
+
8311
+ declare module '@mappedin/react-sdk/geojson/src/utils' {
8312
+ import type { Box3, Object3D, Camera as THREECamera } from 'three';
8313
+ import { Box2 } from 'three';
8314
+ import { MercatorCoordinate } from '@mappedin/react-sdk/packages/outdoor-context-v4';
8315
+ import type { CustomLayerInterface } from '@mappedin/react-sdk/packages/outdoor-context-v4';
8316
+ import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
8317
+ import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8318
+ import type { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
8319
+ import type { Geometry3DTypes } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
8320
+ import type { Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8321
+ import type { Camera } from '@mappedin/react-sdk/geojson/src/camera';
8322
+ export function cartesianToGeographic(centerLat: number, centerLon: number, x: number, y: number): {
8323
+ lat: number;
8324
+ lon: number;
8325
+ };
8326
+ export function geographicToCartesian(centerLat: number, centerLon: number, targetLat: number, targetLon: number): {
8327
+ x: number;
8328
+ y: number;
8329
+ };
8330
+ export const populateGeometry3DIdsInScene: (tree: GroupContainerObject3D["children"][0] | Object3D, entities: RendererState["geometry3DIdsInScene"]) => Set<string | number>;
8331
+ export const populateGeometry2DIdsInScene: (tree: any, entities: Set<Geometry2D["id"]>) => Set<string | number>;
8332
+ export function convertMapLibreStylePaintProps(paint: any): {
8333
+ color: any;
8334
+ height: any;
8335
+ altitude: any;
8336
+ opacity: any;
8337
+ outline: any;
8338
+ };
8339
+ export function convertMapLibreLineStylePaintProps(paint: any): {
7643
8340
  color: any;
7644
8341
  join: any;
7645
8342
  opacity: any;
@@ -7686,7 +8383,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
7686
8383
  * so OR = CO * tan(F/2)
7687
8384
  */
7688
8385
  export function getProjectionScaleFactor(FOV: number, canvasHeight: number, zoom: number): number;
7689
- export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3D | GroupContainerObject3D | GeometryGroupObject3D | Geometry2D | undefined;
8386
+ export function getGeometryByGeometryId(state: RendererState, geometryOrGeometryId?: string | number | Record<string, any>): Geometry3DTypes | GeometryGroupObject3D | GroupContainerObject3D | Geometry2D | undefined;
7690
8387
  export function getBoundingBoxCenter(bbox: Position[]): [number, number];
7691
8388
  export { getCornersOfBoundingBox } from '@mappedin/react-sdk/geojson/src/utils/bounding-box';
7692
8389
  export function isFiniteBox(box: Box2 | Box3): boolean;
@@ -7695,6 +8392,7 @@ declare module '@mappedin/react-sdk/geojson/src/utils' {
7695
8392
  export { shouldDisableOffscreenCanvas } from '@mappedin/react-sdk/geojson/src/utils/browser';
7696
8393
  export { noop, pick, isEmpty, type KeysOfUnion } from '@mappedin/react-sdk/geojson/src/utils/fp';
7697
8394
  export { transformRequest } from '@mappedin/react-sdk/geojson/src/utils/tranform-request';
8395
+ export { normalizeAngle } from '@mappedin/react-sdk/geojson/src/utils/math';
7698
8396
  }
7699
8397
 
7700
8398
  declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
@@ -7705,56 +8403,26 @@ declare module '@mappedin/react-sdk/geojson/src/utils/constants' {
7705
8403
  }
7706
8404
  }
7707
8405
 
7708
- declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
7709
- import type { Scene, Camera } from 'three';
7710
- import { Color, WebGL1Renderer, WebGLRenderer } from 'three';
7711
- export function enableTestMode(): void;
7712
- export type TRendererOptions = {
7713
- alpha: boolean;
7714
- onWebGLRendererError: (e: Error) => void;
7715
- xRayPath: boolean;
8406
+ declare module '@mappedin/react-sdk/geojson/src/utils/debug' {
8407
+ import type Core from '@mappedin/react-sdk/geojson/src/renderer';
8408
+ const DEFAULT_DEBUG_STATE: {
8409
+ showPolygonLabelTextAreaMesh: boolean;
7716
8410
  };
7717
- export class Renderer {
7718
- backgroundAlpha: number;
7719
- backgroundColor: Color;
7720
- width: number;
7721
- height: number;
7722
- options: TRendererOptions;
7723
- renderer?: WebGLRenderer | WebGL1Renderer;
7724
- constructor(renderOptions: any, targetWebGLVersion?: number);
7725
- /**
7726
- * Dispose of the renderer and its buffers.
7727
- */
7728
- destroy(): void;
7729
- /**
7730
- * Re-render the scene, depending on which parts of the scene have been
7731
- * invalidated.
7732
- *
7733
- * @method render
7734
- * @param renderTarget {null or WebGLRenderTarget}
7735
- * @param scene {Scene}
7736
- * @param sceneCamera {Camera}
7737
- */
7738
- render(scene: Scene, sceneCamera: Camera): void;
7739
- clear(): void;
7740
- /**
7741
- * Set the size of the renderer, composer, and all its internal buffers.
7742
- *
7743
- * @method setBufferSize
7744
- * @param width {number}
7745
- * @param height {number}
7746
- */
7747
- setBufferSize(width: number, height: number): void;
7748
- /**
7749
- * Set the color and opacity that will be drawn behind the scene.
7750
- *
7751
- * @method setBackgroundColor
7752
- * @param color {Color}
7753
- * @param alpha {number}
7754
- */
7755
- setBackgroundColor(color: any, alpha: any): void;
7756
- domElement(): HTMLCanvasElement | undefined;
8411
+ export type DebugState = typeof DEFAULT_DEBUG_STATE;
8412
+ export class Debug {
8413
+ state: {
8414
+ showPolygonLabelTextAreaMesh: boolean;
8415
+ };
8416
+ core: Core;
8417
+ constructor(core: Core);
8418
+ update(updateState: Partial<DebugState>): void;
7757
8419
  }
8420
+ export {};
8421
+ }
8422
+
8423
+ declare module '@mappedin/react-sdk/geojson/src/services/test-mode' {
8424
+ export function enableTestMode(): void;
8425
+ export function isTestMode(): boolean;
7758
8426
  }
7759
8427
 
7760
8428
  declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
@@ -7842,6 +8510,36 @@ declare module '@mappedin/react-sdk/geojson/src/systems/watermark/system' {
7842
8510
  }
7843
8511
  }
7844
8512
 
8513
+ declare module '@mappedin/react-sdk/geojson/src/systems/text3d/system' {
8514
+ import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
8515
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
8516
+ import { PubSub } from '@packages/internal/common';
8517
+ import type { BatchedText } from '@mappedin/react-sdk/geojson/src/services/text3d/text3d';
8518
+ import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
8519
+ import type { Text } from 'troika-three-text';
8520
+ export class Text3DSystem extends PubSub<{
8521
+ render: undefined;
8522
+ }> {
8523
+ textSet: Set<string>;
8524
+ batchedTextMap: Map<GroupContainerObject3D, Promise<BatchedText>>;
8525
+ remove(id: string): void;
8526
+ constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
8527
+ update(cameraRotationRadians: number): Promise<void[]>;
8528
+ showTextAreaMesh(): void;
8529
+ hideTextAreaMesh(): void;
8530
+ }
8531
+ /**
8532
+ * Preload fonts and optionally pre-generate the SDF textures for particular glyphs up front.
8533
+ * This is to avoid ondemand font generation can take long.
8534
+ * @param fontUrl - url of the font file served.
8535
+ * @returns A promise that resolves when the font is loaded
8536
+ *
8537
+ */
8538
+ export function preloadFont(fontUrl?: string): Promise<string>;
8539
+ export function doesBatchedTextContainsText(batchedText: BatchedText, text: Text): boolean;
8540
+ export const DEFAULT_VERTICAL_OFFSET = 0.5;
8541
+ }
8542
+
7845
8543
  declare module '@mappedin/react-sdk/geojson/src/systems/exporter' {
7846
8544
  export { ExporterSystem, type GLTFExportOptions } from '@mappedin/react-sdk/geojson/src/systems/exporter/exporter';
7847
8545
  }
@@ -7881,15 +8579,21 @@ declare module '@mappedin/react-sdk/geojson/src/systems/html-controls/system' {
7881
8579
  }
7882
8580
  }
7883
8581
 
8582
+ declare module '@mappedin/react-sdk/geojson/src/components/styles' {
8583
+ export { StyleComponent, DEFAULT_COLOR, type MaterialSide } from '@mappedin/react-sdk/geojson/src/components/styles/style';
8584
+ export { Text3DStyleComponent, type Text3DStyle, DEFAULT_TEXT_STYLE } from '@mappedin/react-sdk/geojson/src/components/styles/text-style';
8585
+ }
8586
+
7884
8587
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7885
8588
  import type { Position, RendererCore, WatermarkOptions } from '@mappedin/core-sdk';
7886
8589
  import { type TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7887
8590
  import { WALLS, DOORS } from '@mappedin/react-sdk/mappedin-js/src/types';
7888
8591
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
7889
8592
  import type { FloorStack, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7890
- import { Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8593
+ import { Facade, Coordinate, MapObject, Space, Floor, Door } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7891
8594
  import type { MapView } from '@mappedin/react-sdk/mappedin-js/src/map-view';
7892
- import { Label, Marker, type Model, type Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8595
+ import { Label, Marker, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8596
+ import { Text3D as Text3DView, type Image } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
7893
8597
  import { Navigation } from '@mappedin/react-sdk/mappedin-js/src/navigation';
7894
8598
  import type { TGetState, TUpdateState } from '@mappedin/react-sdk/mappedin-js/src/types';
7895
8599
  import { Camera } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera';
@@ -7905,6 +8609,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7905
8609
  import { Shapes } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/shapes';
7906
8610
  import { Style } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/style';
7907
8611
  import Outdoor from '@mappedin/react-sdk/mappedin-js/src/api-geojson/outdoor';
8612
+ import { Text3D } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/text3d';
7908
8613
  export class GeoJsonApi {
7909
8614
  core: RendererCore;
7910
8615
  mapObjects: GeojsonApiMapObject[];
@@ -7918,6 +8623,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7918
8623
  mapView: MapView;
7919
8624
  Camera: Camera;
7920
8625
  Labels: Labels;
8626
+ Text3D: Text3D;
7921
8627
  Markers: Markers;
7922
8628
  Models: Models;
7923
8629
  Paths: Paths;
@@ -7928,9 +8634,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7928
8634
  Shapes: Shapes;
7929
8635
  Style: Style;
7930
8636
  Images: Images;
8637
+ get DynamicFocus(): import("./dynamic-focus").DynamicFocus;
7931
8638
  get StackedMaps(): import("..").StackedMaps;
7932
8639
  constructor(rendererCore: RendererCore, mapView: MapView);
7933
- updateState<T extends Space | MapObject | Label | Shape | Marker | Door | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
8640
+ updateState<T extends Space | Text3DView | MapObject | Label | Shape | Marker | Door | Facade | WALLS | DOORS | (string & NonNullable<unknown>)>(target: T, state: TUpdateState<T>): void;
7934
8641
  update: () => void;
7935
8642
  getMapDataInternal(): MapDataInternal | undefined;
7936
8643
  getMapData(): MapData | undefined;
@@ -7940,7 +8647,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/api' {
7940
8647
  updateWatermark(options: Omit<WatermarkOptions, 'onClick'>): void;
7941
8648
  get currentFloorStack(): FloorStack;
7942
8649
  get currentFloor(): Floor;
7943
- getState<T extends Space | MapObject | Label | Marker | Shape | Model | Image | string>(target: T): TGetState<T> | undefined;
8650
+ getState<T extends Space | Text3DView | MapObject | Label | Marker | Image | Shape | string>(target: T): TGetState<T>;
7944
8651
  setHoverColor(c: string): void;
7945
8652
  getHoverColor(): string | undefined;
7946
8653
  createCoordinate(latitude: number, longitude: number, floor?: Floor): Coordinate;
@@ -7963,15 +8670,17 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7963
8670
  import type { Position, AddLabelOptions, RendererCore, PathState, MarkerState, LineStyle, PaintStyle, EntityId } from '@mappedin/core-sdk';
7964
8671
  import { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
7965
8672
  import type { Coordinate, Directions, Floor, TAddMarkerOptions, TAddPathOptions, TShow3DMapOptions } from '@mappedin/react-sdk/mappedin-js/src';
7966
- import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction } from '@mappedin/react-sdk/mappedin-js/src/types';
8673
+ import type { GLTFExportOptions, TAnimationOptions, TAddModelOptions, TAddModel, TAddImageOptions, TDirectionInstruction, TAddText3DOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
7967
8674
  import { type AggregatedStyleMap } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils';
7968
8675
  import { StackedMaps } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/stacked-maps/stacked-maps';
7969
8676
  import type { TFloorChangeReason } from '@mappedin/react-sdk/mappedin-js/src/events';
7970
8677
  import type { Path, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
7971
- import type { Space, Door, PointOfInterest, MapObject, Node, MapDataInternal } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
8678
+ import type { Door, PointOfInterest, MapObject, Node, MapDataInternal, Space } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
7972
8679
  import { type GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
7973
8680
  import { FloorStackObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object';
8681
+ import { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus';
7974
8682
  export const FLOOR_HEIGHT = 5;
8683
+ import type { Text3DState } from '@mappedin/core-sdk/src/components/text3d';
7975
8684
  export class GeojsonApiMapObject extends PubSub<{
7976
8685
  'floor-change': {
7977
8686
  reason?: TFloorChangeReason;
@@ -7995,12 +8704,14 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
7995
8704
  floorsById: Map<string, FloorObject>;
7996
8705
  currentFloorId: string;
7997
8706
  currentFloorStackId: string;
8707
+ outdoorFloorStacks: Set<string>;
7998
8708
  id: string;
7999
8709
  renderer: RendererCore;
8000
8710
  api: GeoJsonApi;
8001
8711
  mvf: ParsedMVF;
8002
8712
  styleMap: AggregatedStyleMap;
8003
8713
  StackedMaps: StackedMaps;
8714
+ DynamicFocus: DynamicFocus;
8004
8715
  get currentFloorStack(): FloorStackObject;
8005
8716
  setFloorStack(floorStackId: string): void;
8006
8717
  get currentFloor(): FloorObject;
@@ -8017,7 +8728,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8017
8728
  Images: {
8018
8729
  add: (target: Position, url: string, opts: TAddImageOptions & {
8019
8730
  floorId?: string;
8020
- }) => EntityId<import("../../../geojson/src/components/image").ImageState> | undefined;
8731
+ }) => EntityId<import("@mappedin/core-sdk/src/components/image").ImageState> | undefined;
8021
8732
  remove: (id: string) => void;
8022
8733
  removeAll: () => void;
8023
8734
  };
@@ -8038,6 +8749,11 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8038
8749
  }) => string;
8039
8750
  remove: (customGeometry: Shape) => string;
8040
8751
  };
8752
+ Text3D: {
8753
+ label: (target: Space, content?: string, options?: TAddText3DOptions) => Text3DInfo | undefined;
8754
+ labelAll: (option?: TAddText3DOptions) => Text3DInfo[];
8755
+ remove: (id: string) => string | undefined;
8756
+ };
8041
8757
  Labels: {
8042
8758
  all: ({ onCreate, }: {
8043
8759
  onCreate: (labelId: string | number, text: string, target: Space | Door | Coordinate | PointOfInterest | MapObject | Node) => void;
@@ -8059,6 +8775,10 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object' {
8059
8775
  };
8060
8776
  constructor(id: string, mapDataInternal: MapDataInternal | undefined, options: TShow3DMapOptions | undefined, api: GeoJsonApi);
8061
8777
  }
8778
+ export type Text3DInfo = {
8779
+ target: Space;
8780
+ textInfo: EntityId<Text3DState>;
8781
+ };
8062
8782
  }
8063
8783
 
8064
8784
  declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/label' {
@@ -8306,6 +9026,39 @@ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/shape' {
8306
9026
  }
8307
9027
  }
8308
9028
 
9029
+ declare module '@mappedin/react-sdk/mappedin-js/src/map-view-objects/text3d' {
9030
+ import type { Space, EnterpriseLocation } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9031
+ /**
9032
+ * Class representing an Text3D on the {@link MapView}.
9033
+ */
9034
+ export class Text3D {
9035
+ /**
9036
+ * The text3d's id
9037
+ */
9038
+ readonly id: string;
9039
+ /**
9040
+ * @internal
9041
+ */
9042
+ constructor(id: string, target: Space | EnterpriseLocation);
9043
+ /**
9044
+ * The text3d's target
9045
+ */
9046
+ readonly target: Space | EnterpriseLocation;
9047
+ /**
9048
+ * @internal
9049
+ */
9050
+ static readonly __type = "Text3D";
9051
+ readonly __type = "Text3D";
9052
+ /**
9053
+ * Checks if the provided instance is of type Text3D
9054
+ *
9055
+ * @param instance The instance to check.
9056
+ * @returns {boolean} True if the instance is a text3d, false otherwise.
9057
+ */
9058
+ static is(instance: object): instance is Text3D;
9059
+ }
9060
+ }
9061
+
8309
9062
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/camera' {
8310
9063
  import type { TCameraAnimationOptions, TCameraFocusOnTarget, TCameraTarget, TFocusOnOptions } from '@mappedin/react-sdk/mappedin-js/src/types';
8311
9064
  import type { InsetPadding, RendererCore } from '@mappedin/core-sdk';
@@ -8626,7 +9379,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/markers' {
8626
9379
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
8627
9380
  import type { TAddModelOptions, TAddModel } from '@mappedin/react-sdk/mappedin-js/src/types';
8628
9381
  import { Model } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
8629
- import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
9382
+ import type { CurrentMapGetter } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/types';
8630
9383
  /**
8631
9384
  * 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.
8632
9385
 
@@ -8645,7 +9398,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
8645
9398
  /**
8646
9399
  * @internal
8647
9400
  */
8648
- get currentMap(): GeojsonApiMapObject | undefined;
9401
+ get currentMap(): import("./map-object").GeojsonApiMapObject | undefined;
8649
9402
  /**
8650
9403
  * @internal
8651
9404
  */
@@ -8687,8 +9440,6 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/models' {
8687
9440
  */
8688
9441
  removeAll(): Model[];
8689
9442
  }
8690
- type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
8691
- export {};
8692
9443
  }
8693
9444
 
8694
9445
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/paths' {
@@ -9177,7 +9928,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/images' {
9177
9928
 
9178
9929
  declare module '@mappedin/react-sdk/mappedin-js/src/search/internal' {
9179
9930
  import type { SearchResult as MiniSearchResult, Suggestion, MatchInfo } from 'minisearch';
9180
- import { EnterpriseLocation, EnterpriseCategory, Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9931
+ import type { Places } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9932
+ import { EnterpriseLocation, EnterpriseCategory } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
9181
9933
  import type MapData from '@mappedin/react-sdk/mappedin-js/src/map-data';
9182
9934
  import { z } from 'zod';
9183
9935
  export class InternalSearch {
@@ -9532,6 +10284,52 @@ declare module '@mappedin/react-sdk/mappedin-js/src/search/external' {
9532
10284
  };
9533
10285
  }
9534
10286
 
10287
+ declare module '@mappedin/react-sdk/mappedin-js/src/query/external' {
10288
+ import type { Annotation, Coordinate, Door, MapDataInternal, Node, PointOfInterest } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
10289
+ /**
10290
+ * Query allows users to query for nodes, locations, categories, and other points of interest within the venue.
10291
+ */
10292
+ export class Query {
10293
+ #private;
10294
+ /**
10295
+ * @internal
10296
+ */
10297
+ constructor(mapDataInternal: MapDataInternal);
10298
+ /**
10299
+ * Find the nearest feature to the origin
10300
+ * @param origin - The origin object
10301
+ * @param options - The options for the query
10302
+ * @returns The nearest feature to the origin
10303
+ */
10304
+ nearest(origin: Coordinate | PointOfInterest | Door | Annotation | Node, options: TFindNearestOptions): TFindNearestResult | undefined;
10305
+ }
10306
+ export type TFindNearestResult = {
10307
+ distance: number;
10308
+ feature: TQueriables;
10309
+ }[];
10310
+ export type TFindNearestOptions = {
10311
+ /**
10312
+ * Limit query to a set of floors. Only applies if the origin has floor information. If it doesn't, it limits the query to all floor-stacks' default floors.
10313
+ *
10314
+ * @default 'same-floor'
10315
+ */
10316
+ limit?: 'same-floor'
10317
+ /**
10318
+ * Limit query to all floors at the same elevation as the origin
10319
+ */
10320
+ | 'same-elevation';
10321
+ /**
10322
+ * The radius to search for features within
10323
+ */
10324
+ radius?: number;
10325
+ /**
10326
+ * The types to query for
10327
+ */
10328
+ types: [TQueriables['__type'], ...TQueriables['__type'][]];
10329
+ };
10330
+ export type TQueriables = PointOfInterest | Door | Annotation | Node;
10331
+ }
10332
+
9535
10333
  declare module '@mappedin/react-sdk/mappedin-js/src/analytics/customer' {
9536
10334
  /**
9537
10335
  * Valid track-analytics API contexts. These should match the expected values of that endpoint or the requests will fail.
@@ -9834,20 +10632,24 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
9834
10632
  import type { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
9835
10633
  import type { ModelComponent } from '@mappedin/react-sdk/geojson/src/components/model';
9836
10634
  import type { PathComponent } from '@mappedin/react-sdk/geojson/src/components/path';
9837
- import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/style';
10635
+ import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
9838
10636
  import type { ImageComponent } from '@mappedin/react-sdk/geojson/src/components/image';
9839
10637
  import type { CustomGeometryComponent } from '@mappedin/react-sdk/geojson/src/components/custom';
9840
10638
  import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
9841
10639
  import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10640
+ import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
10641
+ import type { Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
9842
10642
  export enum Geometry3DComponents {
9843
10643
  Mesh = 0,
9844
10644
  Style = 1,
9845
10645
  Interaction = 2
9846
10646
  }
10647
+ type Geometry3DObjectTypes = 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image' | 'text3d';
9847
10648
  export class Geometry3DObject3D extends Object3D {
10649
+ type: Geometry3DObjectTypes;
9848
10650
  userData: {
9849
10651
  entityId: string;
9850
- type: 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image';
10652
+ type: Geometry3DObjectTypes;
9851
10653
  };
9852
10654
  }
9853
10655
  export type PathMaterial = ShaderMaterial & {
@@ -9857,15 +10659,23 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
9857
10659
  export class PatMeshContainer extends Geometry3DObject3D {
9858
10660
  children: [PathMesh, PathMesh];
9859
10661
  }
9860
- export type MeshComponentTypes = MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | ImageComponent;
9861
- export class Geometry3D {
10662
+ export type MeshComponentTypes = MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | Text3DComponent | ImageComponent;
10663
+ type MappedComponentType<M> = M extends MeshComponent ? 'geometry' : M extends PathComponent ? 'path' : M extends ModelComponent ? 'model' : M extends CustomGeometryComponent ? 'custom-geometry' : M extends ImageComponent ? 'image' : M extends Text3DComponent ? 'text3d' : never;
10664
+ export class Geometry3D<M extends MeshComponentTypes = MeshComponent, S extends StyleComponent | Text3DStyleComponent = StyleComponent, I extends InteractionComponent = InteractionComponent, T extends MappedComponentType<M> = MappedComponentType<M>> {
9862
10665
  id: string | number;
9863
- components: [MeshComponentTypes, StyleComponent, InteractionComponent?];
9864
- get object3d(): Geometry3DObject3D | PatMeshContainer | import("../components/mesh").EntityBatchedMesh | undefined;
10666
+ components: [M, S, I?];
10667
+ get object3d(): M["mesh"];
9865
10668
  get parent(): GroupContainerObject3D | GeometryGroupObject3D | null;
9866
- get type(): 'geometry' | 'path' | 'model' | 'custom-geometry' | 'image';
9867
- constructor(meshComponent: MeshComponent | PathComponent | ModelComponent | CustomGeometryComponent | ImageComponent, styleComponent: StyleComponent);
9868
- }
10669
+ get type(): T;
10670
+ constructor(meshComponent: M, styleComponent: S);
10671
+ }
10672
+ export type TextGeometry3D = Geometry3D<Text3DComponent, Text3DStyleComponent, InteractionComponent, 'text3d'>;
10673
+ export type CustomGeometry3D = Geometry3D<CustomGeometryComponent, StyleComponent, InteractionComponent, 'custom-geometry'>;
10674
+ export type ModelGeometry3D = Geometry3D<ModelComponent, StyleComponent, InteractionComponent, 'model'>;
10675
+ export type PathGeometry3D = Geometry3D<PathComponent, StyleComponent, InteractionComponent, 'path'>;
10676
+ export type ImageGeometry3D = Geometry3D<ImageComponent, StyleComponent, InteractionComponent, 'image'>;
10677
+ export type MeshGeometry3D = Geometry3D<MeshComponent, StyleComponent, InteractionComponent, 'geometry'>;
10678
+ export type Geometry3DTypes = TextGeometry3D | CustomGeometry3D | PathGeometry3D | ImageGeometry3D | MeshGeometry3D | ModelGeometry3D;
9869
10679
  export interface PathUniforms {
9870
10680
  vertexes: {
9871
10681
  type: 'f';
@@ -9948,6 +10758,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry3d' {
9948
10758
  value: number;
9949
10759
  };
9950
10760
  }
10761
+ export {};
9951
10762
  }
9952
10763
 
9953
10764
  declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
@@ -9961,6 +10772,7 @@ declare module '@mappedin/react-sdk/geojson/src/entities/geometry2d' {
9961
10772
  Interaction = 1
9962
10773
  }
9963
10774
  export class Geometry2DObject3D extends Object3D {
10775
+ readonly type: "geometry2dObject3d";
9964
10776
  }
9965
10777
  export class Geometry2D {
9966
10778
  id: string | number;
@@ -9989,17 +10801,44 @@ declare module '@mappedin/react-sdk/geojson/src/components/stack' {
9989
10801
 
9990
10802
  declare module '@mappedin/react-sdk/geojson/src/components/interaction' {
9991
10803
  export class InteractionComponent {
9992
- hover: boolean;
10804
+ hover: boolean | 'user-interaction';
9993
10805
  dirty: boolean;
9994
10806
  }
9995
10807
  }
9996
10808
 
10809
+ declare module '@mappedin/react-sdk/geojson/src/services/text3d/text3d' {
10810
+ import { type Text3DStyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles';
10811
+ import { Text, BatchedText } from 'troika-three-text';
10812
+ import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
10813
+ import type { Text3DComponent } from '@mappedin/react-sdk/geojson/src/components/text3d';
10814
+ export function createTroikaText(entityId: string | number, text3DComponent: Text3DComponent, styleComponent: Text3DStyleComponent, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): Promise<{
10815
+ text: Text;
10816
+ } | undefined>;
10817
+ export { BatchedText, Text };
10818
+ /**
10819
+ * typeof module is forbiten in typescript. see: [@typescript-eslint/consistent-type-imports]
10820
+ */
10821
+ export type ModuleType = {
10822
+ createTroikaText: typeof createTroikaText;
10823
+ preloadFont: typeof preloadFont;
10824
+ BatchedText: typeof BatchedText;
10825
+ };
10826
+ /**
10827
+ * Preloads a font from the given URL. Enable developer to preload font way before scene is ready
10828
+ *
10829
+ * @param fontUrl - The URL of the font to preload. When undefined, default font (Roboto) is loaded
10830
+ * @returns A promise that resolves when the font is successfully preloaded, or rejects with an error if the font cannot be loaded.
10831
+ */
10832
+ export function preloadFont(fontUrl?: string): Promise<string>;
10833
+ }
10834
+
9997
10835
  declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style' {
9998
10836
  import { type Shading } from '@mappedin/react-sdk/geojson/src/types';
9999
10837
  type GeometryGroupStyle = {
10000
10838
  color: string;
10001
10839
  topColor?: string;
10002
10840
  opacity: number;
10841
+ height?: number;
10003
10842
  shading?: Shading;
10004
10843
  outline: boolean;
10005
10844
  texture?: string;
@@ -10010,6 +10849,7 @@ declare module '@mappedin/react-sdk/geojson/src/components/geometry-group-style'
10010
10849
  color: string;
10011
10850
  topColor?: string;
10012
10851
  opacity: number;
10852
+ height?: number;
10013
10853
  outline: boolean;
10014
10854
  texture?: string;
10015
10855
  topTexture?: string;
@@ -10156,68 +10996,6 @@ declare module '@mappedin/react-sdk/geojson/src/components/image' {
10156
10996
  }
10157
10997
  }
10158
10998
 
10159
- declare module '@mappedin/react-sdk/geojson/src/entities' {
10160
- export { updateInteractivity } from '@mappedin/react-sdk/geojson/src/entities/utils';
10161
- export { Geometry2D, Geometry2DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
10162
- export { Geometry3D, Geometry3DComponents, type PathMesh, type PatMeshContainer, type PathMaterial, } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
10163
- }
10164
-
10165
- declare module '@mappedin/react-sdk/geojson/src/components/style' {
10166
- import type { LineStyle } from '@mappedin/react-sdk/geojson/src/renderer';
10167
- export const DEFAULT_COLOR = "#ffffff";
10168
- export const DEFAULT_HEIGHT = 0.1;
10169
- /**
10170
- * Determines how a material is rendered, back face, front face or both (default)
10171
- */
10172
- export type MaterialSide = 'back' | 'front' | 'double';
10173
- type Style = {
10174
- color: string;
10175
- width: number;
10176
- opacity: number;
10177
- visible: boolean;
10178
- height: number;
10179
- altitude: number;
10180
- join: LineStyle['join'];
10181
- cap: LineStyle['cap'];
10182
- topColor?: string;
10183
- texture?: string;
10184
- topTexture?: string;
10185
- outline: boolean;
10186
- showImage: boolean;
10187
- showTextLabel: boolean;
10188
- flipImageToFaceCamera: boolean;
10189
- flipTextToFaceCamera: boolean;
10190
- url?: string;
10191
- side?: MaterialSide;
10192
- };
10193
- export class StyleComponent implements Style {
10194
- initialColor: string;
10195
- color: string;
10196
- topColor?: string;
10197
- topTexture?: string;
10198
- texture?: string;
10199
- hoverColor?: string;
10200
- dirty: boolean;
10201
- visible: boolean;
10202
- opacity: number;
10203
- width: number;
10204
- height: number;
10205
- initialHeight: number;
10206
- altitude: number;
10207
- join: LineStyle['join'];
10208
- cap: LineStyle['cap'];
10209
- outline: boolean;
10210
- showImage: boolean;
10211
- showTextLabel: boolean;
10212
- flipImageToFaceCamera: boolean;
10213
- flipTextToFaceCamera: boolean;
10214
- url?: string;
10215
- side: MaterialSide;
10216
- constructor(style?: Partial<Style>);
10217
- }
10218
- export {};
10219
- }
10220
-
10221
10999
  declare module '@mappedin/react-sdk/geojson/src/types/options' {
10222
11000
  import type { Position } from '@mappedin/react-sdk/geojson/src/types/geometry';
10223
11001
  import type { Map as MapLibreMap } from '@mappedin/react-sdk/packages/outdoor-context-v4';
@@ -10318,31 +11096,82 @@ declare module '@mappedin/react-sdk/packages/common/pubsub' {
10318
11096
  * };
10319
11097
  * map.on('click', handler);
10320
11098
  */
10321
- on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
10322
- data: null;
10323
- } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
11099
+ on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
11100
+ data: null;
11101
+ } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
11102
+ /**
11103
+ * Unsubscribe a function previously subscribed with {@link on}
11104
+ *
11105
+ * @param eventName An event name to which the provided function was previously
11106
+ * subscribed.
11107
+ * @param fn A function that was previously passed to {@link on}. The function must
11108
+ * have the same reference as the function that was subscribed.
11109
+ * @example
11110
+ * // Unsubscribe from the 'click' event
11111
+ * const handler = (event) => {
11112
+ * console.log('Map was clicked', event);
11113
+ * };
11114
+ * map.off('click', handler);
11115
+ */
11116
+ off<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
11117
+ data: null;
11118
+ } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
11119
+ /**
11120
+ * @private
11121
+ * @internal
11122
+ */
11123
+ destroy(): void;
11124
+ }
11125
+ }
11126
+
11127
+ declare module '@mappedin/react-sdk/geojson/src/services/renderer' {
11128
+ import type { Scene, Camera } from 'three';
11129
+ import { Color, WebGL1Renderer, WebGLRenderer } from 'three';
11130
+ export type TRendererOptions = {
11131
+ alpha: boolean;
11132
+ onWebGLRendererError: (e: Error) => void;
11133
+ xRayPath: boolean;
11134
+ };
11135
+ export class Renderer {
11136
+ backgroundAlpha: number;
11137
+ backgroundColor: Color;
11138
+ width: number;
11139
+ height: number;
11140
+ options: TRendererOptions;
11141
+ renderer?: WebGLRenderer | WebGL1Renderer;
11142
+ constructor(renderOptions: any, targetWebGLVersion?: number);
11143
+ /**
11144
+ * Dispose of the renderer and its buffers.
11145
+ */
11146
+ destroy(): void;
11147
+ /**
11148
+ * Re-render the scene, depending on which parts of the scene have been
11149
+ * invalidated.
11150
+ *
11151
+ * @method render
11152
+ * @param renderTarget {null or WebGLRenderTarget}
11153
+ * @param scene {Scene}
11154
+ * @param sceneCamera {Camera}
11155
+ */
11156
+ render(scene: Scene, sceneCamera: Camera): void;
11157
+ clear(): void;
10324
11158
  /**
10325
- * Unsubscribe a function previously subscribed with {@link on}
11159
+ * Set the size of the renderer, composer, and all its internal buffers.
10326
11160
  *
10327
- * @param eventName An event name to which the provided function was previously
10328
- * subscribed.
10329
- * @param fn A function that was previously passed to {@link on}. The function must
10330
- * have the same reference as the function that was subscribed.
10331
- * @example
10332
- * // Unsubscribe from the 'click' event
10333
- * const handler = (event) => {
10334
- * console.log('Map was clicked', event);
10335
- * };
10336
- * map.off('click', handler);
11161
+ * @method setBufferSize
11162
+ * @param width {number}
11163
+ * @param height {number}
10337
11164
  */
10338
- off<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
10339
- data: null;
10340
- } ? EVENT_PAYLOAD[EVENT_NAME]['data'] : EVENT_PAYLOAD[EVENT_NAME]) => void): void;
11165
+ setBufferSize(width: number, height: number): void;
10341
11166
  /**
10342
- * @private
10343
- * @internal
11167
+ * Set the color and opacity that will be drawn behind the scene.
11168
+ *
11169
+ * @method setBackgroundColor
11170
+ * @param color {Color}
11171
+ * @param alpha {number}
10344
11172
  */
10345
- destroy(): void;
11173
+ setBackgroundColor(color: any, alpha: any): void;
11174
+ domElement(): HTMLCanvasElement | undefined;
10346
11175
  }
10347
11176
  }
10348
11177
 
@@ -10350,34 +11179,16 @@ declare module '@mappedin/react-sdk/geojson/src/systems/interactions' {
10350
11179
  export { InteractionSystem } from '@mappedin/react-sdk/geojson/src/systems/interactions/system';
10351
11180
  }
10352
11181
 
10353
- declare module '@mappedin/react-sdk/geojson/src/systems/zoom-interpolation/zoom-interpolation' {
10354
- import { PubSub } from '@mappedin/react-sdk/packages/common/pubsub';
10355
- import LabelComponent from '@mappedin/react-sdk/geojson/src/components/label';
10356
- import type { MarkerComponent } from '@mappedin/react-sdk/geojson/src/components/marker';
10357
- import { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
10358
- type SomeEvent = {
10359
- 'invalidate:2d': undefined;
10360
- };
10361
- export class ZoomInterpolationSystem extends PubSub<SomeEvent, keyof SomeEvent> {
10362
- constructor();
10363
- interpolators: Map<any, any>;
10364
- addEntity3D(meshComponent: MeshComponent, interpolateProps: any): void;
10365
- addEntity2D(uiComponent: MarkerComponent | LabelComponent, interpolateProps: any): void;
10366
- addAny(id: string, interpolateFn: any): void;
10367
- update: (zoomLevel: number) => void;
10368
- destroy(): void;
10369
- }
10370
- export {};
10371
- }
10372
-
10373
11182
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimization/system' {
10374
11183
  import type { BufferGeometry } from 'three';
10375
11184
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10376
11185
  import { Geometry3D, Geometry3DObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
10377
- import { type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
11186
+ import { MeshComponent, type MeshComponentProperties } from '@mappedin/react-sdk/geojson/src/components/mesh';
11187
+ import { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
10378
11188
  import type { Feature, LineString, MultiPolygon, Point, Polygon } from 'geojson';
10379
11189
  import type { LineStyle, ModelProperties, ModelStyle, PaintStyle } from '@mappedin/react-sdk/geojson/src/types';
10380
11190
  import type { GLTFLoader } from 'three/addons/loaders/GLTFLoader.js';
11191
+ import type { ModelGeometry3D } from '@mappedin/react-sdk/geojson/src/entities';
10381
11192
  import { PubSub } from '@packages/internal/common';
10382
11193
  export class MeshCreationAndOptimizationSystem extends PubSub<{
10383
11194
  'model-loaded': void;
@@ -10387,8 +11198,8 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-creation-and-optimi
10387
11198
  loader?: GLTFLoader;
10388
11199
  constructor(state: RendererState, convertTo3DMapPosition: any);
10389
11200
  getGLTFLoader(): Promise<void>;
10390
- createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D;
10391
- createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): Geometry3D;
11201
+ createEntityFromFeature(id: string | number, feature: Feature<Polygon | LineString | MultiPolygon, MeshComponentProperties>, style?: LineStyle | PaintStyle): Geometry3D<MeshComponent, StyleComponent, import("../../components/interaction").InteractionComponent, "geometry">;
11202
+ createModelFromFeature(id: string | number, feature: Feature<Point, ModelProperties>, style?: ModelStyle): ModelGeometry3D;
10392
11203
  populateEntityMesh(entity: Geometry3D, geometry: BufferGeometry): void;
10393
11204
  populateModelGroup(entities: Set<string | number>, url: string, tree: any): Promise<Geometry3DObject3D>;
10394
11205
  populateEntityGroup(entities: Set<string | number>): Set<string | number>;
@@ -10472,9 +11283,9 @@ declare module '@mappedin/react-sdk/geojson/src/systems/2d-draw/system' {
10472
11283
  declare module '@mappedin/react-sdk/geojson/src/systems/draw/system' {
10473
11284
  import { PubSub } from '@packages/internal/common';
10474
11285
  import { MeshComponent } from '@mappedin/react-sdk/geojson/src/components/mesh';
10475
- import { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/style';
11286
+ import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/styles/style';
10476
11287
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10477
- import { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
11288
+ import type { InteractionComponent } from '@mappedin/react-sdk/geojson/src/components/interaction';
10478
11289
  import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
10479
11290
  export class DrawSystem extends PubSub<{
10480
11291
  'texture-loaded': void;
@@ -10521,7 +11332,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/render/system' {
10521
11332
  constructor(renderer: Renderer, state: RendererState, mode: RendererCore['mode'], scene: Scene, cameraObject: PerspectiveCamera, viewCamera: Camera, systems: Systems);
10522
11333
  twoDdirty: boolean;
10523
11334
  threeDdirty: boolean;
10524
- update: (sync?: boolean) => void;
11335
+ update: (sync?: boolean) => Promise<any>;
10525
11336
  destroy(): void;
10526
11337
  }
10527
11338
  }
@@ -10805,16 +11616,19 @@ declare module '@mappedin/react-sdk/geojson/src/systems/geometry-in-focus/system
10805
11616
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10806
11617
  import { type PerspectiveCamera } from 'three';
10807
11618
  export class GeometryInFocusSystem extends PubSub<{
10808
- 'geometry-in-focus': string | number | null;
11619
+ /**
11620
+ * Returns the list of entities that are likely in focus, sorted by the weight of the raycast.
11621
+ */
11622
+ 'geometry-in-focus': string[];
10809
11623
  }> {
10810
- #private;
10811
- cameraDirty: boolean;
10812
- focusablesDirty: boolean;
10813
- constructor(state: RendererState, camera: PerspectiveCamera);
10814
- resize(): void;
10815
- update: () => void;
10816
- updateRaf(): void;
10817
- destroy(): void;
11624
+ #private;
11625
+ cameraDirty: boolean;
11626
+ focusablesDirty: boolean;
11627
+ constructor(state: RendererState, camera: PerspectiveCamera);
11628
+ resize(): void;
11629
+ update: () => void;
11630
+ updateRaf(): void;
11631
+ destroy(): void;
10818
11632
  }
10819
11633
  }
10820
11634
 
@@ -10834,7 +11648,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/path' {
10834
11648
  }
10835
11649
 
10836
11650
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system' {
10837
- import { type Geometry3DTypes, type RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11651
+ import { type All3DTypes, type RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10838
11652
  /**
10839
11653
  * This system is responsible for updating the opacity of the mesh, which results in the mesh
10840
11654
  * being detached from the parent's optimized geometry group and rendered as a separate mesh.
@@ -10844,16 +11658,13 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-detachment/system'
10844
11658
  rendererState: RendererState;
10845
11659
  dirty: boolean;
10846
11660
  constructor(rendererState: RendererState);
10847
- updateOne(geometry: Geometry3DTypes | undefined): void;
11661
+ updateOne(geometry: All3DTypes | undefined): void;
10848
11662
  update(): void;
10849
11663
  }
10850
11664
  }
10851
11665
 
10852
11666
  declare module '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system' {
10853
- import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities';
10854
- import type { GeometryGroupObject3D } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
10855
- import type { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
10856
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11667
+ import type { EntityTypes, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10857
11668
  /**
10858
11669
  * Any physical changes to geometry should go in here. This includes height changes, etc.
10859
11670
  * This is to ensure that physical changes apply before any other systems need to do their work,
@@ -10866,7 +11677,7 @@ declare module '@mappedin/react-sdk/geojson/src/systems/mesh-modification/system
10866
11677
  rendererState: RendererState;
10867
11678
  dirty: boolean;
10868
11679
  constructor(rendererState: RendererState);
10869
- updateOne(entity: Geometry3D | GeometryGroupObject3D | GroupContainerObject3D | undefined): void;
11680
+ updateOne(entity?: EntityTypes): void;
10870
11681
  update(): void;
10871
11682
  cleanup(): void;
10872
11683
  }
@@ -10885,14 +11696,58 @@ declare module '@mappedin/react-sdk/geojson/src/systems/pre-render/system' {
10885
11696
  }
10886
11697
  }
10887
11698
 
10888
- declare module '@mappedin/react-sdk/geojson/src/systems/polygon-label/system' {
10889
- import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10890
- import type { RendererCore } from '@mappedin/react-sdk/geojson/src';
10891
- export const DEFAULT_VERTICAL_OFFSET = 0.01;
10892
- export class PolygonLabelSystem {
10893
- constructor(rendererState: RendererState, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']);
10894
- update(cameraRotationRadians: number): void;
11699
+ declare module '@mappedin/react-sdk/geojson/src/components/styles/style' {
11700
+ import type { LineStyle } from '@mappedin/react-sdk/geojson/src/renderer';
11701
+ export const DEFAULT_COLOR = "#ffffff";
11702
+ export const DEFAULT_HEIGHT = 0.1;
11703
+ /**
11704
+ * Determines how a material is rendered, back face, front face or both (default)
11705
+ */
11706
+ export type MaterialSide = 'back' | 'front' | 'double';
11707
+ type Style = {
11708
+ color: string;
11709
+ width: number;
11710
+ opacity: number;
11711
+ visible: boolean;
11712
+ height: number;
11713
+ altitude: number;
11714
+ join: LineStyle['join'];
11715
+ cap: LineStyle['cap'];
11716
+ topColor?: string;
11717
+ texture?: string;
11718
+ topTexture?: string;
11719
+ outline: boolean;
11720
+ showImage: boolean;
11721
+ flipImageToFaceCamera: boolean;
11722
+ url?: string;
11723
+ side?: MaterialSide;
11724
+ renderOrder?: number;
11725
+ };
11726
+ export class StyleComponent implements Style {
11727
+ initialColor: string;
11728
+ color: string;
11729
+ topColor?: string;
11730
+ topTexture?: string;
11731
+ texture?: string;
11732
+ hoverColor?: string;
11733
+ dirty: boolean;
11734
+ visible: boolean;
11735
+ opacity: number;
11736
+ width: number;
11737
+ height: number;
11738
+ initialHeight: number;
11739
+ altitude: number;
11740
+ join: LineStyle['join'];
11741
+ cap: LineStyle['cap'];
11742
+ outline: boolean;
11743
+ showImage: boolean;
11744
+ flipImageToFaceCamera: boolean;
11745
+ url?: string;
11746
+ side: MaterialSide;
11747
+ renderOrder: number;
11748
+ constructor(style?: Partial<Style>);
10895
11749
  }
11750
+ export {};
10896
11751
  }
10897
11752
 
10898
11753
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src' {
@@ -10987,6 +11842,17 @@ declare module '@mappedin/react-sdk/geojson/src/utils/tranform-request' {
10987
11842
  };
10988
11843
  }
10989
11844
 
11845
+ declare module '@mappedin/react-sdk/geojson/src/utils/math' {
11846
+ export function normalizeAngle(angle: number): number;
11847
+ }
11848
+
11849
+ declare module '@mappedin/react-sdk/geojson/src/entities' {
11850
+ export { updateInteractivity } from '@mappedin/react-sdk/geojson/src/entities/utils';
11851
+ export { Geometry2D, Geometry2DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
11852
+ export { Geometry3D, Geometry3DComponents } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
11853
+ export type { PathMesh, PatMeshContainer, PathMaterial, Geometry3DTypes, ImageGeometry3D, TextGeometry3D, ModelGeometry3D, CustomGeometry3D, MeshGeometry3D, } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
11854
+ }
11855
+
10990
11856
  declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
10991
11857
  import type { RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
10992
11858
  export type GLTFExportOptions = {
@@ -11017,6 +11883,155 @@ declare module '@mappedin/react-sdk/geojson/src/systems/exporter/exporter' {
11017
11883
  }
11018
11884
  }
11019
11885
 
11886
+ declare module '@mappedin/react-sdk/geojson/src/components/styles/text-style' {
11887
+ /**
11888
+ * avoid storying default values on the text style to save space
11889
+ */
11890
+ export class Text3DStyleComponent implements Partial<Text3DStyle> {
11891
+ visible?: boolean;
11892
+ altitude?: number;
11893
+ color?: string;
11894
+ dirty: boolean;
11895
+ maxWidth?: number;
11896
+ maxHeight?: number;
11897
+ hoverByPolygon?: boolean;
11898
+ flipToFaceCamera?: boolean | undefined;
11899
+ font?: string;
11900
+ fillOpacity?: number;
11901
+ fontSize?: number;
11902
+ margin?: number;
11903
+ outlineWidth?: number;
11904
+ outlineBlur?: number | string;
11905
+ outlineOffsetX?: number;
11906
+ strokeColor?: string;
11907
+ strokeOpacity?: number;
11908
+ strokeWidth?: number;
11909
+ hoverColor?: string | undefined;
11910
+ outlineOffsetY?: number;
11911
+ outlineColor?: string;
11912
+ outlineOpacity?: number;
11913
+ constructor(initialState?: Partial<Text3DStyle>);
11914
+ /**
11915
+ * Put together a json ignore all the undefined fields.
11916
+ * This is helpful when we Object.assign(instance, json) to update the instance.
11917
+ */
11918
+ getState(includeDirty?: boolean): Partial<Text3DStyle>;
11919
+ }
11920
+ /**
11921
+ * Not directly storing default values on the text style to save space
11922
+ * TODO: lookign at text style spec from maplibre. we can also support:
11923
+ * letterSpacing?: number;
11924
+ * lineHeight: number;
11925
+ * anchor: number; => .anchorX & .anchorY
11926
+ * justify: nubmer; => .textAlign
11927
+ * tarnsform: string;
11928
+ * offset: number;
11929
+ */
11930
+ export const DEFAULT_TEXT_STYLE: Readonly<Text3DStyle>;
11931
+ export type Text3DStyle = {
11932
+ /**
11933
+ * Controls the visibility of the text element.
11934
+ * @default true
11935
+ */
11936
+ visible: boolean;
11937
+ /**
11938
+ * The color of the text. Will change to hoverColor when the associated polygon is hovered.
11939
+ * Accepts any CSS color string.
11940
+ * @default 'black'
11941
+ */
11942
+ color: string;
11943
+ /**
11944
+ * When true, the text will flip to face the camera while maintaining its position.
11945
+ * @default true
11946
+ */
11947
+ flipToFaceCamera: boolean;
11948
+ /**
11949
+ * URL to a custom font file (.ttf, .otf, .woff).
11950
+ * Falls back to Roboto if undefined.
11951
+ */
11952
+ font: string | undefined;
11953
+ /**
11954
+ * The size of the text in meters. Will be automatically adjusted if it exceeds
11955
+ * the text area bounds.
11956
+ */
11957
+ fontSize: number;
11958
+ /**
11959
+ * Padding between the text and its bounding box, in meters.
11960
+ * Can be specified as either:
11961
+ * - A single number for uniform padding on all sides
11962
+ * - An array of 4 numbers [top, right, bottom, left] for individual side padding
11963
+ * @default [0.2, 1, 0.2, 1.5]
11964
+ */
11965
+ margin: number | [number, number, number, number];
11966
+ /**
11967
+ * Color of the text outline.
11968
+ * Accepts any CSS color string.
11969
+ * @default 'black'
11970
+ */
11971
+ outlineColor: string;
11972
+ /**
11973
+ * Opacity of the text outline.
11974
+ * Accepts values between 0 and 1.
11975
+ * @default 1
11976
+ */
11977
+ outlineOpacity: number;
11978
+ /**
11979
+ * Blur radius for the text outline.
11980
+ * Can be a number in pixels or a string with units.
11981
+ */
11982
+ outlineBlur: number | string;
11983
+ /**
11984
+ * Width of the text outline effect in pixels.
11985
+ */
11986
+ outlineWidth: number;
11987
+ /**
11988
+ * Horizontal offset of the outline effect from the text, in pixels.
11989
+ */
11990
+ outlineOffsetX: number;
11991
+ /**
11992
+ * Vertical offset of the outline effect from the text, in pixels.
11993
+ */
11994
+ outlineOffsetY: number;
11995
+ /**
11996
+ * Width of the inner stroke of each text glyph.
11997
+ * @default 0
11998
+ */
11999
+ strokeWidth: number;
12000
+ /**
12001
+ * Maximum width constraint for the text area in meters.
12002
+ * Overrides default text field constraints when set.
12003
+ */
12004
+ maxWidth: number | undefined;
12005
+ /**
12006
+ * Maximum height constraint for the text area in meters.
12007
+ * Overrides default text field constraints when set.
12008
+ */
12009
+ maxHeight: number | undefined;
12010
+ /**
12011
+ * Opacity of the text stroke when strokeWidth > 0.
12012
+ * @default 1
12013
+ */
12014
+ strokeOpacity: number;
12015
+ /**
12016
+ * Color of the text stroke when strokeWidth > 0.
12017
+ * Accepts any CSS color string.
12018
+ * @default 'black'
12019
+ */
12020
+ strokeColor: string;
12021
+ /**
12022
+ * Opacity of the text fill, independent of stroke and outline opacity.
12023
+ * Set to 0 to show only stroke/outline.
12024
+ * Accepts values between 0 and 1.
12025
+ */
12026
+ fillOpacity: number;
12027
+ /**
12028
+ * Color to display when text is hovered.
12029
+ * Falls back to global hover color if undefined.
12030
+ */
12031
+ hoverColor: string | undefined;
12032
+ };
12033
+ }
12034
+
11020
12035
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
11021
12036
  import type { Polygon, MultiPolygon, FloorProperties as MVFFloor, ParsedMVF, Feature } from '@mappedin/mvf';
11022
12037
  import type { RendererCore } from '@mappedin/core-sdk';
@@ -11041,6 +12056,8 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object' {
11041
12056
  floorStackId: string;
11042
12057
  constructor(parentId: string, floor: MVFFloor, renderer: RendererCore, multiFloorView: Required<TShow3DMapOptions['multiFloorView']>, options: TShow3DMapOptions, mvf?: ParsedMVF, styleMap?: AggregatedStyleMap);
11043
12058
  load: () => this;
12059
+ get visible(): boolean;
12060
+ setVisible(visible: boolean): void;
11044
12061
  }
11045
12062
  export {};
11046
12063
  }
@@ -11053,7 +12070,7 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
11053
12070
  import type { LabelState, MarkerState, GeometryState, CollisionRankingTier, LineStyle, PaintStyle } from '@mappedin/core-sdk';
11054
12071
  import { type TGeometryState, type TLabelState, type TDirectionInstructionAction, type TShow3DMapOptions, type Label, type Marker, type Model } from '@mappedin/react-sdk/mappedin-js/src';
11055
12072
  import type { TDoorsState, TMarkerState, TWallsState } from '@mappedin/react-sdk/mappedin-js/src/types';
11056
- import type { Image, Shape } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
12073
+ import type { Image, Shape, Text3D } from '@mappedin/react-sdk/mappedin-js/src/map-view-objects';
11057
12074
  import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
11058
12075
  import type { Tween } from '@tweenjs/tween.js';
11059
12076
  export function convertCoordinateToPosition(coord: Coordinate): Position;
@@ -11082,32 +12099,41 @@ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/utils' {
11082
12099
  };
11083
12100
  export function groupGeometryByStyle(features: Feature<LineString | Polygon | Point, SpaceProperties | ObstructionProperties>[], styleMap: AggregatedStyleMap): Map<WithId<PolygonStyle> | WithId<LineStringStyle> | WithId<PointStyle>, Feature<Point | LineString | Polygon, WithPolygonImage<SpaceProperties> | WithPolygonImage<ObstructionProperties>>[]>;
11084
12101
  export function translateToCoreStyle(style: PolygonStyle | LineStringStyle, userOptions?: TShow3DMapOptions): PaintStyle | LineStyle;
11085
- export const getTargetID: <T extends Space | Shape | MapObject | Label | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
12102
+ export const getTargetID: <T extends Space | Shape | MapObject | Label | Text3D | Marker | Model | Image | string>(target: T, api: GeoJsonApi) => string | undefined;
11086
12103
  export function tweenToPromise(tween: Tween): Promise<void>;
12104
+ export function unique<T>(array: T[]): T[];
11087
12105
  }
11088
12106
 
11089
12107
  declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-stack-object' {
11090
12108
  import type { RendererCore } from '@mappedin/core-sdk';
11091
- import type { FloorId, FloorStack as MVFFloorStack } from '@mappedin/mvf';
12109
+ import type { FloorId, FloorStack as MVFFloorStack, Facade as MVFFacade } from '@mappedin/mvf';
11092
12110
  import type { FloorObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/floor-object';
11093
- export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors'> {
12111
+ export class FloorStackObject implements Omit<MVFFloorStack, 'maps' | 'floors' | 'defaultFloor'> {
12112
+ #private;
11094
12113
  id: MVFFloorStack['id'];
11095
12114
  externalId: MVFFloorStack['externalId'];
11096
12115
  name: MVFFloorStack['name'];
11097
12116
  type: MVFFloorStack['type'];
11098
12117
  floorIds: FloorId[];
12118
+ defaultFloorId?: MVFFloorStack['defaultFloor'];
11099
12119
  /** Sorted floor objects by elevation */
11100
12120
  floorObjects: FloorObject[];
11101
12121
  floorObjectsByElevation: Map<number, FloorObject>;
11102
12122
  metadata?: MVFFloorStack['metadata'];
11103
12123
  footprint?: MVFFloorStack['footprint'];
11104
12124
  containerId: string;
11105
- constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore);
12125
+ facade?: MVFFacade;
12126
+ constructor(floorStack: MVFFloorStack, parentId: string, renderer: RendererCore, facade?: MVFFacade);
11106
12127
  get defaultFloor(): FloorObject;
11107
12128
  addFloor(floor: FloorObject): void;
12129
+ setFacadeVisible(visible: boolean): void;
11108
12130
  }
11109
12131
  }
11110
12132
 
12133
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus' {
12134
+ export { DynamicFocus } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus/dynamic-focus';
12135
+ }
12136
+
11111
12137
  declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-processor' {
11112
12138
  import { Rectangle } from '@packages/internal/quad-tree';
11113
12139
  export type TSerializedCollider = {
@@ -11137,42 +12163,6 @@ declare module '@mappedin/react-sdk/geojson/src/systems/collisions/collider-proc
11137
12163
  };
11138
12164
  }
11139
12165
 
11140
- declare module '@mappedin/react-sdk/geojson/src/entities/utils' {
11141
- import type { CollisionRankingTier, GeometryState, LabelState, RendererCore } from '@mappedin/react-sdk/geojson/src';
11142
- import { type MarkerState } from '@mappedin/react-sdk/geojson/src/components/marker';
11143
- import type { PathUpdateState } from '@mappedin/react-sdk/geojson/src/components/path';
11144
- import type { Geometry3DTypes, Position, RendererState } from '@mappedin/react-sdk/geojson/src/renderer';
11145
- import { GeometryGroupObject3D, type GeometryGroupState } from '@mappedin/react-sdk/geojson/src/entities/geometry-group';
11146
- import { GroupContainerObject3D } from '@mappedin/react-sdk/geojson/src/entities/group-container';
11147
- import { Geometry3D } from '@mappedin/react-sdk/geojson/src/entities/geometry3d';
11148
- import { Geometry2D } from '@mappedin/react-sdk/geojson/src/entities/geometry2d';
11149
- import type { StyleComponent } from '@mappedin/react-sdk/geojson/src/components/style';
11150
- import type { GeometryGroupStyleComponent } from '@mappedin/react-sdk/geojson/src/components/geometry-group-style';
11151
- export function updateInteractivity(entity: Geometry3DTypes | Geometry2D, update: boolean | undefined, state: RendererState): boolean;
11152
- export function updateGroupColor(entity: GeometryGroupObject3D, state: RendererState, update: Partial<Pick<GeometryGroupState, 'color' | 'topColor'>>): boolean | undefined;
11153
- export function updateGroupShading(entity: GeometryGroupObject3D, update?: GeometryGroupState['shading']): boolean;
11154
- export function updateImageProps(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
11155
- export function updateHeight(entity: Geometry3D | GeometryGroupObject3D, state: RendererState, update?: number): boolean;
11156
- export function updateColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Partial<GeometryState>): void;
11157
- export function updatePosition(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Position | undefined, convertTo3DMapPosition: RendererCore['convertTo3DMapPosition']): void;
11158
- export function updateParent(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: GroupContainerObject3D | undefined): boolean;
11159
- export function updateEnabled(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: boolean | undefined): void;
11160
- export function updateMarker(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<MarkerState> | undefined, state: RendererState): boolean;
11161
- export function updateRank(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: CollisionRankingTier | undefined): boolean;
11162
- export function updateLabel(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update: Partial<LabelState> | undefined, state: RendererState): void;
11163
- export function updateHoverColor(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: string): void;
11164
- export function updateFlipImageToFaceCamera(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): void;
11165
- export function updateVisibility(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: boolean): boolean;
11166
- export function updateOpacity(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, state: RendererState, update?: number): void;
11167
- export function updateGroupTexture(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: Pick<GeometryGroupStyleComponent, 'texture' | 'topTexture'>): void;
11168
- export function updateIndividualGeometryTexture(entity: Geometry3D, update?: Pick<StyleComponent, 'texture' | 'topTexture'>): boolean;
11169
- export function updateIndividualGeometryOpacity(entity: Geometry3D, update?: number): boolean;
11170
- export function updateAltitude(entity: Geometry3D | Geometry2D | GeometryGroupObject3D | GroupContainerObject3D, update?: number): boolean;
11171
- export function updateOutline(entity: Geometry3DTypes, update?: boolean): boolean;
11172
- export function handlePathUpdate(geometry: Geometry3D, update: PathUpdateState): void;
11173
- export function pickPathOptions(update: PathUpdateState): Partial<PathUpdateState>;
11174
- }
11175
-
11176
12166
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/system' {
11177
12167
  import type { PerspectiveCamera, Vector3, Object3D, Mesh } from 'three';
11178
12168
  import { Raycaster } from 'three';
@@ -19755,11 +20745,10 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator' {
19755
20745
 
19756
20746
  declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/navigator' {
19757
20747
  import type { Position, Feature, MultiPolygon, Polygon } from 'geojson';
19758
- import type { NodeCollection, NodeFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
20748
+ import type { NodeCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/node';
19759
20749
  import type { ObstructionCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/obstruction';
19760
20750
  import type { SpaceCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/space';
19761
20751
  import type { DirectionsCollection } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/directions';
19762
- import type { CoordinateFeature } from '@mappedin/react-sdk/packages/geojson-navigator/src/types/coordinate';
19763
20752
  /**
19764
20753
  * Options for simplifying directions in the Navigator class.
19765
20754
  */
@@ -19803,7 +20792,6 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/navigator/nav
19803
20792
  geojsonCollection?: ObstructionCollection | SpaceCollection;
19804
20793
  groupBy?: string;
19805
20794
  });
19806
- findNearestNode: (feature: CoordinateFeature) => NodeFeature | null;
19807
20795
  /**
19808
20796
  * Calculates and returns a set of directions from origin nodes to destination nodes, including detailed properties.
19809
20797
  *
@@ -19952,6 +20940,77 @@ declare module '@mappedin/react-sdk/packages/geojson-navigator/src/types/coordin
19952
20940
  export type CoordinateFeature = Feature<Point, CoordinateProperties>;
19953
20941
  }
19954
20942
 
20943
+ declare module '@mappedin/react-sdk/mappedin-js/src/api-geojson/dynamic-focus/dynamic-focus' {
20944
+ import { type RendererCore } from '@mappedin/core-sdk';
20945
+ import { PubSub } from '@packages/internal/common';
20946
+ import type { Floor, FloorStack } from '@mappedin/react-sdk/mappedin-js/src/map-data-objects';
20947
+ import type { GeoJsonApi } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/api';
20948
+ import type { GeojsonApiMapObject } from '@mappedin/react-sdk/mappedin-js/src/api-geojson/map-object';
20949
+ /**
20950
+ * @experimental
20951
+ * @internal
20952
+ */
20953
+ export type TDynamicFocusEvents = {
20954
+ 'focus-change': {
20955
+ facades: string[];
20956
+ spaces: string[];
20957
+ };
20958
+ };
20959
+ /**
20960
+ * @experimental
20961
+ * @internal
20962
+ */
20963
+ export type TDynamicFocusOptions = {
20964
+ /**
20965
+ * The minimum zoom level at which Dynamic Focus will detect a Facade and reveal the interior spaces.
20966
+ * @default 17
20967
+ */
20968
+ minZoomLevel?: number;
20969
+ };
20970
+ /**
20971
+ * @experimental
20972
+ * @internal
20973
+ */
20974
+ export class DynamicFocus extends PubSub<TDynamicFocusEvents> {
20975
+ #private;
20976
+ /** @internal */
20977
+ constructor(core: RendererCore, geoJSONApi: GeoJsonApi, { currentMapGetter }: {
20978
+ currentMapGetter: CurrentMapGetter;
20979
+ });
20980
+ /**
20981
+ * @experimental
20982
+ * Enables Dynamic Focus and allows the camera to automatically set the floor stack when a facade is hovered.
20983
+ */
20984
+ enable(options?: TDynamicFocusOptions): void;
20985
+ /**
20986
+ * @experimental
20987
+ * Disables Dynamic Focus and prevents the camera from automatically setting the floor stack when a facade is hovered.
20988
+ */
20989
+ disable(): void;
20990
+ /**
20991
+ * @experimental
20992
+ * Returns the enabled state of Dynamic Focus.
20993
+ */
20994
+ get enabled(): boolean;
20995
+ /**
20996
+ * @experimental
20997
+ * Sets the default floor for a floor stack. This is the floor that will be shown when the floor stack is in focus.
20998
+ * See {@link resetDefaultFloorForStack} to reset the default floor.
20999
+ * @param floorStack - The floor stack to set the default floor for.
21000
+ * @param floor - The floor to set as the default floor.
21001
+ */
21002
+ setDefaultFloorForStack(floorStack: FloorStack, floor: Floor): void;
21003
+ /**
21004
+ * @experimental
21005
+ * Resets the default floor for a floor stack to it's initial value.
21006
+ * @param floorStack - The floor stack to reset the default floor for.
21007
+ */
21008
+ resetDefaultFloorForStack(floorStack: FloorStack): void;
21009
+ }
21010
+ type CurrentMapGetter = () => GeojsonApiMapObject | undefined;
21011
+ export {};
21012
+ }
21013
+
19955
21014
  declare module '@mappedin/react-sdk/geojson/src/systems/interactions/tap-controller' {
19956
21015
  export enum TapType {
19957
21016
  onefinger = 0,