@tileflow/core 0.1.0-alpha.35 → 0.1.0-alpha.37

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.
@@ -1,4 +1,4 @@
1
- import { bd as TileflowThemeColorValue, r as TileflowSymbolStyle, D as TileflowAreaStyle, a1 as TileflowLineStackStyle, q as TileflowLineStyle, o as TileflowExtrusionStyle, bg as TileflowThemeNumberValue, m as TileflowBackgroundStyle, p as TileflowFillStyle, a6 as TileflowMarkerSymbolStyle, n as TileflowCircleStyle, b1 as TileflowTerrainHillshadeStyle, b0 as TileflowTerrainEncoding, be as TileflowThemeFontValue, bf as TileflowThemeImageValue, c0 as TileflowTypographyStyle, X as TileflowLight, c1 as ResolvedTileflowTypography, f as TileflowTimeOfDayVariants, e as TileflowTimeOfDay, w as TileflowLabelsModuleConfig, y as TileflowPoiModuleConfig, u as TileflowRoadsModuleConfig, ah as TileflowProjection, aX as TileflowTerrain, bk as TileflowViewConfig, M as MapLibreStyle, bo as ValidationResult } from './manifest-types-Bzxon3dx.js';
1
+ import { bd as TileflowThemeColorValue, r as TileflowSymbolStyle, D as TileflowAreaStyle, a1 as TileflowLineStackStyle, q as TileflowLineStyle, o as TileflowExtrusionStyle, bg as TileflowThemeNumberValue, m as TileflowBackgroundStyle, p as TileflowFillStyle, a6 as TileflowMarkerSymbolStyle, n as TileflowCircleStyle, aU as TileflowSymbolPlacement, b1 as TileflowTerrainHillshadeStyle, b0 as TileflowTerrainEncoding, be as TileflowThemeFontValue, bf as TileflowThemeImageValue, c0 as TileflowTypographyStyle, X as TileflowLight, c1 as ResolvedTileflowTypography, f as TileflowTimeOfDayVariants, e as TileflowTimeOfDay, w as TileflowLabelsModuleConfig, y as TileflowPoiModuleConfig, u as TileflowRoadsModuleConfig, ah as TileflowProjection, aX as TileflowTerrain, bk as TileflowViewConfig, M as MapLibreStyle, bo as ValidationResult } from './manifest-types-jrBdBrES.js';
2
2
  import * as zod from 'zod';
3
3
  import { z } from 'zod';
4
4
  import { T as TileflowCaptureScene, a as TileflowCaptureShot } from './capture-shot-ChPQvPyi.js';
@@ -16,6 +16,177 @@ type TileflowAtmosphereOptions = {
16
16
  };
17
17
  type TileflowAtmosphere = boolean | TileflowAtmosphereOptions;
18
18
 
