@geolibre/core 3.4.0 → 3.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,7 +1,6 @@
1
- import { $ as collectTransitiveJoinSourceIds, $n as LegendCustomEntry, $r as SQL_QUERY_SOURCE_KIND, $t as CollaborationParticipant, A as normalizeMapViewState, Ai as scrubPrintLayoutForRemovedLayers, An as IndicatorAggregation, Ar as PopupFieldConfig, At as getActiveBodyRadiusRatio, B as normalizeWidgets, Bi as CesiumBasemapImagery, Bn as LayerGroup, Br as ProjectBookmark, Bt as AppCapabilities, C as isSessionOnlyLayer, Ci as PrintLayoutLegendEntry, Cn as EditorTrackingConfig, Cr as NonGeographicCoordinates, Ct as PLANET_SWITCHER_OPTIONS, D as normalizeDashboardColumns, Di as normalizePrintLayoutConfig, Dn as GeoLibreProject, Dr as ParticipantIdentity, Dt as bodyLengthToEarth, E as normalizeBookmarks, Ei as isDefaultPrintLayout, En as GeoLibreLayer, Er as PROTOMAPS_BASEMAPS, Et as PlanetaryBasemapSectionId, F as normalizeProcessingHistory, Fi as MultiPolygon, Fn as LabelStyle, Fr as ProcessingModelStep, Ft as getPlanetaryBasemapById, G as serializeProject, Gn as LayerMetadataLink, Gr as ProjectPluginState, Gt as AttributeFormValueMapEntry, H as portableWmsTileUrl, Hi as basemapToCesiumImagery, Hn as LayerJoinStats, Hr as ProjectComment, Ht as AppRole, I as normalizeProjectComments, Ii as Point, In as LabelTransform, Ir as ProcessingRerunRequest, It as getPlanetaryBasemapByStyleUrl, J as storyMapHasContent, Jn as LayerQuickFilter, Jr as QuickFilterDateKind, Jt as BLEND_MODES, K as serializeProjectWithLayerCache, Kn as LayerMetadataTemporalExtent, Kr as ProjectPreferences, Kt as AttributeFormWidget, L as normalizeProjectInteraction, Li as Polygon, Ln as LayerCapabilities, Lr as ProcessingRun, Lt as meanRadiusMeters, M as normalizeModels, Mi as FeatureCollection, Mn as LAYER_TYPES, Mr as PopupFieldKind, Mt as getActiveMeanRadiusMeters, N as normalizeObiaWorkbench, Ni as Geometry, Nn as LabelAnchor, Nr as ProcessingModel, Nt as getActiveSemiMajorAxisMeters, O as normalizeLegendConfig, Oi as printLayoutConfigsEqual, On as GeocodingPreferences, Or as PointRenderer, Ot as earthAreaToBody, P as normalizePrimaryRenderer, Pi as LineString, Pn as LabelDedupe, Pr as ProcessingModelGraph, Pt as getEllipsoid, Q as cascadeLayerJoinRefresh, Qn as LegendConfig, Qr as RuntimeEnvironmentVariable, Qt as CollaborationMode, R as normalizeSecondaryMapViews, Ri as CESIUM_BASEMAPS, Rn as LayerConnection, Rr as ProcessingRunKind, Rt as setActiveEllipsoidId, S as isAllowedPluginManifestUrl, Si as PrintLayoutCorner, Sn as DiagramType, Sr as NETCDF_IMAGE_SOURCE_KIND, St as PLANETARY_BASEMAP_SENTINEL_PREFIX, T as normalizeBookmarkGroups, Ti as createDefaultPrintLayout, Tn as FillPattern, Tr as PROJECT_VERSION, Tt as PlanetaryBasemapGroup, U as projectFromStore, Ui as normalizeCesiumBasemap, Un as LayerLibraryEntry, Ur as ProjectInteraction, Ut as AttributeFormConfig, V as parseProject, Vi as availableCesiumBasemap, Vn as LayerJoin, Vr as ProjectBookmarkGroup, Vt as AppPrivilege, W as resolveMapGrid, Wi as sameCesiumImagery, Wn as LayerMetadataContact, Wr as ProjectPluginControlPosition, Wt as AttributeFormFieldConfig, X as applyJoinsToLayer, Xn as LayerType, Xr as QuickFilterTextOperator, Xt as CollabInvite, Y as ApplyLayerJoinsResult, Yn as LayerStyle, Yr as QuickFilterKind, Yt as BlendMode, Z as applyLayerJoins, Zn as LayerVirtualField, Zr as RecentProjectEntry, Zt as CollaborationChatMessage, _ as createEmptyProject, _i as isDuckDBQueryLayer, _n as DashboardWidget, _r as ModelGraphNode, _t as ELLIPSOIDS, a as ProjectDiffOptions, ai as StoryChapterLocation, an as CommentReply, ar as MAX_DASHBOARD_COLUMNS, at as batchDecodePolylines, b as detachProjectCopy, bi as DEFAULT_PRINT_LAYOUT, bn as DiagramField, br as ModelPortKind, bt as PLANETARY_BASEMAPS, c as diffProjects, ci as StoryMap, cn as DEFAULT_DASHBOARD_COLUMNS, cr as MIN_DASHBOARD_COLUMNS, ct as encodePolyline, d as CreateProjectOptions, di as StyleLibraryEntry, dn as DEFAULT_MAP_GRID_LAYOUT, dr as MapProjection, dt as unescapePolyline, ei as SecondaryMapView, en as CollaborationPresence, er as LegendCustomItem, et as layerJoinKey, f as DEFAULT_PROJECT_NAME, fi as StyleLibraryEntryKind, fn as DEFAULT_PRIMARY_RENDERER, fr as MapRendererKind, ft as geojsonHasZCoordinates, g as createDefaultMapView, gi as detectNonGeographicCoordinates, gn as DUCKDB_VECTOR_ROUTE_BYTES, gr as ModelGraphEdge, gt as EARTH_MEAN_RADIUS_METERS, h as applyProjectToStore, hi as VectorStyleStop, hn as DUCKDB_VECTOR_FEATURE_WARN_COUNT, hr as MarkerShape, ht as DEFAULT_ELLIPSOID_ID, i as ProjectDiff, ii as StoryChapterAnimation, in as CommentAuthor, ir as LineDecoration, it as PolylineDecodeResult, j as normalizeModelGraph, ji as Feature, jn as LARGE_VECTOR_FEATURE_THRESHOLD, jr as PopupFieldFormat, jt as getActiveEllipsoid, k as normalizeMapLayout, ki as scrubPrintLayoutForLayers, kn as GeometryGeneratorType, kr as PopupDateFormat, kt as earthLengthToBody, l as jsonValuesEqual, li as StorySlideMode, ln as DEFAULT_LAYER_STYLE, lr as MapGridLayout, lt as geoJSONToPolylineStr, m as ProjectLayerSerializationCache, mi as VectorStyleMode, mn as DEFAULT_STORY_MAP, mr as MapViewState, mt as transformGeojsonElevation, n as LayerDiff, ni as StoryChapter, nn as CollaborationState, nr as LegendItemOverride, nt as stripJoinFields, o as ProjectValueChange, oi as StoryInsetPosition, on as DEFAULT_BASEMAP, or as MAX_MAP_GRID_DIM, ot as decodePolyline, p as MAX_PROJECT_BOOKMARKS, pi as VectorRule, pn as DEFAULT_PROJECT_PREFERENCES, pr as MapScaleUnit, pt as horizontalBbox, q as serializeProjectWithLayerCacheAsync, qn as LayerPopupConfig, qr as ProjectTemplateEntry, qt as BLANK_BASEMAP, r as PluginDiff, ri as StoryChapterAlignment, rn as CommentAnchor, rr as LegendPanelPosition, rt as PolylineBatchOptions, s as diffFeatureCollections, si as StoryLayerOpacityChange, sn as DEFAULT_BLEND_MODE, sr as MAX_PROCESSING_HISTORY, st as decodePolylineDetailed, t as FeatureChangeSummary, ti as StoryActiveSlideMode, tn as CollaborationRole, tr as LegendCustomShape, tt as reapplyLayerJoins, u as previewValue, ui as StrokeWidthUnit, un as DEFAULT_LEGEND_CONFIG, ur as MapPreferences, ut as polylineStrToGeoJSON, v as createProjectLayerSerializationCache, vi as shouldUseTiledRendering, vn as DashboardWidgetAggregation, vr as ModelGraphNodeKind, vt as Ellipsoid, w as normalizeBlankBackgroundColor, wi as PrintLayoutPageFilter, wn as FieldVisibility, wr as OPENFREEMAP_BASEMAPS, wt as PlanetaryBasemap, x as hydrateProjectLayer, xi as PrintLayoutConfig, xn as DiagramSizeMode, xr as ModelToolProvider, xt as PLANETARY_BASEMAP_GROUPS, y as createProjectTemplate, yi as styleValue, yn as DashboardWidgetType, yr as ModelGraphPort, yt as EllipsoidId, z as normalizeStoryMap, zi as CesiumBasemapId, zn as LayerDescriptiveMetadata, zr as ProcessingRunStatus, zt as AddTileLayerOptions } from "./project-diff-BD23T4xv.mjs";
1
+ import { $ as collectTransitiveJoinSourceIds, $n as LegendConfig, $r as RecentProjectEntry, $t as CollaborationParticipant, A as normalizeMapViewState, Ai as printLayoutConfigsEqual, An as GeometryGeneratorType, Ar as PopupDateFormat, At as getActiveBodyRadiusRatio, B as normalizeWidgets, Bi as FeatureCollection, Bn as LayerDescriptiveMetadata, Br as ProcessingRunStatus, Bt as AppCapabilities, C as isSessionOnlyLayer, Ci as PrintLayoutConfig, Cn as EditorTrackingConfig, Cr as NETCDF_IMAGE_SOURCE_KIND, Ct as PLANET_SWITCHER_OPTIONS, D as normalizeDashboardColumns, Di as createDefaultPrintLayout, Dn as GeoLibreProject, Dr as PROTOMAPS_BASEMAPS, Dt as bodyLengthToEarth, E as normalizeBookmarks, Ei as PrintLayoutPageFilter, En as GeoLibreLayer, Er as PROJECT_VERSION, Et as PlanetaryBasemapSectionId, F as normalizeProcessingHistory, Fi as computeGeoArrowBBox, Fn as LabelDedupe, Fr as ProcessingModelGraph, Ft as getPlanetaryBasemapById, G as serializeProject, Gi as Polygon, Gn as LayerMetadataContact, Gr as ProjectInteraction, Gt as AttributeFormValueMapEntry, H as portableWmsTileUrl, Hi as LineString, Hn as LayerJoin, Hr as ProjectBookmarkGroup, Ht as AppRole, I as normalizeProjectComments, Ii as featureCollectionToGeoArrow, In as LabelStyle, Ir as ProcessingModelStep, It as getPlanetaryBasemapByStyleUrl, J as storyMapHasContent, Ji as CesiumBasemapImagery, Jn as LayerPopupConfig, Jr as ProjectPreferences, Jt as BLEND_MODES, K as serializeProjectWithLayerCache, Ki as CESIUM_BASEMAPS, Kn as LayerMetadataLink, Kr as ProjectPluginControlPosition, Kt as AttributeFormWidget, L as normalizeProjectInteraction, Li as geoArrowToFeatureCollection, Ln as LabelTransform, Lr as ProcessingRerunRequest, Lt as meanRadiusMeters, M as normalizeModels, Mi as scrubPrintLayoutForRemovedLayers, Mn as LARGE_VECTOR_FEATURE_THRESHOLD, Mr as PopupFieldFormat, Mt as getActiveMeanRadiusMeters, N as normalizeObiaWorkbench, Ni as GeoArrowBatch, Nn as LAYER_TYPES, Nr as PopupFieldKind, Nt as getActiveSemiMajorAxisMeters, O as normalizeLegendConfig, Oi as isDefaultPrintLayout, On as GeocodingLocator, Or as ParticipantIdentity, Ot as earthAreaToBody, P as normalizePrimaryRenderer, Pi as GeoArrowGeometryType, Pn as LabelAnchor, Pr as ProcessingModel, Pt as getEllipsoid, Q as cascadeLayerJoinRefresh, Qi as sameCesiumImagery, Qn as LayerVirtualField, Qr as QuickFilterTextOperator, Qt as CollaborationMode, R as normalizeSecondaryMapViews, Ri as isGeoArrowBatch, Rn as LayerCapabilities, Rr as ProcessingRun, Rt as setActiveEllipsoidId, S as isAllowedPluginManifestUrl, Si as DEFAULT_PRINT_LAYOUT, Sn as DiagramType, Sr as ModelToolProvider, St as PLANETARY_BASEMAP_SENTINEL_PREFIX, T as normalizeBookmarkGroups, Ti as PrintLayoutLegendEntry, Tn as FillPattern, Tr as OPENFREEMAP_BASEMAPS, Tt as PlanetaryBasemapGroup, U as projectFromStore, Ui as MultiPolygon, Un as LayerJoinStats, Ur as ProjectComment, Ut as AttributeFormConfig, V as parseProject, Vi as Geometry, Vn as LayerGroup, Vr as ProjectBookmark, Vt as AppPrivilege, W as resolveMapGrid, Wi as Point, Wn as LayerLibraryEntry, Wr as ProjectControlSetting, Wt as AttributeFormFieldConfig, X as applyJoinsToLayer, Xi as basemapToCesiumImagery, Xn as LayerStyle, Xr as QuickFilterDateKind, Xt as CollabInvite, Y as ApplyLayerJoinsResult, Yi as availableCesiumBasemap, Yn as LayerQuickFilter, Yr as ProjectTemplateEntry, Yt as BlendMode, Z as applyLayerJoins, Zi as normalizeCesiumBasemap, Zn as LayerType, Zr as QuickFilterKind, Zt as CollaborationChatMessage, _ as createEmptyProject, _i as VectorStyleStop, _n as DashboardWidget, _r as ModelGraphEdge, _t as ELLIPSOIDS, a as ProjectDiffOptions, ai as StoryChapterAlignment, an as CommentReply, ar as LineDecoration, at as batchDecodePolylines, b as detachProjectCopy, bi as shouldUseTiledRendering, bn as DiagramField, br as ModelGraphPort, bt as PLANETARY_BASEMAPS, c as diffProjects, ci as StoryInsetPosition, cn as DEFAULT_DASHBOARD_COLUMNS, cr as MAX_PROCESSING_HISTORY, ct as encodePolyline, d as CreateProjectOptions, di as StorySlideMode, dn as DEFAULT_MAP_GRID_LAYOUT, dr as MapPreferences, dt as unescapePolyline, ei as RuntimeEnvironmentVariable, en as CollaborationPresence, er as LegendCustomEntry, et as layerJoinKey, f as DEFAULT_PROJECT_NAME, fi as StrokeWidthUnit, fn as DEFAULT_PRIMARY_RENDERER, fr as MapProjection, ft as geojsonHasZCoordinates, g as createDefaultMapView, gi as VectorStyleMode, gn as DUCKDB_VECTOR_ROUTE_BYTES, gr as MarkerShape, gt as EARTH_MEAN_RADIUS_METERS, h as applyProjectToStore, hi as VectorRule, hn as DUCKDB_VECTOR_FEATURE_WARN_COUNT, hr as MapViewState, ht as DEFAULT_ELLIPSOID_ID, i as ProjectDiff, ii as StoryChapter, in as CommentAuthor, ir as LegendPanelPosition, it as PolylineDecodeResult, j as normalizeModelGraph, ji as scrubPrintLayoutForLayers, jn as IndicatorAggregation, jr as PopupFieldConfig, jt as getActiveEllipsoid, k as normalizeMapLayout, ki as normalizePrintLayoutConfig, kn as GeocodingPreferences, kr as PointRenderer, kt as earthLengthToBody, l as jsonValuesEqual, li as StoryLayerOpacityChange, ln as DEFAULT_LAYER_STYLE, lr as MIN_DASHBOARD_COLUMNS, lt as geoJSONToPolylineStr, m as ProjectLayerSerializationCache, mi as StyleLibraryEntryKind, mn as DEFAULT_STORY_MAP, mr as MapScaleUnit, mt as transformGeojsonElevation, n as LayerDiff, ni as SecondaryMapView, nn as CollaborationState, nr as LegendCustomShape, nt as stripJoinFields, o as ProjectValueChange, oi as StoryChapterAnimation, on as DEFAULT_BASEMAP, or as MAX_DASHBOARD_COLUMNS, ot as decodePolyline, p as MAX_PROJECT_BOOKMARKS, pi as StyleLibraryEntry, pn as DEFAULT_PROJECT_PREFERENCES, pr as MapRendererKind, pt as horizontalBbox, q as serializeProjectWithLayerCacheAsync, qi as CesiumBasemapId, qn as LayerMetadataTemporalExtent, qr as ProjectPluginState, qt as BLANK_BASEMAP, r as PluginDiff, ri as StoryActiveSlideMode, rn as CommentAnchor, rr as LegendItemOverride, rt as PolylineBatchOptions, s as diffFeatureCollections, si as StoryChapterLocation, sn as DEFAULT_BLEND_MODE, sr as MAX_MAP_GRID_DIM, st as decodePolylineDetailed, t as FeatureChangeSummary, ti as SQL_QUERY_SOURCE_KIND, tn as CollaborationRole, tr as LegendCustomItem, tt as reapplyLayerJoins, u as previewValue, ui as StoryMap, un as DEFAULT_LEGEND_CONFIG, ur as MapGridLayout, ut as polylineStrToGeoJSON, v as createProjectLayerSerializationCache, vi as detectNonGeographicCoordinates, vn as DashboardWidgetAggregation, vr as ModelGraphNode, vt as Ellipsoid, w as normalizeBlankBackgroundColor, wi as PrintLayoutCorner, wn as FieldVisibility, wr as NonGeographicCoordinates, wt as PlanetaryBasemap, x as hydrateProjectLayer, xi as styleValue, xn as DiagramSizeMode, xr as ModelPortKind, xt as PLANETARY_BASEMAP_GROUPS, y as createProjectTemplate, yi as isDuckDBQueryLayer, yn as DashboardWidgetType, yr as ModelGraphNodeKind, yt as EllipsoidId, z as normalizeStoryMap, zi as Feature, zn as LayerConnection, zr as ProcessingRunKind, zt as AddTileLayerOptions } from "./project-diff-aMF0z5Bo.mjs";
2
2
  import "zustand";
