@tangram.gl/tangram-renderer 0.0.0-stage → 0.0.0

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.
Files changed (321) hide show
  1. package/README.md +59 -2
  2. package/dist/core.js +36923 -0
  3. package/dist/core.js.map +6 -0
  4. package/dist/index.js +32 -0
  5. package/dist/loaders-gl-worker.js +82 -0
  6. package/dist/loaders-gl-worker.js.map +6 -0
  7. package/dist/map-logic.js +2 -0
  8. package/dist/map-logic.js.map +6 -0
  9. package/dist/projected-basemaps-worker.js +3 -0
  10. package/dist/projected-basemaps-worker.js.map +6 -0
  11. package/dist/shader-modules.js +141 -0
  12. package/dist/shader-modules.js.map +6 -0
  13. package/dist/style-schema.js +126 -0
  14. package/dist/style-schema.js.map +6 -0
  15. package/dist/tangram-style.schema.json +882 -0
  16. package/dist/tangram.debug.mjs +37139 -0
  17. package/dist/tangram.debug.mjs.map +6 -0
  18. package/dist/tangram.min.mjs +4950 -0
  19. package/dist/types/builders/earcut.d.ts +15 -0
  20. package/dist/types/core.d.ts +29 -0
  21. package/dist/types/gl/constants.d.ts +2 -0
  22. package/dist/types/gl/globe_mesh.d.ts +48 -0
  23. package/dist/types/gl/glsl.d.ts +17 -0
  24. package/dist/types/gl/vertex-constants.d.ts +4 -0
  25. package/dist/types/gl/vertex-types.d.ts +34 -0
  26. package/dist/types/gl/vertex_data.d.ts +32 -0
  27. package/dist/types/gl/vertex_elements.d.ts +8 -0
  28. package/dist/types/gl/vertex_layout.d.ts +32 -0
  29. package/dist/types/glsl.d.ts +14 -0
  30. package/dist/types/gpu/luma_device_renderer.d.ts +66 -0
  31. package/dist/types/gpu/resource_lifecycle.d.ts +4 -0
  32. package/dist/types/gpu/tangram_gpu_backend.d.ts +151 -0
  33. package/dist/types/index.d.ts +155 -0
  34. package/dist/types/lights/light-definitions.d.ts +121 -0
  35. package/dist/types/map-logic/draped-terrain-bounds.d.ts +41 -0
  36. package/dist/types/map-logic/globe-terrain-preparation.d.ts +85 -0
  37. package/dist/types/map-logic/globe-terrain.d.ts +54 -0
  38. package/dist/types/map-logic/index.d.ts +33 -0
  39. package/dist/types/map-logic/label-identity.d.ts +22 -0
  40. package/dist/types/map-logic/label-placement.d.ts +32 -0
  41. package/dist/types/map-logic/screen-bounds.d.ts +15 -0
  42. package/dist/types/map-logic/terrain-data.d.ts +55 -0
  43. package/dist/types/map-logic/terrain-error.d.ts +51 -0
  44. package/dist/types/map-logic/terrain-ground-topology.d.ts +26 -0
  45. package/dist/types/map-logic/terrain-height-field.d.ts +59 -0
  46. package/dist/types/map-logic/terrain-navigation.d.ts +27 -0
  47. package/dist/types/map-logic/terrain-neighborhood.d.ts +5 -0
  48. package/dist/types/map-logic/terrain-query.d.ts +33 -0
  49. package/dist/types/map-logic/terrain-resource-budget.d.ts +51 -0
  50. package/dist/types/map-logic/terrain-transition-topology.d.ts +23 -0
  51. package/dist/types/map-logic/tile-build-queue.d.ts +51 -0
  52. package/dist/types/map-logic/tile-cache-policy.d.ts +46 -0
  53. package/dist/types/map-logic/tile-residency.d.ts +17 -0
  54. package/dist/types/map-logic/triangle-query-index.d.ts +87 -0
  55. package/dist/types/procedures/js-yaml.d.ts +15 -0
  56. package/dist/types/procedures/mesh-projector.d.ts +107 -0
  57. package/dist/types/procedures/mvt-dependencies.d.ts +20 -0
  58. package/dist/types/procedures/projected-coordinate-transform.d.ts +27 -0
  59. package/dist/types/procedures/projection-batch-executor.d.ts +53 -0
  60. package/dist/types/procedures/scene-yaml-legacy.d.ts +6 -0
  61. package/dist/types/procedures/terrain-draping.d.ts +165 -0
  62. package/dist/types/procedures/terrain-globe.d.ts +6 -0
  63. package/dist/types/procedures/terrain-styled-topology.d.ts +34 -0
  64. package/dist/types/procedures/web-mercator-legacy.d.ts +4 -0
  65. package/dist/types/procedures/web-mercator-math.d.ts +4 -0
  66. package/dist/types/scene/globals.d.ts +11 -0
  67. package/dist/types/scene/ground_footprint.d.ts +16 -0
  68. package/dist/types/scene/host_frame.d.ts +54 -0
  69. package/dist/types/scene/projection_math.d.ts +52 -0
  70. package/dist/types/scene/scene-resource-types.d.ts +177 -0
  71. package/dist/types/scene/scene_bundle.d.ts +69 -0
  72. package/dist/types/scene/visibility_adapter.d.ts +106 -0
  73. package/dist/types/selection/draped-terrain-surface.d.ts +78 -0
  74. package/dist/types/selection/terrain_surface.d.ts +149 -0
  75. package/dist/types/shader-modules/globe-horizon.d.ts +15 -0
  76. package/dist/types/shader-modules/height-decode.d.ts +13 -0
  77. package/dist/types/shader-modules/hillshade.d.ts +13 -0
  78. package/dist/types/shader-modules/index.d.ts +6 -0
  79. package/dist/types/shader-modules/planar.d.ts +12 -0
  80. package/dist/types/shader-modules/sphere-map.d.ts +13 -0
  81. package/dist/types/shader-modules/triplanar.d.ts +15 -0
  82. package/dist/types/sources/decoded_tile_store.d.ts +95 -0
  83. package/dist/types/sources/tile_source_metadata.d.ts +32 -0
  84. package/dist/types/styles/text/fontfaceobserver.d.ts +10 -0
  85. package/dist/types/tile/tile_id.d.ts +37 -0
  86. package/dist/types/tile/tile_traversal_adapter.d.ts +63 -0
  87. package/dist/types/types.d.ts +293 -0
  88. package/dist/types/utils/geo.d.ts +57 -0
  89. package/dist/types/utils/hash.d.ts +1 -0
  90. package/dist/types/utils/log.d.ts +27 -0
  91. package/dist/types/utils/props.d.ts +6 -0
  92. package/dist/types/utils/subscribe.d.ts +10 -0
  93. package/dist/types/utils/thread.d.ts +6 -0
  94. package/dist/types/utils/urls.d.ts +26 -0
  95. package/dist/types/utils/utils.d.ts +26 -0
  96. package/dist/types/utils/version.d.ts +2 -0
  97. package/dist/types/utils/worker-types.d.ts +68 -0
  98. package/dist/types/utils/worker_broker.d.ts +3 -0
  99. package/package.json +103 -3
  100. package/src/builders/common.ts +41 -0
  101. package/src/builders/earcut.d.ts +15 -0
  102. package/src/builders/geometry-types.ts +60 -0
  103. package/src/builders/points.ts +115 -0
  104. package/src/builders/polygons.ts +225 -0
  105. package/src/builders/polylines.ts +682 -0
  106. package/src/builders/wireframe.ts +31 -0
  107. package/src/core.d.ts +29 -0
  108. package/src/core.ts +33 -0
  109. package/src/experimental/loaders-gl-worker.ts +19 -0
  110. package/src/experimental/projected-basemaps-worker.ts +13 -0
  111. package/src/experimental/projected-mesh-cache.ts +137 -0
  112. package/src/experimental/projected-mesh-domain.ts +110 -0
  113. package/src/experimental/projected-mesh-refinement.ts +193 -0
  114. package/src/experimental/projected-mesh.ts +399 -0
  115. package/src/experimental/projected-normal.ts +26 -0
  116. package/src/experimental/projected-symbol-mesh.ts +74 -0
  117. package/src/gl/constants.ts +18 -0
  118. package/src/gl/context.ts +103 -0
  119. package/src/gl/extensions.ts +30 -0
  120. package/src/gl/globe_mesh.ts +285 -0
  121. package/src/gl/glsl.ts +257 -0
  122. package/src/gl/mesh-types.ts +56 -0
  123. package/src/gl/render_state.ts +111 -0
  124. package/src/gl/shader_program.ts +1310 -0
  125. package/src/gl/texture.ts +814 -0
  126. package/src/gl/uniform_buffer.ts +340 -0
  127. package/src/gl/vao.ts +154 -0
  128. package/src/gl/vbo_mesh.ts +349 -0
  129. package/src/gl/vertex-constants.ts +19 -0
  130. package/src/gl/vertex-types.ts +35 -0
  131. package/src/gl/vertex_data.ts +126 -0
  132. package/src/gl/vertex_elements.ts +54 -0
  133. package/src/gl/vertex_layout.ts +241 -0
  134. package/src/glsl.d.ts +14 -0
  135. package/src/gpu/luma_device_renderer.ts +579 -0
  136. package/src/gpu/pixel_readback.ts +51 -0
  137. package/src/gpu/resource_lifecycle.ts +32 -0
  138. package/src/gpu/tangram_gpu_backend.ts +195 -0
  139. package/src/index.d.ts +155 -0
  140. package/src/index.ts +105 -0
  141. package/src/labels/collision-types.ts +94 -0
  142. package/src/labels/collision.ts +273 -0
  143. package/src/labels/collision_grid.ts +61 -0
  144. package/src/labels/intersect.ts +30 -0
  145. package/src/labels/label-types.ts +91 -0
  146. package/src/labels/label.ts +207 -0
  147. package/src/labels/label_line.ts +801 -0
  148. package/src/labels/label_point.ts +131 -0
  149. package/src/labels/main-pass-types.ts +73 -0
  150. package/src/labels/main_pass.ts +221 -0
  151. package/src/labels/point_anchor.ts +100 -0
  152. package/src/labels/point_placement.ts +150 -0
  153. package/src/labels/projected-pass.ts +259 -0
  154. package/src/labels/repeat_group.ts +72 -0
  155. package/src/lights/ambient_light.glsl +18 -0
  156. package/src/lights/directional_light.glsl +39 -0
  157. package/src/lights/geographic-lights.ts +21 -0
  158. package/src/lights/light-definitions.ts +285 -0
  159. package/src/lights/light.ts +590 -0
  160. package/src/lights/lighting-uniforms.ts +80 -0
  161. package/src/lights/lighting-wgsl.ts +116 -0
  162. package/src/lights/material.glsl +237 -0
  163. package/src/lights/material.ts +145 -0
  164. package/src/lights/native-falloff.ts +37 -0
  165. package/src/lights/point_light.glsl +96 -0
  166. package/src/lights/spot_light.glsl +111 -0
  167. package/src/map-logic/draped-terrain-bounds.ts +71 -0
  168. package/src/map-logic/globe-terrain-preparation.ts +217 -0
  169. package/src/map-logic/globe-terrain.ts +296 -0
  170. package/src/map-logic/index.ts +37 -0
  171. package/src/map-logic/label-identity.ts +36 -0
  172. package/src/map-logic/label-placement.ts +117 -0
  173. package/src/map-logic/screen-bounds.ts +34 -0
  174. package/src/map-logic/terrain-data.ts +107 -0
  175. package/src/map-logic/terrain-error.ts +134 -0
  176. package/src/map-logic/terrain-ground-topology.ts +164 -0
  177. package/src/map-logic/terrain-height-field.ts +254 -0
  178. package/src/map-logic/terrain-navigation.ts +50 -0
  179. package/src/map-logic/terrain-neighborhood.ts +43 -0
  180. package/src/map-logic/terrain-query.ts +51 -0
  181. package/src/map-logic/terrain-resource-budget.ts +124 -0
  182. package/src/map-logic/terrain-transition-topology.ts +164 -0
  183. package/src/map-logic/tile-build-queue.ts +110 -0
  184. package/src/map-logic/tile-cache-policy.ts +89 -0
  185. package/src/map-logic/tile-residency.ts +50 -0
  186. package/src/map-logic/triangle-query-index.ts +265 -0
  187. package/src/procedures/js-yaml.d.ts +15 -0
  188. package/src/procedures/mesh-projector.ts +191 -0
  189. package/src/procedures/mlt-loaders.ts +55 -0
  190. package/src/procedures/mvt-dependencies.d.ts +20 -0
  191. package/src/procedures/mvt-legacy.ts +150 -0
  192. package/src/procedures/mvt-loaders.ts +53 -0
  193. package/src/procedures/mvt-parser.ts +48 -0
  194. package/src/procedures/mvt-properties.ts +36 -0
  195. package/src/procedures/mvt-tile-provider.ts +72 -0
  196. package/src/procedures/pmtiles-loader.ts +75 -0
  197. package/src/procedures/projected-coordinate-transform.ts +79 -0
  198. package/src/procedures/projection-batch-executor.ts +140 -0
  199. package/src/procedures/scene-yaml-legacy.ts +16 -0
  200. package/src/procedures/scene-yaml-loaders.ts +10 -0
  201. package/src/procedures/terrain-draping.ts +713 -0
  202. package/src/procedures/terrain-globe.ts +32 -0
  203. package/src/procedures/terrain-styled-topology.ts +184 -0
  204. package/src/procedures/web-mercator-legacy.ts +24 -0
  205. package/src/procedures/web-mercator-math.ts +50 -0
  206. package/src/scene/camera.ts +298 -0
  207. package/src/scene/camera_base.ts +116 -0
  208. package/src/scene/classic_scene.ts +20 -0
  209. package/src/scene/external_camera.ts +101 -0
  210. package/src/scene/globals.ts +120 -0
  211. package/src/scene/ground_footprint.ts +139 -0
  212. package/src/scene/host_frame.ts +326 -0
  213. package/src/scene/projected_tile_lod.ts +125 -0
  214. package/src/scene/projection_math.ts +142 -0
  215. package/src/scene/projection_shaders.ts +183 -0
  216. package/src/scene/renderer.ts +516 -0
  217. package/src/scene/scene-resource-types.ts +174 -0
  218. package/src/scene/scene.ts +2378 -0
  219. package/src/scene/scene_bundle.ts +304 -0
  220. package/src/scene/scene_debug.ts +129 -0
  221. package/src/scene/scene_loader.ts +402 -0
  222. package/src/scene/scene_worker.ts +528 -0
  223. package/src/scene/view.ts +683 -0
  224. package/src/scene/visibility_adapter.ts +319 -0
  225. package/src/scene/worker_url.ts +15 -0
  226. package/src/selection/draped-terrain-surface.ts +377 -0
  227. package/src/selection/selection-types.ts +79 -0
  228. package/src/selection/selection.ts +542 -0
  229. package/src/selection/selection_fragment.glsl +18 -0
  230. package/src/selection/selection_globals.glsl +9 -0
  231. package/src/selection/selection_pixels.ts +59 -0
  232. package/src/selection/selection_vertex.glsl +15 -0
  233. package/src/selection/terrain_surface.ts +298 -0
  234. package/src/shader-modules/globe-horizon.ts +52 -0
  235. package/src/shader-modules/height-decode.ts +41 -0
  236. package/src/shader-modules/hillshade.ts +70 -0
  237. package/src/shader-modules/index.ts +10 -0
  238. package/src/shader-modules/planar.ts +24 -0
  239. package/src/shader-modules/sphere-map.ts +38 -0
  240. package/src/shader-modules/triplanar.ts +45 -0
  241. package/src/sources/aligned_tile_source.ts +122 -0
  242. package/src/sources/data_source.ts +655 -0
  243. package/src/sources/decoded_tile_store.ts +245 -0
  244. package/src/sources/geojson.ts +300 -0
  245. package/src/sources/mvt.ts +247 -0
  246. package/src/sources/raster.ts +341 -0
  247. package/src/sources/shared_tile_source_adapter.ts +117 -0
  248. package/src/sources/sources.ts +10 -0
  249. package/src/sources/tile_source_adapter.ts +84 -0
  250. package/src/sources/tile_source_metadata.ts +65 -0
  251. package/src/sources/tile_source_state.ts +112 -0
  252. package/src/sources/topojson.ts +90 -0
  253. package/src/styles/feature_annotations.ts +16 -0
  254. package/src/styles/filter.ts +190 -0
  255. package/src/styles/geometry-style-types.ts +209 -0
  256. package/src/styles/globe_visibility_wgsl.ts +22 -0
  257. package/src/styles/layer-types.ts +45 -0
  258. package/src/styles/layer.ts +586 -0
  259. package/src/styles/lines/dasharray.ts +49 -0
  260. package/src/styles/lines/lines.ts +707 -0
  261. package/src/styles/lines/lines_wgsl.ts +224 -0
  262. package/src/styles/points/point-runtime-types.ts +125 -0
  263. package/src/styles/points/points.ts +1079 -0
  264. package/src/styles/points/points_fragment.glsl +126 -0
  265. package/src/styles/points/points_vertex.glsl +230 -0
  266. package/src/styles/points/points_wgsl.ts +189 -0
  267. package/src/styles/polygons/polygons.ts +268 -0
  268. package/src/styles/polygons/polygons_fragment.glsl +173 -0
  269. package/src/styles/polygons/polygons_vertex.glsl +213 -0
  270. package/src/styles/polygons/polygons_wgsl.ts +127 -0
  271. package/src/styles/property-types.ts +125 -0
  272. package/src/styles/raster/raster.ts +33 -0
  273. package/src/styles/raster/raster_globals.glsl +46 -0
  274. package/src/styles/style-mixing-types.ts +101 -0
  275. package/src/styles/style-runtime-types.ts +220 -0
  276. package/src/styles/style-schema.ts +133 -0
  277. package/src/styles/style.ts +1033 -0
  278. package/src/styles/style_globals.glsl +69 -0
  279. package/src/styles/style_manager.ts +464 -0
  280. package/src/styles/style_parser.ts +620 -0
  281. package/src/styles/text/font_manager.ts +180 -0
  282. package/src/styles/text/fontfaceobserver.d.ts +10 -0
  283. package/src/styles/text/text-types.ts +220 -0
  284. package/src/styles/text/text.ts +378 -0
  285. package/src/styles/text/text_canvas.ts +773 -0
  286. package/src/styles/text/text_labels.ts +436 -0
  287. package/src/styles/text/text_segments.ts +142 -0
  288. package/src/styles/text/text_settings.ts +228 -0
  289. package/src/styles/text/text_wgsl.ts +159 -0
  290. package/src/styles/text/text_wrap.ts +194 -0
  291. package/src/tile/globe_tile_preload.ts +40 -0
  292. package/src/tile/tangram_tileset_2d.ts +108 -0
  293. package/src/tile/tile-build-types.ts +155 -0
  294. package/src/tile/tile.ts +807 -0
  295. package/src/tile/tile_id.ts +172 -0
  296. package/src/tile/tile_manager.ts +889 -0
  297. package/src/tile/tile_pyramid.ts +119 -0
  298. package/src/tile/tile_resource_cache.ts +91 -0
  299. package/src/tile/tile_traversal_adapter.ts +132 -0
  300. package/src/types.ts +332 -0
  301. package/src/utils/debounce.ts +17 -0
  302. package/src/utils/debug_settings.ts +43 -0
  303. package/src/utils/errors.ts +12 -0
  304. package/src/utils/functions.ts +95 -0
  305. package/src/utils/geo.ts +364 -0
  306. package/src/utils/hash.ts +14 -0
  307. package/src/utils/log.ts +108 -0
  308. package/src/utils/media_capture.ts +193 -0
  309. package/src/utils/merge.ts +44 -0
  310. package/src/utils/obb.ts +134 -0
  311. package/src/utils/props.ts +43 -0
  312. package/src/utils/slice.ts +14 -0
  313. package/src/utils/subscribe.ts +58 -0
  314. package/src/utils/task.ts +154 -0
  315. package/src/utils/thread.ts +26 -0
  316. package/src/utils/urls.ts +223 -0
  317. package/src/utils/utils.ts +310 -0
  318. package/src/utils/vector.ts +197 -0
  319. package/src/utils/version.ts +8 -0
  320. package/src/utils/worker-types.ts +79 -0
  321. package/src/utils/worker_broker.ts +523 -0
