@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,63 @@
1
+ import type { HostProjection } from "../types.js";
2
+ import type { TileCoordinate, TileCoordinates } from "./tile_id.js";
3
+ import type { GlobeVisibilityLODAdapter, VisibilityLODAdapter, VisibilityViewState } from "../scene/visibility_adapter.js";
4
+ /** Count a finite CPU-projected footprint at data detail 0–6 without allocating tile coordinates.
5
+ * Uses the same XYZ endpoint and single-world clamping rules as actual traversal.
6
+ * This is a per-source candidate count, not a total across multiple sources.
7
+ */
8
+ export declare function countProjectedTileCoordinates(bounds: readonly [number, number, number, number], tileZoom: number): number;
9
+ /** Geographic XYZ tile bounds; an unwrapped world copy retains its longitude offset. */
10
+ export interface GeographicTileBounds {
11
+ /** Western longitude in degrees. */
12
+ west: number;
13
+ /** Southern latitude in degrees. */
14
+ south: number;
15
+ /** Eastern longitude in degrees. */
16
+ east: number;
17
+ /** Northern latitude in degrees. */
18
+ north: number;
19
+ }
20
+ /** One host eye's traversal inputs, independent of deck.gl viewport classes. */
21
+ export interface TangramTraversalEye {
22
+ /** Geographic view state with style and data zoom kept distinct. */
23
+ readonly view: VisibilityViewState;
24
+ /** Projection and footprint policy. */
25
+ readonly projection: HostProjection;
26
+ /** Optional globe/common-space camera position. */
27
+ readonly position?: ArrayLike<number>;
28
+ /** Host eyes need independent bounds; classic views already have calculated bounds. */
29
+ readonly calculateBounds?: boolean;
30
+ /** Projected LOD overrides per-eye automatic detail, never style zoom. */
31
+ readonly dataZoom?: number;
32
+ }
33
+ /** Shared logical traversal state; stereo consumers contribute an eye union. */
34
+ export interface TangramTraversalState {
35
+ /** Empty until the view is ready. */
36
+ readonly eyes: readonly TangramTraversalEye[];
37
+ /** Host render-view collections deduplicate even a single eye; classic ordering remains unchanged. */
38
+ readonly union?: boolean;
39
+ }
40
+ /** Structured geographic bounds suitable for both Tangram and loaders.gl adapters. */
41
+ export declare function getTileGeographicBounds(index: TileCoordinates): GeographicTileBounds;
42
+ /**
43
+ * Traversal seam structurally compatible with loaders.gl Tileset2DAdapter.
44
+ * Tangram owns footprint/LOD inputs; source normalization and fallback pinning remain separate.
45
+ */
46
+ export default class TangramTileTraversalAdapter {
47
+ /** Existing planar/FirstPerson visibility implementation. */
48
+ private readonly planar;
49
+ /** Existing curved globe/horizon visibility implementation. */
50
+ private readonly globe;
51
+ /** Bind the unchanged projection-specific selection procedures. */
52
+ constructor(planar: VisibilityLODAdapter, globe: GlobeVisibilityLODAdapter);
53
+ /** Select the same logical data tiles before source sparse-zoom/overzoom normalization. */
54
+ getTileIndices({ viewState }: {
55
+ viewState: TangramTraversalState;
56
+ }): TileCoordinate[];
57
+ /** Geographic tile metadata, with XYZ's north-down Y convention preserved. */
58
+ getTileBoundingBox(_context: {
59
+ viewState: TangramTraversalState;
60
+ }, index: TileCoordinates): GeographicTileBounds;
61
+ /** Original per-eye projection dispatch and explicit footprint handling. */
62
+ private selectEye;
63
+ }
@@ -0,0 +1,293 @@
1
+ import type { Device, RenderPass } from '@luma.gl/core';
2
+ import type { DecodedTileStatistics } from "./sources/decoded_tile_store.js";
3
+ import type { GlobeVisibilityLODAdapter, VisibilityLODAdapter } from './scene/visibility_adapter.js';
4
+ export type Matrix4 = readonly number[] | Float32Array | Float64Array;
5
+ export type Vector3 = readonly [number, number, number];
6
+ export type SceneDefinition = string | Record<string, unknown> | readonly SceneDefinition[];
7
+ /** Minimal CRS options accepted by a caller-owned math.gl-compatible projection factory. */
8
+ export interface ProjectionEngineOptions {
9
+ /** Source CRS, supplied by Tangram as geographic degrees. */
10
+ from?: string;
11
+ /** Destination CRS, supplied by Tangram as north-positive projected meters. */
12
+ to?: string;
13
+ }
14
+ /** Compiled projection surface used for packed worker mesh coordinates. */
15
+ export interface ProjectionEngineTransform {
16
+ /** Project packed coordinates in place, preserving their typed-array representation. */
17
+ projectFlatSync(coordinates: Float64Array, dimension?: number): Float64Array;
18
+ }
19
+ /** Structural subset of math.gl's factory; ordinary consumers need not install the optional peer. */
20
+ export interface ProjectionEngine {
21
+ /** Compile an independent transform synchronously. */
22
+ createProjection(options?: ProjectionEngineOptions): ProjectionEngineTransform;
23
+ /** Compile a transform after loading any registered lazy projection implementations. */
24
+ createProjectionAsync(options?: ProjectionEngineOptions): Promise<ProjectionEngineTransform>;
25
+ }
26
+ export type Viewport = {
27
+ x?: number;
28
+ y?: number;
29
+ width: number;
30
+ height: number;
31
+ };
32
+ export type GeographicAnchor = {
33
+ longitude: number;
34
+ latitude: number;
35
+ altitude?: number;
36
+ zoom: number;
37
+ };
38
+ /** Geographic projection used by host-provided positions and camera matrices. */
39
+ export type HostProjection = {
40
+ /** Worker-projected flat common coordinates; requires an explicit geographic footprint. */
41
+ type: 'projected';
42
+ /** Ordered unwrapped footprint in degrees; tile selection remains Web Mercator XYZ. */
43
+ visibleBounds: readonly [number, number, number, number];
44
+ } | {
45
+ type: 'web-mercator';
46
+ /** Explicit unwrapped geographic footprint; null means no visible ground, omitted uses camera/legacy bounds. */
47
+ visibleBounds?: readonly [number, number, number, number] | null;
48
+ } | {
49
+ type: 'globe';
50
+ /** Conservative footprint enclosing ground and elevated content: west, south, east, north. */
51
+ visibleBounds: readonly [number, number, number, number];
52
+ /**
53
+ * Conservative maximum rendered elevation in geographic meters above the reference sphere.
54
+ * Zero declares a surface-only scene. Omitted means unknown and disables horizon rejection.
55
+ * Includes terrain, extrusion, offsets and shader displacement; never inferred from camera altitude.
56
+ */
57
+ maxElevation?: number;
58
+ };
59
+ export type HostCamera = {
60
+ view: Matrix4;
61
+ projection: Matrix4;
62
+ position: Vector3;
63
+ };
64
+ export type HostRenderView = {
65
+ id?: string;
66
+ viewport?: Viewport;
67
+ camera: HostCamera;
68
+ /** Optional per-eye footprint anchor; scene/style state still uses the shared anchor. */
69
+ geographicAnchor?: GeographicAnchor;
70
+ /** Optional per-eye geographic bounds for union visibility. */
71
+ projection?: HostProjection;
72
+ };
73
+ /** Opt-in uniform data LOD estimated from projected surface scale across all eyes. */
74
+ export type HostTileLODOptions = {
75
+ /** Target projected tile edge in device pixels; defaults to 512. */
76
+ targetTilePixels?: number;
77
+ /** Device pixels per viewport CSS pixel; defaults to 1. */
78
+ pixelRatio?: number;
79
+ /** Buffered candidate visits across eyes, before deduplication; defaults to 256. */
80
+ maxTiles?: number;
81
+ /** Zoom-level dead band around transitions; defaults to 0.2. */
82
+ hysteresis?: number;
83
+ };
84
+ /** Opt-in worker scheduling and completed off-screen mesh cache limits, shared by all eyes. */
85
+ export type HostTileResourceOptions = {
86
+ /** Maximum concurrently submitted tile builds across sources; positive integer, omitted is unlimited. */
87
+ maxConcurrentBuilds?: number;
88
+ /** Maximum completed off-screen cache entries; non-negative integer, omitted is unlimited. */
89
+ maxCachedTiles?: number;
90
+ /** Cached vertex/index bytes, including globe variants and pending labels; non-negative integer. */
91
+ maxCachedMeshBytes?: number;
92
+ };
93
+ /** Detached renderer resource accounting; textures, CPU data and driver overhead are not included. */
94
+ export type TileResourceStatistics = {
95
+ /** Tile builds submitted to workers, not individual network requests. */
96
+ activeBuilds: number;
97
+ /** Source/style tile builds waiting for a scheduling slot. */
98
+ queuedBuilds: number;
99
+ /** All retained tiles, including visible/proxy/preload and incomplete builds. */
100
+ residentTiles: number;
101
+ /** Completed tiles eligible for cache eviction. */
102
+ cachedTiles: number;
103
+ /** Vertex/index bytes owned by evictable tiles. */
104
+ cachedMeshBytes: number;
105
+ /** Tiles protected from resource-policy eviction. */
106
+ protectedTiles: number;
107
+ /** Vertex/index bytes owned by protected tiles. */
108
+ protectedMeshBytes: number;
109
+ };
110
+ /** Worker-local decoded acquisition accounting, separate from scene-wide mesh-build statistics. */
111
+ export type TileSourceStatistics = DecodedTileStatistics & {
112
+ /** Index of the worker in the scene's current worker pool. */
113
+ workerId: number;
114
+ /** False for workers with external source scripts; custom pipelines always bypass sharing. */
115
+ sharingEnabled: boolean;
116
+ /** Present only for the opt-in projected worker; separate from decoded-source and GPU residency. */
117
+ projectionPreparation?: import("./procedures/mesh-projector.js").MeshPreparationStatistics;
118
+ /** Optional cumulative CPU projection/refinement work, reset when the worker source lifecycle resets. */
119
+ projectionWork?: import("./procedures/mesh-projector.js").MeshProjectionStatistics;
120
+ };
121
+ /** CSS-pixel query coordinates and view routing for asynchronous feature selection. */
122
+ export interface FeatureSelectionOptions {
123
+ /** Non-negative CSS-pixel search radius. */
124
+ radius?: number;
125
+ /** Explicit eye/view identity; omitted canvas queries choose the last overlapping view. */
126
+ renderViewId?: string;
127
+ /** Default view-local pixels, or full-target top-origin CSS pixels for stereo routing. */
128
+ coordinateSpace?: 'view' | 'canvas';
129
+ }
130
+ /** Asynchronous selection of a built-in worker feature or an application-defined payload. */
131
+ export type FeatureSelectionResult = {
132
+ /** Cloneable metadata from the worker; null/undefined means no hit. */
133
+ feature?: unknown;
134
+ /** Whether the selected feature differs from the previous completed query. */
135
+ changed?: boolean;
136
+ /** Caller-requested top-origin CSS pixel, in the selected coordinate space. */
137
+ pixel?: {
138
+ x: number;
139
+ y: number;
140
+ };
141
+ /** View/eye used for the query; pixel remains in the caller's requested coordinate space. */
142
+ renderViewId?: string;
143
+ /** Readback, cancellation or worker failure, preserving Scene's result contract. */
144
+ error?: unknown;
145
+ };
146
+ export type HostFrameOptions = {
147
+ viewport: Viewport;
148
+ geographicAnchor: GeographicAnchor;
149
+ projection?: HostProjection;
150
+ renderViews: readonly HostRenderView[];
151
+ activeRenderViewId?: string;
152
+ tileBuffer?: number;
153
+ /** Optional shared data-tile zoom (integer 0–22, no higher than the shared style zoom). */
154
+ tileZoom?: number;
155
+ /** Automatic shared data LOD; mutually exclusive with tileZoom. */
156
+ tileLOD?: HostTileLODOptions;
157
+ /** Opt-in scheduling/cache policy shared by every render view and source. */
158
+ tileResources?: HostTileResourceOptions;
159
+ /** Retain a global coarse level for globe loading gaps; integer 0–3, omitted disables preloading. */
160
+ globePreloadZoom?: number;
161
+ /** Shared elapsed scene animation time in seconds. */
162
+ animationTime?: number;
163
+ };
164
+ export type LegacyHostFrame = {
165
+ viewport: Viewport;
166
+ view: GeographicAnchor;
167
+ projection?: HostProjection;
168
+ camera: HostCamera;
169
+ tileBuffer?: number;
170
+ /** Optional shared data-tile zoom; omission preserves zoom-driven selection. */
171
+ tileZoom?: number;
172
+ /** Opt-in projected-scale data LOD. */
173
+ tileLOD?: HostTileLODOptions;
174
+ /** Opt-in scheduling/cache policy; omission restores unlimited scheduling/cache defaults. */
175
+ tileResources?: HostTileResourceOptions;
176
+ /** Optional bounded global globe fallback level, integer 0–3. */
177
+ globePreloadZoom?: number;
178
+ /** Shared elapsed scene animation time in seconds. */
179
+ animationTime?: number;
180
+ };
181
+ export type RendererOptions = {
182
+ /** Opt-in worker-side physical terrain displacement; provider loading remains host-owned. */
183
+ terrain?: import("./procedures/terrain-draping.js").TerrainDrapingOptions;
184
+ /** Optional application-owned admission pool shared with terrain source/preparation owners. Captured at creation; never sent to workers. */
185
+ terrainResourceBudget?: import("./map-logic/terrain-resource-budget.js").TerrainResourceBudget;
186
+ /** Optional caller-owned CRS factory for CPU-projected basemaps; ordinary Mercator/globe cameras are unchanged. */
187
+ projectionEngine?: ProjectionEngine;
188
+ /** Host kernel chunking policy; captured at renderer creation and independent of worker/build budgets. */
189
+ projectionEngineExecution?: import("./procedures/projection-batch-executor.js").ProjectionExecutionOptions;
190
+ device?: Device;
191
+ /** Optional worker script URL; otherwise the package uses its embedded worker. */
192
+ workerURL?: string;
193
+ /** Renderer-owned policy for viewport bounds and tile visibility/LOD. */
194
+ visibilityAdapter?: VisibilityLODAdapter;
195
+ /** Renderer-owned policy for selecting tiles for globe projection bounds. */
196
+ globeVisibilityAdapter?: GlobeVisibilityLODAdapter;
197
+ canvas?: HTMLCanvasElement | OffscreenCanvas;
198
+ requestRedraw?: () => void;
199
+ numWorkers?: number;
200
+ /** Positive safe integer limit for shared built-in tile loads in each worker; omitted is unlimited. */
201
+ maxConcurrentTileLoadsPerWorker?: number;
202
+ logLevel?: import("./utils/log.js").LogLevel;
203
+ highDensityDisplay?: boolean;
204
+ introspection?: boolean;
205
+ [option: string]: unknown;
206
+ };
207
+ export type SceneLoadOptions = {
208
+ base_path?: string;
209
+ file_type?: string;
210
+ blocking?: boolean;
211
+ [option: string]: unknown;
212
+ };
213
+ export type SceneUpdateOptions = {
214
+ loading?: boolean;
215
+ rebuild?: boolean | Record<string, unknown>;
216
+ serialize_funcs?: boolean;
217
+ texture_nodes?: import("./scene/scene-resource-types.js").SceneTextureNodes;
218
+ normalize?: boolean;
219
+ fade_in?: boolean;
220
+ };
221
+ export type SceneDataSource = {
222
+ type: string;
223
+ /** Required provider credit HTML for the host to display safely. */
224
+ attribution?: string;
225
+ url?: string;
226
+ tilejson?: string | Record<string, unknown>;
227
+ data?: unknown;
228
+ [property: string]: unknown;
229
+ };
230
+ export type SceneFeature = {
231
+ id?: string | number;
232
+ properties: Record<string, unknown>;
233
+ geometry?: Record<string, unknown>;
234
+ [property: string]: unknown;
235
+ };
236
+ export type SceneQueryOptions = {
237
+ filter?: unknown;
238
+ unique?: boolean | string | readonly string[];
239
+ group_by?: string | readonly string[] | null;
240
+ visible?: boolean | null;
241
+ geometry?: boolean;
242
+ };
243
+ export type SceneScreenshot = {
244
+ url: string;
245
+ blob: Blob;
246
+ type: 'png';
247
+ };
248
+ export type RenderOptions = {
249
+ frame?: HostFrameOptions | LegacyHostFrame;
250
+ renderPass?: RenderPass | null;
251
+ renderViewId?: string;
252
+ force?: boolean;
253
+ };
254
+ export type SceneConfigEvent = {
255
+ config: Record<string, unknown>;
256
+ };
257
+ export type SceneErrorEvent = {
258
+ type?: string;
259
+ message?: string;
260
+ error?: unknown;
261
+ [property: string]: unknown;
262
+ };
263
+ export type SceneEventMap = {
264
+ load: [event: SceneConfigEvent];
265
+ update: [event: SceneConfigEvent];
266
+ pre_update: [willRender: boolean];
267
+ post_update: [willRender: boolean];
268
+ view_complete: [event: {
269
+ first: boolean;
270
+ }];
271
+ error: [event: SceneErrorEvent];
272
+ warning: [event: SceneErrorEvent];
273
+ move: [];
274
+ };
275
+ export type SceneListener<EventName extends keyof SceneEventMap = keyof SceneEventMap> = (...arguments_: SceneEventMap[EventName]) => void;
276
+ export type SceneListeners = {
277
+ [EventName in keyof SceneEventMap]?: SceneListener<EventName>;
278
+ } & {
279
+ [event: string]: ((...arguments_: never[]) => void) | undefined;
280
+ };
281
+ export type WorkerRequest<Message = unknown> = {
282
+ type: 'main_send' | 'worker_send';
283
+ message_id: number;
284
+ method: string;
285
+ message: Message;
286
+ };
287
+ export type WorkerResponse<Message = unknown> = {
288
+ type: 'main_reply' | 'worker_reply';
289
+ message_id: number;
290
+ message?: Message;
291
+ error?: string;
292
+ };
293
+ export type WorkerBrokerMessage<Message = unknown> = WorkerRequest<Message> | WorkerResponse<Message>;
@@ -0,0 +1,57 @@
1
+ export type Coordinate = number[];
2
+ export type Meters = {
3
+ x: number;
4
+ y: number;
5
+ };
6
+ export type Tile = {
7
+ x: number;
8
+ y: number;
9
+ z: number;
10
+ };
11
+ export type Bounds = {
12
+ sw: Meters;
13
+ ne: Meters;
14
+ };
15
+ export type Geometry = {
16
+ type: string;
17
+ coordinates: unknown;
18
+ };
19
+ export type Transform = (coordinate: Coordinate) => void;
20
+ interface GeoNamespace {
21
+ default_source_max_zoom: number;
22
+ default_view_max_zoom: number;
23
+ max_style_zoom: number;
24
+ tile_size: number;
25
+ half_circumference_meters: number;
26
+ circumference_meters: number;
27
+ min_zoom_meters_per_pixel: number;
28
+ tile_scale: number;
29
+ units_per_pixel: number;
30
+ height_scale: number;
31
+ metersPerPixel(z: number): number;
32
+ metersPerTile(z: number): number;
33
+ unitsPerMeter(z: number): number;
34
+ metersForTile(tile: Tile): Meters;
35
+ tileForMeters(coordinates: Coordinate, zoom: number): Tile;
36
+ wrapTile(tile: Tile, mask?: {
37
+ x: boolean;
38
+ y: boolean;
39
+ }): Tile;
40
+ metersToLatLng(coordinates: Coordinate): Coordinate;
41
+ latLngToMeters(coordinates: Coordinate): Coordinate;
42
+ tileSpaceToLatlng(geometry: Geometry, z: number, min: Meters): Geometry;
43
+ copyGeometry(geometry: Geometry | null): Geometry | undefined;
44
+ transformGeometry(geometry: Geometry | null, transform: Transform): void;
45
+ boxIntersect(first: Bounds, second: Bounds): boolean;
46
+ findBoundingBox(polygon: Coordinate[][]): [number, number, number, number];
47
+ geometryType(type: string): 'point' | 'line' | 'polygon' | undefined;
48
+ centroid(polygon: Coordinate[][], relative?: boolean): Coordinate | undefined;
49
+ multiCentroid(polygons: Coordinate[][][]): Coordinate | null;
50
+ signedPolygonRingAreaSum(ring: Coordinate[]): number;
51
+ polygonRingArea(ring: Coordinate[]): number;
52
+ polygonArea(polygon: Coordinate[][] | null): number | undefined;
53
+ multiPolygonArea(polygons: Coordinate[][][]): number;
54
+ ringWinding(ring: Coordinate[]): 'CW' | 'CCW' | undefined;
55
+ }
56
+ export declare const Geo: GeoNamespace;
57
+ export default Geo;
@@ -0,0 +1 @@
1
+ export default function hashString(string: string): number;
@@ -0,0 +1,27 @@
1
+ import type { BrokerWorker } from "./worker-types.js";
2
+ declare const LEVELS: {
3
+ readonly silent: -1;
4
+ readonly error: 0;
5
+ readonly warn: 1;
6
+ readonly info: 2;
7
+ readonly debug: 3;
8
+ readonly trace: 4;
9
+ };
10
+ /** Supported renderer log levels. */
11
+ export type LogLevel = keyof typeof LEVELS;
12
+ /** Per-message renderer logging options. */
13
+ export type LogOptions = {
14
+ level: LogLevel;
15
+ once?: boolean;
16
+ };
17
+ /** Renderer logger with shared level and worker controls. */
18
+ export interface Logger {
19
+ (options: LogLevel | LogOptions, ...messages: unknown[]): Promise<boolean>;
20
+ level: LogLevel;
21
+ workers: BrokerWorker[] | null;
22
+ setLevel(level: LogLevel): void;
23
+ setWorkers?(workers: BrokerWorker[] | null): void;
24
+ reset?(): void;
25
+ }
26
+ declare const log: Logger;
27
+ export default log;
@@ -0,0 +1,6 @@
1
+ type PropertyTarget = Record<PropertyKey, unknown>;
2
+ export type PropertyPath = readonly PropertyKey[];
3
+ export declare function getPropertyPath(object: object, path: PropertyPath): unknown;
4
+ export declare function setPropertyPath(object: object, path: PropertyPath, value: unknown): void;
5
+ export declare function getPropertyPathTarget(object: object, path: PropertyPath): PropertyTarget | undefined;
6
+ export {};
@@ -0,0 +1,10 @@
1
+ export type EventListener = (...data: unknown[]) => void;
2
+ export type EventListeners = Record<string, EventListener | unknown>;
3
+ export type SubscriptionMethods = {
4
+ subscribe(listener: EventListeners): void;
5
+ unsubscribe(listener: EventListeners): void;
6
+ unsubscribeAll(): void;
7
+ trigger(event: string, ...data: unknown[]): void;
8
+ hasSubscribersFor(event: string): boolean;
9
+ };
10
+ export default function subscribeMixin<Target extends object>(target: Target): Target & SubscriptionMethods;
@@ -0,0 +1,6 @@
1
+ export type ThreadState = {
2
+ is_worker: boolean;
3
+ is_main: boolean;
4
+ };
5
+ declare const Thread: ThreadState;
6
+ export default Thread;
@@ -0,0 +1,26 @@
1
+ type URLParameters = Record<string, string | number | boolean | null | undefined>;
2
+ type ObjectURLSource = Blob | MediaSource;
3
+ type URLResult = [string, Array<[string, URLParameters[string]]>];
4
+ /** Adds a base origin to a relative URL. */
5
+ export declare function addBaseURL(url: string, base?: string): string;
6
+ /** An omitted resource URL remains omitted, rather than acquiring a base path. */
7
+ export declare function addBaseURL(url: string | undefined, base?: string): string | undefined;
8
+ /** Returns the directory path portion of a URL. */
9
+ export declare function pathForURL(url: string | object | null | undefined): string;
10
+ /** Returns the filename extension portion of a URL. */
11
+ export declare function extensionForURL(url: string): string | undefined;
12
+ /** Returns whether a URL uses a local data or blob scheme. */
13
+ export declare function isLocalURL(url: unknown): boolean;
14
+ /** Returns whether a URL is relative to its current document. */
15
+ export declare function isRelativeURL(url: unknown): boolean;
16
+ /** Resolves dot-directory components in a relative URL path. */
17
+ export declare function flattenRelativeURL(url: string): string;
18
+ /** Adds query parameters and returns any parameters already present in the URL. */
19
+ export declare function addParamsToURL(url: string, params?: URLParameters): URLResult;
20
+ /** Creates a blob URL, using the vendor-prefixed fallback when necessary. */
21
+ export declare function createObjectURL(url: ObjectURLSource): string | ObjectURLSource;
22
+ /** Revokes a blob URL, using the vendor-prefixed fallback when necessary. */
23
+ export declare function revokeObjectURL(url: string): string | undefined;
24
+ /** Finds the URL of the current script or a matching script element. */
25
+ export declare function findCurrentURL(...paths: string[]): string | undefined;
26
+ export {};
@@ -0,0 +1,26 @@
1
+ import type { TransferEnvelope } from "./worker-types.js";
2
+ type ControlPoint = [number, number | number[]];
3
+ type InterpolationTransform = (value: number) => number;
4
+ type RequestHeaders = Record<string, string>;
5
+ type RequestResponse = {
6
+ body: string | ArrayBuffer | null;
7
+ status: number;
8
+ };
9
+ interface UtilsApi {
10
+ isSafari(): boolean;
11
+ isMicrosoft(): boolean;
12
+ _requests: Record<string, XMLHttpRequest>;
13
+ _proxy_requests: Record<string, boolean>;
14
+ /** Main-thread proxy calls return an envelope; remote worker calls unwrap the response. */
15
+ io<Proxy extends boolean = false>(url: string, timeout?: number, responseType?: XMLHttpRequestResponseType, method?: string, headers?: RequestHeaders, request_key?: string | null, proxy?: Proxy): Promise<Proxy extends false ? RequestResponse : RequestResponse | TransferEnvelope<[RequestResponse]>>;
16
+ cancelRequest(key: string): void | Promise<unknown>;
17
+ serializeWithFunctions(obj: unknown): string | undefined;
18
+ use_high_density_display: boolean;
19
+ device_pixel_ratio?: number;
20
+ updateDevicePixelRatio(): boolean;
21
+ isPowerOf2(value: number): boolean;
22
+ interpolate(x: number, points: ControlPoint[] | unknown, transform?: InterpolationTransform): unknown;
23
+ toCSSColor(color: number[] | null | undefined): string | undefined;
24
+ }
25
+ declare const Utils: UtilsApi;
26
+ export default Utils;
@@ -0,0 +1,2 @@
1
+ declare const _default: string;
2
+ export default _default;
@@ -0,0 +1,68 @@
1
+ /** Worker transport surface; registration still requires a native Worker. */
2
+ export type BrokerWorker = Pick<Worker, 'postMessage' | 'addEventListener'>;
3
+ /** Remote method name and optional serialization for non-cloneable log arguments. */
4
+ export type BrokerMethod = string | {
5
+ method: string;
6
+ stringify?: boolean;
7
+ };
8
+ /** Invocation crossing the main/worker boundary. Arguments are not known to the transport. */
9
+ export interface BrokerInvocation {
10
+ type: 'main_send' | 'worker_send';
11
+ message_id: number;
12
+ method: string;
13
+ message: unknown[];
14
+ /** Optional diagnostic target supplied by older callers. */
15
+ target?: string;
16
+ }
17
+ /** Reply crossing the main/worker boundary. Truthy errors reject the pending invocation. */
18
+ export interface BrokerReply {
19
+ type: 'main_reply' | 'worker_reply';
20
+ message_id: number;
21
+ message?: unknown;
22
+ error?: unknown;
23
+ }
24
+ /** Wire packet, decoded once at the transport boundary. */
25
+ export type BrokerPacket = BrokerInvocation | BrokerReply;
26
+ /** Promise callbacks retained until a reply arrives. */
27
+ export interface PendingBrokerMessage {
28
+ method: string;
29
+ message: unknown[];
30
+ resolve(value: unknown): void;
31
+ reject(error: unknown): void;
32
+ }
33
+ /** Buffer and its original owner, used for legacy post-transfer cleanup. */
34
+ export interface BrokerTransferable {
35
+ object: ArrayBuffer;
36
+ parent: object | null;
37
+ property: string | number | null;
38
+ }
39
+ /** Tuple of remote arguments or the single result wrapped for buffer transfer. */
40
+ export interface TransferEnvelope<Values extends unknown[] = unknown[]> {
41
+ value: Values;
42
+ transferables: BrokerTransferable[];
43
+ }
44
+ /** The legacy wrapper supports both ordinary calls and construction. */
45
+ export interface TransferEnvelopeFactory {
46
+ <Values extends unknown[]>(...value: Values): TransferEnvelope<Values>;
47
+ new <Values extends unknown[]>(...value: Values): TransferEnvelope<Values>;
48
+ }
49
+ /** Thread-specific invocation overloads; the caller supplies its remote result contract. */
50
+ export interface BrokerPostMessage {
51
+ <Result = unknown>(workers: BrokerWorker[], method: BrokerMethod, ...message: unknown[]): Promise<Result[]>;
52
+ <Result = unknown>(worker: BrokerWorker, method: BrokerMethod, ...message: unknown[]): Promise<Result>;
53
+ <Result = unknown>(method: BrokerMethod, ...message: unknown[]): Promise<Result>;
54
+ }
55
+ /** Staged broker object shared with the logger during circular module initialization. */
56
+ export interface WorkerBrokerApi {
57
+ targets: Record<string, unknown>;
58
+ addTarget(name: string, target: unknown): void;
59
+ removeTarget(name: string): void;
60
+ postMessage: BrokerPostMessage;
61
+ /** Installed on the main thread only. */
62
+ addWorker(worker: Worker): void;
63
+ /** Main-thread debugging access to pending invocations. */
64
+ getMessages(): Record<number, PendingBrokerMessage>;
65
+ /** Main-thread debugging access to the next invocation identifier. */
66
+ getMessageId(): number;
67
+ withTransferables: TransferEnvelopeFactory;
68
+ }
@@ -0,0 +1,3 @@
1
+ import type { WorkerBrokerApi } from "./worker-types.js";
2
+ export declare const WorkerBroker: WorkerBrokerApi;
3
+ export default WorkerBroker;