@tileflow/core 0.1.0-alpha.20 → 0.1.0-alpha.21

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.
@@ -0,0 +1,491 @@
1
+ import * as zod from 'zod';
2
+ import { T as TileflowCaptureScene } from './capture-scene-BK_0J2oR.js';
3
+ import { b as TileflowVisualValueCategory, d as TileflowDataConfig, e as TileflowStreetsModules } from './visual-semantics-DTC-8Hsb.js';
4
+ import { a as TileflowFillStyle, b as TileflowLineStyle, c as TileflowSymbolStyle, d as TileflowTerrainHillshadeStyle, e as TileflowTerrainEncoding, f as TileflowThemeNumberValue, g as TileflowThemeColorValue, h as TileflowThemeFontValue, i as TileflowThemeImageValue, j as TileflowTypographyStyle, k as TileflowLight, R as ResolvedTileflowTypography, l as TileflowProjection, m as TileflowTerrain, T as TileflowViewConfig, M as MapLibreStyle, V as ValidationResult } from './types-DlUGI6LC.js';
5
+
6
+ declare const tileflowBathymetrySourceId: "tileflow-bathymetry";
7
+ declare const tileflowBathymetryDemSourceId: "tileflow-bathymetry-dem";
8
+ declare const tileflowNauticalSourceId: "tileflow-nautical";
9
+ declare const tileflowBathymetryV1Schema: Readonly<{
10
+ fields: Readonly<{
11
+ minDepth: "min_depth";
12
+ sortKey: "sort_key";
13
+ }>;
14
+ layer: "bathymetry";
15
+ layers: Readonly<{
16
+ bands: "bathymetry";
17
+ contours: "bathymetry_contour";
18
+ coverage: "bathymetry_coverage";
19
+ landforms: "seafloor_landform";
20
+ waterNames: "water_name";
21
+ }>;
22
+ optionalLayers: readonly ["contours", "coverage", "landforms", "waterNames"];
23
+ product: "bathymetry-v1";
24
+ requiredLayers: readonly ["bands"];
25
+ schemaVersion: 1;
26
+ sources: Readonly<{
27
+ dem: Readonly<{
28
+ encoding: "terrarium";
29
+ sourceId: "tileflow-bathymetry-dem";
30
+ tileSize: 512;
31
+ }>;
32
+ vector: Readonly<{
33
+ sourceId: "tileflow-bathymetry";
34
+ }>;
35
+ }>;
36
+ }>;
37
+ declare const tileflowNauticalV1Schema: Readonly<{
38
+ fields: Readonly<{
39
+ cell: "cell";
40
+ character: "character";
41
+ class: "class";
42
+ color: "color";
43
+ coverage: "coverage";
44
+ depth: "depth";
45
+ direction: "direction";
46
+ edition: "edition";
47
+ licence: "licence";
48
+ name: "name";
49
+ provider: "provider";
50
+ provenance: "provenance";
51
+ quality: "quality";
52
+ rangeNm: "range_nm";
53
+ scale: "scale";
54
+ subclass: "subclass";
55
+ update: "update";
56
+ }>;
57
+ geometryTypes: Readonly<{
58
+ aids: readonly ["Point"];
59
+ coverage: readonly ["Polygon"];
60
+ hazards: readonly ["Point", "Polygon"];
61
+ lights: readonly ["Point"];
62
+ navigationAreas: readonly ["Polygon"];
63
+ reefs: readonly ["Polygon"];
64
+ soundings: readonly ["Point"];
65
+ wrecks: readonly ["Point", "Polygon"];
66
+ }>;
67
+ layers: Readonly<{
68
+ aids: "aid";
69
+ coverage: "coverage";
70
+ hazards: "hazard";
71
+ lights: "light";
72
+ navigationAreas: "navigation_area";
73
+ reefs: "reef";
74
+ soundings: "sounding";
75
+ wrecks: "wreck";
76
+ }>;
77
+ product: "nautical-v1";
78
+ schemaVersion: 1;
79
+ }>;
80
+ type TileflowMarineMode = 'none' | 'bathymetry' | 'nautical' | 'chart';
81
+ /** One schema-compatible vector TileJSON source used by a marine sidecar. */
82
+ type TileflowMarineSourceConfig = {
83
+ attribution?: string;
84
+ sourceId?: string;
85
+ url?: string;
86
+ };
87
+ type TileflowBathymetryDisplay = 'bands' | 'relief' | 'hybrid';
88
+ /**
89
+ * Styling and physical-source overrides for the optional Bathymetry DEM.
90
+ * Terrarium and 512 px tiles are the hosted defaults; advanced compatible sources may override
91
+ * either. `opacity` applies to both the continuous color relief and the hillshade tint.
92
+ */
93
+ type TileflowBathymetryReliefConfig = TileflowTerrainHillshadeStyle & {
94
+ attribution?: string;
95
+ encoding?: TileflowTerrainEncoding;
96
+ illuminationAltitude?: TileflowThemeNumberValue;
97
+ multidirectional?: boolean;
98
+ opacity?: TileflowThemeNumberValue;
99
+ sourceId?: string;
100
+ tileSize?: 256 | 512;
101
+ url?: string;
102
+ };
103
+ /** One logical Bathymetry product backed by vector bands and, when requested, a DEM. */
104
+ type TileflowBathymetryConfig = TileflowMarineSourceConfig & {
105
+ bands?: false | TileflowFillStyle;
106
+ contours?: false | TileflowLineStyle;
107
+ display?: TileflowBathymetryDisplay;
108
+ labels?: false | TileflowSymbolStyle;
109
+ relief?: false | TileflowBathymetryReliefConfig;
110
+ type: 'bathymetry';
111
+ };
112
+ type TileflowBathymetryOptions = Omit<TileflowBathymetryConfig, 'type'>;
113
+ /** Configure Bathymetry as one product while loading only the physical sources its display needs. */
114
+ declare function bathymetry(options?: TileflowBathymetryOptions): TileflowBathymetryConfig;
115
+ /**
116
+ * Advanced marine selection. An omitted member selects Tileflow's current product; `false`
117
+ * disables only that member. Therefore `{}` is equivalent to `"chart"`.
118
+ */
119
+ type TileflowMarineConfig = {
120
+ bathymetry?: false | TileflowBathymetryConfig | TileflowMarineSourceConfig;
121
+ nautical?: false | TileflowMarineSourceConfig;
122
+ };
123
+ type TileflowMarine = TileflowMarineMode | TileflowMarineConfig;
124
+ type TileflowMarineSourceIdentity = Readonly<{
125
+ kind: 'tileflow-bathymetry' | 'tileflow-nautical';
126
+ product: 'bathymetry-v1' | 'nautical-v1';
127
+ schemaVersion: 1;
128
+ sourceId: string;
129
+ url: string;
130
+ }>;
131
+ type TileflowBathymetryDemSourceIdentity = Readonly<{
132
+ encoding: TileflowTerrainEncoding;
133
+ kind: 'tileflow-bathymetry-dem';
134
+ product: 'bathymetry-v1';
135
+ schemaVersion: 1;
136
+ sourceId: string;
137
+ tileSize: 256 | 512;
138
+ url: string;
139
+ }>;
140
+ type ResolvedMarineSource = Readonly<{
141
+ identity: TileflowMarineSourceIdentity;
142
+ source: Readonly<Record<string, unknown> & {
143
+ type: 'vector';
144
+ url: string;
145
+ }>;
146
+ sourceId: string;
147
+ }>;
148
+ type ResolvedBathymetryRelief = Readonly<{
149
+ identity: TileflowBathymetryDemSourceIdentity;
150
+ source: Readonly<Record<string, unknown> & {
151
+ encoding: TileflowTerrainEncoding;
152
+ tileSize: 256 | 512;
153
+ type: 'raster-dem';
154
+ url: string;
155
+ }>;
156
+ sourceId: string;
157
+ style: TileflowBathymetryReliefConfig;
158
+ }>;
159
+ type ResolvedBathymetry = Readonly<{
160
+ bands?: false | TileflowFillStyle;
161
+ contours?: false | TileflowLineStyle;
162
+ display: TileflowBathymetryDisplay;
163
+ labels?: false | TileflowSymbolStyle;
164
+ relief?: ResolvedBathymetryRelief;
165
+ vector?: ResolvedMarineSource;
166
+ }>;
167
+ type ResolvedMarine = Readonly<{
168
+ bathymetry?: ResolvedBathymetry;
169
+ nautical?: ResolvedMarineSource;
170
+ }>;
171
+ /** Resolve the optional marine sidecars without fetching their TileJSON documents. */
172
+ declare function resolveMarine(marine: TileflowMarine | undefined, apiBaseUrl?: string): ResolvedMarine | undefined;
173
+
174
+ type TileflowThemeColorScheme = 'dark' | 'light';
175
+ type TileflowThemeName = string;
176
+ type TileflowThemeTokens = {
177
+ color: Readonly<Record<string, TileflowThemeColorValue>>;
178
+ font: Readonly<Record<string, TileflowThemeFontValue>>;
179
+ image: Readonly<Record<string, TileflowThemeImageValue>>;
180
+ number: Readonly<Record<string, TileflowThemeNumberValue>>;
181
+ };
182
+ type TileflowThemeTypographyStyle = {
183
+ fallbacks?: readonly TileflowThemeFontValue[];
184
+ font?: TileflowThemeFontValue;
185
+ letterSpacing?: TileflowThemeNumberValue;
186
+ transform?: TileflowTypographyStyle['transform'];
187
+ };
188
+ type TileflowThemeTypography = TileflowThemeTypographyStyle & {
189
+ places?: TileflowThemeTypographyStyle;
190
+ poi?: TileflowThemeTypographyStyle;
191
+ roads?: TileflowThemeTypographyStyle;
192
+ water?: TileflowThemeTypographyStyle;
193
+ };
194
+ type TileflowThemeLighting = {
195
+ anchor?: 'map' | 'viewport';
196
+ color?: TileflowThemeColorValue;
197
+ intensity?: TileflowThemeNumberValue;
198
+ position?: readonly [
199
+ TileflowThemeNumberValue,
200
+ TileflowThemeNumberValue,
201
+ TileflowThemeNumberValue
202
+ ];
203
+ };
204
+ /** A complete, inheritance-free appearance document. */
205
+ type TileflowTheme = {
206
+ colorScheme: TileflowThemeColorScheme;
207
+ id: string;
208
+ lighting: TileflowThemeLighting;
209
+ tokens: TileflowThemeTokens;
210
+ typography: TileflowThemeTypography;
211
+ version: number;
212
+ };
213
+ type TileflowThemeTokenOverrides = {
214
+ [TCategory in keyof TileflowThemeTokens]?: Readonly<Partial<TileflowThemeTokens[TCategory]>>;
215
+ };
216
+ /** Input accepted by defineTheme. The returned theme is always fully materialized. */
217
+ type TileflowThemeDefinition = Pick<TileflowTheme, 'colorScheme' | 'id' | 'version'> & {
218
+ lighting?: TileflowThemeLighting;
219
+ tokens?: TileflowThemeTokenOverrides;
220
+ typography?: TileflowThemeTypography;
221
+ };
222
+ type ResolvedTileflowThemeTokens = {
223
+ color: Readonly<Record<string, string>>;
224
+ font: Readonly<Record<string, string>>;
225
+ image: Readonly<Record<string, string>>;
226
+ number: Readonly<Record<string, number>>;
227
+ };
228
+ type ResolvedTileflowTheme = Omit<TileflowTheme, 'lighting' | 'tokens' | 'typography'> & {
229
+ lighting: TileflowLight;
230
+ tokens: ResolvedTileflowThemeTokens;
231
+ typography: ResolvedTileflowTypography;
232
+ };
233
+ type TileflowResolvedThemeSelection = {
234
+ name: TileflowThemeName;
235
+ theme: TileflowTheme;
236
+ };
237
+ type TileflowThemeAuditScope = 'compiler-effect' | 'module' | 'terrain' | 'value';
238
+ type TileflowThemeAuditEffectKind = 'add' | 'patch';
239
+ type TileflowThemeAuditContext = {
240
+ effectKind?: TileflowThemeAuditEffectKind;
241
+ owner?: string;
242
+ scope: TileflowThemeAuditScope;
243
+ target?: string;
244
+ };
245
+ type TileflowThemeAuditDiagnostic = {
246
+ category: TileflowVisualValueCategory;
247
+ code: 'THEME_IMPLICIT_FIXED';
248
+ effectKind?: TileflowThemeAuditEffectKind;
249
+ message: string;
250
+ owner?: string;
251
+ path: string;
252
+ phase: 'theme-audit';
253
+ scope: TileflowThemeAuditScope;
254
+ severity: 'error' | 'warning';
255
+ suggestion: string;
256
+ target?: string;
257
+ value: number | string;
258
+ };
259
+ /** A deterministic, machine-readable failure for blocking theme-audit diagnostics. */
260
+ declare class TileflowThemeAuditError extends Error {
261
+ readonly diagnostics: readonly TileflowThemeAuditDiagnostic[];
262
+ constructor(diagnostics: readonly TileflowThemeAuditDiagnostic[]);
263
+ }
264
+ declare function defineTheme(definition: TileflowThemeDefinition): TileflowTheme;
265
+ declare function defineTheme(base: TileflowTheme, definition: TileflowThemeDefinition): TileflowTheme;
266
+ declare function resolveTileflowTheme(theme: TileflowTheme): ResolvedTileflowTheme;
267
+ /** Resolve every theme node in modules, effects, zoom values and expression arrays. */
268
+ declare function resolveThemeValues<T>(value: T, theme: TileflowTheme, path?: string): T;
269
+ /** Select an explicit theme or the map's deterministic default. Browser "system" is external. */
270
+ declare function resolveThemeSelection(map: {
271
+ defaultTheme: string;
272
+ themes: Readonly<Record<string, TileflowTheme>>;
273
+ }, requested?: string): TileflowResolvedThemeSelection;
274
+ /** Find visual literals whose permanence is otherwise invisible to an agent. */
275
+ declare function auditTileflowThemeValues(value: unknown, path?: string, context?: TileflowThemeAuditContext): TileflowThemeAuditDiagnostic[];
276
+ /** Audit every appearance-bearing branch of a resolved map, including compiler-private effects. */
277
+ declare function auditTileflowMapThemeValues(map: {
278
+ modules?: unknown;
279
+ terrain?: unknown;
280
+ }): TileflowThemeAuditDiagnostic[];
281
+ /** Fail closed when a map contains implicit chromatic, font, or image literals. */
282
+ declare function assertTileflowMapThemeValues(map: {
283
+ modules?: unknown;
284
+ terrain?: unknown;
285
+ }): void;
286
+
287
+ /** A directory resolved relative to the selected executable tileflow.config.ts. */
288
+ type TileflowLocalDirectory = `./${string}` | `../${string}`;
289
+ declare const tileflowLocalDirectoryMaximumLength = 512;
290
+ declare const tileflowLocalDirectoryMessage = "Expected a canonical relative directory beginning with ./ or ../; only leading .. segments are allowed and segments must be non-empty, without backslashes or controls";
291
+ /** Exact portable syntax shared by config validation and Node filesystem resolution. */
292
+ declare function isTileflowLocalDirectory(value: unknown): value is TileflowLocalDirectory;
293
+ /**
294
+ * A package-owned asset directory. Applications normally import one of these
295
+ * descriptors from the package that owns the assets instead of constructing it.
296
+ */
297
+ type TileflowPackageDirectory = Readonly<{
298
+ kind: 'package-directory';
299
+ package: string;
300
+ path: string;
301
+ }>;
302
+ /** One icon directory in the ordered map icon search path. */
303
+ type TileflowIconDirectory = TileflowLocalDirectory | TileflowPackageDirectory;
304
+ /** One font directory in the ordered map font search path. */
305
+ type TileflowFontDirectory = TileflowLocalDirectory | TileflowPackageDirectory;
306
+ /**
307
+ * An explicit MapLibre glyph provider. `fontStacks` lists the exact comma-joined request keys
308
+ * produced by each compiled `text-font` array. The map owns the URL; World never supplies fonts.
309
+ */
310
+ type TileflowGlyphs = Readonly<{
311
+ fontStacks: readonly string[];
312
+ kind: 'url';
313
+ url: string;
314
+ }>;
315
+
316
+ /** Version of the internal Streets compiler contract understood by map roots. */
317
+ declare const tileflowStreetsCompilerVersion: 1;
318
+ /** Portable, filesystem-safe identity shared by maps and their leaf-owned scenes. */
319
+ declare const tileflowMapIdSchema: zod.ZodString;
320
+ type TileflowStreetsMapRoot = {
321
+ compiler: 'streets';
322
+ compilerVersion: typeof tileflowStreetsCompilerVersion;
323
+ };
324
+ /** Compiler root inherited by a complete map lineage. */
325
+ type TileflowMapRoot = TileflowStreetsMapRoot;
326
+ /** Identity is always owned by the map being resolved and never inherited. */
327
+ type TileflowMapIdentity = {
328
+ id: string;
329
+ name?: string;
330
+ /** Editorial version of this map, independent from its compiler version. */
331
+ version: number;
332
+ };
333
+ /** A capture scene owned by one singular map; its map id is implicit. */
334
+ type TileflowMapScene = Omit<TileflowCaptureScene, 'map'>;
335
+ type TileflowHostedDelivery = {
336
+ allowedOrigins?: string[];
337
+ };
338
+ type TileflowMapDelivery = {
339
+ hosted?: TileflowHostedDelivery;
340
+ };
341
+ /** Tooling metadata belongs to the leaf definition and is never inherited. */
342
+ type TileflowMapTooling = {
343
+ delivery?: TileflowMapDelivery;
344
+ scenes?: Record<string, TileflowMapScene>;
345
+ };
346
+ type TileflowMapTextAssets = {
347
+ fonts?: never;
348
+ glyphs?: never;
349
+ } | {
350
+ fonts: readonly TileflowFontDirectory[];
351
+ glyphs?: never;
352
+ } | {
353
+ fonts?: never;
354
+ glyphs: TileflowGlyphs;
355
+ };
356
+ /** Cartographic fields supported by the current Streets compiler. */
357
+ type TileflowMapDesign = TileflowMapTextAssets & {
358
+ data?: TileflowDataConfig;
359
+ /** Name used whenever a concrete theme is not explicitly requested. */
360
+ defaultTheme?: TileflowThemeName;
361
+ /** Ordered icon directories. Omission inherits; declaration replaces; [] means no icons. */
362
+ icons?: readonly TileflowIconDirectory[];
363
+ /** Independent Bathymetry and Nautical products composed by the compiler. */
364
+ marine?: TileflowMarine;
365
+ modules?: TileflowStreetsModules;
366
+ projection?: TileflowProjection;
367
+ /** Browser color-scheme mapping. Runtime resolves "system" to one of these concrete names. */
368
+ systemThemes?: {
369
+ dark: TileflowThemeName;
370
+ light: TileflowThemeName;
371
+ };
372
+ terrain?: TileflowTerrain;
373
+ /** Complete named appearances. Omission inherits; declaration replaces the collection. */
374
+ themes?: Readonly<Record<TileflowThemeName, TileflowTheme>>;
375
+ view?: TileflowViewConfig;
376
+ };
377
+ type TileflowRootMap = TileflowMapIdentity & TileflowMapTooling & TileflowMapDesign & {
378
+ defaultTheme: TileflowThemeName;
379
+ extends?: never;
380
+ root: TileflowMapRoot;
381
+ themes: Readonly<Record<TileflowThemeName, TileflowTheme>>;
382
+ };
383
+ type TileflowDerivedMap = TileflowMapIdentity & TileflowMapTooling & TileflowMapDesign & {
384
+ extends: TileflowMap;
385
+ root?: never;
386
+ };
387
+ /** Executable authoring definition: exactly one of `root` or `extends`. */
388
+ type TileflowMap = TileflowRootMap | TileflowDerivedMap;
389
+ type ResolvedTileflowMapDesign<TDesign extends TileflowMapDesign = TileflowMapDesign> = TDesign extends TileflowMapDesign ? Omit<TDesign, 'defaultTheme' | 'themes'> : never;
390
+ /** A standalone map definition with inheritance removed. */
391
+ type ResolvedTileflowMap = Omit<TileflowMapIdentity, 'name'> & Pick<TileflowMapTooling, 'delivery'> & ResolvedTileflowMapDesign & {
392
+ defaultTheme: TileflowThemeName;
393
+ extends?: never;
394
+ name: string;
395
+ root: TileflowMapRoot;
396
+ themes: Readonly<Record<TileflowThemeName, TileflowTheme>>;
397
+ };
398
+ type ResolveMapOptions = {
399
+ /** Maximum number of map definitions in a lineage, including the root. */
400
+ maxDepth?: number;
401
+ };
402
+
403
+ type TileflowPreparedMapAssets = {
404
+ icons?: {
405
+ ids: readonly string[];
406
+ sprite: string;
407
+ };
408
+ };
409
+ type TileflowStreetsCompileOptions = {
410
+ apiBaseUrl?: string;
411
+ /** Resolved authoring identity. Internal build orchestration supplies this. */
412
+ map?: {
413
+ id: string;
414
+ lineage?: readonly string[];
415
+ root: TileflowMapRoot;
416
+ version: number;
417
+ };
418
+ /** Build-owned assets prepared from the authoring directories. */
419
+ preparedAssets?: TileflowPreparedMapAssets;
420
+ /** Concrete named theme. Omission deterministically selects map.defaultTheme. */
421
+ theme?: string;
422
+ };
423
+
424
+ type TileflowStyleOptions = TileflowStreetsCompileOptions;
425
+ declare function createStyle(config: TileflowMap, options?: TileflowStyleOptions): MapLibreStyle;
426
+ declare function collectMapLineage(map: TileflowMap): string[];
427
+ /** Resolve and validate one public authoring map before asset preparation or compilation. */
428
+ declare function parseTileflowMap(map: TileflowMap): ResolvedTileflowMap;
429
+ /** Validate one singular authoring map, including its complete extends lineage. */
430
+ declare function validateTileflowMap(input: unknown): ValidationResult;
431
+
432
+ type TileflowDataFieldType = 'Boolean' | 'Number' | 'String';
433
+ type TileflowDataFieldRequirement = Readonly<{
434
+ name: string;
435
+ type?: TileflowDataFieldType;
436
+ }>;
437
+ type TileflowDataLayerRequirement = Readonly<{
438
+ fields: readonly TileflowDataFieldRequirement[];
439
+ id: string;
440
+ }>;
441
+ type TileflowDataRequirementsV1 = Readonly<{
442
+ complete: boolean;
443
+ dynamicAccesses: readonly string[];
444
+ schemaVersion: 1;
445
+ sourceId: string;
446
+ sourceLayers: readonly TileflowDataLayerRequirement[];
447
+ }>;
448
+ /** Per-source requirements for styles that compose independent vector and DEM products. */
449
+ type TileflowSourceRequirementsV1 = Readonly<{
450
+ rasterDemSources?: Readonly<Record<string, TileflowRasterDemSourceRequirementV1>>;
451
+ schemaVersion: 1;
452
+ sources: Readonly<Record<string, TileflowDataRequirementsV1>>;
453
+ }>;
454
+ type TileflowRasterDemSourceRequirementV1 = Readonly<{
455
+ encoding: 'mapbox' | 'terrarium';
456
+ sourceId: string;
457
+ tileSize: 256 | 512;
458
+ type: 'raster-dem';
459
+ }>;
460
+ type TileflowObservedDataContractV1 = Readonly<{
461
+ sourceLayers: readonly Readonly<{
462
+ fields: readonly Readonly<{
463
+ name: string;
464
+ type: TileflowDataFieldType;
465
+ }>[];
466
+ id: string;
467
+ }>[];
468
+ }>;
469
+ type TileflowDataCompatibilityIssue = Readonly<{
470
+ code: 'dynamic-field-access' | 'field-missing' | 'field-type-mismatch' | 'source-layer-missing';
471
+ field?: string;
472
+ message: string;
473
+ sourceLayer?: string;
474
+ }>;
475
+ /**
476
+ * Infer the effective data surface from finalized MapLibre layers. Disabled modules contribute no
477
+ * requirements, and fields hidden by map inheritance never reach this compiler output.
478
+ */
479
+ declare function inferTileflowDataRequirements(style: MapLibreStyle, options?: {
480
+ additional?: readonly TileflowDataLayerRequirement[];
481
+ sourceId?: string;
482
+ }): TileflowDataRequirementsV1;
483
+ /**
484
+ * Infer the V1 layer/field contract for every referenced vector source and the physical contract
485
+ * for each included raster DEM. The singular helper remains unchanged for World-only consumers.
486
+ */
487
+ declare function inferTileflowSourceRequirements(style: MapLibreStyle): TileflowSourceRequirementsV1;
488
+ /** Compare inferred use with producer-observed layers and fields; no editorial allowlist exists. */
489
+ declare function validateTileflowDataCompatibility(requirements: TileflowDataRequirementsV1, contract: TileflowObservedDataContractV1): readonly TileflowDataCompatibilityIssue[];
490
+
491
+ export { type TileflowThemeAuditScope as $, type TileflowBathymetryOptions as A, type TileflowBathymetryReliefConfig as B, type TileflowFontDirectory as C, type TileflowGlyphs as D, type TileflowHostedDelivery as E, type TileflowIconDirectory as F, type TileflowLocalDirectory as G, type TileflowMapDelivery as H, type TileflowMapDesign as I, type TileflowMapIdentity as J, type TileflowMapRoot as K, type TileflowMapTooling as L, type TileflowMarine as M, type TileflowMarineConfig as N, type TileflowMarineMode as O, type TileflowMarineSourceConfig as P, type TileflowMarineSourceIdentity as Q, type ResolvedTileflowMap as R, type TileflowPackageDirectory as S, type TileflowMap as T, type TileflowRasterDemSourceRequirementV1 as U, type TileflowResolvedThemeSelection as V, type TileflowTheme as W, type TileflowThemeAuditContext as X, type TileflowThemeAuditDiagnostic as Y, type TileflowThemeAuditEffectKind as Z, TileflowThemeAuditError as _, type TileflowDataRequirementsV1 as a, type TileflowThemeColorScheme as a0, type TileflowThemeDefinition as a1, type TileflowThemeLighting as a2, type TileflowThemeName as a3, type TileflowThemeTokens as a4, type TileflowThemeTypography as a5, type TileflowThemeTypographyStyle as a6, assertTileflowMapThemeValues as a7, auditTileflowMapThemeValues as a8, auditTileflowThemeValues as a9, bathymetry as aa, createStyle as ab, defineTheme as ac, isTileflowLocalDirectory as ad, parseTileflowMap as ae, resolveMarine as af, resolveThemeSelection as ag, resolveThemeValues as ah, resolveTileflowTheme as ai, tileflowBathymetryDemSourceId as aj, tileflowBathymetrySourceId as ak, tileflowBathymetryV1Schema as al, tileflowLocalDirectoryMaximumLength as am, tileflowLocalDirectoryMessage as an, tileflowMapIdSchema as ao, tileflowNauticalSourceId as ap, tileflowNauticalV1Schema as aq, validateTileflowMap as ar, type TileflowSourceRequirementsV1 as b, type TileflowStyleOptions as c, type TileflowPreparedMapAssets as d, type TileflowDataCompatibilityIssue as e, type TileflowDataFieldRequirement as f, type TileflowDataFieldType as g, type TileflowDataLayerRequirement as h, type TileflowObservedDataContractV1 as i, collectMapLineage as j, inferTileflowDataRequirements as k, inferTileflowSourceRequirements as l, type TileflowDerivedMap as m, type TileflowMapScene as n, type TileflowRootMap as o, type ResolveMapOptions as p, type ResolvedBathymetry as q, type ResolvedBathymetryRelief as r, type ResolvedMarine as s, type ResolvedMarineSource as t, type ResolvedTileflowTheme as u, validateTileflowDataCompatibility as v, type ResolvedTileflowThemeTokens as w, type TileflowBathymetryConfig as x, type TileflowBathymetryDemSourceIdentity as y, type TileflowBathymetryDisplay as z };