19
+ declare const tileflowOverlayPlacements: readonly ["above-water", "below-roads", "above-roads", "above-buildings", "below-labels", "above-labels"];
20
+ declare const tileflowHostedSourceLimit: 16;
21
+ type TileflowOverlayPlacement = (typeof tileflowOverlayPlacements)[number];
22
+ type TileflowHostedTilesetType = 'raster' | 'vector';
23
+ type TileflowHostedTilesetSource = Readonly<{
24
+ attribution: string;
25
+ kind: 'hosted-tileset';
26
+ local: string;
27
+ tileset: string;
28
+ tileSize?: 256 | 512;
29
+ type: TileflowHostedTilesetType;
30
+ }>;
31
+ type TileflowMapLibreOverlayLayer = Readonly<Record<string, unknown> & {
32
+ id: string;
33
+ source?: never;
34
+ type: string;
35
+ }>;
36
+ type TileflowMapLibreOverlay = Readonly<{
37
+ kind: 'maplibre-overlay';
38
+ layers: readonly TileflowMapLibreOverlayLayer[];
39
+ placement: TileflowOverlayPlacement;
40
+ source: string;
41
+ }>;
42
+ type TileflowRemoveOperation = Readonly<{
43
+ op: 'remove';
44
+ }>;
45
+ type TileflowHostedSourceCollection = Readonly<Record<string, TileflowHostedTilesetSource | TileflowRemoveOperation>>;
46
+ type TileflowOverlayCollection = Readonly<Record<string, TileflowMapLibreOverlay | TileflowRemoveOperation>>;
47
+ /** Bind one logical Team tileset to an explicit account-free local PMTiles archive. */
48
+ declare function hostedTileset(options: {
49
+ attribution: string;
50
+ local: string;
51
+ tileset: string;
52
+ tileSize?: 256 | 512;
53
+ type?: TileflowHostedTilesetType;
54
+ }): TileflowHostedTilesetSource;
55
+ /** Group one or more ordinary MapLibre layers around one named Tileflow source. */
56
+ declare function maplibreOverlay(options: {
57
+ layers: readonly TileflowMapLibreOverlayLayer[];
58
+ placement: TileflowOverlayPlacement;
59
+ source: string;
60
+ }): TileflowMapLibreOverlay;
61
+ /** Remove one inherited keyed source or overlay. */
62
+ declare function remove(): TileflowRemoveOperation;
63
+ declare function isSafeLocalPmtilesPath(value: unknown): value is string;
64
+
65
+ /** Administrative and neighbourhood classes of the Boundaries tileset, from the largest. */
66
+ declare const tileflowBoundaryClasses: readonly ["country", "dependency", "region", "province_or_county", "municipality", "district", "neighbourhood"];
67
+ type TileflowBoundaryClass = (typeof tileflowBoundaryClasses)[number];
68
+ /** `primary` is the level that covers a country with its class; `secondary` is any other. */
69
+ declare const tileflowBoundaryClassTiers: readonly ["primary", "secondary"];
70
+ type TileflowBoundaryClassTier = (typeof tileflowBoundaryClassTiers)[number];
71
+ /**
72
+ * Version 1 of the Boundaries tile schema. Polygons carry only the properties needed to filter and
73
+ * join them; labels and the lookup table carry the rest.
74
+ */
75
+ declare const tileflowBoundaryAreasV1Schema: Readonly<{
76
+ classes: readonly ["country", "dependency", "region", "province_or_county", "municipality", "district", "neighbourhood"];
77
+ /** First zoom at which each class appears, by tier. */
78
+ classMinzoom: Readonly<{
79
+ country: Readonly<{
80
+ primary: 0;
81
+ secondary: 0;
82
+ }>;
83
+ dependency: Readonly<{
84
+ primary: 0;
85
+ secondary: 0;
86
+ }>;
87
+ region: Readonly<{
88
+ primary: 3;
89
+ secondary: 3;
90
+ }>;
91
+ province_or_county: Readonly<{
92
+ primary: 6;
93
+ secondary: 7;
94
+ }>;
95
+ municipality: Readonly<{
96
+ primary: 8;
97
+ secondary: 8;
98
+ }>;
99
+ district: Readonly<{
100
+ primary: 10;
101
+ secondary: 10;
102
+ }>;
103
+ neighbourhood: Readonly<{
104
+ primary: 11;
105
+ secondary: 11;
106
+ }>;
107
+ }>;
108
+ fields: Readonly<{
109
+ adminDepth: "admin_depth";
110
+ adminLevel: "admin_level";
111
+ class: "class";
112
+ classTier: "class_tier";
113
+ iso31661: "iso_3166_1";
114
+ iso31662: "iso_3166_2";
115
+ name: "name";
116
+ nuts: "nuts";
117
+ ref: "ref";
118
+ wikidata: "wikidata";
119
+ }>;
120
+ layers: Readonly<{
121
+ areas: "boundary_area";
122
+ labels: "boundary_label";
123
+ }>;
124
+ /** Properties present on `boundary_area` polygons. */
125
+ areaProperties: readonly ["class", "class_tier", "admin_level", "admin_depth", "ref", "iso_3166_1"];
126
+ maxzoom: 12;
127
+ minzoom: 0;
128
+ product: "boundaries-v1";
129
+ schemaVersion: 1;
130
+ tiers: readonly ["primary", "secondary"];
131
+ }>;
132
+ /**
133
+ * Boundaries families. Each one has its own license, attribution, TileJSON path and style source
134
+ * ID; families are never merged.
135
+ */
136
+ declare const tileflowBoundaryFamilies: Readonly<{
137
+ boundaries: Readonly<{
138
+ attribution: "© OpenStreetMap contributors";
139
+ license: "ODbL-1.0";
140
+ path: "/tiles/boundaries/tiles.json";
141
+ sourceId: "tileflow-boundaries";
142
+ }>;
143
+ }>;
144
+ type TileflowBoundaryFamily = keyof typeof tileflowBoundaryFamilies;
145
+ declare function isTileflowBoundaryFamily(value: unknown): value is TileflowBoundaryFamily;
146
+ declare function isTileflowBoundaryClass(value: unknown): value is TileflowBoundaryClass;
147
+
148
+ /**
149
+ * Tileflow's Boundaries tileset as a map source. It is a separate product from World: World's
150
+ * border lines belong to the `boundaries` module, while this source holds the areas themselves.
151
+ */
152
+ type TileflowBoundaryAreasConfig = Readonly<{
153
+ /** The licensed family to draw. Its attribution is always shown with its layers. */
154
+ family: TileflowBoundaryFamily;
155
+ /**
156
+ * The property MapLibre uses as feature ID for feature-state. By default it is the registry ID,
157
+ * which survives releases; `ref` keys feature-state by official code instead.
158
+ */
159
+ promoteId?: 'ref';
160
+ /**
161
+ * A schema-compatible vector TileJSON or `pmtiles://` archive, such as a local copy for offline
162
+ * development. Defaults to the family's TileJSON under the Tileflow API.
163
+ */
164
+ url?: string;
165
+ }>;
166
+ /** `false` removes Boundaries inherited from a parent map. */
167
+ type TileflowBoundaryAreas = false | TileflowBoundaryAreasConfig;
168
+ type TileflowBoundaryAreasSourceIdentity = Readonly<{
169
+ family: TileflowBoundaryFamily;
170
+ kind: 'tileflow-boundaries';
171
+ product: typeof tileflowBoundaryAreasV1Schema.product;
172
+ promoteId?: 'ref';
173
+ schemaVersion: typeof tileflowBoundaryAreasV1Schema.schemaVersion;
174
+ sourceId: string;
175
+ url: string;
176
+ }>;
177
+ type ResolvedBoundaryAreas = Readonly<{
178
+ identity: TileflowBoundaryAreasSourceIdentity;
179
+ source: Readonly<{
180
+ attribution: string;
181
+ promoteId?: Readonly<Record<string, string>>;
182
+ type: 'vector';
183
+ url: string;
184
+ }>;
185
+ sourceId: string;
186
+ }>;
187
+ /** Resolve a map's Boundaries declaration into its style source without fetching its TileJSON. */
188
+ declare function resolveBoundaryAreas(config: TileflowBoundaryAreas | undefined, apiBaseUrl?: string): ResolvedBoundaryAreas | undefined;
189
+
19
190
  type TileflowAddressesModuleOptions = {
20
191
  /** Styling for OpenMapTiles point house-number labels. */
21
192
  labels?: TileflowSymbolStyle;
@@ -47,25 +218,260 @@ type TileflowBoundariesModuleConfig = TileflowBoundariesModuleOptions & {
47
218
  };
48
219
  declare function boundaries(options?: TileflowBoundariesModuleOptions): TileflowBoundariesModuleConfig;
49
220
 
221
+ /** An embedded glTF image and its sampler. Colour space belongs to its material channel. */
222
+ type TileflowModelTexture = Readonly<{
223
+ mimeType: 'image/png' | 'image/jpeg';
224
+ bytes: Uint8Array;
225
+ width: number;
226
+ height: number;
227
+ wrapS?: 33071 | 33648 | 10497;
228
+ wrapT?: 33071 | 33648 | 10497;
229
+ minFilter?: 9728 | 9729 | 9984 | 9985 | 9986 | 9987;
230
+ magFilter?: 9728 | 9729;
231
+ }>;
232
+ /** A texture channel, including KHR_texture_transform and channel-specific strength. */
233
+ type TileflowModelTextureReference = Readonly<{
234
+ texture: number;
235
+ texCoord?: 0 | 1;
236
+ offset?: readonly [number, number];
237
+ scale?: readonly [number, number];
238
+ rotation?: number;
239
+ strength?: number;
240
+ }>;
241
+ /** Metallic/roughness material values use glTF's linear factors and channel conventions. */
242
+ type TileflowModelMaterial = Readonly<{
243
+ baseColorFactor?: readonly [number, number, number, number];
244
+ metallicFactor?: number;
245
+ roughnessFactor?: number;
246
+ emissiveFactor?: readonly [number, number, number];
247
+ emissiveStrength?: number;
248
+ baseColorTexture?: TileflowModelTextureReference;
249
+ metallicRoughnessTexture?: TileflowModelTextureReference;
250
+ normalTexture?: TileflowModelTextureReference;
251
+ occlusionTexture?: TileflowModelTextureReference;
252
+ emissiveTexture?: TileflowModelTextureReference;
253
+ alphaMode?: 'OPAQUE' | 'MASK' | 'BLEND';
254
+ alphaCutoff?: number;
255
+ doubleSided?: boolean;
256
+ unlit?: boolean;
257
+ }>;
258
+ /** An explicitly authored area emitter. Endpoints are its lower edge, in model metres, Z up. */
259
+ type TileflowModelEmitter = Readonly<{
260
+ start: readonly [number, number, number];
261
+ end: readonly [number, number, number];
262
+ height: number;
263
+ depth?: number;
264
+ role: TileflowModelLightingRole;
265
+ part: TileflowModelPart;
266
+ }>;
267
+ type TileflowModelMaterialRange = Readonly<{
268
+ /** First index, and number of indices. */
269
+ from: number;
270
+ count: number;
271
+ material: number;
272
+ /** The source mesh's vertical extent in model metres, for its role emission gradient. */
273
+ emissiveBounds?: readonly [number, number];
274
+ }>;
275
+ /** Optional physical surface data, independent of the legacy palette/role/AO vertex. */
276
+ type TileflowModelSurface = Readonly<{
277
+ /** Eight floats per vertex: UV0, UV1, linear vertex RGBA. */
278
+ attributes: readonly number[] | Float32Array;
279
+ materials: readonly TileflowModelMaterial[];
280
+ textures: readonly TileflowModelTexture[];
281
+ ranges: readonly TileflowModelMaterialRange[];
282
+ emitters?: readonly TileflowModelEmitter[];
283
+ }>;
284
+ declare const tileflowModelSurfaceLimits: Readonly<{
285
+ materials: 256;
286
+ textures: 32;
287
+ textureDimension: 4096;
288
+ texturePixels: 16777216;
289
+ emitters: 128;
290
+ }>;
291
+ declare const tileflowModelTextureChannels: readonly ["baseColorTexture", "metallicRoughnessTexture", "normalTexture", "occlusionTexture", "emissiveTexture"];
292
+ /** Validate before preparation, encoding, or browser allocation. */
293
+ declare function checkTileflowModelSurface(surface: TileflowModelSurface, vertices: number, indices: number): void;
294
+ /** Read bounded image dimensions without a DOM or image decoder. */
295
+ declare function tileflowModelImageSize(bytes: Uint8Array, mimeType: 'image/png' | 'image/jpeg'): readonly [number, number] | undefined;
296
+
297
+ /** The parts of a model, each coloured by the theme: the model's materials name them. */
298
+ declare const tileflowModelParts: Readonly<{
299
+ surface: 0;
300
+ secondary: 1;
301
+ glass: 2;
302
+ accent: 3;
303
+ roof: 4;
304
+ }>;
305
+ type TileflowModelPart = keyof typeof tileflowModelParts;
306
+ /** Architectural roles control lighting independently of the model's palette slots. */
307
+ declare const tileflowModelLightingRoles: Readonly<{
308
+ unclassified: 0;
309
+ wall: 1;
310
+ door: 2;
311
+ roof: 3;
312
+ window: 4;
313
+ lamp: 5;
314
+ logo: 6;
315
+ }>;
316
+ type TileflowModelLightingRole = keyof typeof tileflowModelLightingRoles;
317
+ /** Legacy palette slots map to wall, wall, window, wall and roof; doors and logos are explicit. */
318
+ declare const tileflowModelDefaultLightingRoles: readonly [1, 1, 4, 1, 3];
319
+ /** What a model may hold. */
320
+ declare const tileflowModelLimits: Readonly<{
321
+ /** Levels of detail, nearest first. */
322
+ levels: 3;
323
+ /** Vertices of one level. */
324
+ vertices: 200000;
325
+ /** Triangles of one level. */
326
+ triangles: 200000;
327
+ /** Points of the footprint's rings, together. */
328
+ footprintPoints: 4096;
329
+ /** Half the model's widest extent, in metres. */
330
+ radius: 2000;
331
+ /** The model's height, in metres. */
332
+ height: 1000;
333
+ /** Models in one prepared file, as a landmark tile holds them. */
334
+ models: 512;
335
+ /** Bytes of one prepared file. */
336
+ bytes: number;
337
+ }>;
338
+ /** One level of detail, as indexed triangles. */
339
+ type TileflowModelMesh = Readonly<{
340
+ /** x, y and z of each vertex in metres: x east and y north of the origin, z up from the ground. */
341
+ positions: readonly number[];
342
+ /** The vertex normals, x, y and z. */
343
+ normals: readonly number[];
344
+ /** Each vertex's part, a value of `tileflowModelParts`. */
345
+ parts: readonly number[];
346
+ /** Optional architectural role per vertex; absent roles use the palette slot's legacy mapping. */
347
+ lightingRoles?: readonly number[];
348
+ /** Each vertex's shade within its part's colour, from -1 (darkest) to 1 (lightest). */
349
+ shades: readonly number[];
350
+ /** Each vertex's light, from 0 (fully occluded) to 1. */
351
+ occlusion: readonly number[];
352
+ /** Three vertex indices per triangle. */
353
+ indices: readonly number[];
354
+ /** Optional physical materials and their independent texture coordinates. */
355
+ surface?: TileflowModelSurface;
356
+ }>;
357
+ /** A prepared model: its levels, nearest first, and the footprint it replaces on the ground. */
358
+ type TileflowModel = Readonly<{
359
+ levels: readonly TileflowModelMesh[];
360
+ /**
361
+ * Closed rings on the ground, in metres round the origin as `[x, y, x, y, …]`: the outline of
362
+ * what the model stands in for. The map's own buildings that reach into it are not raised while
363
+ * the model stands.
364
+ */
365
+ footprint: readonly (readonly number[])[];
366
+ }>;
367
+ /** A decoded level, ready for the GPU: its vertex bytes as the file holds them. */
368
+ type TileflowModelLevelBytes = Readonly<{
369
+ /**
370
+ * 16 bytes a vertex, in glTF's axes (x east, y up, z south): its position as whole steps from
371
+ * `centre` (int16 ×3, then two bytes of padding), its normal (int8 ×3, then one), and its part,
372
+ * shade and light (uint8 ×3, then one).
373
+ */
374
+ vertices: Uint8Array;
375
+ indices: Uint16Array | Uint32Array;
376
+ /** The point the positions count from, in glTF's axes, in metres. */
377
+ centre: readonly [number, number, number];
378
+ /** Metres in one step of a position. */
379
+ step: number;
380
+ /** Optional physical data; absent data retains the legacy palette lighting. */
381
+ surface?: TileflowModelSurface & {
382
+ attributes: Float32Array;
383
+ };
384
+ }>;
385
+ /** A decoded model, as the renderer draws it. */
386
+ type TileflowModelBytes = Readonly<{
387
+ /** The model's id. */
388
+ id: string;
389
+ /** Its bounds in metres round its origin, `[minX, minY, minZ, maxX, maxY, maxZ]` (x east, y north, z up). */
390
+ bounds: readonly [number, number, number, number, number, number];
391
+ levels: readonly TileflowModelLevelBytes[];
392
+ footprint: readonly (readonly number[])[];
393
+ /** Where it stands, longitude and latitude, when the file says so, as a landmark tile does. */
394
+ at?: readonly [number, number];
395
+ /** Degrees clockwise from north its own north is turned to, when the file says so. */
396
+ heading?: number;
397
+ }>;
398
+ /** Bytes per vertex in a model file and on the GPU. */
399
+ declare const tileflowModelVertexBytes = 16;
400
+ /** Whether a point lies inside any of the rings (even-odd), as `[x, y, x, y, …]`. */
401
+ declare function tileflowInsideRings(rings: readonly (readonly number[])[], px: number, py: number): boolean;
402
+ /**
403
+ * Whether the rings `outline` (a building's) reach more than `margin` into any of the rings
404
+ * `footprints` (the models'), all as `[x, y, x, y, …]` in the same units: a corner of one deep
405
+ * inside the other, or an edge passing through it. A building that only touches a footprint, as a
406
+ * neighbour sharing a wall does, does not.
407
+ */
408
+ declare function tileflowRingsOverlap(outline: readonly (readonly number[])[], footprints: readonly (readonly number[])[], margin: number): boolean;
409
+
50
410
  type TileflowBuildingMode = '3d' | 'flat';
51
411
  /**
52
412
  * How Core's 3D buildings renderer draws the map's buildings. Their colour is the map's own 3D
53
413
  * building colour (its extrusion), else its roofs'.
54
414
  */
55
415
  type TileflowBuildingsThreeDimensionalStyle = {
56
- /** Use the style's extrusion light (default), or the theme controller's scene sun. */
416
+ /** Use the scene sun (default), or the style's native extrusion light. */
57
417
  lighting?: 'style' | 'sun';
58
418
  /** Per-building brightness variation, from 0 to 1; defaults to 0 (authored colour). */
59
419
  colorVariation?: TileflowThemeNumberValue;
60
420
  /** How strongly roof outlines and outer corners catch the light, from 0 (default) to 1. */
61
421
  edges?: TileflowThemeNumberValue;
422
+ /** Radius in metres for softened exterior corners and roof lighting, from 0 to 1; defaults to 0.8. */
423
+ edgeRadius?: number;
62
424
  /** Their own colour, drawn unlit; without it they take the building's colour, lightened. */
63
425
  edgeColor?: TileflowThemeColorValue;
64
426
  /** How bright the buildings light the street at night, from 0 (none) to 2; defaults to 0. */
65
427
  nightLight?: TileflowThemeNumberValue;
66
- /** Contact shadow at the foot of the walls and in tight corners; defaults to false. */
428
+ /** Height-selected architectural flood lighting. Off by default; follows scene darkness. */
429
+ floodLight?: {
430
+ intensity?: TileflowThemeNumberValue;
431
+ /** Compensates authored light-colour transforms during darkness evaluation; defaults to 1. */
432
+ brightnessScale?: TileflowThemeNumberValue;
433
+ color?: TileflowThemeColorValue;
434
+ /** Stable per-building ground radius range in metres; defaults to [30, 100]. */
435
+ groundRadius?: readonly [number, number];
436
+ /** Ground light starts at this height in metres; defaults to 30. */
437
+ minGroundHeight?: number;
438
+ /** Wall light starts above this height in metres; defaults to 200. */
439
+ minWallHeight?: number;
440
+ /** Wall radius as a fraction of building height; defaults to 1/3. */
441
+ wallHeightRatio?: number;
442
+ };
443
+ /** Per-role physical materials and emission, separate from palette slots and occlusion. */
444
+ modelLighting?: Partial<Record<TileflowModelLightingRole, {
445
+ emissiveStrength?: TileflowThemeNumberValue;
446
+ /** Stable per-model addition to emission, from zero to this amount. */
447
+ emissiveVariation?: TileflowThemeNumberValue;
448
+ emissiveColor?: TileflowThemeColorValue;
449
+ /** Height fractions, multipliers and curve exponent; defaults to a constant multiplier of one. */
450
+ emissiveHeight?: readonly [
451
+ TileflowThemeNumberValue,
452
+ TileflowThemeNumberValue,
453
+ TileflowThemeNumberValue,
454
+ TileflowThemeNumberValue,
455
+ TileflowThemeNumberValue
456
+ ];
457
+ /** Physical-material tint. Explicit modelColors take precedence. */
458
+ color?: TileflowThemeColorValue;
459
+ colorMix?: TileflowThemeNumberValue;
460
+ metallic?: TileflowThemeNumberValue;
461
+ roughness?: TileflowThemeNumberValue;
462
+ /** Independent HSL ranges, seeded by model identity; no window geometry is invented. */
463
+ colorVariation?: {
464
+ hue: readonly [TileflowThemeNumberValue, TileflowThemeNumberValue];
465
+ saturation: readonly [TileflowThemeNumberValue, TileflowThemeNumberValue];
466
+ lightness: readonly [TileflowThemeNumberValue, TileflowThemeNumberValue];
467
+ space?: 'srgb' | 'linear';
468
+ };
469
+ }>>;
470
+ /** Contact shadow at the foot of the walls and in tight corners; defaults to true. */
67
471
  occlusion?: boolean;
68
- /** Shadows from the sun, on the buildings and the flat map; defaults to false. */
472
+ /** Prepared model ambient occlusion strength, from 0 to 1; defaults to 0.75. */
473
+ modelOcclusion?: TileflowThemeNumberValue;
474
+ /** Shadows from the sun, on the buildings and the flat map; defaults to true. */
69
475
  shadows?: boolean;
70
476
  /**
71
477
  * Invented night windows, lit by rooms: decoration, not data. With World's `class`, none on sheds,
@@ -119,8 +525,24 @@ declare function buildings(options?: TileflowBuildingsModuleOptions): TileflowBu
119
525
 
120
526
  type TileflowLanduseClass = 'cemetery' | 'civic' | 'commercial' | 'education' | 'government' | 'industrial' | 'medical' | 'military' | 'parking' | 'railway' | 'recreation' | 'residential';
121
527
  type TileflowLandcoverClass = 'farmland' | 'flowerbed' | 'grass' | 'ice' | 'meadow' | 'protected' | 'recreationGround' | 'rock' | 'sand' | 'scrub' | 'urbanPark' | 'villageGreen' | 'wetland' | 'wood';
528
+ /** The barriers of the data's barrier layer (World's `traffic_control`) the land module draws. */
529
+ type TileflowBarrierClass = 'fence' | 'hedge' | 'wall';
530
+ /**
531
+ * A barrier's line, a shadow line drawn under it (usually offset with `translate`), and the fill of
532
+ * those mapped as areas, such as broad hedges.
533
+ */
534
+ type TileflowBarrierStyle = {
535
+ area?: TileflowFillStyle;
536
+ shadow?: TileflowLineStyle;
537
+ line?: TileflowLineStyle;
538
+ };
122
539
  type TileflowLandModuleOptions = {
123
540
  background?: TileflowBackgroundStyle;
541
+ /**
542
+ * Hedges, fences and walls, drawn at the top of the land band with hedges uppermost. A barrier
543
+ * without a style is not drawn, and neither is any when the data has no barrier layer.
544
+ */
545
+ barriers?: Partial<Record<TileflowBarrierClass, TileflowBarrierStyle>>;
124
546
  globalLandcover?: TileflowFillStyle;
125
547
  landcover?: Partial<Record<TileflowLandcoverClass, TileflowAreaStyle>>;
126
548
  landuse?: Partial<Record<TileflowLanduseClass, TileflowAreaStyle>>;
@@ -144,22 +566,47 @@ declare function landforms(options?: TileflowLandformsModuleOptions): TileflowLa
144
566
 
145
567
  /** Labels anchored inside polygon features; point-feature labels remain on their feature style. */
146
568
  type TileflowNauticalAreaLabelStyles = {
569
+ /** Provider coverage cells; hidden unless a map makes this style visible. */
147
570
  coverage?: TileflowSymbolStyle;
148
571
  hazards?: TileflowSymbolStyle;
149
572
  navigationAreas?: TileflowSymbolStyle;
150
573
  reefs?: TileflowSymbolStyle;
151
574
  wrecks?: TileflowSymbolStyle;
152
575
  };
576
+ /**
577
+ * One style per semantic group of `nautical-v1` objects. Point groups draw a circle `marker`, an
578
+ * `icon` from the theme's nautical image tokens, and `text`; area groups draw a `fill` and an
579
+ * `outline`; line groups draw one stroke. Every group respects each feature's `min_zoom`, and
580
+ * point groups place more important features (lower `rank`) first.
581
+ */
153
582
  type TileflowNauticalModuleOptions = {
583
+ /** Other aids: moorings, fog signals, racons, radio and signal stations, and virtual aids. */
154
584
  aids?: TileflowMarkerSymbolStyle;
585
+ /** Fixed beacons and daymarks, coloured by their first colour. */
586
+ beacons?: TileflowMarkerSymbolStyle;
587
+ /** Buoys, light floats, and light vessels, coloured by their first colour. */
588
+ buoys?: TileflowMarkerSymbolStyle;
589
+ /** Submarine cable and pipeline lines. */
590
+ cables?: TileflowLineStyle;
591
+ /** Restrained indication of where a provider publishes marks. */
155
592
  coverage?: TileflowAreaStyle;
593
+ /** Harbour and marina points. */
594
+ harbours?: TileflowMarkerSymbolStyle;
595
+ /** Hazard areas; the outline also strokes linear hazards such as booms. */
156
596
  hazardAreas?: TileflowAreaStyle;
597
+ /** Rocks by water level, obstructions, and offshore platforms. */
157
598
  hazards?: TileflowMarkerSymbolStyle;
158
599
  labels?: TileflowNauticalAreaLabelStyles;
159
600
  lighthouses?: TileflowMarkerSymbolStyle;
601
+ /** Light flares coloured by the light's first colour, with the chart light label. */
160
602
  lights?: TileflowMarkerSymbolStyle;
603
+ /** Restricted, military, anchorage, traffic-separation, and other navigation areas. */
161
604
  navigationAreas?: TileflowAreaStyle;
605
+ /** Ports, sized by `size` and placed by `rank` from low zooms. */
606
+ ports?: TileflowMarkerSymbolStyle;
162
607
  reefs?: TileflowAreaStyle;
608
+ /** Traffic-separation lines and recommended routes, tracks, and ferry routes. */
609
+ routes?: TileflowLineStyle;
163
610
  soundings?: TileflowMarkerSymbolStyle;
164
611
  wreckAreas?: TileflowAreaStyle;
165
612
  wrecks?: TileflowMarkerSymbolStyle;
@@ -167,6 +614,46 @@ type TileflowNauticalModuleOptions = {
167
614
  type TileflowNauticalModuleConfig = TileflowNauticalModuleOptions & {
168
615
  type: 'nautical';
169
616
  };
617
+ /**
618
+ * Theme image tokens for nautical point symbols. When the selected theme declares a group's token,
619
+ * that group draws the image as its icon instead of the default circle marker. Buoy variants fall
620
+ * back to `nautical.buoy`. Declare every token of one group with the same icon representation; SDF
621
+ * icons take the mark's colour.
622
+ */
623
+ declare const tileflowNauticalImageRoles: Readonly<{
624
+ aids: Readonly<{
625
+ default: "nautical.aid";
626
+ }>;
627
+ beacons: Readonly<{
628
+ default: "nautical.beacon";
629
+ }>;
630
+ buoys: Readonly<{
631
+ cardinal: "nautical.buoy.cardinal";
632
+ default: "nautical.buoy";
633
+ port: "nautical.buoy.port";
634
+ starboard: "nautical.buoy.starboard";
635
+ }>;
636
+ harbours: Readonly<{
637
+ default: "nautical.harbour";
638
+ }>;
639
+ lighthouses: Readonly<{
640
+ default: "nautical.lighthouse";
641
+ }>;
642
+ lights: Readonly<{
643
+ default: "nautical.light";
644
+ }>;
645
+ ports: Readonly<{
646
+ default: "nautical.port";
647
+ }>;
648
+ wrecks: Readonly<{
649
+ default: "nautical.wreck";
650
+ }>;
651
+ }>;
652
+ /** The fixed notice every map that draws `nautical-v1` objects declares in its style. */
653
+ declare const tileflowNauticalNotice: Readonly<{
654
+ id: "nautical-not-for-navigation";
655
+ text: "Not for navigation";
656
+ }>;
170
657
  /** Style the semantic objects published by the `nautical-v1` sidecar. */
171
658
  declare function nautical(options?: TileflowNauticalModuleOptions): TileflowNauticalModuleConfig;
172
659
 
@@ -273,6 +760,10 @@ type TileflowTreeFields = Readonly<{
273
760
  canopyCover: string;
274
761
  /** A canopy point's measured canopy height, in metres. */
275
762
  canopyHeight: string;
763
+ /** The kind of barrier in the hedge layer: hedges are `hedge`. */
764
+ subclass: string;
765
+ /** A hedge's kind: `hedge_bank` when it stands on an earth bank. */
766
+ hedge: string;
276
767
  }>;
277
768
  /** A model's id: its file's name, in lowercase letters, digits and hyphens. */
278
769
  declare const tileflowTreeModelIdPattern: RegExp;
@@ -280,19 +771,24 @@ declare const tileflowTreeModelIdPattern: RegExp;
280
771
  declare const tileflowVegetationMetadataKey = "tileflow:vegetation";
281
772
  /** How a compiled map's 3D trees look and where their data is, resolved for one theme. */
282
773
  type TileflowVegetation3D = Readonly<{
283
- /** The vector source and its layers with the trees and the canopy points. */
774
+ /** The vector source and its layers with the trees, the canopy points and the hedges. */
284
775
  source: string;
285
776
  layers: Readonly<{
286
777
  tree: string;
287
778
  canopy?: string;
779
+ hedge?: string;
288
780
  }>;
289
781
  fields: TileflowTreeFields;
290
- /** Sunlit colours: bark, and the leaves of each kind of tree from darkest to lightest. */
782
+ /**
783
+ * Sunlit colours: bark, the leaves of each kind of tree from darkest to lightest, and those of
784
+ * hedges.
785
+ */
291
786
  colors: Readonly<{
292
787
  bark: string;
293
788
  broadleaf: readonly string[];
294
789
  conifer: readonly string[];
295
790
  palm: readonly string[];
791
+ hedge: readonly string[];
296
792
  }>;
297
793
  heightScale: number;
298
794
  crownScale: number;
@@ -324,6 +820,13 @@ type TileflowVegetationThreeDimensionalStyle = {
324
820
  coniferColors?: readonly TileflowThemeColorValue[];
325
821
  /** Sunlit frond colours of palms, from darkest to lightest; the broadleaf colours by default. */
326
822
  palmColors?: readonly TileflowThemeColorValue[];
823
+ /**
824
+ * Whether the data's hedges stand as clipped green walls beside the trees, at their height or
825
+ * 1.3 m, a metre higher on an earth bank. Defaults to true where the data has hedges.
826
+ */
827
+ hedges?: boolean;
828
+ /** Sunlit colours of hedges, from darkest to lightest; the two darkest broadleaf colours by default. */
829
+ hedgeColors?: readonly TileflowThemeColorValue[];
327
830
  crownScale?: TileflowThemeNumberValue;
328
831
  heightScale?: TileflowThemeNumberValue;
329
832
  /**
@@ -377,6 +880,16 @@ type TileflowVegetationModuleConfig = TileflowVegetationModuleOptions & {
377
880
  declare function vegetation(options?: TileflowVegetationModuleOptions): TileflowVegetationModuleConfig;
378
881
 
379
882
  type TileflowWaterwayClass = 'canal' | 'other' | 'river' | 'stream';
883
+ /** Explicit placement for every geometry family in a declared Bathymetry name layer. */
884
+ type TileflowBathymetryNamePlacement = {
885
+ point: 'point';
886
+ line: TileflowSymbolPlacement;
887
+ polygon: TileflowSymbolPlacement;
888
+ };
889
+ type TileflowBathymetryNameStyle = TileflowSymbolStyle & {
890
+ /** Overrides scalar placement for these names; omission preserves scalar placement. */
891
+ placementByGeometry?: TileflowBathymetryNamePlacement;
892
+ };
380
893
  type TileflowWaterModuleOptions = {
381
894
  bathymetry?: TileflowFillStyle;
382
895
  /** Contour lines when declared by Bathymetry; otherwise approximate polygon band edges. */
@@ -384,9 +897,9 @@ type TileflowWaterModuleOptions = {
384
897
  /** Contour-depth or legacy band-floor labels, not measured survey soundings. */
385
898
  bathymetryLabels?: TileflowSymbolStyle;
386
899
  /** Names from an explicitly declared seafloor_landform layer. */
387
- bathymetryLandforms?: TileflowSymbolStyle;
900
+ bathymetryLandforms?: TileflowBathymetryNameStyle;
388
901
  /** Names from an explicitly declared water_name layer. */
389
- bathymetryWaterNames?: TileflowSymbolStyle;
902
+ bathymetryWaterNames?: TileflowBathymetryNameStyle;
390
903
  bodies?: TileflowAreaStyle;
391
904
  intermittent?: {
392
905
  bodies?: TileflowAreaStyle;
@@ -440,6 +953,11 @@ type OpenMapTilesLayerBindings = {
440
953
  sidewalk?: string;
441
954
  /** Optional point features such as pedestrian crossings. */
442
955
  streetFurniture?: string;
956
+ /**
957
+ * Optional barriers and traffic calming at native zoom 15: hedges, fences, walls, kerbs and
958
+ * guard rails as lines, and hedges mapped as areas of their own as polygons.
959
+ */
960
+ trafficControl?: string;
443
961
  /** Optional individual-tree point extension used by the vegetation module. */
444
962
  tree?: string;
445
963
  water: string;
@@ -496,6 +1014,8 @@ type OpenMapTilesFieldBindings = {
496
1014
  elevationFeet: string;
497
1015
  expressway: string;
498
1016
  foot: string;
1017
+ /** Optional kind of a barrier hedge: `hedge_bank` when it stands on an earth bank. */
1018
+ hedge?: string;
499
1019
  height: string;
500
1020
  hide3d: string;
501
1021
  /** Whether a building footprint owns separately materialized building parts. */
@@ -593,6 +1113,7 @@ type TileflowWorldV1Schema = Omit<OpenMapTilesSchema, 'fields' | 'layers'> & {
593
1113
  fields: OpenMapTilesFieldBindings & {
594
1114
  bathymetryMinDepth: string;
595
1115
  bathymetrySortKey: string;
1116
+ hedge: string;
596
1117
  shieldKind: string;
597
1118
  shieldLineLengthMeters: string;
598
1119
  shieldNetwork: string;
@@ -607,6 +1128,7 @@ type TileflowWorldV1Schema = Omit<OpenMapTilesSchema, 'fields' | 'layers'> & {
607
1128
  sidewalk: string;
608
1129
  streetFurniture: string;
609
1130
  roadShield: string;
1131
+ trafficControl: string;
610
1132
  };
611
1133
  };
612
1134
  type TileflowWorldReleaseReference = Readonly<{
@@ -744,32 +1266,60 @@ declare const tileflowBathymetryV1Schema: Readonly<{
744
1266
  }>;
745
1267
  }>;
746
1268
  }>;
1269
+ /**
1270
+ * The `nautical-v1` vector contract styled by the `nautical` module. Every feature carries the
1271
+ * provenance fields (`provider`, `provenance`, `edition`, `coverage`, `licence`) and `min_zoom`,
1272
+ * the first zoom at which it appears; `rank` (1 is most important within its layer) and `name`
1273
+ * are optional. Colours are S-57 colour names, and multi-valued colours and categories are
1274
+ * comma-separated in source order, for example `black,yellow`.
1275
+ */
747
1276
  declare const tileflowNauticalV1Schema: Readonly<{
748
1277
  fields: Readonly<{
1278
+ category: "category";
749
1279
  cell: "cell";
750
1280
  character: "character";
751
1281
  class: "class";
752
1282
  color: "color";
1283
+ colorPattern: "color_pattern";
1284
+ country: "country";
753
1285
  coverage: "coverage";
754
1286
  depth: "depth";
755
- direction: "direction";
756
1287
  edition: "edition";
1288
+ families: "families";
1289
+ group: "group";
1290
+ heightM: "height_m";
1291
+ label: "label";
757
1292
  licence: "licence";
1293
+ lit: "lit";
1294
+ minZoom: "min_zoom";
758
1295
  name: "name";
759
- provider: "provider";
1296
+ orientation: "orientation";
1297
+ periodS: "period_s";
1298
+ position: "position";
760
1299
  provenance: "provenance";
761
- quality: "quality";
1300
+ provider: "provider";
762
1301
  rangeNm: "range_nm";
1302
+ rank: "rank";
1303
+ reference: "reference";
1304
+ restriction: "restriction";
763
1305
  scale: "scale";
1306
+ sectorEnd: "sector_end";
1307
+ sectorStart: "sector_start";
1308
+ shape: "shape";
1309
+ size: "size";
764
1310
  subclass: "subclass";
1311
+ system: "system";
1312
+ topmark: "topmark";
1313
+ unlocode: "unlocode";
765
1314
  update: "update";
1315
+ waterLevel: "water_level";
766
1316
  }>;
767
1317
  geometryTypes: Readonly<{
768
1318
  aids: readonly ["Point"];
769
1319
  coverage: readonly ["Polygon"];
770
- hazards: readonly ["Point", "Polygon"];
1320
+ hazards: readonly ["Point", "LineString", "Polygon"];
771
1321
  lights: readonly ["Point"];
772
- navigationAreas: readonly ["Polygon"];
1322
+ navigationAreas: readonly ["Point", "LineString", "Polygon"];
773
1323
  reefs: readonly ["Polygon"];
774
1324
  soundings: readonly ["Point"];
775
1325
  wrecks: readonly ["Point", "Polygon"];
@@ -901,6 +1451,42 @@ type ResolvedMarine = Readonly<{
901
1451
  /** Resolve the optional marine sidecars without fetching their TileJSON documents. */
902
1452
  declare function resolveMarine(marine: TileflowMarine | undefined, apiBaseUrl?: string): ResolvedMarine | undefined;
903
1453
 
1454
+ declare const tileflowResetBrand: unique symbol;
1455
+ /** Removes an inherited override in `refine()` or lighting in `defineTheme()`. */
1456
+ type TileflowReset = Readonly<{
1457
+ readonly $tileflow: 'reset';
1458
+ readonly [tileflowResetBrand]: true;
1459
+ }>;
1460
+ type TileflowPatchValue<TValue> = TileflowReset | (TValue extends readonly unknown[] ? TValue : TValue extends object ? TileflowNestedPatch<TValue> : TValue);
1461
+ type TileflowNestedPatch<TValue extends object> = {
1462
+ readonly [TKey in keyof TValue]?: TileflowPatchValue<TValue[TKey]>;
1463
+ };
1464
+ /**
1465
+ * A recursive semantic patch. Records merge; arrays and scalar values replace.
1466
+ * Module ownership and compiler visibility are immutable only at the patch root;
1467
+ * nested domain options named `type` or `enabled` retain their ordinary meaning.
1468
+ */
1469
+ type TileflowModulePatch<TModule extends object> = {
1470
+ readonly [TKey in Exclude<keyof TModule, 'enabled' | 'type'>]?: TileflowPatchValue<TModule[TKey]>;
1471
+ };
1472
+ type TileflowRefineOperation<TPatch extends object = object> = Readonly<{
1473
+ readonly op: 'refine';
1474
+ readonly patches: readonly TPatch[];
1475
+ }>;
1476
+ type TileflowDisableOperation = Readonly<{
1477
+ readonly op: 'disable';
1478
+ }>;
1479
+ type TileflowModuleOperation<TModule extends object> = TileflowDisableOperation | TileflowRefineOperation<TileflowModulePatch<TModule>>;
1480
+ type TileflowAuthoringModules = {
1481
+ readonly [TName in keyof TileflowSemanticModules]?: NonNullable<TileflowSemanticModules[TName]> | TileflowModuleOperation<NonNullable<TileflowSemanticModules[TName]>>;
1482
+ };
1483
+ /** Deeply refine an inherited module; arrays and scalar values replace atomically. */
1484
+ declare function refine<const TPatch extends object>(...patches: readonly [TPatch, ...TPatch[]]): TileflowRefineOperation<TPatch>;
1485
+ /** Disable a complete semantic module while retaining an explicit compiler decision. */
1486
+ declare function disable(): TileflowDisableOperation;
1487
+ /** Remove an inherited module override or theme lighting value, restoring the SDK fallback. */
1488
+ declare function reset(): TileflowReset;
1489
+
904
1490
  declare const tileflowSunMetadataKey = "tileflow:sun";
905
1491
  /** A theme's sun and sky light with every value resolved; see `TileflowThemeSun`. */
906
1492
  type TileflowSunPreset = Readonly<{
@@ -954,7 +1540,7 @@ type TileflowSun = Readonly<{
954
1540
  /** Where the direction comes from: the themes, angles, or a date and place. */
955
1541
  source: 'theme' | 'direction' | 'date';
956
1542
  }>;
957
- /** The sun of a theme that leaves a value unset: high in the south-south-west, in white light. */
1543
+ /** Unset sun values: high in the south-south-west, with soft white daylight and ambient fill. */
958
1544
  declare const tileflowDefaultSunPreset: TileflowSunPreset;
959
1545
  /**
960
1546
  * Where the sun stands for an instant and a place ([longitude, latitude] in degrees): its azimuth
@@ -1072,9 +1658,13 @@ type TileflowTheme = {
1072
1658
  type TileflowThemeTokenOverrides = {
1073
1659
  [TCategory in keyof TileflowThemeTokens]?: Readonly<Partial<TileflowThemeTokens[TCategory]>>;
1074
1660
  };
1661
+ type TileflowThemeLightingOverrides = {
1662
+ [TKey in keyof TileflowThemeLighting]?: TileflowThemeLighting[TKey] | TileflowReset;
1663
+ };
1075
1664
  /** Input accepted by defineTheme. The returned theme is always fully materialized. */
1076
1665
  type TileflowThemeDefinition = Pick<TileflowTheme, 'colorScheme' | 'id' | 'version'> & {
1077
- lighting?: TileflowThemeLighting;
1666
+ /** Refine inherited light, or use reset() to remove all or one direct lighting property. */
1667
+ lighting?: TileflowThemeLightingOverrides | TileflowReset;
1078
1668
  tokens?: TileflowThemeTokenOverrides;
1079
1669
  typography?: TileflowThemeTypography;
1080
1670
  };
@@ -1237,88 +1827,6 @@ declare class TileflowIconSetError extends Error {
1237
1827
  /** Validate the dependency sequence without consulting a lock or registry. */
1238
1828
  declare function collectTileflowIconSetReferences(sources: readonly TileflowIconSource[]): TileflowIconSetReference[];
1239
1829
 
1240
- declare const tileflowOverlayPlacements: readonly ["above-water", "below-roads", "above-roads", "above-buildings", "below-labels", "above-labels"];
1241
- declare const tileflowHostedSourceLimit: 16;
1242
- type TileflowOverlayPlacement = (typeof tileflowOverlayPlacements)[number];
1243
- type TileflowHostedTilesetType = 'raster' | 'vector';
1244
- type TileflowHostedTilesetSource = Readonly<{
1245
- attribution: string;
1246
- kind: 'hosted-tileset';
1247
- local: string;
1248
- tileset: string;
1249
- tileSize?: 256 | 512;
1250
- type: TileflowHostedTilesetType;
1251
- }>;
1252
- type TileflowMapLibreOverlayLayer = Readonly<Record<string, unknown> & {
1253
- id: string;
1254
- source?: never;
1255
- type: string;
1256
- }>;
1257
- type TileflowMapLibreOverlay = Readonly<{
1258
- kind: 'maplibre-overlay';
1259
- layers: readonly TileflowMapLibreOverlayLayer[];
1260
- placement: TileflowOverlayPlacement;
1261
- source: string;
1262
- }>;
1263
- type TileflowRemoveOperation = Readonly<{
1264
- op: 'remove';
1265
- }>;
1266
- type TileflowHostedSourceCollection = Readonly<Record<string, TileflowHostedTilesetSource | TileflowRemoveOperation>>;
1267
- type TileflowOverlayCollection = Readonly<Record<string, TileflowMapLibreOverlay | TileflowRemoveOperation>>;
1268
- /** Bind one logical Team tileset to an explicit account-free local PMTiles archive. */
1269
- declare function hostedTileset(options: {
1270
- attribution: string;
1271
- local: string;
1272
- tileset: string;
1273
- tileSize?: 256 | 512;
1274
- type?: TileflowHostedTilesetType;
1275
- }): TileflowHostedTilesetSource;
1276
- /** Group one or more ordinary MapLibre layers around one named Tileflow source. */
1277
- declare function maplibreOverlay(options: {
1278
- layers: readonly TileflowMapLibreOverlayLayer[];
1279
- placement: TileflowOverlayPlacement;
1280
- source: string;
1281
- }): TileflowMapLibreOverlay;
1282
- /** Remove one inherited keyed source or overlay. */
1283
- declare function remove(): TileflowRemoveOperation;
1284
- declare function isSafeLocalPmtilesPath(value: unknown): value is string;
1285
-
1286
- declare const tileflowResetBrand: unique symbol;
1287
- /** Serializable sentinel that removes one inherited override during `refine()`. */
1288
- type TileflowReset = Readonly<{
1289
- readonly $tileflow: 'reset';
1290
- readonly [tileflowResetBrand]: true;
1291
- }>;
1292
- type TileflowPatchValue<TValue> = TileflowReset | (TValue extends readonly unknown[] ? TValue : TValue extends object ? TileflowNestedPatch<TValue> : TValue);
1293
- type TileflowNestedPatch<TValue extends object> = {
1294
- readonly [TKey in keyof TValue]?: TileflowPatchValue<TValue[TKey]>;
1295
- };
1296
- /**
1297
- * A recursive semantic patch. Records merge; arrays and scalar values replace.
1298
- * Module ownership and compiler visibility are immutable only at the patch root;
1299
- * nested domain options named `type` or `enabled` retain their ordinary meaning.
1300
- */
1301
- type TileflowModulePatch<TModule extends object> = {
1302
- readonly [TKey in Exclude<keyof TModule, 'enabled' | 'type'>]?: TileflowPatchValue<TModule[TKey]>;
1303
- };
1304
- type TileflowRefineOperation<TPatch extends object = object> = Readonly<{
1305
- readonly op: 'refine';
1306
- readonly patches: readonly TPatch[];
1307
- }>;
1308
- type TileflowDisableOperation = Readonly<{
1309
- readonly op: 'disable';
1310
- }>;
1311
- type TileflowModuleOperation<TModule extends object> = TileflowDisableOperation | TileflowRefineOperation<TileflowModulePatch<TModule>>;
1312
- type TileflowAuthoringModules = {
1313
- readonly [TName in keyof TileflowSemanticModules]?: NonNullable<TileflowSemanticModules[TName]> | TileflowModuleOperation<NonNullable<TileflowSemanticModules[TName]>>;
1314
- };
1315
- /** Deeply refine an inherited module; arrays and scalar values replace atomically. */
1316
- declare function refine<const TPatch extends object>(...patches: readonly [TPatch, ...TPatch[]]): TileflowRefineOperation<TPatch>;
1317
- /** Disable a complete semantic module while retaining an explicit compiler decision. */
1318
- declare function disable(): TileflowDisableOperation;
1319
- /** Remove an inherited override so the domain registry can supply its semantic default. */
1320
- declare function reset(): TileflowReset;
1321
-
1322
1830
  /** Portable, filesystem-safe identity shared by maps and their leaf-owned scenes. */
1323
1831
  declare const tileflowMapIdSchema: zod.ZodString;
1324
1832
  /** Identity is always owned by the map being resolved and never inherited. */
@@ -1351,6 +1859,11 @@ type TileflowMapTextAssets = {
1351
1859
  type TileflowMapDesign = TileflowMapTextAssets & {
1352
1860
  /** Optional atmosphere for globe projection. False disables an inherited atmosphere. */
1353
1861
  atmosphere?: TileflowAtmosphere;
1862
+ /**
1863
+ * Tileflow's Boundaries tileset: administrative and neighbourhood areas for choropleths and
1864
+ * selections. World's border lines remain the `boundaries` module. False removes inherited areas.
1865
+ */
1866
+ boundaryAreas?: TileflowBoundaryAreas;
1354
1867
  data?: TileflowDataConfig;
1355
1868
  /** Name used whenever a concrete theme is not explicitly requested. */
1356
1869
  defaultTheme?: TileflowThemeName;
@@ -1537,7 +2050,18 @@ type TileflowCompilationPlannerDecision = Readonly<{
1537
2050
  selectedCount?: number;
1538
2051
  stage: TileflowCompilationPlannerStage;
1539
2052
  }>;
2053
+ /** A resolved semantic choice, with an authoring path rather than a physical layer ID. */
2054
+ type TileflowCompilationDesignDecision = Readonly<{
2055
+ /** Dot path in the resolved map; a theme token's complete role is its final key. */
2056
+ path: string;
2057
+ source: 'default' | 'map' | 'theme' | 'derived';
2058
+ value: unknown;
2059
+ reason: string;
2060
+ override: string;
2061
+ }>;
1540
2062
  type TileflowCompilationReport = Readonly<{
2063
+ /** Color roles and selected module policies, not a trace of every paint/layout property. */
2064
+ decisions?: readonly TileflowCompilationDesignDecision[];
1541
2065
  domains: readonly TileflowCompilationDomainReport[];
1542
2066
  map: string;
1543
2067
  planner: readonly TileflowCompilationPlannerDecision[];
@@ -1737,4 +2261,4 @@ declare function parseTileflowIconComposition(input: unknown): TileflowIconCompo
1737
2261
  /** Dependency identity is separate from the generated artifact's content hash. */
1738
2262
  declare function hashTileflowIconComposition(input: TileflowIconCompositionV1): Promise<string>;
1739
2263
 
1740
- export { type TileflowAerowaysModuleOptions as $, type TileflowBandPlacement as A, type OpenMapTilesLayerBindings as B, tileflowCompilationPhases as C, tileflowCompilationPlannerStages as D, tileflowCompilationReportSchemaVersion as E, type TileflowSemanticModuleName as F, tileflowHostedSourceLimit as G, tileflowOverlayPlacements as H, type ResolvedTileflowTheme as I, type TileflowThemeColorScheme as J, type TileflowIconSource as K, type TileflowVegetationMode as L, type OpenMapTilesSchema as M, type OpenMapTilesSchemaOptions as N, type OpenMapTilesFieldBindings as O, type ParkLayerSemantics as P, type ResolvedBathymetry as Q, type ResolvedTileflowMap as R, type ResolvedBathymetryRelief as S, type TileflowRenderedIconIdentity as T, type ResolvedMarine as U, type ResolvedMarineSource as V, type ResolvedTileflowData as W, type ResolvedTileflowThemeTokens as X, type TileflowAddressesModuleConfig as Y, type TileflowAddressesModuleOptions as Z, type TileflowAerowaysModuleConfig as _, type TileflowIconCompositionV1 as a, type TileflowModelDirectory as a$, type TileflowAtmosphere as a0, type TileflowAtmosphereOptions as a1, type TileflowAuthoringModules as a2, type TileflowBathymetryConfig as a3, type TileflowBathymetryDemSourceIdentity as a4, type TileflowBathymetryDisplay as a5, type TileflowBathymetryNameLayer as a6, type TileflowBathymetryNameZoomRange as a7, type TileflowBathymetryOptions as a8, type TileflowBathymetryReliefConfig as a9, type TileflowHostedTilesetSource as aA, type TileflowHostedTilesetType as aB, type TileflowIconContributorIdentity as aC, type TileflowIconDirectory as aD, TileflowIconSetError as aE, type TileflowIconSetErrorCode as aF, type TileflowIconSetReference as aG, type TileflowIconSetSource as aH, type TileflowLandModuleConfig as aI, type TileflowLandModuleOptions as aJ, type TileflowLandcoverClass as aK, type TileflowLandformClass as aL, type TileflowLandformsModuleConfig as aM, type TileflowLandformsModuleOptions as aN, type TileflowLanduseClass as aO, type TileflowLayerBand as aP, type TileflowLocalDirectory as aQ, type TileflowMapDesign as aR, type TileflowMapIdentity as aS, type TileflowMapLibreOverlay as aT, type TileflowMapLibreOverlayLayer as aU, type TileflowMapTooling as aV, type TileflowMarine as aW, type TileflowMarineConfig as aX, type TileflowMarineMode as aY, type TileflowMarineSourceConfig as aZ, type TileflowMarineSourceIdentity as a_, type TileflowBathymetryVectorLayers as aa, type TileflowBoundariesModuleConfig as ab, type TileflowBoundariesModuleOptions as ac, type TileflowBuildingMode as ad, type TileflowBuildingModelPart as ae, type TileflowBuildingModelPlacementConfig as af, type TileflowBuildingsModuleConfig as ag, type TileflowBuildingsModuleOptions as ah, type TileflowBuildingsThreeDimensionalStyle as ai, type TileflowCompilationDiagnostic as aj, type TileflowCompilationDomainReport as ak, type TileflowCompilationFailure as al, type TileflowCompilationOptions as am, type TileflowCompilationPhase as an, type TileflowCompilationPlannerDecision as ao, type TileflowCompilationPlannerStage as ap, type TileflowCompilationReport as aq, type TileflowCompilationResult as ar, type TileflowCompilationSuccess as as, type TileflowDataConfig as at, type TileflowDataIdentity as au, type TileflowDerivedMap as av, type TileflowDisableOperation as aw, type TileflowFontDirectory as ax, type TileflowGlyphs as ay, type TileflowHostedSourceCollection as az, type TileflowDataRequirementsV1 as b, createStyle as b$, type TileflowModuleOperation as b0, type TileflowModulePatch as b1, type TileflowNauticalAreaLabelStyles as b2, type TileflowNauticalModuleConfig as b3, type TileflowNauticalModuleOptions as b4, type TileflowOverlayCollection as b5, type TileflowOverlayPlacement as b6, type TileflowPackageDirectory as b7, type TileflowPreparedIconCapabilities as b8, type TileflowRasterDemSourceRequirementV1 as b9, type TileflowTreeModel as bA, type TileflowTreeModelMesh as bB, type TileflowTreeRegion as bC, type TileflowVegetation3D as bD, type TileflowVegetationModuleConfig as bE, type TileflowVegetationModuleOptions as bF, type TileflowVegetationThreeDimensionalStyle as bG, type TileflowVisualValueCategory as bH, type TileflowWaterModuleConfig as bI, type TileflowWaterModuleOptions as bJ, type TileflowWaterwayClass as bK, type TileflowWorldData as bL, type TileflowWorldReleaseReference as bM, type TileflowWorldSelection as bN, type TileflowWorldV1Schema as bO, type VectorTilesData as bP, addresses as bQ, aeroways as bR, assertTileflowMapThemeValues as bS, assertTileflowSdfPixels as bT, auditTileflowMapThemeValues as bU, auditTileflowThemeValues as bV, bathymetry as bW, boundaries as bX, buildings as bY, classifyTileflowVisualProperty as bZ, collectTileflowIconSetReferences as b_, type TileflowRefineOperation as ba, type TileflowRemoveOperation as bb, type TileflowReset as bc, type TileflowResolvedThemeSelection as bd, type TileflowSemanticModules as be, type TileflowStandaloneMap as bf, type TileflowSun as bg, type TileflowSunPreset as bh, type TileflowTheme as bi, type TileflowThemeAmbient as bj, type TileflowThemeAuditContext as bk, type TileflowThemeAuditDiagnostic as bl, TileflowThemeAuditError as bm, type TileflowThemeAuditScope as bn, type TileflowThemeDefinition as bo, type TileflowThemeLighting as bp, type TileflowThemeName as bq, type TileflowThemeSun as br, type TileflowThemeTokens as bs, type TileflowThemeTypography as bt, type TileflowThemeTypographyStyle as bu, type TileflowTransitModuleConfig as bv, type TileflowTransitModuleOptions as bw, type TileflowTransitRailStyle as bx, type TileflowTreeForm as by, type TileflowTreeFormMix as bz, type TileflowSourceRequirementsV1 as c, tileflowSunPosition as c$, createStyleResult as c0, decodeTileflowTreeModel as c1, defineTheme as c2, disable as c3, encodeTileflowTreeModel as c4, hashTileflowIconComposition as c5, hostedTileset as c6, iconSet as c7, isCanonicalOpenMapTilesSchema as c8, isSafeLocalPmtilesPath as c9, tileflowBathymetrySourceId as cA, tileflowBathymetryV1Schema as cB, tileflowDefaultSunPreset as cC, tileflowIconAppearanceSchema as cD, tileflowIconAuthorMetadataSchema as cE, tileflowIconCompositionMaximumBytes as cF, tileflowIconCompositionSchema as cG, tileflowIconMetadataFileName as cH, tileflowIconSetIdSchema as cI, tileflowIconSetPackageIdSchema as cJ, tileflowIconSetReferenceSchema as cK, tileflowIconSetSourceSchema as cL, tileflowIconSetTeamIdSchema as cM, tileflowIconSetVersionIdSchema as cN, tileflowIconSourceLimit as cO, tileflowLandformClasses as cP, tileflowLayerBands as cQ, tileflowLocalDirectoryMaximumLength as cR, tileflowLocalDirectoryMessage as cS, tileflowMapIdSchema as cT, tileflowNauticalSourceId as cU, tileflowNauticalV1Schema as cV, tileflowPrimarySourceId as cW, tileflowRenderedIconIdentitySchema as cX, tileflowStyleSunPreset as cY, tileflowSunDirection as cZ, tileflowSunMetadataKey as c_, isTileflowCompilationPhase as ca, isTileflowIconSetSource as cb, isTileflowLocalDirectory as cc, land as cd, landforms as ce, maplibreOverlay as cf, mixTileflowSunPresets as cg, nautical as ch, openMapTiles as ci, openMapTilesContractVersion as cj, parseTileflowIconComposition as ck, parseTileflowMap as cl, readTileflowSunPreset as cm, readTileflowVegetation3D as cn, refine as co, remove as cp, reset as cq, resolveMarine as cr, resolveThemeSelection as cs, resolveThemeValues as ct, resolveTileflowData as cu, resolveTileflowSun as cv, resolveTileflowTheme as cw, tileflowBandPlacements as cx, tileflowBathymetryDemSourceId as cy, tileflowBathymetryNameLayerLimits as cz, type TileflowMap as d, tileflowThemeLimits as d0, tileflowTreeForms as d1, tileflowTreeModelIdPattern as d2, tileflowTreeModelLimits as d3, tileflowVegetationMetadataKey as d4, tileflowWorld as d5, tileflowWorldGeneration as d6, tileflowWorldTileJsonUrl as d7, tileflowWorldV1Schema as d8, transit as d9, validateTileflowCompiledIconCapabilities as da, validateTileflowMap as db, validateTileflowWorldV1Tilejson as dc, vectorTiles as dd, vegetation as de, water as df, type TileflowStyleOptions as e, type TileflowInspectedStyle as f, type TileflowPreparedMapAssets as g, type TileflowDataCompatibilityIssue as h, type TileflowDataFieldRequirement as i, type TileflowDataFieldType as j, type TileflowDataLayerRequirement as k, type TileflowObservedDataContractV1 as l, type TileflowStyleInspection as m, type TileflowStyleInspectionContribution as n, type TileflowStyleInspectionLayer as o, type TileflowStyleInspectionRenderOperation as p, collectMapLineage as q, inferTileflowDataRequirements as r, inferTileflowSourceRequirements as s, tileflowStyleInspectionSchemaVersion as t, type TileflowMapScene as u, validateTileflowDataCompatibility as v, type TileflowMapShot as w, type ResolveMapOptions as x, type TileflowIconAppearance as y, type TileflowLayerDomain as z };
2264
+ export { type ResolvedBathymetry as $, type TileflowMapScene as A, type TileflowMapShot as B, type ResolveMapOptions as C, type TileflowIconAppearance as D, type TileflowLayerDomain as E, type TileflowBandPlacement as F, type OpenMapTilesLayerBindings as G, tileflowCompilationPhases as H, tileflowCompilationPlannerStages as I, tileflowCompilationReportSchemaVersion as J, type TileflowSemanticModuleName as K, tileflowHostedSourceLimit as L, tileflowOverlayPlacements as M, type ResolvedTileflowTheme as N, type OpenMapTilesFieldBindings as O, type TileflowThemeColorScheme as P, type TileflowIconSource as Q, type ResolvedTileflowMap as R, type TileflowModelLightingRole as S, type TileflowRenderedIconIdentity as T, type TileflowModelPart as U, type TileflowModel as V, type TileflowModelBytes as W, type TileflowVegetationMode as X, type OpenMapTilesSchema as Y, type OpenMapTilesSchemaOptions as Z, type ParkLayerSemantics as _, type TileflowIconCompositionV1 as a, type TileflowLandModuleOptions as a$, type ResolvedBathymetryRelief as a0, type ResolvedBoundaryAreas as a1, type ResolvedMarine as a2, type ResolvedMarineSource as a3, type ResolvedTileflowData as a4, type ResolvedTileflowThemeTokens as a5, type TileflowAddressesModuleConfig as a6, type TileflowAddressesModuleOptions as a7, type TileflowAerowaysModuleConfig as a8, type TileflowAerowaysModuleOptions as a9, type TileflowCompilationDesignDecision as aA, type TileflowCompilationDiagnostic as aB, type TileflowCompilationDomainReport as aC, type TileflowCompilationFailure as aD, type TileflowCompilationOptions as aE, type TileflowCompilationPhase as aF, type TileflowCompilationPlannerDecision as aG, type TileflowCompilationPlannerStage as aH, type TileflowCompilationReport as aI, type TileflowCompilationResult as aJ, type TileflowCompilationSuccess as aK, type TileflowDataConfig as aL, type TileflowDataIdentity as aM, type TileflowDerivedMap as aN, type TileflowDisableOperation as aO, type TileflowFontDirectory as aP, type TileflowGlyphs as aQ, type TileflowHostedSourceCollection as aR, type TileflowHostedTilesetSource as aS, type TileflowHostedTilesetType as aT, type TileflowIconContributorIdentity as aU, type TileflowIconDirectory as aV, TileflowIconSetError as aW, type TileflowIconSetErrorCode as aX, type TileflowIconSetReference as aY, type TileflowIconSetSource as aZ, type TileflowLandModuleConfig as a_, type TileflowAtmosphere as aa, type TileflowAtmosphereOptions as ab, type TileflowAuthoringModules as ac, type TileflowBarrierClass as ad, type TileflowBarrierStyle as ae, type TileflowBathymetryConfig as af, type TileflowBathymetryDemSourceIdentity as ag, type TileflowBathymetryDisplay as ah, type TileflowBathymetryNameLayer as ai, type TileflowBathymetryNamePlacement as aj, type TileflowBathymetryNameStyle as ak, type TileflowBathymetryNameZoomRange as al, type TileflowBathymetryOptions as am, type TileflowBathymetryReliefConfig as an, type TileflowBathymetryVectorLayers as ao, type TileflowBoundariesModuleConfig as ap, type TileflowBoundariesModuleOptions as aq, type TileflowBoundaryAreas as ar, type TileflowBoundaryAreasConfig as as, type TileflowBoundaryAreasSourceIdentity as at, type TileflowBuildingMode as au, type TileflowBuildingModelPart as av, type TileflowBuildingModelPlacementConfig as aw, type TileflowBuildingsModuleConfig as ax, type TileflowBuildingsModuleOptions as ay, type TileflowBuildingsThreeDimensionalStyle as az, type TileflowDataRequirementsV1 as b, type TileflowVegetation3D as b$, type TileflowLandcoverClass as b0, type TileflowLandformClass as b1, type TileflowLandformsModuleConfig as b2, type TileflowLandformsModuleOptions as b3, type TileflowLanduseClass as b4, type TileflowLayerBand as b5, type TileflowLocalDirectory as b6, type TileflowMapDesign as b7, type TileflowMapIdentity as b8, type TileflowMapLibreOverlayLayer as b9, type TileflowReset as bA, type TileflowResolvedThemeSelection as bB, type TileflowSemanticModules as bC, type TileflowStandaloneMap as bD, type TileflowSun as bE, type TileflowSunPreset as bF, type TileflowTheme as bG, type TileflowThemeAmbient as bH, type TileflowThemeAuditContext as bI, type TileflowThemeAuditDiagnostic as bJ, TileflowThemeAuditError as bK, type TileflowThemeAuditScope as bL, type TileflowThemeDefinition as bM, type TileflowThemeLighting as bN, type TileflowThemeName as bO, type TileflowThemeSun as bP, type TileflowThemeTokens as bQ, type TileflowThemeTypography as bR, type TileflowThemeTypographyStyle as bS, type TileflowTransitModuleConfig as bT, type TileflowTransitModuleOptions as bU, type TileflowTransitRailStyle as bV, type TileflowTreeForm as bW, type TileflowTreeFormMix as bX, type TileflowTreeModel as bY, type TileflowTreeModelMesh as bZ, type TileflowTreeRegion as b_, type TileflowMapTooling as ba, type TileflowMarine as bb, type TileflowMarineConfig as bc, type TileflowMarineMode as bd, type TileflowMarineSourceConfig as be, type TileflowMarineSourceIdentity as bf, type TileflowModelDirectory as bg, type TileflowModelEmitter as bh, type TileflowModelLevelBytes as bi, type TileflowModelMaterial as bj, type TileflowModelMaterialRange as bk, type TileflowModelMesh as bl, type TileflowModelSurface as bm, type TileflowModelTexture as bn, type TileflowModelTextureReference as bo, type TileflowModuleOperation as bp, type TileflowModulePatch as bq, type TileflowNauticalAreaLabelStyles as br, type TileflowNauticalModuleConfig as bs, type TileflowNauticalModuleOptions as bt, type TileflowOverlayCollection as bu, type TileflowPackageDirectory as bv, type TileflowPreparedIconCapabilities as bw, type TileflowRasterDemSourceRequirementV1 as bx, type TileflowRefineOperation as by, type TileflowRemoveOperation as bz, type TileflowSourceRequirementsV1 as c, tileflowBathymetryNameLayerLimits as c$, type TileflowVegetationModuleConfig as c0, type TileflowVegetationModuleOptions as c1, type TileflowVegetationThreeDimensionalStyle as c2, type TileflowVisualValueCategory as c3, type TileflowWaterModuleConfig as c4, type TileflowWaterModuleOptions as c5, type TileflowWaterwayClass as c6, type TileflowWorldData as c7, type TileflowWorldReleaseReference as c8, type TileflowWorldSelection as c9, isTileflowBoundaryFamily as cA, isTileflowCompilationPhase as cB, isTileflowIconSetSource as cC, isTileflowLocalDirectory as cD, land as cE, landforms as cF, maplibreOverlay as cG, mixTileflowSunPresets as cH, nautical as cI, openMapTiles as cJ, openMapTilesContractVersion as cK, parseTileflowIconComposition as cL, parseTileflowMap as cM, readTileflowSunPreset as cN, readTileflowVegetation3D as cO, refine as cP, remove as cQ, reset as cR, resolveBoundaryAreas as cS, resolveMarine as cT, resolveThemeSelection as cU, resolveThemeValues as cV, resolveTileflowData as cW, resolveTileflowSun as cX, resolveTileflowTheme as cY, tileflowBandPlacements as cZ, tileflowBathymetryDemSourceId as c_, type TileflowWorldV1Schema as ca, type VectorTilesData as cb, addresses as cc, aeroways as cd, assertTileflowMapThemeValues as ce, assertTileflowSdfPixels as cf, auditTileflowMapThemeValues as cg, auditTileflowThemeValues as ch, bathymetry as ci, boundaries as cj, buildings as ck, checkTileflowModelSurface as cl, classifyTileflowVisualProperty as cm, collectTileflowIconSetReferences as cn, createStyle as co, createStyleResult as cp, decodeTileflowTreeModel as cq, defineTheme as cr, disable as cs, encodeTileflowTreeModel as ct, hashTileflowIconComposition as cu, hostedTileset as cv, iconSet as cw, isCanonicalOpenMapTilesSchema as cx, isSafeLocalPmtilesPath as cy, isTileflowBoundaryClass as cz, type TileflowMap as d, tileflowBathymetrySourceId as d0, tileflowBathymetryV1Schema as d1, tileflowBoundaryAreasV1Schema as d2, tileflowBoundaryClassTiers as d3, tileflowBoundaryClasses as d4, tileflowBoundaryFamilies as d5, tileflowDefaultSunPreset as d6, tileflowIconAppearanceSchema as d7, tileflowIconAuthorMetadataSchema as d8, tileflowIconCompositionMaximumBytes as d9, tileflowNauticalSourceId as dA, tileflowNauticalV1Schema as dB, tileflowPrimarySourceId as dC, tileflowRenderedIconIdentitySchema as dD, tileflowRingsOverlap as dE, tileflowStyleSunPreset as dF, tileflowSunDirection as dG, tileflowSunMetadataKey as dH, tileflowSunPosition as dI, tileflowThemeLimits as dJ, tileflowTreeForms as dK, tileflowTreeModelIdPattern as dL, tileflowTreeModelLimits as dM, tileflowVegetationMetadataKey as dN, tileflowWorld as dO, tileflowWorldGeneration as dP, tileflowWorldTileJsonUrl as dQ, tileflowWorldV1Schema as dR, transit as dS, validateTileflowCompiledIconCapabilities as dT, validateTileflowMap as dU, validateTileflowWorldV1Tilejson as dV, vectorTiles as dW, vegetation as dX, water as dY, tileflowIconCompositionSchema as da, tileflowIconMetadataFileName as db, tileflowIconSetIdSchema as dc, tileflowIconSetPackageIdSchema as dd, tileflowIconSetReferenceSchema as de, tileflowIconSetSourceSchema as df, tileflowIconSetTeamIdSchema as dg, tileflowIconSetVersionIdSchema as dh, tileflowIconSourceLimit as di, tileflowInsideRings as dj, tileflowLandformClasses as dk, tileflowLayerBands as dl, tileflowLocalDirectoryMaximumLength as dm, tileflowLocalDirectoryMessage as dn, tileflowMapIdSchema as dp, tileflowModelDefaultLightingRoles as dq, tileflowModelImageSize as dr, tileflowModelLightingRoles as ds, tileflowModelLimits as dt, tileflowModelParts as du, tileflowModelSurfaceLimits as dv, tileflowModelTextureChannels as dw, tileflowModelVertexBytes as dx, tileflowNauticalImageRoles as dy, tileflowNauticalNotice as dz, type TileflowStyleOptions as e, type TileflowInspectedStyle as f, type TileflowPreparedMapAssets as g, type TileflowDataCompatibilityIssue as h, type TileflowDataFieldRequirement as i, type TileflowDataFieldType as j, type TileflowDataLayerRequirement as k, type TileflowObservedDataContractV1 as l, type TileflowStyleInspection as m, type TileflowStyleInspectionContribution as n, type TileflowStyleInspectionLayer as o, type TileflowStyleInspectionRenderOperation as p, collectMapLineage as q, inferTileflowDataRequirements as r, inferTileflowSourceRequirements as s, tileflowStyleInspectionSchemaVersion as t, type TileflowBoundaryClass as u, validateTileflowDataCompatibility as v, type TileflowBoundaryClassTier as w, type TileflowBoundaryFamily as x, type TileflowOverlayPlacement as y, type TileflowMapLibreOverlay as z };