@tileflow/core 0.1.0-alpha.32 → 0.1.0-alpha.34

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,7 +1,7 @@
1
- import { b8 as TileflowThemeColorValue, o as TileflowSymbolStyle, A as TileflowAreaStyle, _ as TileflowLineStackStyle, n as TileflowLineStyle, l as TileflowExtrusionStyle, j as TileflowBackgroundStyle, m as TileflowFillStyle, a3 as TileflowMarkerSymbolStyle, k as TileflowCircleStyle, bb as TileflowThemeNumberValue, aY as TileflowTerrainHillshadeStyle, aX as TileflowTerrainEncoding, b9 as TileflowThemeFontValue, ba as TileflowThemeImageValue, bV as TileflowTypographyStyle, S as TileflowLight, bW as ResolvedTileflowTypography, s as TileflowLabelsModuleConfig, v as TileflowPoiModuleConfig, q as TileflowRoadsModuleConfig, ad as TileflowProjection, aS as TileflowTerrain, bf as TileflowViewConfig, M as MapLibreStyle, bj as ValidationResult } from './manifest-types-E7m23eXL.js';
1
+ import { b9 as TileflowThemeColorValue, o as TileflowSymbolStyle, A as TileflowAreaStyle, _ as TileflowLineStackStyle, n as TileflowLineStyle, l as TileflowExtrusionStyle, bc as TileflowThemeNumberValue, j as TileflowBackgroundStyle, m as TileflowFillStyle, a3 as TileflowMarkerSymbolStyle, k as TileflowCircleStyle, aZ as TileflowTerrainHillshadeStyle, aY as TileflowTerrainEncoding, ba as TileflowThemeFontValue, bb as TileflowThemeImageValue, bW as TileflowTypographyStyle, S as TileflowLight, bX as ResolvedTileflowTypography, s as TileflowLabelsModuleConfig, v as TileflowPoiModuleConfig, q as TileflowRoadsModuleConfig, ad as TileflowProjection, aT as TileflowTerrain, bg as TileflowViewConfig, M as MapLibreStyle, bk as ValidationResult } from './manifest-types-hmzy2bBX.js';
2
2
  import * as zod from 'zod';
3
3
  import { z } from 'zod';
4
- import { T as TileflowCaptureScene } from './capture-scene-BaAJjGq7.js';
4
+ import { T as TileflowCaptureScene, a as TileflowCaptureShot } from './capture-shot-ChPQvPyi.js';
5
5
 
6
6
  /** Optional globe atmosphere. Colors use theme tokens or explicit fixed values and must resolve to opaque colors. */
