@chrtco/sdk 0.10.18 → 0.10.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1182,6 +1182,100 @@ interface SearchResponse {
1182
1182
  attribution: string;
1183
1183
  disclaimer: string;
1184
1184
  }
1185
+ /**
1186
+ * CHRTpoi — one charted marine facility.
1187
+ *
1188
+ * `id` is the LNAM of the facility's largest-scale charted instance — the
1189
+ * feature you meet following `id` + `cell_id` into `features()`. Stable while
1190
+ * that feature survives in its cell. Never use it to group across cells: the
1191
+ * same facility carries a DIFFERENT LNAM in every cell that charts it, and the
1192
+ * grouping is already done server-side (`members` says how many instances
1193
+ * merged into this row).
1194
+ */
1195
+ interface Poi {
1196
+ id: string;
1197
+ /**
1198
+ * OBJNAM verbatim from the chart — or null. ~6 % of charted marinas carry
1199
+ * no name; the facility is real, the chart simply does not name it. Null is
1200
+ * honest absence, never invented.
1201
+ */
1202
+ name: string | null;
1203
+ /** CHRT's category axis. v1: "marina" (S-57 HRBFAC with CATHAF ∋ 5). */
1204
+ category: string;
1205
+ lon: number;
1206
+ lat: number;
1207
+ /** [west, south, east, north] — union of every charted instance's envelope. Degenerate for a point, never null. */
1208
+ bbox: readonly [number, number, number, number];
1209
+ /** Source S-57 layer (HRBFAC in v1). */
1210
+ layer: string;
1211
+ cell_id: string;
1212
+ /** Issuing authority (e.g. "NOAA_ENC", "USACE_IENC") — per POI, because one viewport can span authorities. */
1213
+ chart_source: string;
1214
+ /** Source-cell currency, inline — no per-row cells() call needed. */
1215
+ edition: number | null;
1216
+ update_number: number | null;
1217
+ issue_date: string | null;
1218
+ /** Charted instances merged into this row by server-side de-duplication (>= 1). */
1219
+ members: number;
1220
+ /** Metres from `near`. Present only in near mode — absent, not null, in bbox mode. */
1221
+ distance_m?: number;
1222
+ }
1223
+ /**
1224
+ * ALWAYS present on a POI response, and the field to read FIRST. It names what
1225
+ * an empty `pois` array means for this exact request:
1226
+ *
1227
+ * - `covered` — the whole queried area is charted: empty = no facilities
1228
+ * charted there. A real answer.
1229
+ * - `partial` — part of the area is uncharted: results speak only for the
1230
+ * charted part.
1231
+ * - `none` — CHRT holds no coverage here: empty means NOTHING about the
1232
+ * area, and must never be shown as "no marinas".
1233
+ *
1234
+ * `message` is written to be relayed to the user unedited.
1235
+ */
1236
+ interface PoiCoverage {
1237
+ state: "covered" | "partial" | "none";
1238
+ message: string;
1239
+ chart_sources: string[] | null;
1240
+ }
1241
+ /** Provenance of the POI dataset — in the payload so clients never hardcode a source. */
1242
+ interface PoiDataset {
1243
+ source: "ENC";
1244
+ derived_from: string;
1245
+ /** Every category the dataset currently serves. */
1246
+ categories: readonly string[];
1247
+ /** When the POI table was last rebuilt against the ENC corpus (daily), ISO 8601. */
1248
+ updated_at: string | null;
1249
+ }
1250
+ interface PoiResponse {
1251
+ pois: Poi[];
1252
+ /** Exact count of all matches — not an estimate, and not the page length. */
1253
+ total_count: number;
1254
+ limit: number;
1255
+ offset: number;
1256
+ coverage: PoiCoverage;
1257
+ dataset: PoiDataset;
1258
+ attribution: string;
1259
+ disclaimer: string;
1260
+ }
1261
+ /**
1262
+ * Exactly ONE of `bbox` or `near` — the endpoint rejects both-or-neither with
1263
+ * a 400, so precedence is never invisible.
1264
+ */
1265
+ interface PoiOptions {
1266
+ /** `[west, south, east, north]` — viewport mode, the primary. */
1267
+ bbox?: [number, number, number, number];
1268
+ /** `[longitude, latitude]` — radius mode ("marinas near me"). Orders by distance and adds `distance_m`. */
1269
+ near?: [number, number];
1270
+ /** Near-mode radius in metres. Default 10,000, clamped to 100,000. Rejected without `near`. */
1271
+ radiusM?: number;
1272
+ /** v1: "marina". Omit for every category — new categories appear without a contract change. */
1273
+ category?: string;
1274
+ /** Default 100, clamped to 500; the clamp is echoed in the envelope. */
1275
+ limit?: number;
1276
+ offset?: number;
1277
+ signal?: AbortSignal;
1278
+ }
1185
1279
  interface SearchOptions {
1186
1280
  /**
1187
1281
  * Free text. Multi-word in ANY order — `"cutty harbor"` finds
@@ -1294,6 +1388,22 @@ interface TileTokenResponse {
1294
1388
  kid: string;
1295
1389
  /** Build id/tag pinned into the JWT — the tile-worker cache key. */
1296
1390
  buildTag: string;
1391
+ /**
1392
+ * Build id per REGION this token can fetch, `buildTag` included.
1393
+ *
1394
+ * A tile token is scoped to one chart region, but it also carries the
1395
+ * implicit `CHRT_LAND` / `CHRT_RELIEF` basemap grant (ADR 0023 §4), and
1396
+ * those regions are promoted on their own schedule. So `buildTag` answers
1397
+ * "which chart?" and says nothing about the land drawn under it — a consumer
1398
+ * caching tiles per build MUST key on this map instead, or a land-only
1399
+ * cutover is invisible to it and it serves the previous land indefinitely.
1400
+ * That is not hypothetical: it is what the browser tile cache did until
1401
+ * 2026-08-25, and what the tile-worker's edge cache did until 2026-08-24.
1402
+ *
1403
+ * Always non-empty — at minimum `{ [region]: buildTag }`. A region absent
1404
+ * from the map has no servable build and should not be cached at all.
1405
+ */
1406
+ buildTags: Record<string, string>;
1297
1407
  /** Echo of the region the token is scoped to. */
1298
1408
  region: string;
1299
1409
  }
