@tileflow/core 0.1.0-alpha.2 → 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.
package/dist/index.d.ts CHANGED
@@ -1,172 +1,298 @@
1
- type TileflowDensity = 'clean' | 'balanced' | 'dense';
2
- type TileflowRoads = 'hidden' | 'soft' | 'standard' | 'detailed';
3
- type TileflowLabels = 'none' | 'essential' | 'balanced' | 'full';
4
- type TileflowPoi = 'none' | 'minimal' | 'balanced' | 'full';
5
- type TileflowTheme = 'standard' | 'light' | 'dark' | 'minimal' | 'osm-bright-2';
6
- type TileflowBuildings = 'hidden' | 'flat' | '3d';
7
- type TileflowTerrainMode = 'none' | 'hillshade' | '3d';
8
- type TileflowTerrainEncoding = 'mapbox' | 'terrarium';
9
- type TileflowThemeMode = 'light' | 'dark';
10
- type TileflowColors = {
11
- canvas: string;
12
- land: string;
13
- water: string;
14
- nature: string;
15
- road: string;
16
- text: string;
17
- accent: string;
18
- };
19
- type LegacyTileflowColorAliases = {
20
- background?: string;
21
- park?: string;
22
- building?: string;
23
- roadCasing?: string;
24
- };
25
- type TileflowColorConfig = Partial<TileflowColors> & LegacyTileflowColorAliases;
26
- type TileflowFontWeight = 'regular' | 'medium' | 'semibold' | 'bold';
27
- type TileflowTypography = {
28
- font?: string;
29
- weight?: TileflowFontWeight;
30
- };
31
- type TileflowThemeConfig = {
32
- mode?: TileflowThemeMode;
33
- colors?: TileflowColorConfig;
34
- typography?: TileflowTypography;
35
- };
36
- type TileflowSourceLayers = {
37
- landuse?: string;
38
- park?: string;
39
- water?: string;
40
- road?: string;
41
- building?: string;
42
- boundary?: string;
43
- place?: string;
44
- poi?: string;
45
- };
46
- type TileflowTiles = {
47
- sourceId?: string;
48
- tileset?: string;
49
- url?: string;
50
- attribution?: string;
51
- sourceLayers?: TileflowSourceLayers;
52
- };
53
- type TileflowTerrainConfig = {
54
- attribution?: string;
55
- encoding?: TileflowTerrainEncoding;
56
- exaggeration?: number;
57
- mode?: TileflowTerrainMode;
58
- sourceId?: string;
59
- tileset?: string;
60
- url?: string;
61
- };
62
- type TileflowTerrain = TileflowTerrainMode | TileflowTerrainConfig;
63
- type TileflowViewConfig = {
64
- bearing?: number;
65
- center?: readonly [number, number];
66
- zoom?: number;
67
- };
68
- type TileflowOsmBasemapConfig = {
69
- type: 'osm';
70
- attribution?: string;
71
- glyphs?: string;
72
- sourceId?: string;
73
- sourceLayers?: TileflowSourceLayers;
74
- sprite?: string;
75
- tileset?: string;
76
- url?: string;
77
- };
78
- type TileflowBasemapConfig = TileflowOsmBasemapConfig;
79
- type TileflowOsmBasemapOptions = Omit<TileflowOsmBasemapConfig, 'type'>;
80
- type TileflowRoadsModulePreset = 'modern' | 'minimal';
81
- type TileflowRoadsModuleConfig = {
82
- type: 'roads';
83
- density?: TileflowDensity;
84
- preset?: TileflowRoadsModulePreset;
85
- };
86
- type TileflowRoadsModuleOptions = Omit<TileflowRoadsModuleConfig, 'type'>;
87
- type TileflowModuleConfig = TileflowRoadsModuleConfig;
88
- type TileflowConfig = {
89
- basemap?: TileflowBasemapConfig;
90
- name?: string;
91
- tileset?: string;
92
- theme?: TileflowTheme | string | TileflowThemeConfig;
93
- modules?: readonly TileflowModuleConfig[];
94
- colors?: TileflowColorConfig;
95
- typography?: TileflowTypography;
96
- density?: TileflowDensity;
97
- roads?: TileflowRoads;
98
- labels?: TileflowLabels;
99
- poi?: TileflowPoi;
100
- buildings?: TileflowBuildings;
101
- terrain?: TileflowTerrain;
102
- glyphs?: string;
103
- sprite?: string;
104
- tiles?: TileflowTiles;
105
- view?: TileflowViewConfig;
106
- /**
107
- * Domains allowed to load this map in production (e.g. "example.com" or
108
- * "*.example.com"). When set, tile and session requests from other
109
- * websites are rejected. Local development (localhost, private network
110
- * addresses) is always allowed. Leave unset to allow any domain.
111
- */
112
- allowedOrigins?: string[];
113
- };
114
- type TileflowMapConfig = TileflowConfig;
115
- type TileflowTilesetConfig = {
116
- id?: string;
117
- name?: string;
118
- attribution?: string;
119
- sourceLayers?: TileflowSourceLayers;
120
- };
121
- type TileflowProjectConfig = {
122
- themes?: Record<string, TileflowThemeConfig>;
123
- tilesets?: Record<string, TileflowTilesetConfig>;
124
- maps: Record<string, TileflowMapConfig>;
125
- };
126
- type TileflowStyleOptions = {
127
- themes?: Record<string, TileflowThemeConfig>;
128
- tileBaseUrl?: string;
129
- tileset?: string;
130
- };
131
- type TileflowManifest = {
132
- version: 1;
133
- tileBaseUrl: string;
134
- styles: Record<string, string>;
135
- maps: Record<string, string>;
136
- };
137
- type MapLibreStyle = {
138
- version: 8;
139
- name: string;
140
- glyphs?: string;
141
- sprite?: string;
142
- sources: Record<string, Record<string, unknown>>;
143
- layers: Array<Record<string, unknown>>;
144
- terrain?: Record<string, unknown>;
145
- metadata?: Record<string, unknown>;
146
- };
147
- type ValidationMessage = {
148
- level: 'error' | 'warning';
149
- path: string;
150
- message: string;
1
+ import { m as TileflowDerivedMap, n as TileflowMapScene, o as TileflowRootMap, T as TileflowMap, p as ResolveMapOptions, R as ResolvedTileflowMap } from './requirements-BV77ZVhR.js';
2
+ export { q as ResolvedBathymetry, r as ResolvedBathymetryRelief, s as ResolvedMarine, t as ResolvedMarineSource, u as ResolvedTileflowTheme, w as ResolvedTileflowThemeTokens, x as TileflowBathymetryConfig, y as TileflowBathymetryDemSourceIdentity, z as TileflowBathymetryDisplay, A as TileflowBathymetryOptions, B as TileflowBathymetryReliefConfig, e as TileflowDataCompatibilityIssue, f as TileflowDataFieldRequirement, g as TileflowDataFieldType, h as TileflowDataLayerRequirement, a as TileflowDataRequirementsV1, C as TileflowFontDirectory, D as TileflowGlyphs, E as TileflowHostedDelivery, F as TileflowIconDirectory, G as TileflowLocalDirectory, H as TileflowMapDelivery, I as TileflowMapDesign, J as TileflowMapIdentity, K as TileflowMapRoot, L as TileflowMapTooling, M as TileflowMarine, N as TileflowMarineConfig, O as TileflowMarineMode, P as TileflowMarineSourceConfig, Q as TileflowMarineSourceIdentity, i as TileflowObservedDataContractV1, S as TileflowPackageDirectory, U as TileflowRasterDemSourceRequirementV1, V as TileflowResolvedThemeSelection, b as TileflowSourceRequirementsV1, c as TileflowStyleOptions, W as TileflowTheme, X as TileflowThemeAuditContext, Y as TileflowThemeAuditDiagnostic, Z as TileflowThemeAuditEffectKind, _ as TileflowThemeAuditError, $ as TileflowThemeAuditScope, a0 as TileflowThemeColorScheme, a1 as TileflowThemeDefinition, a2 as TileflowThemeLighting, a3 as TileflowThemeName, a4 as TileflowThemeTokens, a5 as TileflowThemeTypography, a6 as TileflowThemeTypographyStyle, a7 as assertTileflowMapThemeValues, a8 as auditTileflowMapThemeValues, a9 as auditTileflowThemeValues, aa as bathymetry, ab as createStyle, ac as defineTheme, k as inferTileflowDataRequirements, l as inferTileflowSourceRequirements, ad as isTileflowLocalDirectory, ae as parseTileflowMap, af as resolveMarine, ag as resolveThemeSelection, ah as resolveThemeValues, ai as resolveTileflowTheme, aj as tileflowBathymetryDemSourceId, ak as tileflowBathymetrySourceId, al as tileflowBathymetryV1Schema, am as tileflowLocalDirectoryMaximumLength, an as tileflowLocalDirectoryMessage, ao as tileflowMapIdSchema, ap as tileflowNauticalSourceId, aq as tileflowNauticalV1Schema, v as validateTileflowDataCompatibility, ar as validateTileflowMap } from './requirements-BV77ZVhR.js';
3
+ import { n as ValidationMessage, M as MapLibreStyle, o as TileflowRoadsModuleOptions, p as TileflowRoadsModuleConfig, q as TileflowLabelsModuleOptions, r as TileflowLabelsModuleConfig, s as TileflowPoiModuleOptions, u as TileflowPoiModuleConfig } from './types-DlUGI6LC.js';
4
+ export { v as MapLibreSprite, w as TileflowAerodromeCodeDetail, x as TileflowAlignment, y as TileflowAreaStyle, z as TileflowBackgroundPaint, A as TileflowBackgroundStyle, B as TileflowCirclePaint, C as TileflowCircleStyle, D as TileflowColor, E as TileflowColorStyleValue, F as TileflowExpression, G as TileflowExtrusionPaint, H as TileflowExtrusionStyle, I as TileflowFillPaint, a as TileflowFillStyle, J as TileflowFilterExpression, K as TileflowFixedValue, L as TileflowIconAnchor, N as TileflowIconLayout, O as TileflowIconPaint, P as TileflowIconStyle, Q as TileflowIconTextFit, S as TileflowImageStyleValue, U as TileflowLabelDetail, W as TileflowLabelLanguage, X as TileflowLabelStyles, Y as TileflowLayerRange, k as TileflowLight, Z as TileflowLineCap, _ as TileflowLineHatchStyle, $ as TileflowLineJoin, a0 as TileflowLineLayout, a1 as TileflowLinePaint, a2 as TileflowLineStackStyle, b as TileflowLineStyle, a3 as TileflowMountainBikeScale, a4 as TileflowNumberInsetsStyleValue, a5 as TileflowNumberStyleValue, a6 as TileflowPlaceLabelClass, a7 as TileflowPoiCategory, a8 as TileflowPoiCategoryStyle, a9 as TileflowPoiColorMode, aa as TileflowPoiDensity, l as TileflowProjection, ab as TileflowRoadAreaStyle, ac as TileflowRoadClass, ad as TileflowRoadClassStyle, ae as TileflowRoadCrossingStyle, af as TileflowRoadDetail, ag as TileflowRoadExtras, ah as TileflowRoadHierarchy, ai as TileflowRoadLabelDetail, aj as TileflowRoadLayerStyle, ak as TileflowRoadModifier, al as TileflowRoadOutline, am as TileflowRoadRestriction, an as TileflowRoadRoundaboutStyle, ao as TileflowRoadServiceType, ap as TileflowRoadShieldDetail, aq as TileflowRoadShieldStyles, ar as TileflowRoadSidewalkStyle, as as TileflowRoadStructure, at as TileflowRoadTreatmentLayerStyle, au as TileflowRoadTreatmentLineStyle, av as TileflowRoadTreatmentStyle, aw as TileflowRoadWeight, ax as TileflowStringStyleValue, ay as TileflowStructuralStyleValue, az as TileflowStyleValue, aA as TileflowSymbolPlacement, aB as TileflowSymbolPlacementStyle, c as TileflowSymbolStyle, aC as TileflowSymbolZOrder, m as TileflowTerrain, aD as TileflowTerrainConfig, aE as TileflowTerrainContourLabelStyle, aF as TileflowTerrainContourLineStyle, aG as TileflowTerrainContoursConfig, e as TileflowTerrainEncoding, d as TileflowTerrainHillshadeStyle, aH as TileflowTerrainLayerRange, aI as TileflowTerrainMode, aJ as TileflowTextAnchor, aK as TileflowTextJustify, aL as TileflowTextLayout, aM as TileflowTextPaint, aN as TileflowTextStyle, aO as TileflowThemeColorAlpha, aP as TileflowThemeColorMix, aQ as TileflowThemeColorOperation, g as TileflowThemeColorValue, h as TileflowThemeFontValue, i as TileflowThemeImageValue, f as TileflowThemeNumberValue, aR as TileflowThemeTokenCategory, aS as TileflowThemeTokenReference, aT as TileflowThemeValue, T as TileflowViewConfig, aU as TileflowWaterLabelClass, aV as TileflowZoomInterpolation, aW as TileflowZoomValue, V as ValidationResult, aX as color, aY as expression, aZ as filter, a_ as fixed, a$ as tileflowPoiCategories, b0 as token, b1 as zoom } from './types-DlUGI6LC.js';
5
+ export { N as NormalizedTileflowCaptureScene, a as TileflowCaptureApplicationTarget, b as TileflowCaptureBoundsCamera, c as TileflowCaptureCamera, d as TileflowCaptureCenterCamera, e as TileflowCaptureMapTarget, T as TileflowCaptureScene, f as TileflowCaptureTarget, g as TileflowCaptureViewport, n as normalizeTileflowCaptureId, h as normalizeTileflowCaptureScene, t as tileflowCaptureApplicationTargetSchema, i as tileflowCaptureBoundsCameraSchema, j as tileflowCaptureCameraSchema, k as tileflowCaptureCenterCameraSchema, l as tileflowCaptureIdSchema, m as tileflowCaptureMapTargetSchema, o as tileflowCaptureSceneLimits, p as tileflowCaptureSceneNameSchema, q as tileflowCaptureSceneSchema, r as tileflowCaptureSceneSchemaVersion, s as tileflowCaptureTargetSchema, u as tileflowCaptureViewportSchema } from './capture-scene-BK_0J2oR.js';
6
+ export { tileflowPortableIdSchema, tileflowThemeNameSchema } from './capture.js';
7
+ export { T as TileflowAnalytics, f as TileflowManifestFetchOptions, g as TileflowManifestLoadOptions, h as TileflowMapMarker, i as TileflowMapMode, j as TileflowMapModeOptions, k as TileflowResolvedRuntimeTheme, l as TileflowRuntimeCenterLike, d as TileflowRuntimeColorScheme, e as TileflowRuntimeManifest, m as TileflowRuntimeManifestMap, n as TileflowRuntimeManifestMapEntry, o as TileflowRuntimeManifestTheme, p as TileflowRuntimeSource, q as TileflowRuntimeSourceValidation, b as TileflowRuntimeStyle, r as TileflowRuntimeStyleOptions, s as TileflowRuntimeSystemThemes, t as TileflowRuntimeViewOptions, c as TileflowSessionController, u as TileflowSessionGrantResponse, a as TileflowStyleFontFace, v as TileflowThemeSelection, w as assertValidTileflowRuntimeSource, x as clearTileflowManifestCache, y as createTileflowSessionController, z as createTileflowSessionId, A as defaultTileflowManifestUrl, B as defaultTileflowRuntimeView, C as getTileflowAnalyticsApiUrl, D as getTileflowStyleFontFaces, E as inferTileflowAnalyticsFromStyleUrl, F as loadTileflowManifest, G as mergeTileflowAnalytics, H as normalizeTileflowRuntimeCenter, I as normalizeTileflowStaticImageSize, J as normalizeTileflowUrl, K as parseTileflowRuntimeManifest, L as resolveTileflowAnalyticsRequestUrl, M as resolveTileflowManifestMap, N as resolveTileflowMapMode, O as resolveTileflowRuntimeStyle, P as resolveTileflowRuntimeTheme, Q as resolveTileflowRuntimeView, R as resolveTileflowStaticImageUrl, S as safeParseTileflowRuntimeManifest, U as shouldLoadTileflowManifest, V as startTileflowSession, W as tileflowRuntimeManifestLimits, X as tileflowRuntimeManifestSchema, Y as tileflowRuntimeManifestVersion, Z as tileflowStyleFontFaceLimits, _ as tileflowStyleFontFacesMetadataKey, $ as validateTileflowRuntimeSource, a0 as validateTileflowThemeSelection } from './runtime-C4MtSzkB.js';
8
+ export { O as OpenMapTilesFieldBindings, a as OpenMapTilesLayerBindings, f as OpenMapTilesSchema, g as OpenMapTilesSchemaOptions, P as ParkLayerSemantics, R as ResolvedTileflowData, h as TileflowAddressesModuleConfig, i as TileflowAddressesModuleOptions, j as TileflowAerowaysModuleConfig, k as TileflowAerowaysModuleOptions, l as TileflowBoundariesModuleConfig, m as TileflowBoundariesModuleOptions, n as TileflowBuildingMode, o as TileflowBuildingsModuleConfig, p as TileflowBuildingsModuleOptions, d as TileflowDataConfig, q as TileflowDataIdentity, r as TileflowLandModuleConfig, s as TileflowLandModuleOptions, t as TileflowLandcoverClass, u as TileflowLandformClass, v as TileflowLandformsModuleConfig, w as TileflowLandformsModuleOptions, x as TileflowLanduseClass, y as TileflowNauticalAreaLabelStyles, z as TileflowNauticalModuleConfig, A as TileflowNauticalModuleOptions, e as TileflowStreetsModules, B as TileflowTransitModuleConfig, C as TileflowTransitModuleOptions, D as TileflowTransitRailStyle, E as TileflowVegetationMode, F as TileflowVegetationModuleConfig, G as TileflowVegetationModuleOptions, H as TileflowVegetationThreeDimensionalStyle, b as TileflowVisualValueCategory, I as TileflowWaterModuleConfig, J as TileflowWaterModuleOptions, K as TileflowWaterwayClass, L as TileflowWorldData, M as TileflowWorldReleaseReference, N as TileflowWorldSelection, Q as TileflowWorldV1Schema, V as VectorTilesData, S as addresses, U as aeroways, W as boundaries, X as buildings, c as classifyTileflowVisualProperty, Y as isCanonicalOpenMapTilesSchema, Z as land, _ as landforms, $ as nautical, a0 as openMapTiles, a1 as openMapTilesContractVersion, a2 as resolveTileflowData, a3 as tileflowLandformClasses, a4 as tileflowPrimarySourceId, a5 as tileflowWorld, a6 as tileflowWorldGeneration, a7 as tileflowWorldTileJsonUrl, a8 as tileflowWorldV1Schema, a9 as transit, aa as validateTileflowWorldV1Tilejson, ab as vectorTiles, ac as vegetation, ad as water } from './visual-semantics-DTC-8Hsb.js';
9
+ import { z } from 'zod';
10
+
11
+ declare const tileflowPortableIdMaximumLength: 64;
12
+ declare function isTileflowPortableId(value: unknown): value is string;
13
+ declare function isTileflowThemeName(value: unknown): value is string;
14
+
15
+ /** Exact immutable release identity contract for the current World V1 product. */
16
+ declare const tileflowWorldReleaseIdMinimumLength: 12;
17
+ declare const tileflowWorldReleaseIdMaximumLength: 128;
18
+ declare const tileflowWorldReleaseIdPatternSource: "^world-v1-[a-z0-9][a-z0-9._-]*[a-z0-9]$";
19
+ declare const tileflowWorldReleaseIdPattern: RegExp;
20
+ /** Validate without trimming, lowercasing, or otherwise normalizing an immutable release ID. */
21
+ declare function isTileflowWorldReleaseId(value: unknown): value is string;
22
+
23
+ declare const tileflowWorldReleaseIdSchema: z.ZodString;
24
+
25
+ type ExactTileflowMap<TContract, TMap extends TContract> = TMap & Record<Exclude<keyof TMap, keyof TContract>, never>;
26
+ type ExactTileflowMapScenes<TMap> = TMap extends {
27
+ scenes: infer TScenes extends Record<string, TileflowMapScene>;
28
+ } ? {
29
+ scenes: {
30
+ [TName in keyof TScenes]: ExactTileflowMap<TileflowMapScene, TScenes[TName]>;
31
+ };
32
+ } : unknown;
33
+ /** Preserve the exact inferred type of a compiler-root map. */
34
+ declare function defineRootMap<const TMap extends TileflowRootMap>(map: ExactTileflowMap<TileflowRootMap, TMap> & ExactTileflowMapScenes<TMap>): TMap;
35
+ /** Preserve the exact inferred type of a map that extends another map object. */
36
+ declare function defineMap<const TMap extends TileflowDerivedMap>(map: ExactTileflowMap<TileflowDerivedMap, TMap> & ExactTileflowMapScenes<TMap>): TMap;
37
+
38
+ declare const tileflowMapDefaultMaxDepth = 64;
39
+ /** Resolve an imported map lineage to one standalone authoring map. */
40
+ declare function resolveMap(map: TileflowMap, options?: ResolveMapOptions): ResolvedTileflowMap;
41
+
42
+ /** Structured schema failure preserved for CLI/editor diagnostics. */
43
+ declare class TileflowResolvedMapValidationError extends Error {
44
+ readonly code: "CONFIG_INVALID";
45
+ readonly messages: ValidationMessage[];
46
+ readonly phase: "config-validation";
47
+ constructor(name: string, messages: ValidationMessage[]);
48
+ }
49
+
50
+ type TileflowZoomPerformance = {
51
+ activeLayers: number;
52
+ /** @deprecated Use styleLayerFamilies. This is not a count of runtime tile buckets. */
53
+ estimatedBuckets: number;
54
+ sourceLayers: Record<string, number>;
55
+ styleLayerFamilies: number;
56
+ symbols: number;
57
+ zoom: number;
151
58
  };
152
- type ValidationResult = {
153
- valid: boolean;
154
- messages: ValidationMessage[];
59
+ type TileflowStylePerformance = {
60
+ styleBytes: number;
61
+ totalLayers: number;
62
+ zooms: TileflowZoomPerformance[];
155
63
  };
156
- declare function createStyle(input?: TileflowConfig, options?: TileflowStyleOptions): MapLibreStyle;
157
- declare function createStyleFromProject(projectConfig: TileflowProjectConfig, mapName: string, options?: TileflowStyleOptions): MapLibreStyle;
158
- declare function createManifest(projectConfig: TileflowProjectConfig, options?: {
159
- styleBaseUrl?: string;
160
- tileBaseUrl?: string;
161
- }): TileflowManifest;
162
- declare function getDefaultColors(): TileflowColors;
64
+ /** A deterministic, network-free structural sweep of a compiled style. */
65
+ declare function analyzeTileflowStylePerformance(style: MapLibreStyle, zooms?: readonly number[]): TileflowStylePerformance;
163
66
 
164
- declare function validateConfig(input: unknown): ValidationResult;
67
+ declare function roads(options?: TileflowRoadsModuleOptions): TileflowRoadsModuleConfig;
165
68
 
166
- declare function defineTileflow(config: TileflowProjectConfig): TileflowProjectConfig;
69
+ declare function labels(options?: TileflowLabelsModuleOptions): TileflowLabelsModuleConfig;
167
70
 
168
- declare function osm(options?: TileflowOsmBasemapOptions): TileflowOsmBasemapConfig;
71
+ /**
72
+ * Stable built-in POI image convention. A theme token with the declared role
73
+ * takes precedence; `fallback` is the invariant sprite ID used when omitted.
74
+ */
75
+ declare const tileflowPoiImageRoles: Readonly<{
76
+ readonly 'arts-entertainment': {
77
+ readonly fallback: "culture";
78
+ readonly token: "poi.arts-entertainment";
79
+ };
80
+ readonly education: {
81
+ readonly fallback: "education";
82
+ readonly token: "poi.education";
83
+ };
84
+ readonly 'food-drink': {
85
+ readonly fallback: "food";
86
+ readonly token: "poi.food-drink";
87
+ };
88
+ readonly landmark: {
89
+ readonly fallback: "culture";
90
+ readonly token: "poi.landmark";
91
+ };
92
+ readonly lodging: {
93
+ readonly fallback: "lodging";
94
+ readonly token: "poi.lodging";
95
+ };
96
+ readonly medical: {
97
+ readonly fallback: "health";
98
+ readonly token: "poi.medical";
99
+ };
100
+ readonly 'park-nature': {
101
+ readonly fallback: "services";
102
+ readonly token: "poi.park-nature";
103
+ };
104
+ readonly 'public-services': {
105
+ readonly fallback: "services";
106
+ readonly token: "poi.public-services";
107
+ };
108
+ readonly religion: {
109
+ readonly fallback: "culture";
110
+ readonly token: "poi.religion";
111
+ };
112
+ readonly retail: {
113
+ readonly fallback: "shopping";
114
+ readonly token: "poi.retail";
115
+ };
116
+ readonly 'sport-leisure': {
117
+ readonly fallback: "culture";
118
+ readonly token: "poi.sport-leisure";
119
+ };
120
+ readonly transport: {
121
+ readonly fallback: "major-transit";
122
+ readonly token: "poi.transport";
123
+ };
124
+ readonly 'visitor-amenity': {
125
+ readonly fallback: "services";
126
+ readonly token: "poi.visitor-amenity";
127
+ };
128
+ }>;
129
+ declare function poi(options?: TileflowPoiModuleOptions): TileflowPoiModuleConfig;
169
130
 
170
- declare function roads(options?: TileflowRoadsModuleOptions): TileflowRoadsModuleConfig;
131
+ declare const tileflowIconPackageFileNames: readonly ["sprite.json", "sprite.png", "sprite@2x.json", "sprite@2x.png"];
132
+ type TileflowIconPackageFileName = (typeof tileflowIconPackageFileNames)[number];
133
+ /** Canonical sprite ID shared by authoring, generated manifests, diffs, and runtime indexes. */
134
+ declare const tileflowIconIdPattern: RegExp;
135
+ declare const tileflowIconPackageLimits: {
136
+ readonly decodeConcurrency: 4;
137
+ readonly maxAtlasDimension: 2048;
138
+ readonly maxDecodedPixelsPerIcon: 4194304;
139
+ readonly maxGeneratedFileBytes: number;
140
+ readonly maxGeneratedPackageBytes: number;
141
+ readonly maxIconCount: 256;
142
+ readonly maxSourceBytes: number;
143
+ readonly maxSourceFileBytes: number;
144
+ };
145
+ /**
146
+ * Portable compatibility values shared by the public CLI and hosted policy.
147
+ * Commercial entitlements still belong to the database package.
148
+ */
149
+ declare const tileflowHostedAlphaCompatibility: {
150
+ readonly iconPackages: {
151
+ readonly maxGeneratedBytesPerProject: number;
152
+ readonly maxRetainedPerProject: 24;
153
+ };
154
+ readonly maxMapsPerDeploy: 20;
155
+ };
156
+ declare const tileflowIconPackageContentHashSchema: z.ZodString;
157
+ declare const tileflowIconIdSchema: z.ZodString;
158
+ declare const tileflowRenderedIconManifestEntrySchema: z.ZodObject<{
159
+ name: z.ZodString;
160
+ pixelSha256: z.ZodObject<{
161
+ oneX: z.ZodString;
162
+ twoX: z.ZodString;
163
+ }, z.core.$strict>;
164
+ }, z.core.$strict>;
165
+ declare const tileflowIconPackageLabelSchema: z.ZodString;
166
+ declare const tileflowIconPackageManifestSchema: z.ZodObject<{
167
+ files: z.ZodTuple<[z.ZodObject<{
168
+ byteLength: z.ZodNumber;
169
+ contentType: z.ZodLiteral<"application/json" | "image/png">;
170
+ name: z.ZodLiteral<"sprite.json" | "sprite.png" | "sprite@2x.json" | "sprite@2x.png">;
171
+ sha256: z.ZodString;
172
+ }, z.core.$strict>, z.ZodObject<{
173
+ byteLength: z.ZodNumber;
174
+ contentType: z.ZodLiteral<"application/json" | "image/png">;
175
+ name: z.ZodLiteral<"sprite.json" | "sprite.png" | "sprite@2x.json" | "sprite@2x.png">;
176
+ sha256: z.ZodString;
177
+ }, z.core.$strict>, z.ZodObject<{
178
+ byteLength: z.ZodNumber;
179
+ contentType: z.ZodLiteral<"application/json" | "image/png">;
180
+ name: z.ZodLiteral<"sprite.json" | "sprite.png" | "sprite@2x.json" | "sprite@2x.png">;
181
+ sha256: z.ZodString;
182
+ }, z.core.$strict>, z.ZodObject<{
183
+ byteLength: z.ZodNumber;
184
+ contentType: z.ZodLiteral<"application/json" | "image/png">;
185
+ name: z.ZodLiteral<"sprite.json" | "sprite.png" | "sprite@2x.json" | "sprite@2x.png">;
186
+ sha256: z.ZodString;
187
+ }, z.core.$strict>], null>;
188
+ format: z.ZodLiteral<"tileflow-icon-package-v1">;
189
+ iconNames: z.ZodArray<z.ZodString>;
190
+ renderedIcons: z.ZodArray<z.ZodObject<{
191
+ name: z.ZodString;
192
+ pixelSha256: z.ZodObject<{
193
+ oneX: z.ZodString;
194
+ twoX: z.ZodString;
195
+ }, z.core.$strict>;
196
+ }, z.core.$strict>>;
197
+ sprites: z.ZodObject<{
198
+ oneX: z.ZodObject<{
199
+ height: z.ZodNumber;
200
+ width: z.ZodNumber;
201
+ pixelRatio: z.ZodLiteral<1>;
202
+ }, z.core.$strict>;
203
+ twoX: z.ZodObject<{
204
+ height: z.ZodNumber;
205
+ width: z.ZodNumber;
206
+ pixelRatio: z.ZodLiteral<2>;
207
+ }, z.core.$strict>;
208
+ }, z.core.$strict>;
209
+ }, z.core.$strict>;
210
+ type TileflowIconPackageManifest = z.infer<typeof tileflowIconPackageManifestSchema>;
211
+ type TileflowRenderedIconManifestEntry = z.infer<typeof tileflowRenderedIconManifestEntrySchema>;
212
+ declare function compareCodeUnits(left: string, right: string): number;
213
+ declare function serializeCanonicalJson(value: unknown): string;
214
+ declare function serializeTileflowIconPackageManifest(input: TileflowIconPackageManifest): string;
215
+ declare function sha256Hex(input: string | Uint8Array): Promise<string>;
216
+ declare function hashTileflowIconPackageManifest(input: TileflowIconPackageManifest): Promise<string>;
217
+ /**
218
+ * Hashes the delivered pixels of one rendered icon without including its name.
219
+ *
220
+ * The v1 binary frame is the UTF-8 domain `tileflow-rendered-icon-pixels-v1\0`, followed by one
221
+ * byte for the pixel ratio, unsigned 32-bit big-endian width and height, then row-major RGBA.
222
+ * Fully transparent pixels have their RGB channels zeroed in a copy before hashing so invisible
223
+ * decoder data cannot create a visual difference.
224
+ */
225
+ declare function hashTileflowRenderedIconPixels(input: {
226
+ height: number;
227
+ pixelRatio: 1 | 2;
228
+ rgba: Uint8Array;
229
+ width: number;
230
+ }): Promise<string>;
231
+
232
+ declare const tileflowFontBundleLimits: {
233
+ readonly maxFaceCount: 16;
234
+ readonly maxFileCount: 32;
235
+ readonly maxFontFileBytes: number;
236
+ readonly maxLicenseFileBytes: number;
237
+ readonly maxManifestBytes: number;
238
+ readonly maxPackageBytes: number;
239
+ };
240
+ declare const tileflowFontBundleContentHashSchema: z.ZodString;
241
+ declare const tileflowFontBundleManifestSchema: z.ZodObject<{
242
+ files: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
243
+ byteLength: z.ZodNumber;
244
+ contentType: z.ZodEnum<{
245
+ "font/otf": "font/otf";
246
+ "font/ttf": "font/ttf";
247
+ "font/woff2": "font/woff2";
248
+ }>;
249
+ kind: z.ZodLiteral<"font">;
250
+ name: z.ZodString;
251
+ sha256: z.ZodString;
252
+ }, z.core.$strict>, z.ZodObject<{
253
+ byteLength: z.ZodNumber;
254
+ contentType: z.ZodLiteral<"text/plain; charset=utf-8">;
255
+ kind: z.ZodLiteral<"license">;
256
+ name: z.ZodString;
257
+ sha256: z.ZodString;
258
+ }, z.core.$strict>], "kind">>;
259
+ fontFaces: z.ZodArray<z.ZodObject<{
260
+ family: z.ZodString;
261
+ file: z.ZodString;
262
+ licenseFile: z.ZodString;
263
+ style: z.ZodEnum<{
264
+ italic: "italic";
265
+ normal: "normal";
266
+ oblique: "oblique";
267
+ }>;
268
+ weight: z.ZodEnum<{
269
+ 100: "100";
270
+ 200: "200";
271
+ 300: "300";
272
+ 400: "400";
273
+ 500: "500";
274
+ 600: "600";
275
+ 700: "700";
276
+ 800: "800";
277
+ 900: "900";
278
+ }>;
279
+ }, z.core.$strict>>;
280
+ format: z.ZodLiteral<"tileflow-font-bundle-v1">;
281
+ }, z.core.$strict>;
282
+ type TileflowFontBundleManifest = z.infer<typeof tileflowFontBundleManifestSchema>;
283
+ type TileflowFontBundleFile = TileflowFontBundleManifest['files'][number];
284
+ type TileflowFontBundleFontFace = TileflowFontBundleManifest['fontFaces'][number];
285
+ declare function serializeTileflowFontBundleManifest(input: TileflowFontBundleManifest): string;
286
+ declare function hashTileflowFontBundleManifest(input: TileflowFontBundleManifest): Promise<string>;
287
+
288
+ type TileflowIconManifestDiff = {
289
+ added: string[];
290
+ afterBytes: number;
291
+ beforeBytes: number;
292
+ modified: string[];
293
+ removed: string[];
294
+ unchangedCount: number;
295
+ };
296
+ declare function diffTileflowIconPackageManifests(before: TileflowIconPackageManifest | null, after: TileflowIconPackageManifest | null): TileflowIconManifestDiff;
171
297
 