@@ -0,0 +1,33 @@
1
+ import type { TerrainSurface, TerrainSurfaceHit, TerrainRay } from "../selection/terrain_surface.js";
2
+ /** Read-only structural hit accepted from loaders.gl-compatible terrain providers. */
3
+ export type TerrainQueryHit = Omit<TerrainSurfaceHit, 'position' | 'coordinate' | 'normal' | 'barycentric'> & {
4
+ /** Displayed XYZ in the provider's content units. */
5
+ readonly position: readonly [number, number, number];
6
+ /** Longitude/latitude degrees and unexaggerated physical source meters. */
7
+ readonly coordinate: readonly [number, number, number];
8
+ /** Unit normal following displayed winding. */
9
+ readonly normal: readonly [number, number, number];
10
+ /** Original triangle vertex order. */
11
+ readonly barycentric: readonly [number, number, number];
12
+ };
13
+ /**
14
+ * Structural loaders.gl terrain surface contract. No package-version, GPU, deck or
15
+ * HostFrame dependency is introduced. The provider owns its current displayed generation.
16
+ */
17
+ export interface TerrainQuerySource {
18
+ /** Mercator XYZ meters or host-defined center-relative globe common units. */
19
+ readonly projection: TerrainSurface['projection'];
20
+ /** Nearest loaded hit, with distance independent of direction length; misses do not certify coverage. */
21
+ intersectRay(ray: TerrainRay, maxDistance?: number): TerrainQueryHit | null;
22
+ /** Optional conservative displayed envelope; null means empty, absence means unknown. */
23
+ getBounds?(): {
24
+ readonly minimum: readonly [number, number, number];
25
+ readonly maximum: readonly [number, number, number];
26
+ } | null;
27
+ }
28
+ /**
29
+ * Borrow a shared terrain query provider without taking disposal or index ownership.
30
+ * Preserve Tangram's mutable result API using detached tuples. In particular, physical
31
+ * coordinate altitude is not reconstructed from exaggerated displayed positions.
32
+ */
33
+ export declare function adaptTerrainQuerySource(source: TerrainQuerySource): TerrainSurface;
@@ -0,0 +1,51 @@
1
+ /** Independently reported storage domains; GPU bytes are estimates, not driver allocation measurements. */
2
+ export type TerrainResourceDomain = 'retained' | 'transient' | 'gpu';
3
+ /** One entry in an atomically admitted allocation batch. */
4
+ export interface TerrainResourceRequest {
5
+ /** Independently reported storage category. */
6
+ readonly domain: TerrainResourceDomain;
7
+ /** Exact represented allocation bytes, a non-negative safe integer. */
8
+ readonly bytes: number;
9
+ /** Optional immutable allocation identity; matching owners count once. */
10
+ readonly identity?: object;
11
+ }
12
+ /** An owned reservation. Releasing twice is safe, including cancellation racing completion. */
13
+ export interface TerrainResourceLease {
14
+ /** Atomically resize a private reservation; shared immutable reservations permit only the same size. */
15
+ resize(bytes: number): boolean;
16
+ /** Release this owner's reservation. */
17
+ release(): void;
18
+ }
19
+ /** Shared admission across source, preparation and renderer owners; never takes resource disposal ownership. */
20
+ export declare class TerrainResourceBudget {
21
+ /** Validated total reservation limit, in bytes. */
22
+ readonly byteLimit: number;
23
+ /** Current allocations, keyed by opaque lease identity rather than reusable tile names. */
24
+ private readonly allocations;
25
+ /** Weak allocation identities permit independent owners to retain one immutable allocation once. */
26
+ private readonly sharedIdentities;
27
+ /** Largest simultaneously reserved total since construction. */
28
+ private peakBytes;
29
+ /** Current total, updated without rescanning every owner. */
30
+ private bytes;
31
+ /** Construct a finite hard admission limit; reservations must precede the represented allocation. */
32
+ constructor(byteLimit: number);
33
+ /** Reserve before allocating; rejection leaves every incumbent owner unchanged. */
34
+ reserve(domain: TerrainResourceDomain, bytes: number): TerrainResourceLease | null;
35
+ /** Retain an immutable allocation by identity; shared leases permit only no-op resizing. */
36
+ reserveShared(identity: object, domain: TerrainResourceDomain, bytes: number): TerrainResourceLease | null;
37
+ /** Create a lease only after its complete admission has been validated. */
38
+ private createLease;
39
+ /** Admit a complete set atomically; invalid or over-budget batches allocate no leases. */
40
+ reserveAll(requests: readonly TerrainResourceRequest[]): TerrainResourceLease[] | null;
41
+ /** Detached unique allocation bytes and live owner-lease count; excludes unregistered resources and driver overhead. */
42
+ getStatistics(): {
43
+ bytes: number;
44
+ peakBytes: number;
45
+ byteLimit: number;
46
+ retainedBytes: number;
47
+ transientBytes: number;
48
+ gpuBytes: number;
49
+ leases: number;
50
+ };
51
+ }
@@ -0,0 +1,23 @@
1
+ import type { TerrainGroundTopology } from "./terrain-ground-topology.js";
2
+ /** Barycentric reference to one unchanged endpoint face. Negative indices mean absent previous coverage. */
3
+ export interface TerrainFaceReference {
4
+ /** Canonical vertex indices in original winding. */
5
+ readonly indices: readonly [number, number, number];
6
+ /** Weights at the final geometric position. */
7
+ readonly weights: readonly [number, number, number];
8
+ }
9
+ /** Common planar refinement of two field generations; neither endpoint is bilinearly resampled at new cuts. */
10
+ export interface TerrainTransitionTopology {
11
+ /** Complete current footprint partition, including newly covered regions. */
12
+ readonly topology: TerrainGroundTopology;
13
+ /** Current endpoint references, one per output vertex. */
14
+ readonly current: readonly TerrainFaceReference[];
15
+ /** Previous endpoint references, null outside the previous admitted footprint. */
16
+ readonly previous: readonly (TerrainFaceReference | null)[];
17
+ }
18
+ /**
19
+ * Split current faces along previous edges, retaining both exact planar endpoint
20
+ * surfaces and newly covered ground. Bounded work/vertices reject atomically.
21
+ * This does not claim spherical coplanarity after nonlinear globe projection.
22
+ */
23
+ export declare function refineTerrainTransitionTopology(current: TerrainGroundTopology, previous: TerrainGroundTopology, maxVertices: number, maxEdgeTests?: number): TerrainTransitionTopology | null;
@@ -0,0 +1,51 @@
1
+ /** A single source/style generation's tile build. */
2
+ export interface TileBuildTask {
3
+ /** Source-normalized tile key. */
4
+ readonly key: string;
5
+ /** Tile identity and scene generation, used to reject stale completions. */
6
+ readonly token: string;
7
+ /** Visible detail precedes pinned preload, which precedes off-screen work. */
8
+ priority: number;
9
+ /** Start worker processing; completion is reported separately. */
10
+ start(): void;
11
+ /** Release ownership when starting the task fails synchronously. */
12
+ fail(error: unknown): void;
13
+ }
14
+ /** CPU-only, callback-based stable-priority scheduling shared by all eyes and sources. */
15
+ export default class TileBuildQueue {
16
+ /** Builds that have been submitted to workers. */
17
+ private readonly active;
18
+ /** Latest unsent generation for each tile key, in stable insertion order. */
19
+ private readonly pending;
20
+ /** Unlimited unless the host opts into a build limit. */
21
+ private limit;
22
+ /** Prevent synchronous completion/failure callbacks from recursively pumping. */
23
+ private pumping;
24
+ /** Nested visibility updates must install all priorities before any submission. */
25
+ private suspensionDepth;
26
+ /** Set a validated concurrency limit without cancelling active work. */
27
+ setLimit(limit: number | undefined): void;
28
+ /** Begin an atomic source/eye-union update without submitting stale queued work. */
29
+ suspend(): void;
30
+ /** Commit a batch and resume priority-based submission after the outermost update. */
31
+ resume(): void;
32
+ /** Queue the latest generation; a duplicate active task is not submitted twice. */
33
+ enqueue(task: TileBuildTask): void;
34
+ /** Update unsent work when the shared eye-union visibility changes. */
35
+ setPriority(key: string, priority: number): void;
36
+ /** Release only the matching generation; late worker replies cannot free new work. */
37
+ finish(key: string, token: string): boolean;
38
+ /** Remove a tile's queued and active ownership after the caller cancels its worker. */
39
+ cancel(key: string): void;
40
+ /** Whether any generation of a tile still owns queue state. */
41
+ has(key: string): boolean;
42
+ /** Active and unsent counts, detached from the queue's internal maps. */
43
+ getCounts(): {
44
+ activeBuilds: number;
45
+ queuedBuilds: number;
46
+ };
47
+ /** Submit available slots, retaining stable ordering among equal priorities. */
48
+ pump(): void;
49
+ /** Release all queue metadata during scene teardown. */
50
+ clear(): void;
51
+ }
@@ -0,0 +1,46 @@
1
+ /** Immutable resource metadata supplied by the host, with unique keys per snapshot. */
2
+ export interface TileCacheRecord {
3
+ /** Stable content identity, including source/style generation when necessary. */
4
+ readonly key: string;
5
+ /** Non-negative finite resource bytes; the host defines which resources are counted. */
6
+ readonly bytes: number;
7
+ /** Whether visibility, loading, proxies, pins or consumers currently prevent eviction. */
8
+ readonly protected: boolean;
9
+ }
10
+ /** Already validated non-negative cache limits; protected records do not consume these budgets. */
11
+ export interface TileCacheOptions {
12
+ /** Maximum evictable entries; omit for unlimited. */
13
+ readonly maxCachedTiles?: number;
14
+ /** Maximum evictable resource bytes; omit for unlimited. */
15
+ readonly maxCachedBytes?: number;
16
+ }
17
+ /** Detached accounting for a host-provided resident snapshot, not a resource allocator. */
18
+ export interface TileCacheStatistics {
19
+ /** All retained records, including protected entries. */
20
+ residentTiles: number;
21
+ /** Entries eligible for eviction. */
22
+ cachedTiles: number;
23
+ /** Bytes in evictable entries. */
24
+ cachedBytes: number;
25
+ /** Entries excluded from eviction. */
26
+ protectedTiles: number;
27
+ /** Bytes in protected entries. */
28
+ protectedBytes: number;
29
+ }
30
+ /** Stable LRU policy owning recency metadata only; selection never disposes or removes content. */
31
+ export declare class TileCachePolicy {
32
+ /** Logical access order, independent of clocks and resource ownership. */
33
+ private readonly lastUsed;
34
+ /** Monotonic access sequence retained across metadata resets. */
35
+ private tick;
36
+ /** Mark a key as recently used; callers decide when visibility counts as reuse. */
37
+ touch(key: string): void;
38
+ /** Release recency metadata after the host removes a record. */
39
+ forget(key: string): void;
40
+ /** Select oldest evictable keys until both budgets fit, without changing input or recency. */
41
+ selectEvictions(records: readonly TileCacheRecord[], options?: TileCacheOptions): string[];
42
+ /** Count the current snapshot without changing recency or retaining record objects. */
43
+ getStatistics(records: readonly TileCacheRecord[]): TileCacheStatistics;
44
+ /** Clear recency metadata without touching host content or resetting the logical clock. */
45
+ clear(): void;
46
+ }
@@ -0,0 +1,17 @@
1
+ /** Shared-consumer residency metadata; does not own tiles, loading or disposal. */
2
+ export declare class TileResidency<ConsumerId = symbol> {
3
+ /** Consumers retain independent snapshots of their selected and visible keys. */
4
+ private readonly consumers;
5
+ /** Attach a consumer with empty state, resetting it if already attached. */
6
+ attachConsumer(id: ConsumerId): void;
7
+ /** Replace a consumer's state with copied keys; unknown consumers are attached. */
8
+ updateConsumer(id: ConsumerId, selected: readonly string[], visible: readonly string[]): void;
9
+ /** Release only this consumer's protection, leaving other consumers intact. */
10
+ detachConsumer(id: ConsumerId): void;
11
+ /** Return a detached, deduplicated union in consumer and key insertion order. */
12
+ getSelectedTileKeys(): string[];
13
+ /** Whether any consumer selects or displays a key, even if its content is not loaded. */
14
+ isProtected(key: string): boolean;
15
+ /** Release all consumer metadata; no tile resources are unloaded. */
16
+ clear(): void;
17
+ }
@@ -0,0 +1,87 @@
1
+ /** Nearest two-sided triangle; the ray parameter retains the supplied direction scale. */
2
+ export interface IndexedTriangleHit {
3
+ /** Original triangle offset, unaffected by bounds partitioning. */
4
+ triangleIndex: number;
5
+ /** Parameter along origin + direction × parameter. */
6
+ parameter: number;
7
+ /** Weights in the original index order. */
8
+ barycentric: [number, number, number];
9
+ }
10
+ /** Detached query result with deterministic work counts for conformance/performance tests. */
11
+ export interface TriangleQueryResult {
12
+ /** Nearest hit in the closed forward segment, or null. */
13
+ hit: IndexedTriangleHit | null;
14
+ /** Number of tested hierarchy boxes. */
15
+ testedBounds: number;
16
+ /** Number of actual triangle intersection tests. */
17
+ testedTriangles: number;
18
+ }
19
+ /** Optional lazy hierarchy policy; the immutable geometry is always retained. */
20
+ export interface TriangleQueryIndexOptions {
21
+ /** Build on the first bounds-intersecting query rather than at construction. */
22
+ lazy?: boolean;
23
+ /** Maximum hierarchy typed-array bytes; insufficient space uses exact linear queries. */
24
+ maxHierarchyBytes?: number;
25
+ /** Never build synchronously from a query; an explicit cooperative iterator warms acceleration. */
26
+ deferBuild?: boolean;
27
+ }
28
+ /** Immutable CPU triangle index; no projection, scene, DOM, GPU or source ownership. */
29
+ export declare class TriangleQueryIndex {
30
+ /** Exact packed acceleration bytes for the same balanced partition used by construction. */
31
+ static getRequiredHierarchyBytes(triangleCount: number, leafSize?: number): number;
32
+ /** Original number of triangles, including degenerates. */
33
+ readonly triangleCount: number;
34
+ /** Exact retained geometry typed-array bytes, independent of lazy acceleration. */
35
+ readonly geometryBytes: number;
36
+ /** Exact required order and packed-node bytes, known before hierarchy allocation. */
37
+ readonly requiredHierarchyBytes: number;
38
+ /** Copied vertices and original topology. */
39
+ private readonly positions;
40
+ private readonly indices;
41
+ /** Partitioned original triangle identifiers. */
42
+ private order?;
43
+ /** Six Float64 bounds and four Uint32 topology offsets per node. */
44
+ private bounds?;
45
+ private topology?;
46
+ /** In-progress storage is counted but never traversed until the whole hierarchy is ready. */
47
+ private preparing?;
48
+ private readonly leafSize;
49
+ private readonly nodeCount;
50
+ private readonly hierarchyAllowed;
51
+ /** Host-driven warming keeps interactive queries from allocating a synchronous hierarchy. */
52
+ private readonly deferBuild;
53
+ private readonly minimum;
54
+ private readonly maximum;
55
+ /** Copy finite XYZ triangles and partition their bounds into small balanced leaves. */
56
+ constructor(positions: ArrayLike<number>, indices: ArrayLike<number>, leafSize?: number, options?: TriangleQueryIndexOptions);
57
+ /** Exact currently retained backing arrays, excluding JavaScript objects and construction scratch. */
58
+ get arrayBytes(): number;
59
+ /** Exact allocated acceleration storage, including pending warming; zero before allocation or in linear mode. */
60
+ get hierarchyBytes(): number;
61
+ /** Detached conservative geometry bounds, including unreferenced finite vertices; null for an empty vertex buffer. */
62
+ getBounds(): {
63
+ minimum: [number, number, number];
64
+ maximum: [number, number, number];
65
+ } | null;
66
+ /** Warm acceleration in bounded scanning/partition chunks; closing the iterator discards partial storage. */
67
+ prepareHierarchySteps(): Generator<void, void, void>;
68
+ /** Detached indexed vertex and its original identity, without exposing mutable backing arrays. */
69
+ getTriangleVertex(triangle: number, vertex: number): {
70
+ index: number;
71
+ position: [number, number, number];
72
+ };
73
+ /** Read one original vertex identity without allocating coordinates or exposing topology storage. */
74
+ getVertexIndex(triangle: number, vertex: number): number;
75
+ /** Two-sided math.gl queries with bounds pruning, finite clipping and stable tie-breaking. */
76
+ queryRay(origin: readonly [number, number, number], direction: readonly [number, number, number], maxParameter?: number, acceptHit?: (hit: IndexedTriangleHit) => boolean): TriangleQueryResult;
77
+ /** Preserve synchronous construction/lazy-query compatibility by consuming the same cooperative builder. */
78
+ private buildHierarchy;
79
+ /** Decode a node without retaining per-node JavaScript objects. */
80
+ private readNode;
81
+ /** Read a detached original vertex for bounds and triangle kernels. */
82
+ private getVertex;
83
+ /** Partition on the longest bounds axis; midpoint splitting bounds recursion depth. */
84
+ private buildNodeSteps;
85
+ /** In-place median selection with cooperative comparisons and no temporary full-size JavaScript order array. */
86
+ private partitionSteps;
87
+ }
@@ -0,0 +1,15 @@
1
+ // tangram-layers
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ declare module 'js-yaml' {
6
+ type SafeLoadOptions = {
7
+ json?: boolean;
8
+ };
9
+
10
+ const yaml: {
11
+ safeLoad(source: string, options?: SafeLoadOptions): Record<string, any>;
12
+ };
13
+
14
+ export default yaml;
15
+ }
@@ -0,0 +1,107 @@
1
+ import type VertexLayout from "../gl/vertex_layout.js";
2
+ /** Detached accounting for optional projection-independent worker preparation. */
3
+ export interface MeshPreparationStatistics {
4
+ /** Number of retained source meshes. */
5
+ entries: number;
6
+ /** Retained original/prepared typed-array bytes. */
7
+ bytes: number;
8
+ /** Successful preparation reuses. */
9
+ hits: number;
10
+ /** Requests requiring a new preparation. */
11
+ misses: number;
12
+ /** Optional detached statistics for the independently bounded, opt-in projected output cache. */
13
+ projectedResults?: {
14
+ entries: number;
15
+ bytes: number;
16
+ hits: number;
17
+ misses: number;
18
+ };
19
+ }
20
+ /** Cumulative projection work in one worker, reset with source preparation; not resident GPU memory. */
21
+ export interface MeshProjectionStatistics {
22
+ /** Meshes whose projection completed successfully. */
23
+ completedMeshes: number;
24
+ /** Requests rejected by preparation, refinement or the projection engine. */
25
+ failedMeshes: number;
26
+ /** Original packed vertices across completed requests. */
27
+ sourceVertices: number;
28
+ /** Final vertices across completed requests, including unchanged originals. */
29
+ outputVertices: number;
30
+ /** Final triangles across completed requests. */
31
+ outputTriangles: number;
32
+ /** Projector batches submitted, including samples and failed requests. */
33
+ projectionBatches: number;
34
+ /** Coordinate pairs submitted to local or host kernels. */
35
+ projectedPositions: number;
36
+ /** Successful sampled edge-refinement rounds. */
37
+ edgeRounds: number;
38
+ /** Successful sampled interior-refinement rounds. */
39
+ interiorRounds: number;
40
+ }
41
+ /** Initial CPU basemap projections; no arbitrary CRS or dynamic camera projection. */
42
+ export type ProjectedBasemapOptions = {
43
+ /** Projection with fixed documented ellipsoid, origin and standard parallels. */
44
+ type: 'equal-earth' | 'albers' | 'equirectangular' | 'mercator' | 'web-mercator';
45
+ /** Maximum Mercator angular edge span before projection; defaults to four degrees. */
46
+ maxAngularSpan?: number;
47
+ /** Per-mesh additional vertex budget; defaults to 65,536. */
48
+ maxAdditionalVertices?: number;
49
+ /** Optional sampled edge/interior error in common units; ribbons use edges only. */
50
+ maxProjectedError?: number;
51
+ /** Reuse completed projected meshes; host engines require a stable worker-local cache identity. */
52
+ cacheProjectedMeshes?: boolean;
53
+ /** Opt into packed surface/annotation elevation and polygon extrusion; ground-only by default. */
54
+ allowElevation?: boolean;
55
+ };
56
+ /** Worker-local packed triangle input; the original tile coordinates must survive. */
57
+ export interface MeshProjectionRequest {
58
+ /** Finalized interleaved vertex bytes. */
59
+ vertices: Uint8Array;
60
+ /** Triangle indices or an unindexed triangle stream. */
61
+ indices: Uint16Array | Uint32Array | false;
62
+ /** Layout shared by main-thread and worker polygon styles. */
63
+ layout: VertexLayout;
64
+ /** Source tile's north-west EPSG:3857 origin and actual data zoom. */
65
+ tile: {
66
+ min: {
67
+ x: number;
68
+ y: number;
69
+ };
70
+ coords: {
71
+ z: number;
72
+ };
73
+ overzoom2?: number;
74
+ style_z?: number;
75
+ };
76
+ /** Lines carry centerline positions and separate packed extrusion; other meshes are already expanded. */
77
+ geometry?: 'polygons' | 'raster' | 'lines' | 'points' | 'text';
78
+ /** Validated scene-wide projection and refinement limits. */
79
+ projection: ProjectedBasemapOptions;
80
+ /** Optional worker-local bridge to a caller-owned host engine; never serialized with the scene. */
81
+ projectPositions?: (coordinates: Float64Array) => Promise<Float64Array>;
82
+ /** Immutable host transform identity for opt-in result caching; absence bypasses host result caching. */
83
+ projectionCacheKey?: string;
84
+ }
85
+ /** Completed packed mesh, independent of projection backend ownership. */
86
+ export type ProjectedMesh = {
87
+ vertices: Uint8Array;
88
+ indices: Uint16Array | Uint32Array;
89
+ };
90
+ /** Worker procedure; a host-injected backend may require an asynchronous batch round trip. */
91
+ export type MeshProjector = (request: MeshProjectionRequest) => ProjectedMesh | Promise<ProjectedMesh>;
92
+ /** Projected lighting currently supports ambient and common-space directional lights only. */
93
+ export declare function validateProjectedLights(value: unknown): void;
94
+ /** Validate fixed or strictly ordered zoom-stop distances with one unit across every stop. */
95
+ export declare function getProjectedRoadUnit(value: unknown, positive?: boolean): 'm' | 'px';
96
+ /** Install the optional CPU projector in this worker without importing math.gl into normal bundles. */
97
+ export declare function registerMeshProjector(projector: MeshProjector, clear?: () => void, getStatistics?: () => MeshPreparationStatistics, getWorkStatistics?: () => MeshProjectionStatistics): void;
98
+ /** Release optional worker preparation at reset without importing its implementation in the core. */
99
+ export declare function clearMeshProjectorPreparation(): void;
100
+ /** Snapshot optional preparation diagnostics without importing the projected worker in the core. */
101
+ export declare function getMeshProjectorPreparationStatistics(): MeshPreparationStatistics | undefined;
102
+ /** Snapshot optional projection work without importing projection kernels into renderer core. */
103
+ export declare function getMeshProjectorWorkStatistics(): MeshProjectionStatistics | undefined;
104
+ /** Fail explicitly when a projected scene omitted its opt-in worker script. */
105
+ export declare function projectTileMesh(request: MeshProjectionRequest): ReturnType<MeshProjector>;
106
+ /** Validate serialized scene options before layouts, shaders or meshes are created. */
107
+ export declare function normalizeProjectedBasemapOptions(value: unknown): ProjectedBasemapOptions;
@@ -0,0 +1,20 @@
1
+ // tangram-layers
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ declare module 'pbf' {
6
+ export default class Pbf {
7
+ constructor (buffer: Uint8Array);
8
+ }
9
+ }
10
+
11
+ declare module '@mapbox/vector-tile' {
12
+ export class VectorTile {
13
+ layers: Record<string, unknown>;
14
+ constructor (pbf: unknown);
15
+ }
16
+
17
+ export class VectorTileFeature {
18
+ static types: Record<number, string>;
19
+ }
20
+ }
@@ -0,0 +1,27 @@
1
+ import type { ProjectionEngineOptions, ProjectionEngine } from "../types.js";
2
+ import type { ProjectedBasemapOptions } from "./mesh-projector.js";
3
+ import type { ProjectionExecutionOptions, ProjectionExecutionStatistics } from "./projection-batch-executor.js";
4
+ /** Tangram's projected common-space units per projected meter. */
5
+ export declare const PROJECTED_COMMON_SCALE: number;
6
+ /** Compile the same geographic-degree to north-positive meter contract on either thread. */
7
+ export declare function getProjectedCoordinateOptions(type: ProjectedBasemapOptions['type']): ProjectionEngineOptions;
8
+ /** Reject transform instances and malformed factories before allocating renderer resources. */
9
+ export declare function validateProjectionEngine(engine: ProjectionEngine | undefined): void;
10
+ /** Scene-owned transforms; the caller owns the engine and its registrations/grids. */
11
+ export declare class HostProjectionEngineAdapter {
12
+ private readonly engine;
13
+ /** Independent asynchronous compilation per CRS pair, shared across meshes and workers. */
14
+ private readonly transforms;
15
+ /** Prevent late worker batches from publishing after scene teardown. */
16
+ private disposed;
17
+ /** Cooperative execution and cancellation for scene-owned host requests. */
18
+ private readonly executor;
19
+ /** Retain, but never mutate or dispose, the supplied factory. */
20
+ constructor(engine: ProjectionEngine, options?: ProjectionExecutionOptions);
21
+ /** Project one packed longitude/latitude batch to common coordinates without modifying input. */
22
+ projectPositions(coordinates: Float64Array, type: ProjectedBasemapOptions['type'], signal?: AbortSignal): Promise<Float64Array>;
23
+ /** Detached host execution counters, separate from mesh and decoded-source residency. */
24
+ getStatistics(): ProjectionExecutionStatistics;
25
+ /** Release scene-owned transforms without taking ownership of the injected factory. */
26
+ dispose(): void;
27
+ }
@@ -0,0 +1,53 @@
1
+ import type { ProjectionEngineTransform } from "../types.js";
2
+ /** Cooperative host-side execution policy; does not limit tile loading or mesh-build capacity. */
3
+ export interface ProjectionExecutionOptions {
4
+ /** Maximum coordinate pairs per synchronous kernel call, 1–65,536; defaults to 4,096. */
5
+ maxBatchPositions?: number;
6
+ }
7
+ /** Per-operation cancellation and output coordinate contract. */
8
+ export interface ProjectionBatchRequestOptions {
9
+ /** Cancel this operation without cancelling shared compilation or other requests. */
10
+ signal?: AbortSignal;
11
+ /** Multiply kernel output by this finite scale; defaults to one. */
12
+ scale?: number;
13
+ /** Optional positive finite output magnitude bound, checked after scaling. */
14
+ maxAbsoluteValue?: number;
15
+ /** Preserve nonfinite inverse-domain sentinels for caller validation; defaults to false. */
16
+ allowNonfinite?: boolean;
17
+ }
18
+ /** Detached cumulative host work; counts kernel submissions, not worker/GPU memory or wall-clock time. */
19
+ export interface ProjectionExecutionStatistics {
20
+ /** Requests still awaiting compilation or cooperative execution. */
21
+ activeRequests: number;
22
+ /** Requests that returned a fully validated output. */
23
+ completedRequests: number;
24
+ /** Requests rejected by compilation, kernels or invalid output. */
25
+ failedRequests: number;
26
+ /** Requests cancelled by a signal or executor teardown. */
27
+ cancelledRequests: number;
28
+ /** Coordinate pairs submitted to kernels, including requests that subsequently fail/cancel. */
29
+ submittedPositions: number;
30
+ /** Synchronous kernel calls attempted, including failed calls. */
31
+ batches: number;
32
+ /** Event-loop yields scheduled between chunks. */
33
+ yieldCount: number;
34
+ /** Configured per-call coordinate pair limit. */
35
+ maxBatchPositions: number;
36
+ }
37
+ /** Validate policy before allocating a renderer, worker endpoint or navigation helper. */
38
+ export declare function normalizeProjectionExecutionOptions(options?: ProjectionExecutionOptions): Required<ProjectionExecutionOptions>;
39
+ /** Run independent packed batches with detached input, cooperative yields and prompt cancellation. */
40
+ export declare class ProjectionBatchExecutor {
41
+ /** Cancels pending operations without taking ownership of transforms or factories. */
42
+ private readonly lifetime;
43
+ /** Detached snapshots are returned instead of exposing these mutable counters. */
44
+ private readonly statistics;
45
+ /** Capture an immutable per-kernel-call execution policy. */
46
+ constructor(options?: ProjectionExecutionOptions);
47
+ /** Capture input before compilation; abort only this output, never a shared factory promise. */
48
+ execute(coordinates: Float64Array, getTransform: () => Promise<ProjectionEngineTransform>, options?: ProjectionBatchRequestOptions): Promise<Float64Array>;
49
+ /** Return detached counters; no factory objects, coordinate buffers or mutable references escape. */
50
+ getStatistics(): ProjectionExecutionStatistics;
51
+ /** Reject pending requests immediately; synchronous kernels cannot be interrupted mid-call. */
52
+ dispose(): void;
53
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Parse a Tangram scene using the renderer's established js-yaml implementation.
3
+ * @param {string} source YAML scene source.
4
+ * @returns Parsed YAML value; scene interpretation and schema validation are separate boundaries.
5
+ */
6
+ export declare function parseSceneYamlLegacy(source: string): unknown;