@@ -1338,6 +1448,17 @@ declare class TileAuth {
1338
1448
  getToken(region?: string): Promise<TileTokenResponse>;
1339
1449
  /** Synchronous cache peek — null if absent or within the stale grace window. */
1340
1450
  peek(region?: string): string | null;
1451
+ /**
1452
+ * Synchronous peek at the cached mint's per-region build ids — `{}` when the
1453
+ * cache is cold.
1454
+ *
1455
+ * `chrt.style()` is synchronous and cannot mint, so this is how a style
1456
+ * generated after the cache is warm picks up the build discriminator without
1457
+ * the caller threading it by hand. A cold cache yields `{}`, which produces
1458
+ * the undiscriminated URL the SDK emitted before this existed — never an
1459
+ * error, and never a wrong build.
1460
+ */
1461
+ peekBuildTags(region?: string): Readonly<Record<string, string>>;
1341
1462
  /**
1342
1463
  * Produce a MapLibre / Mapbox GL `transformRequest`. Attaches
1343
1464
  * `Authorization: Bearer <jwt>` only to CHRT tile URLs and the CHRT
@@ -1450,10 +1571,16 @@ declare class TilesEndpoint {
1450
1571
  */
1451
1572
  fetchStyle(opts?: FetchStyleOptions): Promise<MapLibreStyle>;
1452
1573
  /**
1453
- * Vector tile URL template for the configured region, served by the
1454
- * tile-worker at `tiles.chrt.co`. Tiles are JWT-gated — pair this with
1574
+ * Vector tile URL for the configured region, served by the tile-worker at
1575
+ * `tiles.chrt.co`. Tiles are JWT-gated — pair this with
1455
1576
  * `chrt.transformRequest()`, which attaches the `Authorization: Bearer`
1456
1577
  * header. Prefer `chrt.style()`, which wires the source for you.
1578
+ *
1579
+ * Carries the build discriminator (`?v=`) once the token cache is warm, so
1580
+ * two buildTags never share one cache entry — see `BUILD_PARAM`. A cold cache
1581
+ * yields the bare URL, which is equally valid: the server ignores the
1582
+ * parameter, and warming is a `chrt.warmTiles()` (or one
1583
+ * `chrt.transformRequest()` round-trip) away.
1457
1584
  */
1458
1585
  tileUrl(z: number, x: number, y: number): string;
1459
1586
  /**
@@ -3123,7 +3250,84 @@ type AnySourceSpec = VectorSourceSpec | RasterDemSource;
3123
3250
  declare const LAND_REGION = "CHRT_LAND";
3124
3251
  /** CHRTland's terrarium relief. */
3125
3252
  declare const RELIEF_REGION = "CHRT_RELIEF";
3253
+ /** The world basemap under everything (completing-the-world-map, 2026-08-27). */
3254
+ declare const BASE_REGION = "CHRT_BASE";
3255
+ /**
3256
+ * CHRT_BASE's zoom range. 11 is the deepest zoom the archive's detail tier
3257
+ * carries honestly — the planet's inland water exists from z9 and is read at
3258
+ * z10 — and the world tier is tiled to the same depth so no layer vanishes
3259
+ * from a tile the detail tier creates. Above 11 the client overzooms, and
3260
+ * overzoomed inland water looks soft DELIBERATELY: it is "roughly where the
3261
+ * lakes are", not a surveyed shoreline. Must equal the builder's MAXZOOM
3262
+ * (tools/chrtbase-build/build.mjs).
3263
+ */
3264
+ declare const BASE_MINZOOM = 0;
3265
+ declare const BASE_MAXZOOM = 11;
3126
3266
  type SourceMode = "mapbox" | "pmtiles";
3267
+ /**
3268
+ * Query parameter carrying the resolved build id on every tile URL.
3269
+ *
3270
+ * ── Why the build has to be IN THE URL ────────────────────────────────────
3271
+ *
3272
+ * The Worker reports the build it served in the `X-Build-Id` RESPONSE HEADER
3273
+ * and sends `Cache-Control: private, max-age=3600`. A header is not part of a
3274
+ * cache key, so every build shares one URL: after a cutover, tiles the client
3275
+ * already fetched keep coming from its own HTTP cache — the old build — while
3276
+ * newly-panned-to tiles come from the new one, for up to the full hour. The
3277
+ * client renders TWO BUILDS AT ONCE.
3278
+ *
3279
+ * On a nautical chart that is not a cosmetic seam. Measured live 2026-08-25,
3280
+ * cutting `CHRT_LAND` from `463b265e` to `dbb69074` (a build that deliberately
3281
+ * changes land extent): adjacent tiles disagreed about whether land was there,
3282
+ * at the seam between them. Putting the build in the key gives each build its
3283
+ * own cache namespace — old entries age out untouched, and the next style
3284
+ * build flips the whole viewport at once instead of tile by tile.
3285
+ *
3286
+ * ── Why a QUERY PARAMETER and not a path segment ──────────────────────────
3287
+ *
3288
+ * A path segment would be the tidier-looking URL and it is the wrong trade
3289
+ * here, for two reasons that are both about other people's code:
3290
+ *
3291
+ * 1. COMPATIBILITY IS PERMANENT, NOT "one release". iOS and desktop are
3292
+ * prod-only clients that ship on their own cadence. The Worker routes on
3293
+ * `url.pathname` (`TILE_ROUTE_PATH`) and reads only `?build=`, so a URL
3294
+ * carrying this parameter routes BYTE-IDENTICALLY to one without it. A
3295
+ * new path segment would instead need a second route regex kept alive
3296
+ * indefinitely.
3297
+ * 2. FIVE SEPARATE PATTERNS ALREADY MATCH THIS URL, and every one of them
3298
+ * ends `(?:\?.*)?$` — `src/lib/map/tile-token-client.ts` TILE_URL_PATH
3299
+ * and `src/site/chart/sail-tile-token.ts` (which decide whether a tile
3300
+ * gets its Bearer), `packages/sdk/src/tile-auth.ts` TILE_URL_PATH,
3301
+ * `public/chrt-tile-sw.js` TILE_URL_RE (which also reads the region out of
3302
+ * the URL to pick its per-region cache), and
3303
+ * `src/site/offline/pack-protocol.ts` TILE_URL (which rewrites a tile to
3304
+ * a downloaded pack). Their optional PATH segment, by contrast, is
3305
+ * `[a-z][a-z0-9-]*` — letter-first so it cannot be confused with the
3306
+ * numeric `{z}` — and build ids are hex (`463b265e`, `4de67273`). A build
3307
+ * in the path would miss every one of them, and a tile those patterns
3308
+ * miss does not merely go uncached: it goes out with NO BEARER and comes
3309
+ * back 401, which MapLibre records as a permanently errored tile. That is
3310
+ * the exact failure the `.png` drift caused on staging-sail (see
3311
+ * `chrt-tile-sw.js`).
3312
+ *
3313
+ * The query string is also what the caches this fix targets actually key on:
3314
+ * the browser HTTP cache, MapLibre's own tile cache, and the Service Worker's
3315
+ * `new Request(req.url)` entry key all include it.
3316
+ *
3317
+ * `v` rather than `build`: `?build=` is a taken name with a strict meaning on
3318
+ * the Worker (`?build=candidate`, employee-only, 400 on any other value).
3319
+ */
3320
+ declare const BUILD_PARAM = "v";
3321
+ /**
3322
+ * One tile-URL template — the single place a CHRT tile URL is spelled.
3323
+ *
3324
+ * `buildId` is encoded rather than interpolated raw: MapLibre substitutes
3325
+ * `{z}`/`{x}`/`{y}` by brace-matching the template, so an id containing a
3326
+ * brace would corrupt every tile request. Empty / whitespace-only ids emit no
3327
+ * parameter at all instead of a bare `?v=` that would key its own useless
3328
+ * cache namespace.
3329
+ */
3330
+ declare function tileTemplate(base: string, region: string, extension: "mvt" | "png", buildId?: string): string;
3127
3331
  /** Canonical source id used in `generateStyle()` — matches the region name
3128
3332
  * of the one consolidated PMTiles served by the tile-worker for this region. */
3129
3333
  declare const DEFAULT_REGION = "NOAA_ENC";
@@ -3133,10 +3337,41 @@ interface BuildSourcesOptions {
3133
3337
  /** Chart region. Default: "NOAA_ENC". */
3134
3338
  region?: string;
3135
3339
  /**
3136
- * Reserved for future cache-busting on KV-pointer flips. Currently unused;
3137
- * build pinning rides in the JWT, not the URL.
3340
+ * Build id of the CHART region (`region`) — the `build_tag` a
3341
+ * `mint-tile-token` response hands back.
3342
+ *
3343
+ * Emitted as the {@link BUILD_PARAM} query parameter on that region's tile
3344
+ * template. See {@link tileTemplate} for why a build discriminator has to be
3345
+ * in the URL at all.
3346
+ *
3347
+ * ⚠ THIS COVERS THE CHART REGION ONLY. A token is minted for one chart
3348
+ * region and `CHRT_LAND` / `CHRT_RELIEF` ride it, so the JWT's `build_tag`
3349
+ * says nothing about a land cutover — the same blind spot that made the
3350
+ * Worker's edge-cache key wrong until `TILE_CACHE_VERSION` v3
3351
+ * (cloudflare/tile-worker/src/cache-encoding.ts). Pass {@link buildTags} to
3352
+ * discriminate the basemap sources too.
3138
3353
  */
3139
3354
  buildTag?: string;
3355
+ /**
3356
+ * Resolved build id per region — `{ NOAA_ENC: "…", CHRT_LAND: "…" }`.
3357
+ *
3358
+ * The complete form of {@link buildTag}: every source this style declares
3359
+ * gets its own discriminator, so a `CHRT_LAND` promotion turns over the land
3360
+ * URLs without touching the chart's (and vice versa). An entry here wins
3361
+ * over `buildTag` for the same region.
3362
+ *
3363
+ * This is the mint response's `build_tags` map verbatim (claim contract
3364
+ * v1.7) — `TileTokenResponse.buildTags` in both `lib/map/tile-token-client.ts`
3365
+ * and the SDK's `tile-auth.ts`. The same map already keys the tile Service
3366
+ * Worker's per-region caches; passing it here puts the same identity in the
3367
+ * URL, so the layer above the Service Worker stops mixing builds too.
3368
+ *
3369
+ * A region absent from the map simply gets no discriminator — the URL it
3370
+ * has always had. That is a deliberate soft edge: an older mint response, or
3371
+ * a region with no servable build, must degrade to today's behaviour rather
3372
+ * than emit a URL pinned to a build nobody resolved.
3373
+ */
3374
+ buildTags?: Readonly<Record<string, string>>;
3140
3375
  /** Override tile-worker origin (e.g. staging). Default: DEFAULT_TILE_BASE_URL. */
3141
3376
  tileBaseUrl?: string;
3142
3377
  /**
@@ -3150,6 +3385,13 @@ interface BuildSourcesOptions {
3150
3385
  * `land-regions.ts` still withholds.
3151
3386
  */
3152
3387
  relief?: boolean;
3388
+ /**
3389
+ * Emit the CHRT_BASE world basemap as a third vector source — the dark
3390
+ * geography under everything, the tan jurisdiction fill, and the rough
3391
+ * inland water inside countries CHRT carries. Its layers sit UNDER the
3392
+ * no-coverage hatch's companions and everything else; see baseLayers().
3393
+ */
3394
+ base?: boolean;
3153
3395
  }
3154
3396
  /**
3155
3397
  * Build the "sources" block for a CHRT style.
@@ -3158,6 +3400,10 @@ interface BuildSourcesOptions {
3158
3400
  * - `mode: "pmtiles"` (default): one vector tile endpoint for the region,
3159
3401
  * routed by the Worker to the one consolidated PMTiles:
3160
3402
  * `${tileBaseUrl}/v1/tiles/{region}/{z}/{x}/{y}.mvt`
3403
+ *
3404
+ * Pass `buildTag` / `buildTags` to pin each source's URL to the build it is
3405
+ * serving — without that, one URL is shared by every build and a cutover
3406
+ * leaves the client rendering two of them at once. See {@link BUILD_PARAM}.
3161
3407
  */
3162
3408
  declare function buildSources(opts?: BuildSourcesOptions): Record<string, AnySourceSpec>;
3163
3409
 
@@ -4193,6 +4439,7 @@ declare class Chrt {
4193
4439
  readonly interact: InteractClient;
4194
4440
  private featuresEp;
4195
4441
  private searchEp;
4442
+ private poiEp;
4196
4443
  private queryEp;
4197
4444
  private http;
4198
4445
  private tileAuth;
@@ -4227,6 +4474,24 @@ declare class Chrt {
4227
4474
  * from "nothing matched", and neither means the water is clear.
4228
4475
  */
4229
4476
  search(options: SearchOptions): Promise<SearchResponse>;
4477
+ /**
4478
+ * CHRTpoi — charted marine facilities in a viewport or radius.
4479
+ *
4480
+ * v1 serves marinas, derived from the ENC's own HRBFAC facility class —
4481
+ * the chart's data, with the source cell's currency inline per POI.
4482
+ *
4483
+ * ```ts
4484
+ * const { pois, coverage } = await chrt.pois({ bbox: [-70.7, 41.4, -70.5, 41.6] });
4485
+ * ```
4486
+ *
4487
+ * **Read `coverage.state` before interpreting an empty list.** `covered` +
4488
+ * empty means no marinas are charted there — a real answer. `none` means
4489
+ * CHRT cannot answer for that area at all, and an empty list means nothing.
4490
+ * The two must never be shown the same way, and `coverage.message` is
4491
+ * written to be relayed unedited. Metered on its own allowance
4492
+ * (`poi_called`), separate from features and search; not gated by tier.
4493
+ */
4494
+ pois(options: PoiOptions): Promise<PoiResponse>;
4230
4495
  /** Spatial proximity query around a point */
4231
4496
  query(options: QueryOptions): Promise<QueryResponse>;
4232
4497
  /**
@@ -4415,8 +4680,20 @@ declare class Chrt {
4415
4680
  * Pre-mint the tile token for a region. Optional — `transformRequest()` warms
4416
4681
  * the cache automatically — but useful if you want to surface a mint error
4417
4682
  * (e.g. `region_not_licensed`, `tile_quota_exceeded`) before the map loads.
4683
+ *
4684
+ * Returns what it minted, so a caller building its own sources can take the
4685
+ * `buildTags` map straight from here:
4686
+ *
4687
+ * ```ts
4688
+ * const { buildTags } = await chrt.warmTiles();
4689
+ * map.addSource("chrt", buildSources({ region: "NOAA_ENC", buildTags })["NOAA_ENC"]);
4690
+ * ```
4691
+ *
4692
+ * That pins each tile URL to the build it serves, so a build cutover gets its
4693
+ * own client cache namespace instead of leaving old and new tiles mixed on
4694
+ * screen. `chrt.style()` reads the same cache and needs no argument.
4418
4695
  */
4419
- warmTiles(region?: string): Promise<void>;
4696
+ warmTiles(region?: string): Promise<TileTokenResponse>;
4420
4697
  }
4421
4698
 
4422
- export { ALL_NAV_AID_LAYERS, ALL_WATER_BODY_LAYERS, AREA_QUERY_LAYERS, ATON_EXPRESSION_CLASSES, type AheadCoverageCell, type AheadFeatureProperties, type AheadOptions, type AheadResponse, type AlongRouteFeatureProperties, type AlongRouteOptions, type AlongRouteResponse, type AreaInspectResult, type AtlasStyle, type AttachOptions, BAND_DRAW_ORDER, BAND_PRIORITY_RANGES, type BBox, BRIDGE_QUERY_LAYERS, BUILD_MAXZOOM, BUILD_MINZOOM, type BandCode, type BandPriorityRange, type BridgeInspectResult, type BuildOfflineStyleOptions, type BuildSourcesOptions, CHART_BAND_CODES, CHART_CASCADE_CODES, CHART_SECTIONS, CHRTRASTER_REF_CROPS, CHRTRASTER_SVGS, CHRT_ATON_COLORS, CHRT_GLYPH_NAMES, CHRT_GLYPH_SVGS, CHRT_ICON_EXPRESSIONS, CHRT_ICON_PREFIX, CHRT_SDF_GLYPHS, CHRT_STYLE_MODES, type CandidateQueryOptions, type CandidatesEventContext, type CellDeletedEvent, type CellDetail, type CellEventData, type CellNewEvent, type CellUpdatedData, type CellUpdatedEvent, type CellsOptions, type CellsResponse, type ChartSection, Chrt, type ChrtConfig, ChrtError, type ChrtStyleMode, type ChrtStyleOptions, type ChrtStyleTheme, type ChrtSymbolSet, type ClickAnchor, ColorTableName, type CoverageOptions, type CoverageResponse, type CoverageRouteCell, type CoverageRouteOptions, type CoverageRouteResponse, type CoverageSource, type CustomStyleConfig, DEFAULT_CLICK_TOLERANCE, DEFAULT_CUSTOM_STYLE_CONFIG, DEFAULT_INSPECT_CLASS_RANK, DEFAULT_LABEL_SETTINGS, DEFAULT_NAV_AID_SETTINGS, DEFAULT_REGION, DEFAULT_SAFETY_CONTOUR_M, DEFAULT_SOUNDING_SETTINGS, DEFAULT_TILE_BASE_URL, DEFAULT_TILE_REGION, DEFAULT_WATER_BODY_SETTINGS, type DecodedAreaFeature, type DecodedBridge, type DecodedNavAid, type DecodedProperty, type DisplayCategory, type DisplayMode, type FeatureCollection, type FeaturesOptions, type FetchStyleOptions, FileSystemAdapter, type FlashPattern, type FlashPhase, type GenerateCustomStyleOptions, type GeneratedCustomStyle, type GeoJsonFeature, type GeoJsonGeometry, type GeomType, INSPECT_CLASS_RANK, INSPECT_RANK_DEVIATIONS, type InspectCandidate, type InspectCandidateSet, type InspectEnrichment, type InspectEventContext, type InspectNotice, type InspectOptions, type InspectResult, type InspectTargetClass, type InspectableFeature, InteractClient, type InteractEntitlement, InteractError, type InteractErrorCode, type InteractHandle, type InteractMapLike, type InteractMapMouseEvent, LABELED_LAYERS, LABEL_BEHAVIOR, LABEL_LAYER_GROUPS, LABEL_PRIORITY, LAND_REGION, type LabelBehavior, type LabelConfigOptions, type LabelLayerConfig, type LabelSettings, type LookupEntry, type MapLibreStyle, type MapboxStyle, type MapboxVectorSource, type MarineAlert, type MarineAlertsOptions, type MarineAlertsResponse, type MarineConditionsOptions, type MarineConditionsResponse, type MarineForecastOptions, type MarineForecastPeriod, type MarineForecastResponse, type MarineSeas, type MarineStation, type MarineSwellTrain, type MarineWind, type MarineZoneRef, NAUTICAL_SYMBOLS, NAV_AID_LAYER_GROUPS, NAV_AID_QUERY_LAYERS, NON_SOLAS_DISCLAIMER, NON_SOLAS_DISCLAIMER_SHORT, type NauticalCategory, type NauticalSymbol, type NavAidInspectResult, type NavAidSettings, type NearbyMarineStation, type OfflineBundleResponse, type OfflineDownloadOptions, type OfflineDownloadProgress, type OfflineDownloadResult, OfflineError, type OfflineErrorCode, type OfflineFetchStyleOptions, type OfflineHeartbeatOptions, type OfflineRegionSummary, type OfflineRemoveOptions, OfflineStyleError, type OfflineStylePlatform, type OfflineStyleResponse, PLACENAME_LAND_CLASSES, PLACENAME_SOURCE_LAYER, PLACENAME_WATER_CLASSES, type PmtilesVectorSource, type QueryFeatureProperties, type QueryOptions, type QueryResponse, RASTER_ATON_CLASSES, RASTER_GLYPH_NAMES, RASTER_ICON_PREFIX, RELIEF_REGION, type ResolvedStyle, type ResolvedTheme, type S101ArtworkProvenance, type S101Feature, S101_AREA_FILL_NAMES, S101_CHART_SECTIONS, S101_FEATURES, S101_ICON_PREFIX, S101_LINE_STYLE_NAMES, S101_NEW_SYMBOLS, S101_NO_OFFICIAL_COUNTERPART, S101_SOURCE_COMMIT, S101_SYMBOL_GROUPS, S101_SYMBOL_NAMES, S52_ATON_LOOKUPS, S52_ATON_LOOKUPS_PAPER, S52_DRAW_ORDER, S52_LOOKUP, S52_PATTERN_SPRITE_PREFIX, SOUNDING_LAYERS, SYMBOL_FAMILIES, SYMBOL_FAMILY_META, SYMBOL_GROUPS, SYMBOL_MAP, type ScaleBand, type SearchCoverageNotice, type SearchHit, type SearchOptions, type SearchResponse, type SectorArcFeature, type SectorArcFeatureCollection, type SectorInfo, type SoundingSettings, type SourceMode, type StyleGeneratorOptions, type StyleLayer, type StyleUrlOptions, type SymbolFamily, type SymbolFamilyMeta, type SymbolGroup, TileAuth, type TileGroup, type TileGroupsResponse, TileTokenError, type TileTokenErrorCode, type TileTokenResponse, type TransformRequest, type TransformedRequest, type VectorSourceSpec, type VesselProfile, WATER_BODY_LAYER_GROUPS, type WaterBodySettings, WeatherEndpoint, type WeatherReading, type WebhookEvent, type WebhookEventType, type WebhookPayload, applyChrtSymbolSet, applyColorTheme, applyCustomStyleSettings, applyRasterSymbolSet, applyS101SymbolSet, atonIconExpression, bandFilterExpression, buildAirportTierExpression, buildBuiltUpAreaTierExpression, buildFlashPattern, buildLabelLayer, buildLakeTierExpression, buildLandAreaTierExpression, buildLandRegionTierExpression, buildLayersForClass, buildOfflineStyle, buildPlaceNameLayers, buildRiverTierExpression, buildSeaAreaTierExpression, buildSectorArcGeoJSON, buildSectorArcsFC, buildSectorsFromFeatures, buildSources, candidateRank, chrtAtonTintExpression, chrtLightTintExpression, collectCandidates, collectClickCandidates, combineWithBandFilter, daymarkColor, decimateFeatures, decodeAreaFeatureProps, decodeBridgeProps, decodeCandidate, decodeNavAidProps, depareColor, depareFillExpression, deriveMarinerName, extractNavAidDesignation, featureIdentity, generateCustomStyle, generateSpriteManifest, generateSpriteSheet, generateStyle, generateStyleJSON, getAvailableLineSymbols, getAvailablePatterns, getAvailablePointSymbols, getCollisionSettings, getDrawPriority, getGridSizeForZoom, getIconExpression, getLabelBehavior, getLabelConfig, getLabelPriority, getLookupEntry, getMaxCellsForZoom, getOrderedClasses, getRasterSvg, getS52SvgString, getS52SymbolStats, getStyleStats, getSymbolSvgString, getThemedS101Svg, getThemedS52Svg, getTopmarkMeaning, hazardColor, hazardFillExpression, iconExpressionForFamily, isLabelLayerVisible, isNavAidLayer, isNavAidLayerVisible, isSoundingLayerVisible, isVisibleInMode, isWaterBodyLayerVisible, labelSortKey, lateralColor, lateralFillExpression, lightColor, lightFillExpression, lightsIconExpression, normalizeStyleMode, normalizeTheme, paginate, parseListCodes, parseSymbolFamily, parseWebhook, patternSpriteId, preprocessLights, preprocessNavAids, preprocessSoundings, preprocessWaterBodies, rasterAtonIconExpression, resolveCustomTheme, resolveRasterImage, resolveS101Color, resolveStyle, resolveTargetClass, s101ArtworkProvenance, sanitizeCustomStyleConfig, scaleSizeValue, scaminToMinZoom, styleModeBand, withinBboxFilter, worldMinusBboxPolygon };
4699
+ export { ALL_NAV_AID_LAYERS, ALL_WATER_BODY_LAYERS, AREA_QUERY_LAYERS, ATON_EXPRESSION_CLASSES, type AheadCoverageCell, type AheadFeatureProperties, type AheadOptions, type AheadResponse, type AlongRouteFeatureProperties, type AlongRouteOptions, type AlongRouteResponse, type AreaInspectResult, type AtlasStyle, type AttachOptions, BAND_DRAW_ORDER, BAND_PRIORITY_RANGES, BASE_MAXZOOM, BASE_MINZOOM, BASE_REGION, type BBox, BRIDGE_QUERY_LAYERS, BUILD_MAXZOOM, BUILD_MINZOOM, BUILD_PARAM, type BandCode, type BandPriorityRange, type BridgeInspectResult, type BuildOfflineStyleOptions, type BuildSourcesOptions, CHART_BAND_CODES, CHART_CASCADE_CODES, CHART_SECTIONS, CHRTRASTER_REF_CROPS, CHRTRASTER_SVGS, CHRT_ATON_COLORS, CHRT_GLYPH_NAMES, CHRT_GLYPH_SVGS, CHRT_ICON_EXPRESSIONS, CHRT_ICON_PREFIX, CHRT_SDF_GLYPHS, CHRT_STYLE_MODES, type CandidateQueryOptions, type CandidatesEventContext, type CellDeletedEvent, type CellDetail, type CellEventData, type CellNewEvent, type CellUpdatedData, type CellUpdatedEvent, type CellsOptions, type CellsResponse, type ChartSection, Chrt, type ChrtConfig, ChrtError, type ChrtStyleMode, type ChrtStyleOptions, type ChrtStyleTheme, type ChrtSymbolSet, type ClickAnchor, ColorTableName, type CoverageOptions, type CoverageResponse, type CoverageRouteCell, type CoverageRouteOptions, type CoverageRouteResponse, type CoverageSource, type CustomStyleConfig, DEFAULT_CLICK_TOLERANCE, DEFAULT_CUSTOM_STYLE_CONFIG, DEFAULT_INSPECT_CLASS_RANK, DEFAULT_LABEL_SETTINGS, DEFAULT_NAV_AID_SETTINGS, DEFAULT_REGION, DEFAULT_SAFETY_CONTOUR_M, DEFAULT_SOUNDING_SETTINGS, DEFAULT_TILE_BASE_URL, DEFAULT_TILE_REGION, DEFAULT_WATER_BODY_SETTINGS, type DecodedAreaFeature, type DecodedBridge, type DecodedNavAid, type DecodedProperty, type DisplayCategory, type DisplayMode, type FeatureCollection, type FeaturesOptions, type FetchStyleOptions, FileSystemAdapter, type FlashPattern, type FlashPhase, type GenerateCustomStyleOptions, type GeneratedCustomStyle, type GeoJsonFeature, type GeoJsonGeometry, type GeomType, INSPECT_CLASS_RANK, INSPECT_RANK_DEVIATIONS, type InspectCandidate, type InspectCandidateSet, type InspectEnrichment, type InspectEventContext, type InspectNotice, type InspectOptions, type InspectResult, type InspectTargetClass, type InspectableFeature, InteractClient, type InteractEntitlement, InteractError, type InteractErrorCode, type InteractHandle, type InteractMapLike, type InteractMapMouseEvent, LABELED_LAYERS, LABEL_BEHAVIOR, LABEL_LAYER_GROUPS, LABEL_PRIORITY, LAND_REGION, type LabelBehavior, type LabelConfigOptions, type LabelLayerConfig, type LabelSettings, type LookupEntry, type MapLibreStyle, type MapboxStyle, type MapboxVectorSource, type MarineAlert, type MarineAlertsOptions, type MarineAlertsResponse, type MarineConditionsOptions, type MarineConditionsResponse, type MarineForecastOptions, type MarineForecastPeriod, type MarineForecastResponse, type MarineSeas, type MarineStation, type MarineSwellTrain, type MarineWind, type MarineZoneRef, NAUTICAL_SYMBOLS, NAV_AID_LAYER_GROUPS, NAV_AID_QUERY_LAYERS, NON_SOLAS_DISCLAIMER, NON_SOLAS_DISCLAIMER_SHORT, type NauticalCategory, type NauticalSymbol, type NavAidInspectResult, type NavAidSettings, type NearbyMarineStation, type OfflineBundleResponse, type OfflineDownloadOptions, type OfflineDownloadProgress, type OfflineDownloadResult, OfflineError, type OfflineErrorCode, type OfflineFetchStyleOptions, type OfflineHeartbeatOptions, type OfflineRegionSummary, type OfflineRemoveOptions, OfflineStyleError, type OfflineStylePlatform, type OfflineStyleResponse, PLACENAME_LAND_CLASSES, PLACENAME_SOURCE_LAYER, PLACENAME_WATER_CLASSES, type PmtilesVectorSource, type Poi, type PoiCoverage, type PoiDataset, type PoiOptions, type PoiResponse, type QueryFeatureProperties, type QueryOptions, type QueryResponse, RASTER_ATON_CLASSES, RASTER_GLYPH_NAMES, RASTER_ICON_PREFIX, RELIEF_REGION, type ResolvedStyle, type ResolvedTheme, type S101ArtworkProvenance, type S101Feature, S101_AREA_FILL_NAMES, S101_CHART_SECTIONS, S101_FEATURES, S101_ICON_PREFIX, S101_LINE_STYLE_NAMES, S101_NEW_SYMBOLS, S101_NO_OFFICIAL_COUNTERPART, S101_SOURCE_COMMIT, S101_SYMBOL_GROUPS, S101_SYMBOL_NAMES, S52_ATON_LOOKUPS, S52_ATON_LOOKUPS_PAPER, S52_DRAW_ORDER, S52_LOOKUP, S52_PATTERN_SPRITE_PREFIX, SOUNDING_LAYERS, SYMBOL_FAMILIES, SYMBOL_FAMILY_META, SYMBOL_GROUPS, SYMBOL_MAP, type ScaleBand, type SearchCoverageNotice, type SearchHit, type SearchOptions, type SearchResponse, type SectorArcFeature, type SectorArcFeatureCollection, type SectorInfo, type SoundingSettings, type SourceMode, type StyleGeneratorOptions, type StyleLayer, type StyleUrlOptions, type SymbolFamily, type SymbolFamilyMeta, type SymbolGroup, TileAuth, type TileGroup, type TileGroupsResponse, TileTokenError, type TileTokenErrorCode, type TileTokenResponse, type TransformRequest, type TransformedRequest, type VectorSourceSpec, type VesselProfile, WATER_BODY_LAYER_GROUPS, type WaterBodySettings, WeatherEndpoint, type WeatherReading, type WebhookEvent, type WebhookEventType, type WebhookPayload, applyChrtSymbolSet, applyColorTheme, applyCustomStyleSettings, applyRasterSymbolSet, applyS101SymbolSet, atonIconExpression, bandFilterExpression, buildAirportTierExpression, buildBuiltUpAreaTierExpression, buildFlashPattern, buildLabelLayer, buildLakeTierExpression, buildLandAreaTierExpression, buildLandRegionTierExpression, buildLayersForClass, buildOfflineStyle, buildPlaceNameLayers, buildRiverTierExpression, buildSeaAreaTierExpression, buildSectorArcGeoJSON, buildSectorArcsFC, buildSectorsFromFeatures, buildSources, candidateRank, chrtAtonTintExpression, chrtLightTintExpression, collectCandidates, collectClickCandidates, combineWithBandFilter, daymarkColor, decimateFeatures, decodeAreaFeatureProps, decodeBridgeProps, decodeCandidate, decodeNavAidProps, depareColor, depareFillExpression, deriveMarinerName, extractNavAidDesignation, featureIdentity, generateCustomStyle, generateSpriteManifest, generateSpriteSheet, generateStyle, generateStyleJSON, getAvailableLineSymbols, getAvailablePatterns, getAvailablePointSymbols, getCollisionSettings, getDrawPriority, getGridSizeForZoom, getIconExpression, getLabelBehavior, getLabelConfig, getLabelPriority, getLookupEntry, getMaxCellsForZoom, getOrderedClasses, getRasterSvg, getS52SvgString, getS52SymbolStats, getStyleStats, getSymbolSvgString, getThemedS101Svg, getThemedS52Svg, getTopmarkMeaning, hazardColor, hazardFillExpression, iconExpressionForFamily, isLabelLayerVisible, isNavAidLayer, isNavAidLayerVisible, isSoundingLayerVisible, isVisibleInMode, isWaterBodyLayerVisible, labelSortKey, lateralColor, lateralFillExpression, lightColor, lightFillExpression, lightsIconExpression, normalizeStyleMode, normalizeTheme, paginate, parseListCodes, parseSymbolFamily, parseWebhook, patternSpriteId, preprocessLights, preprocessNavAids, preprocessSoundings, preprocessWaterBodies, rasterAtonIconExpression, resolveCustomTheme, resolveRasterImage, resolveS101Color, resolveStyle, resolveTargetClass, s101ArtworkProvenance, sanitizeCustomStyleConfig, scaleSizeValue, scaminToMinZoom, styleModeBand, tileTemplate, withinBboxFilter, worldMinusBboxPolygon };