3
3
  import "zundo";
4
- //#region src/diagram.d.ts
5
4
  /**
6
5
  * Hard cap on how many features get a diagram. Each diagram is rasterized into
7
6
  * an icon atlas, so an unbounded layer (e.g. a million-point parquet) would
@@ -96,8 +95,6 @@ export declare function collectDiagramData(geojson: FeatureCollection, style: La
96
95
  * {@link collectDiagramData}).
97
96
  */
98
97
  export declare function diagramPixelSize(datum: DiagramDatum, style: LayerStyle, maxSizeValue: number): number;
99
- //#endregion
100
- //#region src/marker-shape.d.ts
101
98
  /**
102
99
  * Trace the outline of a built-in marker {@link MarkerShape} onto a 2D canvas
103
100
  * path, centered in a `size`×`size` box. The caller supplies the fill/stroke;
@@ -161,8 +158,6 @@ export declare function isSvgMarkerResponse(url: string, contentType: string | n
161
158
  * @returns An `Image.src` value, or `null` when nothing loadable was given.
162
159
  */
163
160
  export declare function resolveSvgSource(markup: string): string | null;
164
- //#endregion
165
- //#region src/hyperlink.d.ts
166
161
  /**
167
162
  * Return a whole-value HTTP(S) URL that is safe to expose as an attribute link.
168
163
  *
@@ -171,8 +166,6 @@ export declare function resolveSvgSource(markup: string): string | null;
171
166
  * `file:` remain plain text.
172
167
  */
173
168
  export declare function attributeLinkUrl(value: unknown): string | null;
174
- //#endregion
175
- //#region src/photo.d.ts
176
169
  /**
177
170
  * Feature-property keys for inline photo images, shared by the app and the map
178
171
  * package so neither hardcodes a second copy that could drift. These keys are
@@ -190,8 +183,6 @@ export declare const PHOTO_PROPERTY = "photo";
190
183
  * format a browser cannot display at native size (TIFF/HEIC).
191
184
  */
192
185
  export declare const PHOTO_FULL_PROPERTY = "photo_full";
193
- //#endregion
194
- //#region src/regional-basemaps.d.ts
195
186
  /**
196
187
  * Raster basemaps for regions the default catalog does not serve well.
197
188
  *
@@ -285,8 +276,6 @@ export declare function getRegionalBasemapByStyleUrl(styleUrl: string | undefine
285
276
  export declare function getRegionalBasemapById(id: string | undefined): RegionalBasemap | undefined;
286
277
  /** Whether a style URL is a regional-basemap sentinel, resolvable or not. */
287
278
  export declare function isRegionalBasemapSentinel(styleUrl: string | undefined): boolean;
288
- //#endregion
289
- //#region src/arcgis-projection.d.ts
290
279
  /**
291
280
  * Projections the ArcGIS renderer can draw its flat map in (issue #2708).
292
281
  *
@@ -318,8 +307,157 @@ export declare const ARCGIS_PROJECTION_PRESETS: readonly ArcgisProjectionPreset[
318
307
  * default Web Mercator map (absent, malformed or a Web Mercator code).
319
308
  */
320
309
  export declare function normalizeArcgisWkid(value: unknown): number | undefined;