7
7
  type TileflowAtmosphereOptions = {
@@ -48,11 +48,30 @@ type TileflowBoundariesModuleConfig = TileflowBoundariesModuleOptions & {
48
48
  declare function boundaries(options?: TileflowBoundariesModuleOptions): TileflowBoundariesModuleConfig;
49
49
 
50
50
  type TileflowBuildingMode = '3d' | 'flat';
51
+ /**
52
+ * How Core's 3D buildings renderer draws the map's buildings. Their colour is the map's own 3D
53
+ * building colour (its extrusion), else its roofs'.
54
+ */
55
+ type TileflowBuildingsThreeDimensionalStyle = {
56
+ /** How strongly roof outlines and outer corners catch the light, from 0 (none) to 1, the default. */
57
+ edges?: TileflowThemeNumberValue;
58
+ /** Their own colour, drawn unlit; without it they take the building's colour, lightened. */
59
+ edgeColor?: TileflowThemeColorValue;
60
+ /** How bright the buildings light the street at night, from 0 (none) to 2; defaults to 1. */
61
+ nightLight?: TileflowThemeNumberValue;
62
+ /** Contact shadow at the foot of the walls and in tight corners; defaults to true. */
63
+ occlusion?: boolean;
64
+ /** Shadows from the sun, on the buildings and the flat map; defaults to true. */
65
+ shadows?: boolean;
66
+ /** Invented night windows, lit by rooms: decoration, not data. Defaults to false. */
67
+ windows?: boolean;
68
+ };
51
69
  type TileflowBuildingsModuleOptions = {
52
70
  businessCorridor?: TileflowAreaStyle;
53
71
  extrusion?: TileflowExtrusionStyle;
54
72
  flat?: TileflowAreaStyle;
55
73
  mode?: TileflowBuildingMode;
74
+ threeDimensional?: TileflowBuildingsThreeDimensionalStyle;
56
75
  };
57
76
  type TileflowBuildingsModuleConfig = TileflowBuildingsModuleOptions & {
58
77
  type: 'buildings';
@@ -136,13 +155,172 @@ type TileflowTransitModuleConfig = TileflowTransitModuleOptions & {
136
155
  };
137
156
  declare function transit(options?: TileflowTransitModuleOptions): TileflowTransitModuleConfig;
138
157
 
158
+ /** What a map's tree models may hold. */
159
+ declare const tileflowTreeModelLimits: Readonly<{
160
+ /** Triangles of a near model, the one drawn close to the camera. */
161
+ nearTriangles: 1000;
162
+ /** Triangles of a far model, drawn beyond the nearest tiles. */
163
+ farTriangles: 120;
164
+ /** Vertices of one model. */
165
+ vertices: 4096;
166
+ /** Models one map carries. */
167
+ models: 16;
168
+ /** Models one form draws from. */
169
+ perForm: 4;
170
+ }>;
171
+ /** A model as indexed triangles of a unit tree, before it is encoded. */
172
+ type TileflowTreeModelMesh = Readonly<{
173
+ /** The model's crown width over its height, as its author drew it, from 0.1 to 3. */
174
+ proportion: number;
175
+ /** x, y and z of each vertex: x and y from about -0.5 to 0.5, z from 0 to 1. */
176
+ positions: readonly number[];
177
+ /** The vertex normals, x, y and z. */
178
+ normals: readonly number[];
179
+ /** Each vertex's part, a value of `tileflowTreeParts`. */
180
+ parts: readonly number[];
181
+ /** Each vertex's shade among its part's colours, from -1 (darkest) to 1. */
182
+ shades: readonly number[];
183
+ /** Each vertex's light, from 0 (fully occluded) to 1. */
184
+ occlusion: readonly number[];
185
+ /** Three vertex indices per triangle. */
186
+ indices: readonly number[];
187
+ }>;
188
+ /** A prepared model, near and optionally far, as the style's tree description carries it. */
189
+ type TileflowTreeModel = Readonly<{
190
+ near: string;
191
+ far?: string;
192
+ }>;
193
+ /** Encodes a model as base64 text. Throws when it breaks `tileflowTreeModelLimits`. */
194
+ declare function encodeTileflowTreeModel(mesh: TileflowTreeModelMesh, level: 'near' | 'far'): string;
195
+ /**
196
+ * Decodes a model's base64 text, or undefined when it is not a tree model of this version or
197
+ * breaks `tileflowTreeModelLimits`.
198
+ */
199
+ declare function decodeTileflowTreeModel(text: unknown, level: 'near' | 'far'): TileflowTreeModelMesh | undefined;
200
+
201
+ /** The forms a 3D tree takes. */
202
+ declare const tileflowTreeForms: readonly ["round", "open", "tall", "conifer", "columnar", "palm"];
203
+ type TileflowTreeForm = (typeof tileflowTreeForms)[number];
204
+ /** How a tree's surfaces take the light: facets, a smooth round shape, or bands as drawn. */
205
+ declare const tileflowTreeFinishes: readonly ["faceted", "smooth", "toon"];
206
+ type TileflowTreeFinish = (typeof tileflowTreeFinishes)[number];
207
+ /** A form's own scales, on top of the map's, and the map's own models it draws. */
208
+ type TileflowTreeFormStyle = Readonly<{
209
+ heightScale?: number;
210
+ crownScale?: number;
211
+ /** Ids of the map's own models, one to four; each tree draws one by its stable seed. */
212
+ models?: readonly string[];
213
+ }>;
214
+ /** Relative weights of the forms given to trees whose data gives none. */
215
+ type TileflowTreeFormMix = Readonly<Partial<Record<TileflowTreeForm, number>>>;
216
+ /** A region whose trees without a form in the data take their own mix. */
217
+ type TileflowTreeRegion = Readonly<{
218
+ /** `[west, south, east, north]` in degrees. */
219
+ bounds: readonly [number, number, number, number];
220
+ unknownForms: TileflowTreeFormMix;
221
+ }>;
222
+ /** The fields of the tree and canopy layers, as World names them. */
223
+ type TileflowTreeFields = Readonly<{
224
+ height: string;
225
+ diameterCrown: string;
226
+ circumference: string;
227
+ genus: string;
228
+ species: string;
229
+ leafType: string;
230
+ /** The tree's taxon at any rank, such as `Arecaceae` for palms or a genus or species. */
231
+ taxon: string;
232
+ canopyRank: string;
233
+ canopyClearance: string;
234
+ canopyCover: string;
235
+ /** A canopy point's measured canopy height, in metres. */
236
+ canopyHeight: string;
237
+ }>;
238
+ /** A model's id: its file's name, in lowercase letters, digits and hyphens. */
239
+ declare const tileflowTreeModelIdPattern: RegExp;
240
+ /** The style metadata key under which a compiled map describes its 3D trees. */
241
+ declare const tileflowVegetationMetadataKey = "tileflow:vegetation";
242
+ /** How a compiled map's 3D trees look and where their data is, resolved for one theme. */
243
+ type TileflowVegetation3D = Readonly<{
244
+ /** The vector source and its layers with the trees and the canopy points. */
245
+ source: string;
246
+ layers: Readonly<{
247
+ tree: string;
248
+ canopy?: string;
249
+ }>;
250
+ fields: TileflowTreeFields;
251
+ /** Sunlit colours: bark, and the leaves of each kind of tree from darkest to lightest. */
252
+ colors: Readonly<{
253
+ bark: string;
254
+ broadleaf: readonly string[];
255
+ conifer: readonly string[];
256
+ palm: readonly string[];
257
+ }>;
258
+ heightScale: number;
259
+ crownScale: number;
260
+ /** Each form's own scales and models. */
261
+ forms: Readonly<Partial<Record<TileflowTreeForm, TileflowTreeFormStyle>>>;
262
+ /** The map's own models its forms draw, by id, prepared from its `models` directories. */
263
+ models: Readonly<Record<string, TileflowTreeModel>>;
264
+ finish: TileflowTreeFinish;
265
+ /** How strongly an outline rings each tree, from 0 (none) to 1, and its colour. */
266
+ edges: number;
267
+ edgeColor?: string;
268
+ unknownForms: TileflowTreeFormMix;
269
+ regions: readonly TileflowTreeRegion[];
270
+ /** The style's layers that draw the trees flat, which the 3D trees stand in for while shown. */
271
+ flatLayers: readonly string[];
272
+ }>;
273
+ /**
274
+ * Reads the 3D trees a compiled style describes, or undefined when its metadata has none or holds
275
+ * a version or shape this Core does not know.
276
+ */
277
+ declare function readTileflowVegetation3D(metadata: unknown): TileflowVegetation3D | undefined;
278
+
139
279
  type TileflowVegetationMode = '3d' | 'flat';
140
280
  type TileflowVegetationThreeDimensionalStyle = {
141
281
  barkColor?: TileflowThemeColorValue;
282
+ /** Sunlit leaf colours of broadleaf trees, from darkest to lightest; up to four are used. */
142
283
  broadleafColors?: readonly TileflowThemeColorValue[];
284
+ /** Sunlit needle colours of conifers and columns, from darkest to lightest. */
143
285
  coniferColors?: readonly TileflowThemeColorValue[];
286
+ /** Sunlit frond colours of palms, from darkest to lightest; the broadleaf colours by default. */
287
+ palmColors?: readonly TileflowThemeColorValue[];
144
288
  crownScale?: TileflowThemeNumberValue;
145
289
  heightScale?: TileflowThemeNumberValue;
290
+ /**
291
+ * How trees take the light: `faceted` (the default), low-poly facets softened towards a round
292
+ * crown; `smooth`, round crowns; or `toon`, three bands of light and a crisp shadow, as a drawn
293
+ * tree has them.
294
+ */
295
+ finish?: TileflowTreeFinish;
296
+ /** How strongly an outline rings each tree, from 0 (none, the default) to 1. */
297
+ edges?: TileflowThemeNumberValue;
298
+ /** The outline's colour; the crown's darkest colour, deepened, by default. */
299
+ edgeColor?: TileflowThemeColorValue;
300
+ /**
301
+ * Each form's own scales, on top of `heightScale` and `crownScale`, such as taller palms, and the
302
+ * map's own models it draws: ids of `.glb` files in the map's `models` directories, one to four,
303
+ * each tree drawing one. A model's materials named `bark`, `leaves`, `fronds` or `stem` take
304
+ * those parts' colours.
305
+ */
306
+ forms?: Partial<Record<TileflowTreeForm, {
307
+ heightScale?: TileflowThemeNumberValue;
308
+ crownScale?: TileflowThemeNumberValue;
309
+ models?: readonly string[];
310
+ }>>;
311
+ /**
312
+ * The forms of trees whose data gives none, as relative weights: `round`, `open` and `tall`
313
+ * (broadleaf), `conifer`, `columnar` and `palm`. Each tree draws one from a stable hash, so it
314
+ * keeps its form everywhere. Defaults to the three broadleaf forms, evenly. A tree the data calls
315
+ * broadleaved keeps to the broadleaf forms of the mix.
316
+ */
317
+ unknownForms?: TileflowTreeFormMix;
318
+ /**
319
+ * Regions whose trees without a form in the data take their own mix, such as palms along a
320
+ * subtropical coast. Bounds are `[west, south, east, north]` in degrees; the first region holding
321
+ * a tree applies. At most 16.
322
+ */
323
+ regions?: readonly TileflowTreeRegion[];
146
324
  };
147
325
  type TileflowVegetationModuleOptions = {
148
326
  flat?: TileflowCircleStyle;
@@ -644,6 +822,97 @@ type ResolvedMarine = Readonly<{
644
822
  /** Resolve the optional marine sidecars without fetching their TileJSON documents. */
645
823
  declare function resolveMarine(marine: TileflowMarine | undefined, apiBaseUrl?: string): ResolvedMarine | undefined;
646
824
 
825
+ declare const tileflowSunMetadataKey = "tileflow:sun";
826
+ /** A theme's sun and sky light with every value resolved; see `TileflowThemeSun`. */
827
+ type TileflowSunPreset = Readonly<{
828
+ /** Degrees clockwise from north, from 0 to 360. */
829
+ azimuth: number;
830
+ /** Degrees above the horizon, from -90 to 90. */
831
+ altitude: number;
832
+ /** The direct light's colour. */
833
+ color: string;
834
+ /** The direct light's strength, from 0 to 1. */
835
+ intensity: number;
836
+ /** How dark the shadows the sun casts fall, from 0 (none) to 1. */
837
+ shadowIntensity: number;
838
+ /** The light from the sky, which reaches every surface and fills the shadows. */
839
+ ambient: Readonly<{
840
+ color: string;
841
+ intensity: number;
842
+ }>;
843
+ }>;
844
+ /** The sun as the map shows it, ready for an application's own layers. */
845
+ type TileflowSun = Readonly<{
846
+ /** Degrees clockwise from north, from 0 to 360. */
847
+ azimuth: number;
848
+ /** Degrees above the horizon, from -90 to 90. */
849
+ altitude: number;
850
+ /** A unit vector towards the sun: x east, y north, z up. */
851
+ direction: readonly [number, number, number];
852
+ /** The direct light's colour, as a CSS colour. */
853
+ color: string;
854
+ /** The direct light's colour as sRGB channels from 0 to 1. */
855
+ rgb: readonly [number, number, number];
856
+ /**
857
+ * The direct light's strength, from 0 to 1. It fades to 0 as the sun sets: a sun below the
858
+ * horizon lights nothing and casts no shadow.
859
+ */
860
+ intensity: number;
861
+ /** How dark the shadows the sun casts fall, from 0 (none) to 1. */
862
+ shadowIntensity: number;
863
+ /** The light from the sky, which reaches every surface and fills the shadows. */
864
+ ambient: Readonly<{
865
+ color: string;
866
+ rgb: readonly [number, number, number];
867
+ intensity: number;
868
+ }>;
869
+ /**
870
+ * How bright flat, open ground is under this light, from 0 (dark) to 1: the sky's light plus the
871
+ * sun's at its height, each weighted by its colour's luminance. Use it to switch lamps or windows
872
+ * on as a scene darkens, whatever theme or sun lights it.
873
+ */
874
+ brightness: number;
875
+ /** Where the direction comes from: the themes, angles, or a date and place. */
876
+ source: 'theme' | 'direction' | 'date';
877
+ }>;
878
+ /** The sun of a theme that leaves a value unset: high in the south-south-west, in white light. */
879
+ declare const tileflowDefaultSunPreset: TileflowSunPreset;
880
+ /**
881
+ * Where the sun stands for an instant and a place ([longitude, latitude] in degrees): its azimuth
882
+ * in degrees clockwise from north and its apparent altitude above the horizon, with atmospheric
883
+ * refraction. It follows NOAA's solar equations, accurate to about a hundredth of a degree for
884
+ * years 1800 to 2200.
885
+ */
886
+ declare function tileflowSunPosition(date: Date | number, location: readonly [number, number]): Readonly<{
887
+ azimuth: number;
888
+ altitude: number;
889
+ }>;
890
+ /** A unit vector towards a direction in the sky: x east, y north, z up. */
891
+ declare function tileflowSunDirection(azimuth: number, altitude: number): readonly [number, number, number];
892
+ /**
893
+ * The sun as the map shows it: a preset's light from a direction. Direct light fades out over the
894
+ * sun's last degrees above the horizon and is gone below it.
895
+ */
896
+ declare function resolveTileflowSun(preset: TileflowSunPreset, direction?: Readonly<{
897
+ azimuth: number;
898
+ altitude: number;
899
+ }>, source?: TileflowSun['source']): TileflowSun;
900
+ /**
901
+ * A preset `t` of the way from `from` to `to`: the azimuth turns the short way round, colours mix
902
+ * in OKLab, as theme blends mix paint colours, and numbers linearly.
903
+ */
904
+ declare function mixTileflowSunPresets(from: TileflowSunPreset, to: TileflowSunPreset, t: number): TileflowSunPreset;
905
+ /** Reads the sun a compiled style publishes, or undefined when its metadata has none. */
906
+ declare function readTileflowSunPreset(metadata: unknown): TileflowSunPreset | undefined;
907
+ /**
908
+ * The sun of a compiled style: the one it publishes, else one read from its light (a style whose
909
+ * theme describes no sun lights its extrusions from `light.position`), else the default.
910
+ */
911
+ declare function tileflowStyleSunPreset(style: {
912
+ light?: unknown;
913
+ metadata?: unknown;
914
+ } | undefined): TileflowSunPreset;
915
+
647
916
  type TileflowVisualValueCategory = 'color' | 'font' | 'image' | 'number';
648
917
  /** Return the semantic theme category for one visual property, or undefined for structure/data. */
649
918
  declare function classifyTileflowVisualProperty(property: string, _value?: unknown): TileflowVisualValueCategory | undefined;
@@ -671,8 +940,38 @@ type TileflowThemeTypography = TileflowThemeTypographyStyle & {
671
940
  roads?: TileflowThemeTypographyStyle;
672
941
  water?: TileflowThemeTypographyStyle;
673
942
  };
943
+ /**
944
+ * The theme's sun: where it stands and the light it gives, as a light preset for the theme. A
945
+ * theme for the evening sets a low sun in the west in warm light; one for the night, a moon with
946
+ * faint shadows. Unset values take the defaults in `tileflowDefaultSunPreset`.
947
+ */
948
+ type TileflowThemeSun = {
949
+ /** Degrees clockwise from north. */
950
+ azimuth?: TileflowThemeNumberValue;
951
+ /** Degrees above the horizon, from -90 to 90; a sun below the horizon lights nothing. */
952
+ altitude?: TileflowThemeNumberValue;
953
+ /** The direct light's colour. */
954
+ color?: TileflowThemeColorValue;
955
+ /** The direct light's strength, from 0 to 1. */
956
+ intensity?: TileflowThemeNumberValue;
957
+ /** How dark the shadows the sun casts fall, from 0 (none) to 1. */
958
+ shadowIntensity?: TileflowThemeNumberValue;
959
+ };
960
+ /** The light from the sky, which reaches every surface and fills the shadows. */
961
+ type TileflowThemeAmbient = {
962
+ color?: TileflowThemeColorValue;
963
+ /** From 0 to 1. */
964
+ intensity?: TileflowThemeNumberValue;
965
+ };
966
+ /**
967
+ * How the theme lights the map. `anchor`, `color`, `intensity`, and `position` are MapLibre's light,
968
+ * which shades 3D extrusions. `sun` and `ambient` describe the theme's sun and sky light for 3D
969
+ * scenes (`themeController.getSun()`); with a `sun`, the map's light is anchored to the map and
970
+ * points from the sun, and `anchor` and the direction in `position` no longer apply.
971
+ */
674
972
  type TileflowThemeLighting = {
675
973
  anchor?: 'map' | 'viewport';
974
+ ambient?: TileflowThemeAmbient;
676
975
  color?: TileflowThemeColorValue;
677
976
  intensity?: TileflowThemeNumberValue;
678
977
  position?: readonly [
@@ -680,6 +979,7 @@ type TileflowThemeLighting = {
680
979
  TileflowThemeNumberValue,
681
980
  TileflowThemeNumberValue
682
981
  ];
982
+ sun?: TileflowThemeSun;
683
983
  };
684
984
  /** A complete, inheritance-free appearance document. */
685
985
  type TileflowTheme = {
@@ -706,7 +1006,10 @@ type ResolvedTileflowThemeTokens = {
706
1006
  number: Readonly<Record<string, number>>;
707
1007
  };
708
1008
  type ResolvedTileflowTheme = Omit<TileflowTheme, 'lighting' | 'tokens' | 'typography'> & {
1009
+ /** MapLibre's light; with a sun, anchored to the map and pointing from it. */
709
1010
  lighting: TileflowLight;
1011
+ /** The theme's sun and sky light, when the theme describes either. */
1012
+ sun?: TileflowSunPreset;
710
1013
  tokens: ResolvedTileflowThemeTokens;
711
1014
  typography: ResolvedTileflowTypography;
712
1015
  };
@@ -814,6 +1117,8 @@ type TileflowPackageDirectory = Readonly<{
814
1117
  type TileflowIconDirectory = TileflowLocalDirectory | TileflowPackageDirectory;
815
1118
  /** One font directory in the ordered map font search path. */
816
1119
  type TileflowFontDirectory = TileflowLocalDirectory | TileflowPackageDirectory;
1120
+ /** One directory of 3D models in the ordered map model search path. */
1121
+ type TileflowModelDirectory = TileflowLocalDirectory | TileflowPackageDirectory;
817
1122
  /**
818
1123
  * An explicit MapLibre glyph provider. `fontStacks` lists the exact comma-joined request keys
819
1124
  * produced by each compiled `text-font` array. The map owns the URL; World never supplies fonts.
@@ -945,9 +1250,12 @@ type TileflowMapIdentity = {
945
1250
  };
946
1251
  /** A capture scene owned by one singular map; its map id is implicit. */
947
1252
  type TileflowMapScene = Omit<TileflowCaptureScene, 'map'>;
1253
+ /** A timed capture shot owned by one singular map; its map id is implicit. */
1254
+ type TileflowMapShot = Omit<TileflowCaptureShot, 'map'>;
948
1255
  /** Tooling metadata belongs to the leaf definition and is never inherited. */
949
1256
  type TileflowMapTooling = {
950
1257
  scenes?: Record<string, TileflowMapScene>;
1258
+ shots?: Record<string, TileflowMapShot>;
951
1259
  };
952
1260
  type TileflowMapTextAssets = {
953
1261
  fonts?: never;
@@ -970,6 +1278,11 @@ type TileflowMapDesign = TileflowMapTextAssets & {
970
1278
  icons?: readonly TileflowIconSource[];
971
1279
  /** Independent Bathymetry and Nautical products composed by the compiler. */
972
1280
  marine?: TileflowMarine;
1281
+ /**
1282
+ * Directories of the map's own 3D models, glTF binaries (`.glb`) named by id, such as the trees a
1283
+ * vegetation form draws. Omission inherits; declaration replaces; [] means no models.
1284
+ */
1285
+ models?: readonly TileflowModelDirectory[];
973
1286
  /** Semantic domains, expressed directly or with explicit refine/disable operations. */
974
1287
  modules?: TileflowAuthoringModules;
975
1288
  /** Keyed MapLibre overlay units. Omission inherits; entries replace atomically. */
@@ -1224,6 +1537,8 @@ type TileflowPreparedMapAssets = {
1224
1537
  ids: readonly string[];
1225
1538
  sprite: string;
1226
1539
  };
1540
+ /** The map's own 3D models by id, prepared from its `models` directories. */
1541
+ models?: Readonly<Record<string, TileflowTreeModel>>;
1227
1542
  };
1228
1543
  type TileflowSemanticCompileOptions = {
1229
1544
  apiBaseUrl?: string;
@@ -1336,4 +1651,4 @@ declare function parseTileflowIconComposition(input: unknown): TileflowIconCompo
1336
1651
  /** Dependency identity is separate from the generated artifact's content hash. */
1337
1652
  declare function hashTileflowIconComposition(input: TileflowIconCompositionV1): Promise<string>;
1338
1653
 
1339
- export { type TileflowAuthoringModules as $, type OpenMapTilesLayerBindings as A, tileflowCompilationPhases as B, tileflowCompilationPlannerStages as C, tileflowCompilationReportSchemaVersion as D, type TileflowSemanticModuleName as E, tileflowHostedSourceLimit as F, tileflowOverlayPlacements as G, type TileflowIconSource as H, type OpenMapTilesSchema as I, type OpenMapTilesSchemaOptions as J, type ResolvedBathymetry as K, type ResolvedBathymetryRelief as L, type ResolvedMarine as M, type ResolvedMarineSource as N, type OpenMapTilesFieldBindings as O, type ParkLayerSemantics as P, type ResolvedTileflowData as Q, type ResolvedTileflowMap as R, type ResolvedTileflowTheme as S, type TileflowRenderedIconIdentity as T, type ResolvedTileflowThemeTokens as U, type TileflowAddressesModuleConfig as V, type TileflowAddressesModuleOptions as W, type TileflowAerowaysModuleConfig as X, type TileflowAerowaysModuleOptions as Y, type TileflowAtmosphere as Z, type TileflowAtmosphereOptions as _, type TileflowIconCompositionV1 as a, type TileflowRasterDemSourceRequirementV1 as a$, type TileflowBathymetryConfig as a0, type TileflowBathymetryDemSourceIdentity as a1, type TileflowBathymetryDisplay as a2, type TileflowBathymetryOptions as a3, type TileflowBathymetryReliefConfig as a4, type TileflowBoundariesModuleConfig as a5, type TileflowBoundariesModuleOptions as a6, type TileflowBuildingMode as a7, type TileflowBuildingsModuleConfig as a8, type TileflowBuildingsModuleOptions as a9, type TileflowLandModuleOptions as aA, type TileflowLandcoverClass as aB, type TileflowLandformClass as aC, type TileflowLandformsModuleConfig as aD, type TileflowLandformsModuleOptions as aE, type TileflowLanduseClass as aF, type TileflowLayerBand as aG, type TileflowLocalDirectory as aH, type TileflowMapDesign as aI, type TileflowMapIdentity as aJ, type TileflowMapLibreOverlay as aK, type TileflowMapLibreOverlayLayer as aL, type TileflowMapTooling as aM, type TileflowMarine as aN, type TileflowMarineConfig as aO, type TileflowMarineMode as aP, type TileflowMarineSourceConfig as aQ, type TileflowMarineSourceIdentity as aR, type TileflowModuleOperation as aS, type TileflowModulePatch as aT, type TileflowNauticalAreaLabelStyles as aU, type TileflowNauticalModuleConfig as aV, type TileflowNauticalModuleOptions as aW, type TileflowOverlayCollection as aX, type TileflowOverlayPlacement as aY, type TileflowPackageDirectory as aZ, type TileflowPreparedIconCapabilities as a_, type TileflowCompilationDiagnostic as aa, type TileflowCompilationDomainReport as ab, type TileflowCompilationFailure as ac, type TileflowCompilationOptions as ad, type TileflowCompilationPhase as ae, type TileflowCompilationPlannerDecision as af, type TileflowCompilationPlannerStage as ag, type TileflowCompilationReport as ah, type TileflowCompilationResult as ai, type TileflowCompilationSuccess as aj, type TileflowDataConfig as ak, type TileflowDataIdentity as al, type TileflowDerivedMap as am, type TileflowDisableOperation as an, type TileflowFontDirectory as ao, type TileflowGlyphs as ap, type TileflowHostedSourceCollection as aq, type TileflowHostedTilesetSource as ar, type TileflowHostedTilesetType as as, type TileflowIconContributorIdentity as at, type TileflowIconDirectory as au, TileflowIconSetError as av, type TileflowIconSetErrorCode as aw, type TileflowIconSetReference as ax, type TileflowIconSetSource as ay, type TileflowLandModuleConfig as az, type TileflowDataRequirementsV1 as b, parseTileflowIconComposition as b$, type TileflowRefineOperation as b0, type TileflowRemoveOperation as b1, type TileflowReset as b2, type TileflowResolvedThemeSelection as b3, type TileflowSemanticModules as b4, type TileflowStandaloneMap as b5, type TileflowTheme as b6, type TileflowThemeAuditContext as b7, type TileflowThemeAuditDiagnostic as b8, TileflowThemeAuditError as b9, assertTileflowMapThemeValues as bA, assertTileflowSdfPixels as bB, auditTileflowMapThemeValues as bC, auditTileflowThemeValues as bD, bathymetry as bE, boundaries as bF, buildings as bG, classifyTileflowVisualProperty as bH, collectTileflowIconSetReferences as bI, createStyle as bJ, createStyleResult as bK, defineTheme as bL, disable as bM, hashTileflowIconComposition as bN, hostedTileset as bO, iconSet as bP, isCanonicalOpenMapTilesSchema as bQ, isSafeLocalPmtilesPath as bR, isTileflowCompilationPhase as bS, isTileflowIconSetSource as bT, isTileflowLocalDirectory as bU, land as bV, landforms as bW, maplibreOverlay as bX, nautical as bY, openMapTiles as bZ, openMapTilesContractVersion as b_, type TileflowThemeAuditScope as ba, type TileflowThemeColorScheme as bb, type TileflowThemeDefinition as bc, type TileflowThemeLighting as bd, type TileflowThemeName as be, type TileflowThemeTokens as bf, type TileflowThemeTypography as bg, type TileflowThemeTypographyStyle as bh, type TileflowTransitModuleConfig as bi, type TileflowTransitModuleOptions as bj, type TileflowTransitRailStyle as bk, type TileflowVegetationMode as bl, type TileflowVegetationModuleConfig as bm, type TileflowVegetationModuleOptions as bn, type TileflowVegetationThreeDimensionalStyle as bo, type TileflowVisualValueCategory as bp, type TileflowWaterModuleConfig as bq, type TileflowWaterModuleOptions as br, type TileflowWaterwayClass as bs, type TileflowWorldData as bt, type TileflowWorldReleaseReference as bu, type TileflowWorldSelection as bv, type TileflowWorldV1Schema as bw, type VectorTilesData as bx, addresses as by, aeroways as bz, type TileflowSourceRequirementsV1 as c, parseTileflowMap as c0, refine as c1, remove as c2, reset as c3, resolveMarine as c4, resolveThemeSelection as c5, resolveThemeValues as c6, resolveTileflowData as c7, resolveTileflowTheme as c8, tileflowBandPlacements as c9, tileflowWorldGeneration as cA, tileflowWorldTileJsonUrl as cB, tileflowWorldV1Schema as cC, transit as cD, validateTileflowCompiledIconCapabilities as cE, validateTileflowMap as cF, validateTileflowWorldV1Tilejson as cG, vectorTiles as cH, vegetation as cI, water as cJ, tileflowBathymetryDemSourceId as ca, tileflowBathymetrySourceId as cb, tileflowBathymetryV1Schema 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, tileflowThemeLimits as cy, tileflowWorld as cz, type TileflowMap as d, 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 ResolveMapOptions as w, type TileflowIconAppearance as x, type TileflowLayerDomain as y, type TileflowBandPlacement as z };
1654
+ export { type TileflowAtmosphere 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 OpenMapTilesSchema as L, type OpenMapTilesSchemaOptions as M, type ResolvedBathymetry as N, type OpenMapTilesFieldBindings as O, type ParkLayerSemantics as P, type ResolvedBathymetryRelief as Q, type ResolvedTileflowMap as R, type ResolvedMarine as S, type TileflowRenderedIconIdentity as T, type ResolvedMarineSource as U, type ResolvedTileflowData as V, type ResolvedTileflowThemeTokens as W, type TileflowAddressesModuleConfig as X, type TileflowAddressesModuleOptions as Y, type TileflowAerowaysModuleConfig as Z, type TileflowAerowaysModuleOptions as _, type TileflowIconCompositionV1 as a, type TileflowOverlayCollection as a$, type TileflowAtmosphereOptions as a0, type TileflowAuthoringModules as a1, type TileflowBathymetryConfig as a2, type TileflowBathymetryDemSourceIdentity as a3, type TileflowBathymetryDisplay as a4, type TileflowBathymetryOptions as a5, type TileflowBathymetryReliefConfig as a6, type TileflowBoundariesModuleConfig as a7, type TileflowBoundariesModuleOptions as a8, type TileflowBuildingMode as a9, type TileflowIconSetReference as aA, type TileflowIconSetSource as aB, type TileflowLandModuleConfig as aC, type TileflowLandModuleOptions as aD, type TileflowLandcoverClass as aE, type TileflowLandformClass as aF, type TileflowLandformsModuleConfig as aG, type TileflowLandformsModuleOptions as aH, type TileflowLanduseClass as aI, type TileflowLayerBand as aJ, type TileflowLocalDirectory as aK, type TileflowMapDesign as aL, type TileflowMapIdentity as aM, type TileflowMapLibreOverlay as aN, type TileflowMapLibreOverlayLayer as aO, type TileflowMapTooling as aP, type TileflowMarine as aQ, type TileflowMarineConfig as aR, type TileflowMarineMode as aS, type TileflowMarineSourceConfig as aT, type TileflowMarineSourceIdentity as aU, type TileflowModelDirectory as aV, type TileflowModuleOperation as aW, type TileflowModulePatch as aX, type TileflowNauticalAreaLabelStyles as aY, type TileflowNauticalModuleConfig as aZ, type TileflowNauticalModuleOptions as a_, type TileflowBuildingsModuleConfig as aa, type TileflowBuildingsModuleOptions as ab, type TileflowBuildingsThreeDimensionalStyle as ac, type TileflowCompilationDiagnostic as ad, type TileflowCompilationDomainReport as ae, type TileflowCompilationFailure as af, type TileflowCompilationOptions as ag, type TileflowCompilationPhase as ah, type TileflowCompilationPlannerDecision as ai, type TileflowCompilationPlannerStage as aj, type TileflowCompilationReport as ak, type TileflowCompilationResult as al, type TileflowCompilationSuccess as am, type TileflowDataConfig as an, type TileflowDataIdentity as ao, type TileflowDerivedMap as ap, type TileflowDisableOperation as aq, type TileflowFontDirectory as ar, type TileflowGlyphs as as, type TileflowHostedSourceCollection as at, type TileflowHostedTilesetSource as au, type TileflowHostedTilesetType as av, type TileflowIconContributorIdentity as aw, type TileflowIconDirectory as ax, TileflowIconSetError as ay, type TileflowIconSetErrorCode as az, type TileflowDataRequirementsV1 as b, encodeTileflowTreeModel as b$, type TileflowOverlayPlacement as b0, type TileflowPackageDirectory as b1, type TileflowPreparedIconCapabilities as b2, type TileflowRasterDemSourceRequirementV1 as b3, type TileflowRefineOperation as b4, type TileflowRemoveOperation as b5, type TileflowReset as b6, type TileflowResolvedThemeSelection as b7, type TileflowSemanticModules as b8, type TileflowStandaloneMap as b9, type TileflowVegetationModuleOptions as bA, type TileflowVegetationThreeDimensionalStyle as bB, type TileflowVisualValueCategory as bC, type TileflowWaterModuleConfig as bD, type TileflowWaterModuleOptions as bE, type TileflowWaterwayClass as bF, type TileflowWorldData as bG, type TileflowWorldReleaseReference as bH, type TileflowWorldSelection as bI, type TileflowWorldV1Schema as bJ, type VectorTilesData as bK, addresses as bL, aeroways as bM, assertTileflowMapThemeValues as bN, assertTileflowSdfPixels as bO, auditTileflowMapThemeValues as bP, auditTileflowThemeValues as bQ, bathymetry as bR, boundaries as bS, buildings as bT, classifyTileflowVisualProperty as bU, collectTileflowIconSetReferences as bV, createStyle as bW, createStyleResult as bX, decodeTileflowTreeModel as bY, defineTheme as bZ, disable as b_, type TileflowSun as ba, type TileflowSunPreset as bb, type TileflowTheme as bc, type TileflowThemeAmbient as bd, type TileflowThemeAuditContext as be, type TileflowThemeAuditDiagnostic as bf, TileflowThemeAuditError as bg, type TileflowThemeAuditScope as bh, type TileflowThemeDefinition as bi, type TileflowThemeLighting as bj, type TileflowThemeName as bk, type TileflowThemeSun as bl, type TileflowThemeTokens as bm, type TileflowThemeTypography as bn, type TileflowThemeTypographyStyle as bo, type TileflowTransitModuleConfig as bp, type TileflowTransitModuleOptions as bq, type TileflowTransitRailStyle as br, type TileflowTreeForm as bs, type TileflowTreeFormMix as bt, type TileflowTreeModel as bu, type TileflowTreeModelMesh as bv, type TileflowTreeRegion as bw, type TileflowVegetation3D as bx, type TileflowVegetationMode as by, type TileflowVegetationModuleConfig as bz, type TileflowSourceRequirementsV1 as c, tileflowWorld as c$, hashTileflowIconComposition as c0, hostedTileset as c1, iconSet as c2, isCanonicalOpenMapTilesSchema as c3, isSafeLocalPmtilesPath as c4, isTileflowCompilationPhase as c5, isTileflowIconSetSource as c6, isTileflowLocalDirectory as c7, land as c8, landforms as c9, tileflowIconCompositionSchema as cA, tileflowIconMetadataFileName as cB, tileflowIconSetIdSchema as cC, tileflowIconSetPackageIdSchema as cD, tileflowIconSetReferenceSchema as cE, tileflowIconSetSourceSchema as cF, tileflowIconSetTeamIdSchema as cG, tileflowIconSetVersionIdSchema as cH, tileflowIconSourceLimit as cI, tileflowLandformClasses as cJ, tileflowLayerBands as cK, tileflowLocalDirectoryMaximumLength as cL, tileflowLocalDirectoryMessage as cM, tileflowMapIdSchema as cN, tileflowNauticalSourceId as cO, tileflowNauticalV1Schema as cP, tileflowPrimarySourceId as cQ, tileflowRenderedIconIdentitySchema as cR, tileflowStyleSunPreset as cS, tileflowSunDirection as cT, tileflowSunMetadataKey as cU, tileflowSunPosition as cV, tileflowThemeLimits as cW, tileflowTreeForms as cX, tileflowTreeModelIdPattern as cY, tileflowTreeModelLimits as cZ, tileflowVegetationMetadataKey as c_, maplibreOverlay as ca, mixTileflowSunPresets as cb, nautical as cc, openMapTiles as cd, openMapTilesContractVersion as ce, parseTileflowIconComposition as cf, parseTileflowMap as cg, readTileflowSunPreset as ch, readTileflowVegetation3D as ci, refine as cj, remove as ck, reset as cl, resolveMarine as cm, resolveThemeSelection as cn, resolveThemeValues as co, resolveTileflowData as cp, resolveTileflowSun as cq, resolveTileflowTheme as cr, tileflowBandPlacements as cs, tileflowBathymetryDemSourceId as ct, tileflowBathymetrySourceId as cu, tileflowBathymetryV1Schema as cv, tileflowDefaultSunPreset as cw, tileflowIconAppearanceSchema as cx, tileflowIconAuthorMetadataSchema as cy, tileflowIconCompositionMaximumBytes as cz, type TileflowMap as d, tileflowWorldGeneration as d0, tileflowWorldTileJsonUrl as d1, tileflowWorldV1Schema as d2, transit as d3, validateTileflowCompiledIconCapabilities as d4, validateTileflowMap as d5, validateTileflowWorldV1Tilejson as d6, vectorTiles as d7, vegetation as d8, water as d9, 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 };