172
- export { type MapLibreStyle, type TileflowBasemapConfig, type TileflowBuildings, type TileflowColorConfig, type TileflowColors, type TileflowConfig, type TileflowDensity, type TileflowFontWeight, type TileflowLabels, type TileflowManifest, type TileflowMapConfig, type TileflowModuleConfig, type TileflowOsmBasemapConfig, type TileflowOsmBasemapOptions, type TileflowPoi, type TileflowProjectConfig, type TileflowRoads, type TileflowRoadsModuleConfig, type TileflowRoadsModuleOptions, type TileflowRoadsModulePreset, type TileflowSourceLayers, type TileflowStyleOptions, type TileflowTerrain, type TileflowTerrainConfig, type TileflowTerrainEncoding, type TileflowTerrainMode, type TileflowTheme, type TileflowThemeConfig, type TileflowThemeMode, type TileflowTiles, type TileflowTilesetConfig, type TileflowTypography, type TileflowViewConfig, type ValidationMessage, type ValidationResult, createManifest, createStyle, createStyleFromProject, defineTileflow, getDefaultColors, osm, roads, validateConfig };
298
+ export { MapLibreStyle, ResolveMapOptions, ResolvedTileflowMap, TileflowDerivedMap, type TileflowFontBundleFile, type TileflowFontBundleFontFace, type TileflowFontBundleManifest, type TileflowIconManifestDiff, type TileflowIconPackageFileName, type TileflowIconPackageManifest, TileflowLabelsModuleConfig, TileflowLabelsModuleOptions, TileflowMap, TileflowMapScene, TileflowPoiModuleConfig, TileflowPoiModuleOptions, type TileflowRenderedIconManifestEntry, TileflowResolvedMapValidationError, TileflowRoadsModuleConfig, TileflowRoadsModuleOptions, type TileflowStylePerformance, type TileflowZoomPerformance, ValidationMessage, analyzeTileflowStylePerformance, compareCodeUnits, defineMap, defineRootMap, diffTileflowIconPackageManifests, hashTileflowFontBundleManifest, hashTileflowIconPackageManifest, hashTileflowRenderedIconPixels, isTileflowPortableId, isTileflowThemeName, isTileflowWorldReleaseId, labels, poi, resolveMap, roads, serializeCanonicalJson, serializeTileflowFontBundleManifest, serializeTileflowIconPackageManifest, sha256Hex, tileflowFontBundleContentHashSchema, tileflowFontBundleLimits, tileflowFontBundleManifestSchema, tileflowHostedAlphaCompatibility, tileflowIconIdPattern, tileflowIconIdSchema, tileflowIconPackageContentHashSchema, tileflowIconPackageFileNames, tileflowIconPackageLabelSchema, tileflowIconPackageLimits, tileflowIconPackageManifestSchema, tileflowMapDefaultMaxDepth, tileflowPoiImageRoles, tileflowPortableIdMaximumLength, tileflowRenderedIconManifestEntrySchema, tileflowWorldReleaseIdMaximumLength, tileflowWorldReleaseIdMinimumLength, tileflowWorldReleaseIdPattern, tileflowWorldReleaseIdPatternSource, tileflowWorldReleaseIdSchema };