321
- //#endregion
322
- //#region src/color-ramp.d.ts
310
+ /**
311
+ * Map coordinate reference systems for the MapLibre renderer (issue #1128).
312
+ *
313
+ * MapLibre GL JS 6.15 can draw a flat map in any planar CRS registered with
314
+ * `maplibregl.addProjection`: tiles are placed on a square quad grid laid over
315
+ * the CRS plane and are not reprojected, so every tile has to be made in that
316
+ * CRS already. A WMS does that on request (the `{bbox}` tile token asks for each
317
+ * tile's box in CRS units), which is how the presets below get native polar and
318
+ * simple-cylindrical basemaps of Earth, the Moon, Mars and the outer bodies.
319
+ *
320
+ * `preferences.map.mapCrs` names the CRS: a preset id from
321
+ * {@link MAP_CRS_PRESETS}, or `"EPSG:<code>"` for any code the bundled EPSG
322
+ * tables resolve. Absent means the default Web Mercator / globe map.
323
+ *
324
+ * This module is pure data and string handling. Registering the projection and
325
+ * swapping the style live in `@geolibre/map` (`map-crs.ts`).
326
+ */
327
+ /** A square quad tile grid over a CRS plane, as MapLibre's `TileMatrixSet`. */
328
+ export interface MapCrsTileMatrixSet {
329
+ /** Top-left corner of tile 0/0/0, in CRS units. */
330
+ origin: [number, number];
331
+ /** Width (and height) of tile 0/0/0, in CRS units. */
332
+ extentAtZoom0: number;
333
+ }
334
+ /** A WMS basemap served natively in a preset's CRS. */
335
+ export interface MapCrsBasemap {
336
+ /** GetMap template whose `BBOX` is MapLibre's `{bbox}` token. */
337
+ tiles: string;
338
+ /** Attribution HTML. */
339
+ attribution: string;
340
+ /** Deepest zoom worth requesting; MapLibre overzooms past it. */
341
+ maxZoom: number;
342
+ }
343
+ /** Which group a preset is listed under in the settings picker. */
344
+ export type MapCrsBody = "earth" | "moon" | "mars" | "mercury" | "venus" | "io" | "europa" | "ganymede" | "callisto" | "titan" | "pluto" | "charon";
345
+ /** A CRS offered in the settings picker. */
346
+ export interface MapCrsPreset {
347
+ /** Stable id persisted in `preferences.map.mapCrs`; also the i18n key. */
348
+ id: string;
349
+ /** English name; the UI translates it by `id`. */
350
+ name: string;
351
+ /**
352
+ * The CRS's authority code, registered with MapLibre under this name and
353
+ * written into the `SRS`/`CRS` of WMS layers drawn on the map.
354
+ */
355
+ code: string;
356
+ /**
357
+ * The label WMS and ArcGIS export layers on the map ask for, when servers
358
+ * do not read `code`. MapServer's PROJ rejects the planetary IAU codes, so
359
+ * those presets use the labels USGS Astrogeology serves their grids under.
360
+ */
361
+ wmsSrs?: string;
362
+ /** PROJ string of the CRS, used by proj4 on the page and in the workers. */
363
+ definition: string;
364
+ /** Ellipsoid registry id the preset's coordinates describe. */
365
+ ellipsoidId: MapCrsBody;
366
+ tileMatrixSet: MapCrsTileMatrixSet;
367
+ /** Box the map opens on when the preset is chosen, `[west, south, east, north]`. */
368
+ bounds: [number, number, number, number];
369
+ basemap: MapCrsBasemap;
370
+ }
371
+ /**
372
+ * Window event the map fires when it enters or leaves a CRS, or is torn down
373
+ * while in one. It carries no detail: the plugin API's `getMapCrs` reads the
374
+ * new value, and its `onMapCrsChange` listens for this.
375
+ */
376
+ export declare const MAP_CRS_CHANGE_EVENT = "geolibre:map-crs-change";
377
+ /**
378
+ * Presets verified to render against their WMS on 2026-10-19.
379
+ *
380
+ * The USGS polar map files serve their native polar stereographic grid under
381
+ * `EPSG:32661`/`EPSG:32761` (MapServer's PROJ rejects the IAU codes they also
382
+ * list), centred on the pole with no false origin, so those labels are used for
383
+ * the basemap requests while the map registers the body's IAU code.
384
+ */
385
+ export declare const MAP_CRS_PRESETS: readonly MapCrsPreset[];
386
+ /**
387
+ * Look a preset up by its id.
388
+ *
389
+ * Args:
390
+ * id: A `preferences.map.mapCrs` value.
391
+ *
392
+ * Returns:
393
+ * The preset, or `undefined` when `id` is not a preset id.
394
+ */
395
+ export declare function getMapCrsPreset(id: string | undefined): MapCrsPreset | undefined;
396
+ /**
397
+ * Read an `EPSG:<code>` map CRS value.
398
+ *
399
+ * Args:
400
+ * value: A `preferences.map.mapCrs` value.
401
+ *
402
+ * Returns:
403
+ * The numeric EPSG code, or `null` when the value is not an EPSG CRS.
404
+ */
405
+ export declare function parseMapCrsEpsgCode(value: string | undefined): number | null;
406
+ /**
407
+ * Normalize a stored map CRS.
408
+ *
409
+ * Args:
410
+ * value: The raw `preferences.map.mapCrs` value.
411
+ *
412
+ * Returns:
413
+ * A preset id, `"EPSG:<code>"`, or `undefined` for the default Web Mercator
414
+ * map (absent, malformed or a Web Mercator code).
415
+ */
416
+ export declare function normalizeMapCrs(value: unknown): string | undefined;
417
+ /**
418
+ * Point a Web Mercator WMS or ArcGIS export template at a map CRS.
419
+ *
420
+ * GeoLibre's WMS layers request `BBOX={bbox-epsg-3857}` in `EPSG:3857`. On a
421
+ * map in another CRS each tile is a box in that CRS instead, which MapLibre
422
+ * writes into the `{bbox}` token, so the template asks for `{bbox}` in `code`.
423
+ * WMS requests move to version 1.1.1, whose `SRS` BBOX is east, north for every
424
+ * CRS (1.3.0 swaps the axes of geographic ones), and an ArcGIS `export`
425
+ * template has its `bboxSR`/`imageSR` set to the EPSG number.
426
+ *
427
+ * Args:
428
+ * template: A raster tile template.
429
+ * code: The map CRS's authority code, e.g. `EPSG:3031` or `IAU_2015:49918`.
430
+ *
431
+ * Returns:
432
+ * The template for the CRS, the template unchanged when it already uses
433
+ * `{bbox}`, or `null` for a template with no bounding box (an XYZ or TMS
434
+ * template), which cannot be drawn in another CRS.
435
+ */
436
+ export declare function adaptBboxTemplateToCrs(template: string, code: string): string | null;
437
+ /**
438
+ * The smallest centered square grid over the part of a CRS worth mapping, for
439
+ * an EPSG code without a published tile grid.
440
+ *
441
+ * Samples a 2° lng/lat lattice and keeps the points `projection` takes forward
442
+ * and back to where they started (a transverse Mercator's far side does not)
443
+ * whose local scale is at most {@link MAX_RELATIVE_SCALE} times the CRS's
444
+ * smallest. A polar stereographic map round-trips almost to the other pole,
445
+ * but out there a kilometre spans thousands of CRS units, and a grid that wide
446
+ * leaves the CRS's own area a speck at every useful zoom. The extent of the
447
+ * kept points is padded by 4%. MapLibre finds the edge of a world projection
448
+ * by walking out from the grid's center, so the grid is centered on them.
449
+ *
450
+ * Args:
451
+ * projection: Lng/lat to CRS and back, the shape of a proj4 converter.
452
+ * geographic: Whether the CRS is in degrees, which gets the whole-world grid.
453
+ *
454
+ * Returns:
455
+ * The grid, or `null` when no sampled point survives the round trip.
456
+ */
457
+ export declare function deriveTileMatrixSet(projection: {
458
+ forward(position: number[]): number[];
459
+ inverse(position: number[]): number[] | null;
460
+ }, geographic: boolean): MapCrsTileMatrixSet | null;
323
461
  /**
324
462
  * Color-ramp definitions and classification-break helpers shared by the
325
463
  * vector graduated-styling panel and the raster symbology panel. Kept in
@@ -468,8 +606,6 @@ export type GraduatedClassificationScheme = "equal-interval" | "quantile" | "nat
468
606
  * @returns Up to `count` strictly ascending class lower bounds.
469
607
  */
470
608
  export declare function createGraduatedClassBreaks(values: number[], count: number, scheme: GraduatedClassificationScheme): number[];
471
- //#endregion
472
- //#region src/paths.d.ts
473
609
  /**
474
610
  * Whether a path contains a `..` directory-traversal segment. Used to reject a
475
611
  * (possibly hand-edited) project's `sourcePath` before re-reading it off disk.
@@ -496,8 +632,6 @@ export declare function hasPathTraversal(path: string): boolean;
496
632
  * @returns True when the path is an absolute POSIX or Windows path.
497
633
  */
498
634
  export declare function isAbsoluteFilesystemPath(path: string): boolean;
499
- //#endregion
500
- //#region src/routing.d.ts
501
635
  /**
502
636
  * Routing / network-analysis client and pure helpers backing the Processing →
503
637
  * Network tools (isochrones / service areas, OD cost matrices).
@@ -734,8 +868,6 @@ export declare function requestRoute(endpoint: string, body: RouteRequestBody, s
734
868
  * @returns The Valhalla `/route` response.
735
869
  */
736
870
  export declare function requestNavigationRoute(endpoint: string, body: Record<string, unknown>, signal?: AbortSignal): Promise<unknown>;
737
- //#endregion
738
- //#region src/vector-color.d.ts
739
871
  /**
740
872
  * A data-driven color value for a vector paint property: either a plain CSS
741
873
  * color string, or a MapLibre expression array (e.g. a categorized `match` or
@@ -1096,8 +1228,6 @@ export declare function extrusionHeightValue(style: LayerStyle): number | unknow
1096
1228
  * @returns A flat color string or a MapLibre color expression array.
1097
1229
  */
1098
1230
  export declare function extrusionColorValue(style: LayerStyle): VectorColorValue;
1099
- //#endregion
1100
- //#region src/expressions.d.ts
1101
1231
  /**
1102
1232
  * Shared Expression Builder logic (GH #1306): a curated MapLibre expression
1103
1233
  * function reference, real parse/type validation via the MapLibre style spec,
@@ -1306,8 +1436,6 @@ export type ExpressionFieldType = "string" | "number" | "boolean" | "mixed" | "u
1306
1436
  export declare function inferFieldTypes(features: ReadonlyArray<{
1307
1437
  properties?: Record<string, unknown> | null;
1308
1438
  }>, names: string[]): Record<string, ExpressionFieldType>;
1309
- //#endregion
1310
- //#region src/style-layer-evaluator.d.ts
1311
1439
  /** The geometry kinds a MapLibre style expression tells apart (`["geometry-type"]`). */
1312
1440
  export type StyleGeometryKind = "Point" | "LineString" | "Polygon";
1313
1441
  /** A feature as a style layer's expressions read it. */
@@ -1347,8 +1475,6 @@ interface StyleLayerInput {
1347
1475
  * @returns The layer's evaluator.
1348
1476
  */
1349
1477
  export declare function createStyleLayerEvaluator(layer: StyleLayerInput): StyleLayerEvaluator;
1350
- //#endregion
1351
- //#region src/document-locale.d.ts
1352
1478
  /**
1353
1479
  * The document language, so formatted numbers and dates follow the UI locale.
1354
1480
  *
@@ -1358,8 +1484,6 @@ export declare function createStyleLayerEvaluator(layer: StyleLayerInput): Style
1358
1484
  * project authoring paths), which leaves `Intl` on its own default.
1359
1485
  */
1360
1486
  export declare function documentLocale(): string | undefined;
1361
- //#endregion
1362
- //#region src/label-number-format.d.ts
1363
1487
  /**
1364
1488
  * Locale-aware number formatting for map labels (issue #2336).
1365
1489
  *
@@ -1438,8 +1562,6 @@ export declare function labelFieldTextField(labels: Pick<LabelStyle, "field" | "
1438
1562
  * {@link formatLabelNumber} and the emitted expression do with the same tag.
1439
1563
  */
1440
1564
  export declare function formatLabelNumberSample(locale: string, decimals: number): string;
1441
- //#endregion
1442
- //#region src/external-native-paint.d.ts
1443
1565
  /**
1444
1566
  * Paint ownership for plugin-registered native layers.
1445
1567
  *
@@ -1551,8 +1673,6 @@ export declare function isAdoptedVectorAwaitingFeatures(layer: {
1551
1673
  metadata: Record<string, unknown>;
1552
1674
  geojson?: unknown;
1553
1675
  }): boolean;
1554
- //#endregion
1555
- //#region src/attribute-form.d.ts
1556
1676
  /** Options threaded to expression evaluation (constraints, visibility). */
1557
1677
  export interface AttributeFormEvalOptions {
1558
1678
  /** Map zoom for `["zoom"]` in expressions; defaults to 0. */
@@ -1646,8 +1766,6 @@ export declare function validateAttributeFormValues(form: AttributeFormConfig |
1646
1766
  * @returns The effective config, or `form` itself when there is no service form.
1647
1767
  */
1648
1768
  export declare function mergeAttributeFormConfigs(form: AttributeFormConfig | undefined, service: AttributeFormConfig | undefined): AttributeFormConfig | undefined;
1649
- //#endregion
1650
- //#region src/layer-descriptive-metadata.d.ts
1651
1769
  /** STAC specification version the Item export targets. */
1652
1770
  export declare const STAC_VERSION = "1.0.0";
1653
1771
  /** Schema URL of the STAC processing extension, declared for `processing:lineage`. */
@@ -1800,8 +1918,23 @@ export declare function stacAssetMediaType(href: string, layerType: GeoLibreLaye
1800
1918
  * @returns The STAC Item, ready to `JSON.stringify`.
1801
1919
  */
1802
1920
  export declare function buildLayerStacItem(layer: Pick<GeoLibreLayer, "id" | "name" | "type" | "descriptiveMetadata">, options?: LayerStacItemOptions): StacItem;
1803
- //#endregion
1804
- //#region src/popup.d.ts
1921
+ /**
1922
+ * Register a tool whose drawing state claims the map's clicks.
1923
+ *
1924
+ * Args:
1925
+ * isClaiming: Returns true while the tool is drawing and owns map clicks.
1926
+ *
1927
+ * Returns:
1928
+ * A function that removes the claim.
1929
+ */
1930
+ export declare function registerMapClickClaim(isClaiming: () => boolean): () => void;
1931
+ /**
1932
+ * Whether a registered map tool currently owns the map's clicks.
1933
+ *
1934
+ * Returns:
1935
+ * True when any registered claim reports that its tool is drawing.
1936
+ */
1937
+ export declare function isMapClickClaimed(): boolean;
1805
1938
  /** One resolved popup row, ready for the renderer. */
1806
1939
  export interface PopupRow {
1807
1940
  /** Feature property key. */
@@ -1965,8 +2098,6 @@ export declare function isInlineImageValue(value: unknown): value is string;
1965
2098
  * from an untrusted GeoJSON must never become a live link.
1966
2099
  */
1967
2100
  export declare function isSafePopupUrl(value: unknown, allowDataImage?: boolean): value is string;
1968
- //#endregion
1969
- //#region src/virtual-fields.d.ts
1970
2101
  /**
1971
2102
  * Virtual fields (QGIS Field Calculator → "Create virtual field", issue
1972
2103
  * #1321): expression-backed columns that recompute live instead of being
@@ -2027,8 +2158,6 @@ export interface ApplyVirtualFieldsResult {
2027
2158
  * can `["get", ...]` an earlier field's column.
2028
2159
  */
2029
2160
  export declare function applyLayerVirtualFields(features: Feature[], fields: LayerVirtualField[] | undefined): ApplyVirtualFieldsResult;
2030
- //#endregion
2031
- //#region src/quick-filters.d.ts
2032
2161
  /**
2033
2162
  * Compile one quick filter to a MapLibre filter expression, or `null` when it
2034
2163
  * places no constraint (switched off, no field, or nothing chosen yet). A
@@ -2073,8 +2202,6 @@ export declare function hasActiveQuickFilter(layer: GeoLibreLayer): boolean;
2073
2202
  * @returns The same controls with their selections emptied.
2074
2203
  */
2075
2204
  export declare function clearQuickFilterValues(filters: readonly LayerQuickFilter[] | undefined): LayerQuickFilter[];
2076
- //#endregion
2077
- //#region src/layer-filters.d.ts
2078
2205
  /** The layer fields needed to inspect project-authored feature filters. */
2079
2206
  type LayerFilterSource = Pick<GeoLibreLayer, "filterExpression" | "quickFilters">;
2080
2207
  /**
@@ -2102,8 +2229,6 @@ export declare function compileLayerFilters(layer: LayerFilterSource): unknown[]
2102
2229
  * @returns True when at least one persisted filter is active.
2103
2230
  */
2104
2231
  export declare function hasActiveLayerFilter(layer: LayerFilterSource): boolean;
2105
- //#endregion
2106
- //#region src/capabilities.d.ts
2107
2232
  /**
2108
2233
  * Default inferred capabilities for a layer based on its type and metadata.
2109
2234
  *
@@ -2161,8 +2286,6 @@ export declare function createDefaultAppCapabilities(): AppCapabilities;
2161
2286
  * Normalizes an untrusted array of privilege strings.
2162
2287
  */
2163
2288
  export declare function normalizeAppPrivileges(raw: unknown): AppPrivilege[] | undefined;
2164
- //#endregion
2165
- //#region src/deployment-capabilities.d.ts
2166
2289
  /** A privileged action a deployment can grant or withhold. */
2167
2290
  export type DeploymentCapability =
2168
2291
  /** Create, save, or otherwise author the project itself. */
@@ -2212,8 +2335,6 @@ export declare const NO_DEPLOYMENT_CAPABILITIES = "none";
2212
2335
  * @returns The granted capabilities, with duplicates and unknown names removed.
2213
2336
  */
2214
2337
  export declare function parseDeploymentCapabilities(raw: string): ReadonlySet<DeploymentCapability>;
2215
- //#endregion
2216
- //#region src/selection.d.ts
2217
2338
  /**
2218
2339
  * How a freshly matched feature set combines with the existing selection,
2219
2340
  * mirroring QGIS's four selection behaviors: replace the selection, add to
@@ -2242,8 +2363,6 @@ export declare function applySelectionMode(current: readonly string[], matched:
2242
2363
  * selection this selects everything.
2243
2364
  */
2244
2365
  export declare function invertSelection(allIds: readonly string[], current: readonly string[]): string[];
2245
- //#endregion
2246
- //#region src/selection-actions.d.ts
2247
2366
  /**
2248
2367
  * Store-touching selection helpers. Kept out of `selection.ts` so that module
2249
2368
  * stays a pure, directly testable set of functions over id arrays.
@@ -2264,8 +2383,6 @@ export declare function invertSelection(allIds: readonly string[], current: read
2264
2383
  * instead of two that can drift apart.
2265
2384
  */
2266
2385
  export declare function applyMatchedSelection(targetLayerId: string, matchedIds: string[], mode: SelectionMode): number;
2267
- //#endregion
2268
- //#region src/scale-units.d.ts
2269
2386
  /** Conversion constants shared by every scale-bar denomination. */
2270
2387
  export declare const FEET_PER_METER = 3.2808398950131235;
2271
2388
  export declare const METERS_PER_FOOT = 0.3048;
@@ -2303,8 +2420,6 @@ export declare function scaleSpan(maxMeters: number, unit: MapScaleUnit): {
2303
2420
  span: number;
2304
2421
  label: string;
2305
2422
  };
2306
- //#endregion
2307
- //#region src/elevation.d.ts
2308
2423
  /**
2309
2424
  * Shared ground-elevation resolution.
2310
2425
  *
@@ -2444,8 +2559,6 @@ export interface PointerElevationResolver {
2444
2559
  * would be worse than showing nothing.
2445
2560
  */
2446
2561
  export declare function createPointerElevationResolver(options: PointerElevationResolverOptions): PointerElevationResolver;
2447
- //#endregion
2448
- //#region src/camera-altitude.d.ts
2449
2562
  /**
2450
2563
  * Convert a MapLibre camera altitude (computed against Earth's radius) into the
2451
2564
  * active body's true altitude. A no-op on Earth.
@@ -2466,8 +2579,6 @@ export declare function scaleAltitudeToActiveBody(earthAltitudeMeters: number |
2466
2579
  * always agree about which unit this view is being described in.
2467
2580
  */
2468
2581
  export declare function formatCameraAltitude(meters: number, unit: MapScaleUnit): string;
2469
- //#endregion
2470
- //#region src/style-library.d.ts
2471
2582
  /**
2472
2583
  * Layer types whose symbology is driven by the vector {@link LayerStyle}
2473
2584
  * fields and can therefore receive a Style Manager entry (or a style-file
@@ -2563,8 +2674,6 @@ export declare function createStyleLibraryEntryId(): string;
2563
2674
  * in `color-ramp.ts`.
2564
2675
  */
2565
2676
  export declare const BUILT_IN_STYLE_PRESETS: readonly StyleLibraryEntry[];
2566
- //#endregion
2567
- //#region src/layer-library.d.ts
2568
2677
  /** `type` discriminator of an exported Layer Library bundle file. */
2569
2678
  export declare const LAYER_LIBRARY_BUNDLE_TYPE = "geolibre-layer-library";
2570
2679
  /** Current bundle format version, for forward-compatible readers. */
@@ -2837,8 +2946,6 @@ export declare function parseLayerLibrary(json: string): LayerLibraryEntry[];
2837
2946
  * @returns A random id (UUID when available).
2838
2947
  */
2839
2948
  export declare function createLayerLibraryEntryId(): string;
2840
- //#endregion
2841
- //#region src/layer-defaults.d.ts
2842
2949
  /**
2843
2950
  * Initial styling for a newly added vector layer (issue #1519).
2844
2951
  *
@@ -2920,8 +3027,6 @@ export declare function initialLayerStyle(options?: InitialLayerStyleOptions): L
2920
3027
  * @returns `true` when nothing about the as-added look has been changed.
2921
3028
  */
2922
3029
  export declare function isInitialLayerStyle(style: LayerStyle, geojson?: FeatureCollection): boolean;
2923
- //#endregion
2924
- //#region src/layer-style-clipboard.d.ts
2925
3030
  /**
2926
3031
  * Which copy/paste style family a layer belongs to. Vector-styled layers and
2927
3032
  * deck.gl rasters store their symbology in different places (the {@link
@@ -3010,8 +3115,6 @@ export declare function extractCopiedLayerStyle(layer: GeoLibreLayer): CopiedLay
3010
3115
  * @returns A partial layer patch to merge, or `null` when incompatible.
3011
3116
  */
3012
3117
  export declare function applyCopiedLayerStyle(target: GeoLibreLayer, copied: CopiedLayerStyle): Partial<GeoLibreLayer> | null;
3013
- //#endregion
3014
- //#region src/layer-style-file.d.ts
3015
3118
  /** `type` tag identifying a layer styles file. */
3016
3119
  export declare const LAYER_STYLES_FILE_TYPE = "geolibre-layer-styles";
3017
3120
  /** Format version written by {@link serializeLayerStylesFile}. */
@@ -3105,8 +3208,6 @@ export interface LayerStyleMatch {
3105
3208
  * style family matches its name (or the layer has no stylable symbology).
3106
3209
  */
3107
3210
  export declare function matchLayerStyleEntry(layer: GeoLibreLayer, entries: readonly LayerStyleFileEntry[]): LayerStyleMatch | null;
3108
- //#endregion
3109
- //#region src/layers-file.d.ts
3110
3211
  /** `type` tag identifying a layers file. */
3111
3212
  export declare const LAYERS_FILE_TYPE = "geolibre-layers";
3112
3213
  /** Format version written by {@link serializeLayersFile}. */
@@ -3187,8 +3288,6 @@ export declare function parseLayersFile(json: string): LayersFileContent;
3187
3288
  * @returns A new project with the layers added.
3188
3289
  */
3189
3290
  export declare function addLayersToProject(project: GeoLibreProject, content: LayersFileContent): GeoLibreProject;
3190
- //#endregion
3191
- //#region src/layer-groups.d.ts
3192
3291
  /** Opacity a freshly created {@link LayerGroup} starts at (fully opaque). */
3193
3292
  export declare const DEFAULT_LAYER_GROUP_OPACITY = 1;
3194
3293
  /**
@@ -3465,8 +3564,6 @@ export declare function layerGroupMoveability(layers: GeoLibreLayer[], groups: L
3465
3564
  * @returns Per-group flags, keyed by group id.
3466
3565
  */
3467
3566
  export declare function layerGroupSortability(layers: GeoLibreLayer[], groups: LayerGroup[], locale?: string): Map<string, Record<LayerGroupSortOrder, boolean>>;
3468
- //#endregion
3469
- //#region src/pixel-format.d.ts
3470
3567
  /**
3471
3568
  * Trim a float sample to something readable. A 32-bit raster value decoded to a
3472
3569
  * JS double prints all 17 digits of its binary representation
@@ -3478,8 +3575,6 @@ export declare function layerGroupSortability(layers: GeoLibreLayer[], groups: L
3478
3575
  * @returns The sample rendered for display.
3479
3576
  */
3480
3577
  export declare function formatPixelValue(value: number): string;
3481
- //#endregion
3482
- //#region src/s3.d.ts
3483
3578
  /**
3484
3579
  * Amazon S3 (and S3-compatible) object URLs: parsing, public HTTPS mapping,
3485
3580
  * SigV4 query-string presigning, and the registry the app uses to plug
@@ -3717,8 +3812,6 @@ export type S3ErrorTranslate = (key: string, defaultValue: string, params?: Reco
3717
3812
  * or `error` unchanged when it is not a CORS refusal of an S3 read.
3718
3813
  */
3719
3814
  export declare function explainS3ReadError(url: string, error: unknown, translate?: S3ErrorTranslate): Promise<unknown>;
3720
- //#endregion
3721
- //#region src/storymap-sample.d.ts
3722
3815
  /**
3723
3816
  * Build a ready-to-play sample story map.
3724
3817
  *
@@ -3729,8 +3822,12 @@ export declare function explainS3ReadError(url: string, error: unknown, translat
3729
3822
  * @returns A populated {@link StoryMap} with five sample chapters.
3730
3823
  */
3731
3824
  export declare function createSampleStoryMap(): StoryMap;
3732
- //#endregion
3733
- //#region src/storymap-playback.d.ts
3825
+ /** Default chapter dwell time after the camera arrives, in seconds. */
3826
+ export declare const DEFAULT_STORY_CHAPTER_DURATION_SECONDS = 15;
3827
+ export declare const MIN_STORY_CHAPTER_DURATION_SECONDS = 1;
3828
+ export declare const MAX_STORY_CHAPTER_DURATION_SECONDS = 3600;
3829
+ /** Resolve old or hand-authored chapter timings to a safe autoplay duration. */
3830
+ export declare function normalizeStoryChapterDurationSeconds(value: unknown): number;
3734
3831
  /**
3735
3832
  * The opacity a story presentation has applied to a layer.
3736
3833
  *
@@ -3788,8 +3885,6 @@ export declare function storyVisibleLayers(layers: GeoLibreLayer[], presenting:
3788
3885
  * @returns The location with `pitch` and `bearing` filled in.
3789
3886
  */
3790
3887
  export declare function storyLocationView(location: StoryChapterLocation, current: Pick<MapViewState, "pitch" | "bearing">): MapViewState;
3791
- //#endregion
3792
- //#region src/layer-ref-scrub.d.ts
3793
3888
  /**
3794
3889
  * Filter out dashboard widgets whose `layerId` references a removed layer.
3795
3890
  * Returns the same array reference when nothing changes.
@@ -3811,8 +3906,6 @@ export declare function scrubCommentsForRemovedLayers(comments: ProjectComment[]
3811
3906
  * Returns the same reference when nothing changes.
3812
3907
  */
3813
3908
  export declare function scrubLegendForRemovedLayers(legend: LegendConfig, layerIds: string | Iterable<string>): LegendConfig;
3814
- //#endregion
3815
- //#region src/storymap-io.d.ts
3816
3909
  /**
3817
3910
  * Serialize a story map to pretty-printed JSON for export.
3818
3911
  *
@@ -3856,8 +3949,6 @@ export declare function serializeStoryMapCsv(storymap: StoryMap): string;
3856
3949
  * @throws If the CSV has no data rows or no valid chapters.
3857
3950
  */
3858
3951
  export declare function parseStoryMapCsv(text: string, base?: StoryMap | null): StoryMap;
3859
- //#endregion
3860
- //#region src/store/capabilities-slice.d.ts
3861
3952
  interface CapabilitiesSlice {
3862
3953
  /**
3863
3954
  * What this *deployment* is allowed to do (issue #1673). Set once at startup
@@ -3899,8 +3990,6 @@ interface CapabilitiesSlice {
3899
3990
  /** Check if the current capabilities grant the requested privilege. */
3900
3991
  hasAppPrivilege: (privilege: AppPrivilege) => boolean;
3901
3992
  }
3902
- //#endregion
3903
- //#region src/store/collaboration-slice.d.ts
3904
3993
  /**
3905
3994
  * A fresh, inactive collaboration slice (no live session). Frozen (like
3906
3995
  * DEFAULT_LEGEND_CONFIG) to guard against accidental in-place mutation; store
@@ -3916,8 +4005,6 @@ interface CollaborationSlice {
3916
4005
  addCollaborationChat: (message: CollaborationChatMessage) => void;
3917
4006
  resetCollaboration: () => void;
3918
4007
  }
3919
- //#endregion
3920
- //#region src/store/layer-groups-slice.d.ts
3921
4008
  interface LayerGroupsSlice {
3922
4009
  layerGroups: LayerGroup[];
3923
4010
  addLayerGroup: (name?: string, layerIds?: string[]) => string;
@@ -3938,8 +4025,6 @@ interface LayerGroupsSlice {
3938
4025
  */
3939
4026
  sortLayerGroup: (id: string, order: LayerGroupSortOrder, locale?: string) => void;
3940
4027
  }
3941
- //#endregion
3942
- //#region src/store/layers-slice.d.ts
3943
4028
  interface LayersSlice {
3944
4029
  layers: GeoLibreLayer[];
3945
4030
  addLayer: (layer: GeoLibreLayer, beforeLayerId?: string | null) => void;
@@ -4040,7 +4125,10 @@ interface LayersSlice {
4040
4125
  reorderLayer: (id: string, direction: "up" | "down") => void;
4041
4126
  moveLayer: (id: string, targetIndex: number) => void;
4042
4127
  moveLayersRelative: (layerIds: string[], targetLayerId: string, position: "above" | "below") => void;
4043
- addGeoJsonLayer: (name: string, geojson: FeatureCollection, sourcePath?: string, beforeLayerId?: string | null) => string;
4128
+ addGeoJsonLayer: (name: string, geojson: FeatureCollection, sourcePath?: string, beforeLayerId?: string | null, extra?: {
4129
+ geoarrow?: GeoArrowBatch;
4130
+ metadata?: Record<string, unknown>;
4131
+ }) => string;
4044
4132
  /**
4045
4133
  * Add a georeferenced image overlay (a MapLibre `image` source rendered as a
4046
4134
  * raster layer) from an image URL and its four corner coordinates, and return
@@ -4082,8 +4170,6 @@ interface LayersSlice {
4082
4170
  */
4083
4171
  addTileLayer: (name: string, options: AddTileLayerOptions, beforeLayerId?: string | null) => string;
4084
4172
  }
4085
- //#endregion
4086
- //#region src/store/libraries-slice.d.ts
4087
4173
  interface LibrariesSlice {
4088
4174
  /**
4089
4175
  * App-level Style Manager library (issue #1294). Lives outside the project
@@ -4149,8 +4235,6 @@ interface LibrariesSlice {
4149
4235
  /** Remove a template entry by id from the Template Library. */
4150
4236
  deleteTemplateEntry: (id: string) => void;
4151
4237
  }
4152
- //#endregion
4153
- //#region src/store/map-view-slice.d.ts
4154
4238
  interface MapViewSlice {
4155
4239
  mapView: MapViewState;
4156
4240
  basemapStyleUrl: string;
@@ -4231,8 +4315,6 @@ interface MapViewSlice {
4231
4315
  setBlankBackgroundColor: (color: string | null) => void;
4232
4316
  setPreferences: (preferences: ProjectPreferences) => void;
4233
4317
  }
4234
- //#endregion
4235
- //#region src/store/processing-slice.d.ts
4236
4318
  interface ProcessingSlice {
4237
4319
  /** Saved processing pipelines (batch/model chaining; issue #344). */
4238
4320
  models: ProcessingModel[];
@@ -4259,8 +4341,6 @@ interface ProcessingSlice {
4259
4341
  */
4260
4342
  setObiaWorkbench: (value: Record<string, unknown> | null, markDirty?: boolean) => void;
4261
4343
  }
4262
- //#endregion
4263
- //#region src/store/project-content-slice.d.ts
4264
4344
  interface ProjectContentSlice {
4265
4345
  storymap: StoryMap | null;
4266
4346
  /** Saved Dashboard panel chart widgets (issue #401). */
@@ -4312,8 +4392,6 @@ interface ProjectContentSlice {
4312
4392
  */
4313
4393
  setBookmarks: (bookmarks: ProjectBookmark[], bookmarkGroups: ProjectBookmarkGroup[]) => void;
4314
4394
  }
4315
- //#endregion
4316
- //#region src/store/project-slice.d.ts
4317
4395
  /** Derive a human-friendly display name from a file path or URL. */
4318
4396
  export declare function projectPathLabel(path: string): string;
4319
4397
  interface ProjectSlice {
@@ -4356,8 +4434,6 @@ interface ProjectSlice {
4356
4434
  clearRecentProjects: () => void;
4357
4435
  markSaved: () => void;
4358
4436
  }
4359
- //#endregion
4360
- //#region src/store/session-slice.d.ts
4361
4437
  /**
4362
4438
  * Latest live device-GPS fix published by the GPS Tracking tool (issue #1316),
4363
4439
  * read by the status bar readout. Device state, not project state: excluded
@@ -4481,8 +4557,6 @@ interface SessionSlice {
4481
4557
  setIdentifyState: (state: IdentifyState) => void;
4482
4558
  setAttributeFilter: (filter: string) => void;
4483
4559
  }
4484
- //#endregion
4485
- //#region src/store/ui-slice.d.ts
4486
4560
  type ConversionToolKind = "vector-to-vector" | "vector-to-geoparquet" | "vector-to-flatgeobuf" | "vector-to-shapefile" | "vector-to-geopackage" | "csv-to-geoparquet" | "vector-to-pmtiles" | "raster-to-pmtiles" | "raster-to-cog";
4487
4561
  /**
4488
4562
  * Identifiers of the vector processing tools. Kept in sync by hand with the
@@ -4618,15 +4692,11 @@ interface UiSlice {
4618
4692
  setZoomToSelectedFeature: (enabled: boolean) => void;
4619
4693
  setStyleManagerOpen: (open: boolean) => void;
4620
4694
  }
4621
- //#endregion
4622
- //#region src/store/types.d.ts
4623
4695
  /**
4624
4696
  * The whole app store: every slice's state and actions in one flat object.
4625
4697
  * The slices are an internal split of `store.ts`; consumers see one store.
4626
4698
  */
4627
4699
  interface AppState extends ProjectSlice, MapViewSlice, LayersSlice, LayerGroupsSlice, ProjectContentSlice, ProcessingSlice, LibrariesSlice, SessionSlice, CollaborationSlice, CapabilitiesSlice, UiSlice {}
4628
- //#endregion
4629
- //#region src/store/undo-history.d.ts
4630
4700
  /** The fields undo/redo snapshots, restores and compares. */
4631
4701
  type HistoryState = Pick<AppState, "layers" | "layerGroups" | "basemapStyleUrl" | "basemapVisible" | "basemapOpacity" | "blankBackgroundColor" | "storymap" | "comments" | "widgets" | "legend">;
4632
4702
  export declare function subscribeProjectRestoreHistory(listener: () => void): () => void;
@@ -4658,8 +4728,6 @@ export declare function redo(): void;
4658
4728
  export declare function withoutHistory(change: () => void): void;
4659
4729
  /** Empty both the undo and redo stacks (e.g. on new/loaded project). */
4660
4730
  export declare function clearHistory(): void;
4661
- //#endregion
4662
- //#region src/store.d.ts
4663
4731
  export declare const useAppStore: import("zustand").UseBoundStore<Omit<import("zustand").StoreApi<AppState>, "temporal"> & {
4664
4732
  temporal: import("zustand").StoreApi<import("zundo").TemporalState<HistoryState>>;
4665
4733
  }>;
@@ -4681,8 +4749,6 @@ export declare function useAppCapability(privilege: AppPrivilege): {
4681
4749
  granted: boolean;
4682
4750
  reason?: string;
4683
4751
  };
4684
- //#endregion
4685
- //#region src/layer-selectors.d.ts
4686
4752
  /**
4687
4753
  * The fields a layer list needs: enough to draw a row, a `<select>` option or
4688
4754
  * a visibility checkbox. It deliberately leaves out opacity, style, source,
@@ -4784,8 +4850,6 @@ export declare function useLayerSummaries(): LayerSummary[];
4784
4850
  * @returns `layers` while active, otherwise an empty, frozen array.
4785
4851
  */
4786
4852
  export declare function useLayersWhen(active: boolean): GeoLibreLayer[];
4787
- //#endregion
4788
- //#region src/history.d.ts
4789
4853
  export declare function setHistoryCoalesceMs(ms: number): void;
4790
4854
  export declare function getHistoryCoalesceMs(): number;
4791
4855
  export declare function setMaxHistoryFeatureCount(count: number): void;
@@ -4815,8 +4879,6 @@ interface HistorySnapshot {
4815
4879
  * (oldest entries removed) otherwise. Pure: never mutates its input.
4816
4880
  */
4817
4881
  export declare function trimHistoryBySize<T extends HistorySnapshot>(pastStates: T[], maxFeatures: number): T[];
4818
- //#endregion
4819
- //#region src/geocoding.d.ts
4820
4882
  /**
4821
4883
  * Geocoding client and pure helpers shared by the batch-geocode dialog and the
4822
4884
  * reverse-geocode plugin.
@@ -4829,7 +4891,8 @@ export declare function trimHistoryBySize<T extends HistorySnapshot>(pastStates:
4829
4891
  *
4830
4892
  * Providers: geocoding is dispatched through a small {@link GeocodingProvider}
4831
4893
  * registry so alternatives to Nominatim (ArcGIS World Geocoder, CartoCiudad, Mapbox,
4832
- * Pelias, Google) can be selected per project. Each provider builds its own request
4894
+ * Pelias, Google, organization-hosted ArcGIS GeocodeServer locators) can be
4895
+ * selected per project. Each provider builds its own request
4833
4896
  * URLs and normalizes its response into a {@link GeocodeMatch} (forward) or a
4834
4897
  * {@link ReverseGeocodeDisplay} (reverse), so the dialog and plugin stay
4835
4898
  * provider-agnostic. Nominatim is the default.
@@ -4872,8 +4935,10 @@ export declare const GEOCODE_SCORE_KEY = "geocode_importance";
4872
4935
  export declare const GEOCODE_PROVIDER_KEY = "geocode_provider";
4873
4936
  /** Whether a row matched, when stamped. See {@link GeocodeStatus}. */
4874
4937
  export declare const GEOCODE_STATUS_KEY = "geocode_status";
4938
+ /** Prefix of a matched candidate's own attributes, when they are kept. */
4939
+ export declare const GEOCODE_ATTRIBUTE_PREFIX = "geocode_attr_";
4875
4940
  /** Identifier of a selectable geocoding backend. */
4876
- type GeocodingProviderId = "nominatim" | "pelias" | "arcgis" | "mapbox" | "google" | "cartociudad";
4941
+ type GeocodingProviderId = "nominatim" | "pelias" | "arcgis" | "arcgis-locator" | "mapbox" | "google" | "cartociudad";
4877
4942
  /** The provider used when none is configured. */
4878
4943
  export declare const DEFAULT_GEOCODING_PROVIDER_ID: GeocodingProviderId;
4879
4944
  interface GeocoderConfig {
@@ -4887,11 +4952,34 @@ interface GeocoderConfig {
4887
4952
  email?: string;
4888
4953
  /** API key / access token for providers that require one. */
4889
4954
  apiKey?: string;
4955
+ /** The selected locator, for the `arcgis-locator` provider. */
4956
+ locator?: GeocodingLocator;
4957
+ }
4958
+ /**
4959
+ * An error the geocoding service reported about the request itself, as opposed
4960
+ * to a network failure or a search with no matches. ArcGIS answers failures with
4961
+ * HTTP 200 and an `error` envelope, so `response.ok` alone would turn them into
4962
+ * an empty result. `code` is the service's own code (498/499 for a missing or
4963
+ * invalid token, 403 for insufficient permission).
4964
+ */
4965
+ export declare class GeocoderServiceError extends Error {
4966
+ readonly code: number | undefined;
4967
+ constructor(message: string, code?: number);
4968
+ /** Whether the service asked for a token or rejected the one it got. */
4969
+ get isAuthError(): boolean;
4970
+ }
4971
+ /** The configured geocoder does not support the requested operation. */
4972
+ export declare class GeocoderUnsupportedError extends Error {
4973
+ constructor(message: string);
4890
4974
  }
4891
4975
  /** Per-request options passed to a provider's forward URL builder. */
4892
4976
  interface ForwardRequestOptions {
4893
4977
  email?: string;
4894
4978
  limit?: number;
4979
+ /** A suggestion's key, so the locator resolves exactly that suggestion. */
4980
+ magicKey?: string;
4981
+ /** Ask for each candidate's own attributes (see {@link GeocodeMatch.attributes}). */
4982
+ attributes?: boolean;
4895
4983
  }
4896
4984
  /** Per-request options passed to a provider's reverse URL builder. */
4897
4985
  interface ReverseRequestOptions {
@@ -4910,6 +4998,19 @@ interface GeocodeMatch {
4910
4998
  lon: number;
4911
4999
  displayName: string;
4912
5000
  score: number | null;
5001
+ /**
5002
+ * The candidate's own attributes, when the service returns them (an
5003
+ * organization locator's parcel or asset identifiers, address type, ...).
5004
+ * Empty values are left out.
5005
+ */
5006
+ attributes?: Record<string, string | number | boolean>;
5007
+ }
5008
+ /** A partial-text suggestion from a locator's `suggest` operation. */
5009
+ interface GeocodeSuggestion {
5010
+ /** The suggested place, as the locator words it. */
5011
+ text: string;
5012
+ /** Opaque key that `findAddressCandidates` resolves to this suggestion. */
5013
+ magicKey: string;
4913
5014
  }
4914
5015
  /**
4915
5016
  * A geocoding backend. Builds provider-specific request URLs and normalizes the
@@ -5006,9 +5107,12 @@ export declare function buildReverseGeocodeUrl(endpoint: string, lon: number, la
5006
5107
  * `extra.providerId`, when passed, also stamps `geocode_provider` and
5007
5108
  * `geocode_status: "matched"` (dropped when omitted, so the existing
5008
5109
  * `GeocodeDialog` call site keeps its current output unchanged).
5110
+ * `extra.attributes` also adds the candidate's own attributes, each under
5111
+ * {@link GEOCODE_ATTRIBUTE_PREFIX} plus its name.
5009
5112
  */
5010
5113
  export declare function geocodeMatchToFeature(match: GeocodeMatch, originalRow?: Record<string, string>, extra?: {
5011
5114
  providerId?: GeocodingProviderId;
5115
+ attributes?: boolean;
5012
5116
  }): Feature<Point> | null;
5013
5117
  /**
5014
5118
  * Build a null-geometry Feature for a CSV row that could not be geocoded, so
@@ -5031,6 +5135,48 @@ export declare function nominatimResultToFeature(result: NominatimForwardResult,
5031
5135
  * null when the point could not be reverse-geocoded.
5032
5136
  */
5033
5137
  export declare function nominatimReverseResultToDisplay(result: NominatimReverseResult | null): ReverseGeocodeDisplay | null;
5138
+ /**
5139
+ * The GeocodeServer base URL of a pasted locator URL: an operation suffix
5140
+ * (`/findAddressCandidates`, ...), the query string and any credentials are
5141
+ * dropped, so a token in a pasted URL is never stored.
5142
+ *
5143
+ * @param input - The URL as typed.
5144
+ * @returns The base URL ending in `/GeocodeServer`, or null when it is not one.
5145
+ */
5146
+ export declare function normalizeArcGISLocatorUrl(input: string | undefined | null): string | null;
5147
+ /**
5148
+ * Coerce a stored locator to a {@link GeocodingLocator}, or null when it has no
5149
+ * usable id or GeocodeServer URL. Used for project files and runtime env, so
5150
+ * anything unexpected is dropped rather than trusted.
5151
+ *
5152
+ * @param value - The stored value.
5153
+ * @returns The locator, or null.
5154
+ */
5155
+ export declare function normalizeGeocodingLocator(value: unknown): GeocodingLocator | null;
5156
+ /** What a GeocodeServer's `?f=json` metadata says it supports. */
5157
+ type ArcGISLocatorCapabilities = Required<Pick<GeocodingLocator, "reverse" | "suggest">> & Pick<GeocodingLocator, "singleLineField" | "addressFields">;
5158
+ /**
5159
+ * Read a GeocodeServer's capabilities from its `?f=json` metadata. A service
5160
+ * that lists no `capabilities` (older ArcGIS Server) is taken to support
5161
+ * geocoding and reverse geocoding but not suggestions.
5162
+ *
5163
+ * @param data - The parsed metadata.
5164
+ * @returns The capabilities.
5165
+ * @throws GeocoderServiceError For an error envelope, or metadata that is not a
5166
+ * GeocodeServer's.
5167
+ * @throws GeocoderUnsupportedError When the service does not geocode.
5168
+ */
5169
+ export declare function parseArcGISLocatorInfo(data: unknown): ArcGISLocatorCapabilities;
5170
+ /**
5171
+ * The input field a single search string is sent in: the published field the
5172
+ * user chose for it, else the locator's single-line field, else its only
5173
+ * structured field (an asset ID locator often publishes just one), else
5174
+ * ArcGIS's conventional `SingleLine`.
5175
+ *
5176
+ * @param locator - The locator.
5177
+ * @returns The input field name.
5178
+ */
5179
+ export declare function arcgisLocatorInputField(locator: GeocodingLocator): string;
5034
5180
  /** All selectable geocoding providers, Nominatim first (the default). */
5035
5181
  export declare const GEOCODING_PROVIDERS: readonly GeocodingProvider[];
5036
5182
  /** Coerce an arbitrary string to a known provider id, defaulting to Nominatim. */
@@ -5041,10 +5187,19 @@ export declare function getGeocodingProvider(id: string | undefined | null): Geo
5041
5187
  * Resolve the geocoder configuration from runtime env, falling back to the
5042
5188
  * selected provider's default endpoints. `VITE_GEOCODER_PROVIDER` selects the
5043
5189
  * backend; `VITE_GEOCODER_ENDPOINT`/`VITE_GEOCODER_REVERSE_ENDPOINT` override
5044
- * the endpoints; `VITE_GEOCODER_EMAIL` supplies the contact email; and
5190
+ * the endpoints (except for `arcgis-locator`, whose endpoints always come from
5191
+ * `VITE_GEOCODER_LOCATOR`); `VITE_GEOCODER_EMAIL` supplies the contact email; and
5045
5192
  * `VITE_GEOCODER_API_KEY` supplies the API key for keyed providers.
5046
5193
  */
5047
5194
  export declare function getGeocoderConfig(): GeocoderConfig;
5195
+ /**
5196
+ * The locator the `arcgis-locator` provider uses: the one `locatorId` names,
5197
+ * else the first configured.
5198
+ *
5199
+ * @param input - The geocoding preference.
5200
+ * @returns The locator, or undefined when none is configured.
5201
+ */
5202
+ export declare function selectedGeocodingLocator(input: Pick<GeocodingPreferenceInput, "locators" | "locatorId">): GeocodingLocator | undefined;
5048
5203
  /** Inputs to {@link resolveGeocoderConfig}, mirroring the project preference. */
5049
5204
  interface GeocodingPreferenceInput {
5050
5205
  providerId?: string;
@@ -5055,6 +5210,10 @@ interface GeocodingPreferenceInput {
5055
5210
  /** Optional custom reverse endpoint (else the provider default). */
5056
5211
  reverseEndpoint?: string;
5057
5212
  email?: string;
5213
+ /** Configured ArcGIS GeocodeServer locators. */
5214
+ locators?: GeocodingLocator[];
5215
+ /** The locator the `arcgis-locator` provider uses. */
5216
+ locatorId?: string;
5058
5217
  }
5059
5218
  /**
5060
5219
  * Build a {@link GeocoderConfig} from structured project preferences. Used by
@@ -5134,6 +5293,75 @@ export declare function csvRowsToGeocodeRequests(rows: Record<string, string>[],
5134
5293
  * Safe to call multiple times; only the most recent implementation is used.
5135
5294
  */
5136
5295
  export declare function setGeocodingFetch(fetchImpl: typeof globalThis.fetch | null): void;
5296
+ /**
5297
+ * Resolves the access token for a secured locator, or undefined to send the
5298
+ * request without one. See {@link setGeocodingTokenProvider}.
5299
+ */
5300
+ type GeocodingTokenProvider = (locator: GeocodingLocator) => Promise<string | undefined>;
5301
+ /**
5302
+ * Register how a secured locator gets its token, or pass null to remove it.
5303
+ *
5304
+ * Core has no sign-in of its own: the app installs a provider that reuses its
5305
+ * ArcGIS portal sessions. It is only consulted for a locator that names a
5306
+ * `portalUrl`, and the provider decides whether that portal's token may be sent
5307
+ * to the locator's host, so a token is never forwarded to an unrelated server.
5308
+ *
5309
+ * @param provider - The token provider, or null.
5310
+ */
5311
+ export declare function setGeocodingTokenProvider(provider: GeocodingTokenProvider | null): void;
5312
+ /**
5313
+ * Whether `config` can reverse-geocode: a locator only when its metadata
5314
+ * advertises `reverseGeocode` (unchecked locators are assumed to).
5315
+ *
5316
+ * @param config - The geocoder configuration.
5317
+ * @returns Whether reverse geocoding is available.
5318
+ */
5319
+ export declare function geocoderSupportsReverse(config: GeocoderConfig): boolean;
5320
+ /**
5321
+ * Whether `config` offers suggestions while typing: a locator whose metadata
5322
+ * advertises `suggest`, searched through its single-line field (a suggestion
5323
+ * is a whole address, so it does not fit a structured field the user chose).
5324
+ *
5325
+ * @param config - The geocoder configuration.
5326
+ * @returns Whether {@link geocodeSuggest} can be used.
5327
+ */
5328
+ export declare function geocoderSupportsSuggest(config: GeocoderConfig): boolean;
5329
+ /**
5330
+ * Normalize an ArcGIS `suggest` response. Collection suggestions (a category
5331
+ * such as "Coffee shop") are dropped: they name many places, not one.
5332
+ *
5333
+ * @param data - The parsed response body.
5334
+ * @returns The suggestions.
5335
+ */
5336
+ export declare function parseArcGISSuggestions(data: unknown): GeocodeSuggestion[];
5337
+ /**
5338
+ * Ask the selected locator for suggestions that complete `text`. Resolve one
5339
+ * with {@link geocodeForward} and its `magicKey`.
5340
+ *
5341
+ * @param text - What the user has typed so far.
5342
+ * @param options - Abort signal, configuration and the most suggestions wanted.
5343
+ * @returns The suggestions.
5344
+ * @throws GeocoderUnsupportedError When the geocoder does not suggest.
5345
+ * @throws GeocoderServiceError For an HTTP or service error.
5346
+ */
5347
+ export declare function geocodeSuggest(text: string, options?: {
5348
+ signal?: AbortSignal;
5349
+ config?: GeocoderConfig;
5350
+ limit?: number;
5351
+ }): Promise<GeocodeSuggestion[]>;
5352
+ /**
5353
+ * Fetch and read a GeocodeServer's capabilities. A secured service is asked
5354
+ * with `token`.
5355
+ *
5356
+ * @param url - The locator's GeocodeServer URL (normalized first).
5357
+ * @param options - An abort signal and an optional token.
5358
+ * @returns The capabilities.
5359
+ * @throws GeocoderServiceError For an HTTP or service error.
5360
+ */
5361
+ export declare function fetchArcGISLocatorInfo(url: string, options?: {
5362
+ signal?: AbortSignal;
5363
+ token?: string;
5364
+ }): Promise<ArcGISLocatorCapabilities>;
5137
5365
  /**
5138
5366
  * Forward-geocode a single query through the configured provider, returning
5139
5367
  * normalized matches.
@@ -5142,6 +5370,10 @@ export declare function geocodeForward(query: string, options?: {
5142
5370
  signal?: AbortSignal;
5143
5371
  config?: GeocoderConfig;
5144
5372
  limit?: number;
5373
+ /** A {@link GeocodeSuggestion}'s key, to resolve that suggestion. */
5374
+ magicKey?: string;
5375
+ /** Ask for each candidate's own attributes, where the provider supports it. */
5376
+ attributes?: boolean;
5145
5377
  }): Promise<GeocodeMatch[]>;
5146
5378
  /**
5147
5379
  * Reverse-geocode a single point ([lon, lat]) through the configured provider,
@@ -5152,8 +5384,6 @@ export declare function geocodeReverse(lon: number, lat: number, options?: {
5152
5384
  config?: GeocoderConfig;
5153
5385
  zoom?: number;
5154
5386
  }): Promise<ReverseGeocodeDisplay | null>;
5155
- //#endregion
5156
- //#region src/runtime-env.d.ts
5157
5387
  /**
5158
5388
  * Resolves runtime environment variables shared by the external-service clients
5159
5389
  * (geocoding, routing). Allowlisted build-time vars (`__GEOLIBRE_BUILD_ENV__`,
@@ -5301,8 +5531,6 @@ export declare function getCesiumIonToken(env?: Record<string, string | undefine
5301
5531
  * @returns The resolved style URL, or undefined when no API key is configured.
5302
5532
  */
5303
5533
  export declare function getProtomapsStyleUrl(flavor: string, env?: Record<string, string | undefined>): string | undefined;
5304
- //#endregion
5305
- //#region src/platform.d.ts
5306
5534
  /**
5307
5535
  * Platform detection shared across the workspace. Carries no React/MapLibre
5308
5536
  * dependency so callers stay unit-testable.
@@ -5326,8 +5554,6 @@ export declare function getProtomapsStyleUrl(flavor: string, env?: Record<string
5326
5554
  * @returns True when the UA claims macOS but the device reports multi-touch.
5327
5555
  */
5328
5556
  export declare function isIpadDesktopUserAgent(userAgent: string, maxTouchPoints: number | undefined): boolean;
5329
- //#endregion
5330
- //#region src/cesium-ion.d.ts
5331
5557
  /** `metadata.sourceKind` of a layer that references a Cesium Ion asset. */
5332
5558
  export declare const CESIUM_ION_SOURCE_KIND = "cesium-ion";
5333
5559
  /** What an Ion asset id resolves to on the globe. */
@@ -5392,8 +5618,6 @@ interface CesiumIonLayerOptions {
5392
5618
  * alone. Both persist only the asset id: the token is runtime configuration.
5393
5619
  */
5394
5620
  export declare function createCesiumIonLayer(options: CesiumIonLayerOptions): GeoLibreLayer;
5395
- //#endregion
5396
- //#region src/czml.d.ts
5397
5621
  /**
5398
5622
  * CZML (Cesium Language) domain models and layer authoring (issue #2290).
5399
5623
  *
@@ -5453,8 +5677,6 @@ interface CzmlLayerOptions {
5453
5677
  * Build a typed GeoLibreLayer representing a CZML dynamic scene on the Cesium globe.
5454
5678
  */
5455
5679
  export declare function createCzmlLayer(options: CzmlLayerOptions): GeoLibreLayer;
5456
- //#endregion
5457
- //#region src/three-d-tiles.d.ts
5458
5680
  /** Header Google's tile server expects the Maps API key in. */
5459
5681
  export declare const GOOGLE_MAPS_API_KEY_HEADER = "X-GOOG-API-KEY";
5460
5682
  /** Whether `url` points at Google's Photorealistic 3D Tiles root tileset. */
@@ -5484,8 +5706,6 @@ export declare function resolveThreeDTilesRequestHeaders(url: string, headers: R
5484
5706
  * time by `resolveThreeDTilesRequestHeaders`).
5485
5707
  */
5486
5708
  export declare function persistedThreeDTilesRequestHeaders(url: string, headers: Record<string, string> | undefined): Record<string, string> | undefined;
5487
- //#endregion
5488
- //#region src/project-credential-refs.d.ts
5489
5709
  export declare function geocodingApiKeyAccount(providerId: string): string;
5490
5710
  export declare function environmentVariableAccount(key: string): string;
5491
5711
  /** Rows are secret unless explicitly marked `secret: false`. */
@@ -5536,8 +5756,6 @@ export declare function splitProjectCredentials(project: GeoLibreProject): {
5536
5756
  * env. A header referencing an unset variable is dropped.
5537
5757
  */
5538
5758
  export declare function resolveProjectHeaderReferences(headers: Record<string, string> | undefined): Record<string, string> | undefined;
5539
- //#endregion
5540
- //#region src/header-references.d.ts
5541
5759
  /**
5542
5760
  * `${NAME}` references in request header values.
5543
5761
  *
@@ -5567,8 +5785,6 @@ export declare function allowsCredentialHeaders(url: string): boolean;
5567
5785
  * and `undefined` when no header remains.
5568
5786
  */
5569
5787
  export declare function resolveHeaderReferences(headers: Record<string, string> | undefined, values: Readonly<Record<string, string>>): Record<string, string> | undefined;
5570
- //#endregion
5571
- //#region src/credentials.d.ts
5572
5788
  /**
5573
5789
  * Project fields whose values are credentials. Keep this registry as the
5574
5790
  * schema-level inventory. Keep the explicit preference/plugin handling in
@@ -5684,8 +5900,6 @@ export declare function redactProjectCredentials(project: GeoLibreProject): Cred
5684
5900
  export declare function redactConfigurationCredentials<T>(value: T): T;
5685
5901
  /** Convenience wrapper for callers that only need the safe project. */
5686
5902
  export declare function redactCredentials(project: GeoLibreProject): GeoLibreProject;
5687
- //#endregion
5688
- //#region src/visibility.d.ts
5689
5903
  /**
5690
5904
  * Returns a new FeatureCollection with properties marked as "excluded" removed.
5691
5905
  */
@@ -5695,8 +5909,6 @@ export declare function excludeHiddenFieldsFromGeojson(geojson: FeatureCollectio
5695
5909
  * physically removed from their inline GeoJSON.
5696
5910
  */
5697
5911
  export declare function excludeHiddenFieldsFromProject(project: GeoLibreProject): GeoLibreProject;
5698
- //#endregion
5699
- //#region src/editor-tracking.d.ts
5700
5912
  /** Default field names for maintained editor tracking columns. */
5701
5913
  export declare const DEFAULT_EDITOR_TRACKING_CONFIG: Required<EditorTrackingConfig>;
5702
5914
  /**
@@ -5789,8 +6001,6 @@ export declare function stampFeatureEditorTracking<T extends Feature>(feature: T
5789
6001
  * Stamp editor tracking metadata onto all features in a {@link FeatureCollection}.
5790
6002
  */
5791
6003
  export declare function stampFeatureCollectionEditorTracking(collection: FeatureCollection, action: "create" | "update", options?: EditorTrackingStampOptions): FeatureCollection;
5792
- //#endregion
5793
- //#region src/editor-identity.d.ts
5794
6004
  /**
5795
6005
  * Runtime resolution of "who is editing", for the editor tracking stamps.
5796
6006
  *
@@ -5821,8 +6031,6 @@ export declare function setStoredAuthorName(name: string): void;
5821
6031
  * @returns A non-empty identity string.
5822
6032
  */
5823
6033
  export declare function currentEditorIdentity(): string;
5824
- //#endregion
5825
- //#region src/cesium-kml.d.ts
5826
6034
  /** Native KML/KMZ documents retain their own styling on the globe. */
5827
6035
  export declare const CESIUM_KML_SOURCE_KIND = "cesium-kml";
5828
6036
  export declare function isCesiumKmlLayer(layer: Pick<GeoLibreLayer, "metadata">): boolean;
@@ -5837,14 +6045,10 @@ interface CesiumKmlLayerOptions {
5837
6045
  }
5838
6046
  export declare function cesiumKmlSource(layer: Pick<GeoLibreLayer, "source" | "metadata">): string | null;
5839
6047
  export declare function createCesiumKmlLayer(options: CesiumKmlLayerOptions): GeoLibreLayer;
5840
- //#endregion
5841
- //#region src/file-name.d.ts
5842
6048
  /** Extract a display filename without changing the source used for file access. */
5843
6049
  export declare function localFileName(path: string): string;
5844
6050
  /** Keep imported layers distinguishable, including within a multi-file import. */
5845
6051
  export declare function uniqueImportedLayerName(name: string, names: Iterable<string>): string;
5846
- //#endregion
5847
- //#region src/datum-shift.d.ts
5848
6052
  /**
5849
6053
  * Datum shifts (proj4 `+towgs84` Helmert parameters) for coordinate systems
5850
6054
  * whose datum is not WGS84-compatible, by EPSG code.
@@ -5899,8 +6103,6 @@ interface CogTilerCrsHook {
5899
6103
  * @param module The imported `cog-tiler-wasm` module.
5900
6104
  */
5901
6105
  export declare function installCogTilerDatumShift(module: CogTilerCrsHook): void;
5902
- //#endregion
5903
- //#region src/cog-jpeg-tables.d.ts
5904
6106
  type NumericArray = ArrayLike<number> | undefined;
5905
6107
  /** Convert separate TIFF Y/Cb/Cr planes to RGB using tags 529 and 532. */
5906
6108
  export declare function convertTiffYCbCrToRgb(yPlane: ArrayLike<number>, cbPlane: ArrayLike<number>, crPlane: ArrayLike<number>, coefficients?: NumericArray, referenceBlackWhite?: NumericArray): [Float64Array, Float64Array, Float64Array];
@@ -5932,6 +6134,5 @@ export declare function patchJpegCogSource(source: unknown): unknown;
5932
6134
  export declare function withJpegTablesPatch<M extends {
5933
6135
  openCog: (input: never) => Promise<unknown>;
5934
6136
  }>(module: M): M;
5935
- //#endregion
5936
- export { AddTileLayerOptions, AppCapabilities, AppPrivilege, AppRole, type AppState, ApplyLayerJoinsResult, AttributeFormConfig, AttributeFormFieldConfig, AttributeFormValueMapEntry, AttributeFormWidget, BLANK_BASEMAP, BLEND_MODES, BlendMode, CESIUM_BASEMAPS, CesiumBasemapId, CesiumBasemapImagery, type CesiumIonAssetKind, type CesiumIonLayerOptions, type CesiumIonQuickPick, type CesiumIonQuickPickGroup, type CesiumKmlLayerOptions, CollabInvite, CollaborationChatMessage, CollaborationMode, CollaborationParticipant, CollaborationPresence, CollaborationRole, CollaborationState, CommentAnchor, CommentAuthor, CommentReply, type ConversionToolKind, CreateProjectOptions, type CredentialRedactionResult, type CzmlDocument, type CzmlLayerOptions, type CzmlPacket, type CzmlSource, DEFAULT_BASEMAP, DEFAULT_BLEND_MODE, DEFAULT_DASHBOARD_COLUMNS, DEFAULT_ELLIPSOID_ID, DEFAULT_LAYER_STYLE, DEFAULT_LEGEND_CONFIG, DEFAULT_MAP_GRID_LAYOUT, DEFAULT_PRIMARY_RENDERER, DEFAULT_PRINT_LAYOUT, DEFAULT_PROJECT_NAME, DEFAULT_PROJECT_PREFERENCES, DEFAULT_STORY_MAP, DUCKDB_VECTOR_FEATURE_WARN_COUNT, DUCKDB_VECTOR_ROUTE_BYTES, DashboardWidget, DashboardWidgetAggregation, DashboardWidgetType, DiagramField, DiagramSizeMode, DiagramType, EARTH_MEAN_RADIUS_METERS, ELLIPSOIDS, EditorTrackingConfig, Ellipsoid, EllipsoidId, FeatureChangeSummary, FieldVisibility, FillPattern, GeoLibreLayer, GeoLibreProject, type GeocodeMatch, type GeocodeRequest, type GeocodeStatus, type GeocoderConfig, type GeocodingPreferenceInput, GeocodingPreferences, type GeocodingProvider, type GeocodingProviderId, GeometryGeneratorType, type GpsStatusFix, type IdentifyState, IndicatorAggregation, LARGE_VECTOR_FEATURE_THRESHOLD, LAYER_TYPES, LabelAnchor, LabelDedupe, LabelStyle, LabelTransform, LayerCapabilities, LayerConnection, LayerDescriptiveMetadata, LayerDiff, LayerGroup, LayerJoin, LayerJoinStats, LayerLibraryEntry, LayerMetadataContact, LayerMetadataLink, LayerMetadataTemporalExtent, LayerPopupConfig, LayerQuickFilter, LayerStyle, type LayerSummary, LayerType, LayerVirtualField, LegendConfig, LegendCustomEntry, LegendCustomItem, LegendCustomShape, LegendItemOverride, LegendPanelPosition, LineDecoration, MAX_DASHBOARD_COLUMNS, MAX_MAP_GRID_DIM, MAX_PROCESSING_HISTORY, MAX_PROJECT_BOOKMARKS, MIN_DASHBOARD_COLUMNS, MapGridLayout, MapPreferences, MapProjection, MapRendererKind, MapScaleUnit, MapViewState, MarkerShape, ModelGraphEdge, ModelGraphNode, ModelGraphNodeKind, ModelGraphPort, ModelPortKind, ModelToolProvider, NETCDF_IMAGE_SOURCE_KIND, type NetworkToolKind, type NominatimForwardResult, type NominatimReverseResult, NonGeographicCoordinates, OPENFREEMAP_BASEMAPS, PLANETARY_BASEMAPS, PLANETARY_BASEMAP_GROUPS, PLANETARY_BASEMAP_SENTINEL_PREFIX, PLANET_SWITCHER_OPTIONS, PROJECT_VERSION, PROTOMAPS_BASEMAPS, ParticipantIdentity, PlanetaryBasemap, PlanetaryBasemapGroup, PlanetaryBasemapSectionId, PluginDiff, PointRenderer, PolylineBatchOptions, PolylineDecodeResult, PopupDateFormat, PopupFieldConfig, PopupFieldFormat, PopupFieldKind, PrintLayoutConfig, PrintLayoutCorner, PrintLayoutLegendEntry, PrintLayoutPageFilter, ProcessingModel, ProcessingModelGraph, ProcessingModelStep, ProcessingRerunRequest, ProcessingRun, ProcessingRunKind, ProcessingRunStatus, ProjectBookmark, ProjectBookmarkGroup, ProjectComment, type ProjectCredentialLookup, ProjectDiff, ProjectDiffOptions, ProjectInteraction, ProjectLayerSerializationCache, ProjectPluginControlPosition, ProjectPluginState, ProjectPreferences, ProjectTemplateEntry, ProjectValueChange, QuickFilterDateKind, QuickFilterKind, QuickFilterTextOperator, type RasterToolKind, RecentProjectEntry, type ReverseGeocodeDisplay, RuntimeEnvironmentVariable, SQL_QUERY_SOURCE_KIND, SecondaryMapView, type StatisticsToolKind, StoryActiveSlideMode, StoryChapter, StoryChapterAlignment, StoryChapterAnimation, StoryChapterLocation, StoryInsetPosition, StoryLayerOpacityChange, StoryMap, StorySlideMode, StrokeWidthUnit, StyleLibraryEntry, StyleLibraryEntryKind, VectorRule, VectorStyleMode, VectorStyleStop, type VectorToolKind, applyJoinsToLayer, applyLayerJoins, applyProjectToStore, availableCesiumBasemap, basemapToCesiumImagery, batchDecodePolylines, bodyLengthToEarth, cascadeLayerJoinRefresh, collectTransitiveJoinSourceIds, createDefaultMapView, createDefaultPrintLayout, createEmptyProject, createProjectLayerSerializationCache, createProjectTemplate, decodePolyline, decodePolylineDetailed, detachProjectCopy, detectNonGeographicCoordinates, diffFeatureCollections, diffProjects, earthAreaToBody, earthLengthToBody, encodePolyline, geoJSONToPolylineStr, geojsonHasZCoordinates, getActiveBodyRadiusRatio, getActiveEllipsoid, getActiveMeanRadiusMeters, getActiveSemiMajorAxisMeters, getEllipsoid, getPlanetaryBasemapById, getPlanetaryBasemapByStyleUrl, horizontalBbox, hydrateProjectLayer, isAllowedPluginManifestUrl, isDefaultPrintLayout, isDuckDBQueryLayer, isSessionOnlyLayer, jsonValuesEqual, layerJoinKey, meanRadiusMeters, normalizeBlankBackgroundColor, normalizeBookmarkGroups, normalizeBookmarks, normalizeCesiumBasemap, normalizeDashboardColumns, normalizeLegendConfig, normalizeMapLayout, normalizeMapViewState, normalizeModelGraph, normalizeModels, normalizeObiaWorkbench, normalizePrimaryRenderer, normalizePrintLayoutConfig, normalizeProcessingHistory, normalizeProjectComments, normalizeProjectInteraction, normalizeSecondaryMapViews, normalizeStoryMap, normalizeWidgets, parseProject, polylineStrToGeoJSON, portableWmsTileUrl, previewValue, printLayoutConfigsEqual, projectFromStore, reapplyLayerJoins, resolveMapGrid, sameCesiumImagery, scrubPrintLayoutForLayers, scrubPrintLayoutForRemovedLayers, serializeProject, serializeProjectWithLayerCache, serializeProjectWithLayerCacheAsync, setActiveEllipsoidId, shouldUseTiledRendering, storyMapHasContent, stripJoinFields, styleValue, transformGeojsonElevation, unescapePolyline };
6137
+ export { AddTileLayerOptions, AppCapabilities, AppPrivilege, AppRole, type AppState, ApplyLayerJoinsResult, type ArcGISLocatorCapabilities, AttributeFormConfig, AttributeFormFieldConfig, AttributeFormValueMapEntry, AttributeFormWidget, BLANK_BASEMAP, BLEND_MODES, BlendMode, CESIUM_BASEMAPS, CesiumBasemapId, CesiumBasemapImagery, type CesiumIonAssetKind, type CesiumIonLayerOptions, type CesiumIonQuickPick, type CesiumIonQuickPickGroup, type CesiumKmlLayerOptions, CollabInvite, CollaborationChatMessage, CollaborationMode, CollaborationParticipant, CollaborationPresence, CollaborationRole, CollaborationState, CommentAnchor, CommentAuthor, CommentReply, type ConversionToolKind, CreateProjectOptions, type CredentialRedactionResult, type CzmlDocument, type CzmlLayerOptions, type CzmlPacket, type CzmlSource, DEFAULT_BASEMAP, DEFAULT_BLEND_MODE, DEFAULT_DASHBOARD_COLUMNS, DEFAULT_ELLIPSOID_ID, DEFAULT_LAYER_STYLE, DEFAULT_LEGEND_CONFIG, DEFAULT_MAP_GRID_LAYOUT, DEFAULT_PRIMARY_RENDERER, DEFAULT_PRINT_LAYOUT, DEFAULT_PROJECT_NAME, DEFAULT_PROJECT_PREFERENCES, DEFAULT_STORY_MAP, DUCKDB_VECTOR_FEATURE_WARN_COUNT, DUCKDB_VECTOR_ROUTE_BYTES, DashboardWidget, DashboardWidgetAggregation, DashboardWidgetType, DiagramField, DiagramSizeMode, DiagramType, EARTH_MEAN_RADIUS_METERS, ELLIPSOIDS, EditorTrackingConfig, Ellipsoid, EllipsoidId, FeatureChangeSummary, FieldVisibility, FillPattern, GeoArrowBatch, GeoArrowGeometryType, GeoLibreLayer, GeoLibreProject, type GeocodeMatch, type GeocodeRequest, type GeocodeStatus, type GeocodeSuggestion, type GeocoderConfig, GeocodingLocator, type GeocodingPreferenceInput, GeocodingPreferences, type GeocodingProvider, type GeocodingProviderId, type GeocodingTokenProvider, GeometryGeneratorType, type GpsStatusFix, type IdentifyState, IndicatorAggregation, LARGE_VECTOR_FEATURE_THRESHOLD, LAYER_TYPES, LabelAnchor, LabelDedupe, LabelStyle, LabelTransform, LayerCapabilities, LayerConnection, LayerDescriptiveMetadata, LayerDiff, LayerGroup, LayerJoin, LayerJoinStats, LayerLibraryEntry, LayerMetadataContact, LayerMetadataLink, LayerMetadataTemporalExtent, LayerPopupConfig, LayerQuickFilter, LayerStyle, type LayerSummary, LayerType, LayerVirtualField, LegendConfig, LegendCustomEntry, LegendCustomItem, LegendCustomShape, LegendItemOverride, LegendPanelPosition, LineDecoration, MAX_DASHBOARD_COLUMNS, MAX_MAP_GRID_DIM, MAX_PROCESSING_HISTORY, MAX_PROJECT_BOOKMARKS, MIN_DASHBOARD_COLUMNS, MapGridLayout, MapPreferences, MapProjection, MapRendererKind, MapScaleUnit, MapViewState, MarkerShape, ModelGraphEdge, ModelGraphNode, ModelGraphNodeKind, ModelGraphPort, ModelPortKind, ModelToolProvider, NETCDF_IMAGE_SOURCE_KIND, type NetworkToolKind, type NominatimForwardResult, type NominatimReverseResult, NonGeographicCoordinates, OPENFREEMAP_BASEMAPS, PLANETARY_BASEMAPS, PLANETARY_BASEMAP_GROUPS, PLANETARY_BASEMAP_SENTINEL_PREFIX, PLANET_SWITCHER_OPTIONS, PROJECT_VERSION, PROTOMAPS_BASEMAPS, ParticipantIdentity, PlanetaryBasemap, PlanetaryBasemapGroup, PlanetaryBasemapSectionId, PluginDiff, PointRenderer, PolylineBatchOptions, PolylineDecodeResult, PopupDateFormat, PopupFieldConfig, PopupFieldFormat, PopupFieldKind, PrintLayoutConfig, PrintLayoutCorner, PrintLayoutLegendEntry, PrintLayoutPageFilter, ProcessingModel, ProcessingModelGraph, ProcessingModelStep, ProcessingRerunRequest, ProcessingRun, ProcessingRunKind, ProcessingRunStatus, ProjectBookmark, ProjectBookmarkGroup, ProjectComment, ProjectControlSetting, type ProjectCredentialLookup, ProjectDiff, ProjectDiffOptions, ProjectInteraction, ProjectLayerSerializationCache, ProjectPluginControlPosition, ProjectPluginState, ProjectPreferences, ProjectTemplateEntry, ProjectValueChange, QuickFilterDateKind, QuickFilterKind, QuickFilterTextOperator, type RasterToolKind, RecentProjectEntry, type ReverseGeocodeDisplay, RuntimeEnvironmentVariable, SQL_QUERY_SOURCE_KIND, SecondaryMapView, type StatisticsToolKind, StoryActiveSlideMode, StoryChapter, StoryChapterAlignment, StoryChapterAnimation, StoryChapterLocation, StoryInsetPosition, StoryLayerOpacityChange, StoryMap, StorySlideMode, StrokeWidthUnit, StyleLibraryEntry, StyleLibraryEntryKind, VectorRule, VectorStyleMode, VectorStyleStop, type VectorToolKind, applyJoinsToLayer, applyLayerJoins, applyProjectToStore, availableCesiumBasemap, basemapToCesiumImagery, batchDecodePolylines, bodyLengthToEarth, cascadeLayerJoinRefresh, collectTransitiveJoinSourceIds, computeGeoArrowBBox, createDefaultMapView, createDefaultPrintLayout, createEmptyProject, createProjectLayerSerializationCache, createProjectTemplate, decodePolyline, decodePolylineDetailed, detachProjectCopy, detectNonGeographicCoordinates, diffFeatureCollections, diffProjects, earthAreaToBody, earthLengthToBody, encodePolyline, featureCollectionToGeoArrow, geoArrowToFeatureCollection, geoJSONToPolylineStr, geojsonHasZCoordinates, getActiveBodyRadiusRatio, getActiveEllipsoid, getActiveMeanRadiusMeters, getActiveSemiMajorAxisMeters, getEllipsoid, getPlanetaryBasemapById, getPlanetaryBasemapByStyleUrl, horizontalBbox, hydrateProjectLayer, isAllowedPluginManifestUrl, isDefaultPrintLayout, isDuckDBQueryLayer, isGeoArrowBatch, isSessionOnlyLayer, jsonValuesEqual, layerJoinKey, meanRadiusMeters, normalizeBlankBackgroundColor, normalizeBookmarkGroups, normalizeBookmarks, normalizeCesiumBasemap, normalizeDashboardColumns, normalizeLegendConfig, normalizeMapLayout, normalizeMapViewState, normalizeModelGraph, normalizeModels, normalizeObiaWorkbench, normalizePrimaryRenderer, normalizePrintLayoutConfig, normalizeProcessingHistory, normalizeProjectComments, normalizeProjectInteraction, normalizeSecondaryMapViews, normalizeStoryMap, normalizeWidgets, parseProject, polylineStrToGeoJSON, portableWmsTileUrl, previewValue, printLayoutConfigsEqual, projectFromStore, reapplyLayerJoins, resolveMapGrid, sameCesiumImagery, scrubPrintLayoutForLayers, scrubPrintLayoutForRemovedLayers, serializeProject, serializeProjectWithLayerCache, serializeProjectWithLayerCacheAsync, setActiveEllipsoidId, shouldUseTiledRendering, storyMapHasContent, stripJoinFields, styleValue, transformGeojsonElevation, unescapePolyline };
5937
6138
  //# sourceMappingURL=index.d.mts.map