@honua/app-platform 0.1.2-beta.0 → 0.1.7-beta.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 (400) hide show
  1. package/app/index.d.ts.map +1 -1
  2. package/app/index.js +4 -0
  3. package/collaboration/client.d.ts.map +1 -1
  4. package/connect-url-safety.d.ts +53 -0
  5. package/connect-url-safety.js +189 -0
  6. package/contract/discovery.d.ts +34 -0
  7. package/contract/discovery.d.ts.map +1 -1
  8. package/contract/index.d.ts +7 -5
  9. package/contract/index.d.ts.map +1 -1
  10. package/contract/index.js +3 -2
  11. package/contract/pmtiles.d.ts +10 -1
  12. package/contract/pmtiles.d.ts.map +1 -1
  13. package/contract/pmtiles.js +10 -2
  14. package/contract/protocol-module.d.ts +84 -9
  15. package/contract/protocol-module.d.ts.map +1 -1
  16. package/contract/query-filter-fes.d.ts +18 -0
  17. package/contract/query-filter-fes.d.ts.map +1 -0
  18. package/contract/query-filter-fes.js +122 -0
  19. package/contract/query-filter.d.ts +300 -0
  20. package/contract/query-filter.d.ts.map +1 -0
  21. package/contract/query-filter.js +883 -0
  22. package/contract/schema.d.ts +12 -0
  23. package/contract/schema.d.ts.map +1 -1
  24. package/contract/schema.js +34 -0
  25. package/contract/source-capability-support.d.ts.map +1 -1
  26. package/contract/source-capability-support.js +15 -3
  27. package/contract/source.d.ts +45 -25
  28. package/contract/source.d.ts.map +1 -1
  29. package/contract/source.js +719 -479
  30. package/contract/types.d.ts +88 -19
  31. package/contract/types.d.ts.map +1 -1
  32. package/contract/types.js +4 -0
  33. package/contract/widget-source.d.ts.map +1 -1
  34. package/controls/basemap-switcher.d.ts +19 -11
  35. package/controls/basemap-switcher.d.ts.map +1 -1
  36. package/controls/basemap-switcher.js +58 -25
  37. package/controls/catalog.d.ts +105 -0
  38. package/controls/catalog.d.ts.map +1 -0
  39. package/controls/catalog.js +341 -0
  40. package/controls/element-utils.d.ts +9 -0
  41. package/controls/element-utils.d.ts.map +1 -1
  42. package/controls/element-utils.js +17 -0
  43. package/controls/index.d.ts +29 -8
  44. package/controls/index.d.ts.map +1 -1
  45. package/controls/index.js +26 -8
  46. package/controls/layer-list.d.ts +13 -5
  47. package/controls/layer-list.d.ts.map +1 -1
  48. package/controls/layer-list.js +72 -15
  49. package/controls/legend.d.ts +32 -5
  50. package/controls/legend.d.ts.map +1 -1
  51. package/controls/legend.js +95 -25
  52. package/controls/qualification.d.ts +152 -0
  53. package/controls/qualification.d.ts.map +1 -0
  54. package/controls/qualification.js +1265 -0
  55. package/controls/registry.d.ts +104 -0
  56. package/controls/registry.d.ts.map +1 -0
  57. package/controls/registry.js +150 -0
  58. package/controls/swipe-control.d.ts +6 -1
  59. package/controls/swipe-control.d.ts.map +1 -1
  60. package/controls/swipe-control.js +82 -20
  61. package/core/client.d.ts +51 -21
  62. package/core/client.d.ts.map +1 -1
  63. package/core/client.js +234 -54
  64. package/core/error-classifications.d.ts +23 -0
  65. package/core/error-classifications.d.ts.map +1 -1
  66. package/core/error-classifications.js +23 -0
  67. package/core/error-code-registry.d.ts +24 -1
  68. package/core/error-code-registry.d.ts.map +1 -1
  69. package/core/error-code-registry.js +23 -0
  70. package/core/error-envelope.js +2 -0
  71. package/core/errors.d.ts +2 -2
  72. package/core/errors.d.ts.map +1 -1
  73. package/core/errors.js +1 -1
  74. package/core/geoparquet-sql.d.ts +69 -5
  75. package/core/geoparquet-sql.d.ts.map +1 -1
  76. package/core/geoparquet-sql.js +327 -10
  77. package/core/odata-write-codec.d.ts.map +1 -1
  78. package/core/odata-write-codec.js +0 -1
  79. package/core/odata.d.ts +6 -0
  80. package/core/odata.d.ts.map +1 -1
  81. package/core/odata.js +6 -1
  82. package/core/ogc-processes.d.ts +182 -25
  83. package/core/ogc-processes.d.ts.map +1 -1
  84. package/core/ogc-processes.js +602 -30
  85. package/core/process-runner.d.ts +8 -1
  86. package/core/process-runner.d.ts.map +1 -1
  87. package/core/process-runner.js +1 -0
  88. package/core/protocol-transport.d.ts +2 -0
  89. package/core/protocol-transport.d.ts.map +1 -1
  90. package/core/stac.d.ts +32 -0
  91. package/core/stac.d.ts.map +1 -1
  92. package/core/stac.js +158 -23
  93. package/core/surfaces.d.ts.map +1 -1
  94. package/core/surfaces.js +273 -68
  95. package/core/types.d.ts +138 -11
  96. package/core/types.d.ts.map +1 -1
  97. package/core/wfs-axis-order.d.ts +18 -0
  98. package/core/wfs-axis-order.d.ts.map +1 -0
  99. package/core/wfs-axis-order.js +108 -0
  100. package/core/wfs-capabilities.d.ts +65 -24
  101. package/core/wfs-capabilities.d.ts.map +1 -1
  102. package/core/wfs-capabilities.js +237 -27
  103. package/core/wfs-filter.d.ts +26 -3
  104. package/core/wfs-filter.d.ts.map +1 -1
  105. package/core/wfs-filter.js +48 -53
  106. package/core/wfs-protocol-error.d.ts +12 -0
  107. package/core/wfs-protocol-error.d.ts.map +1 -0
  108. package/core/wfs-protocol-error.js +13 -0
  109. package/core/wfs.d.ts +53 -1
  110. package/core/wfs.d.ts.map +1 -1
  111. package/core/wfs.js +251 -29
  112. package/core/wms-feature-info.d.ts +92 -0
  113. package/core/wms-feature-info.d.ts.map +1 -0
  114. package/core/wms-feature-info.js +285 -0
  115. package/core/wms.d.ts +9 -0
  116. package/core/wms.d.ts.map +1 -1
  117. package/core/wms.js +17 -5
  118. package/esri-compat/event-bus.d.ts +20 -0
  119. package/esri-compat/event-bus.d.ts.map +1 -1
  120. package/esri-compat/feature-filter.d.ts +46 -1
  121. package/esri-compat/feature-filter.d.ts.map +1 -1
  122. package/esri-compat/feature-filter.js +49 -0
  123. package/esri-compat/geojson-layer.d.ts +4 -2
  124. package/esri-compat/geojson-layer.d.ts.map +1 -1
  125. package/esri-compat/geojson-layer.js +4 -2
  126. package/esri-compat/identity-manager.js +2 -2
  127. package/esri-compat/imagery-layer.d.ts +2 -1
  128. package/esri-compat/imagery-layer.d.ts.map +1 -1
  129. package/esri-compat/imagery-layer.js +2 -1
  130. package/esri-compat/layer-list.d.ts +8 -1
  131. package/esri-compat/layer-list.d.ts.map +1 -1
  132. package/esri-compat/layer-list.js +11 -4
  133. package/esri-compat/legend.d.ts.map +1 -1
  134. package/esri-compat/legend.js +1 -1
  135. package/esri-compat/locator.d.ts +297 -0
  136. package/esri-compat/locator.d.ts.map +1 -0
  137. package/esri-compat/locator.js +579 -0
  138. package/esri-compat/map-image-layer.d.ts.map +1 -1
  139. package/esri-compat/map-view.d.ts.map +1 -1
  140. package/esri-compat/map-view.js +1 -1
  141. package/esri-compat/scene-view.d.ts.map +1 -1
  142. package/esri-compat/time-slider.d.ts +29 -0
  143. package/esri-compat/time-slider.d.ts.map +1 -1
  144. package/esri-compat/time-slider.js +117 -0
  145. package/esri-compat/wfs-layer.d.ts +2 -1
  146. package/esri-compat/wfs-layer.d.ts.map +1 -1
  147. package/esri-compat/wfs-layer.js +2 -1
  148. package/esri-compat/widget-host.d.ts +42 -6
  149. package/esri-compat/widget-host.d.ts.map +1 -1
  150. package/esri-compat/widget-host.js +99 -10
  151. package/generated-app/projection.d.ts.map +1 -1
  152. package/generated-app/runtime.d.ts.map +1 -1
  153. package/interactions/declarative-contract.d.ts +149 -0
  154. package/interactions/declarative-contract.d.ts.map +1 -0
  155. package/interactions/declarative-contract.js +293 -0
  156. package/interactions/declarative.d.ts +198 -0
  157. package/interactions/declarative.d.ts.map +1 -0
  158. package/interactions/declarative.js +470 -0
  159. package/interactions/feature-state.d.ts +7 -0
  160. package/interactions/feature-state.d.ts.map +1 -1
  161. package/interactions/feature-state.js +10 -2
  162. package/map/data-to-map-bridge.d.ts +1 -1
  163. package/map/data-to-map-bridge.d.ts.map +1 -1
  164. package/map/data-to-map-bridge.js +1 -2
  165. package/map/honua-map.d.ts.map +1 -1
  166. package/map/honua-map.js +1 -1
  167. package/map/index.d.ts +2 -0
  168. package/map/index.d.ts.map +1 -1
  169. package/map/index.js +2 -0
  170. package/map/maplibre-target.js +1 -1
  171. package/map/realtime-reconciliation-adapter.d.ts +98 -0
  172. package/map/realtime-reconciliation-adapter.d.ts.map +1 -0
  173. package/map/realtime-reconciliation-adapter.js +84 -0
  174. package/map/temporal-playback.d.ts +25 -0
  175. package/map/temporal-playback.d.ts.map +1 -1
  176. package/map/temporal-playback.js +29 -1
  177. package/operator/workspace/workspace.d.ts.map +1 -1
  178. package/operator/workspace/workspace.js +0 -2
  179. package/package.json +4 -3
  180. package/query-planner/canonical-filter.d.ts +30 -0
  181. package/query-planner/canonical-filter.d.ts.map +1 -0
  182. package/query-planner/canonical-filter.js +30 -0
  183. package/query-planner/columnar-plan.d.ts +63 -0
  184. package/query-planner/columnar-plan.d.ts.map +1 -0
  185. package/query-planner/columnar-plan.js +94 -0
  186. package/query-planner/diagnostics.d.ts +3 -3
  187. package/query-planner/diagnostics.d.ts.map +1 -1
  188. package/query-planner/diagnostics.js +17 -4
  189. package/query-planner/duckdb.d.ts.map +1 -1
  190. package/query-planner/duckdb.js +16 -2
  191. package/query-planner/execution-context.d.ts.map +1 -1
  192. package/query-planner/execution-context.js +3 -1
  193. package/query-planner/executor.d.ts.map +1 -1
  194. package/query-planner/executor.js +7 -1
  195. package/query-planner/geoservices.d.ts.map +1 -1
  196. package/query-planner/geoservices.js +24 -5
  197. package/query-planner/grpc.d.ts.map +1 -1
  198. package/query-planner/grpc.js +29 -5
  199. package/query-planner/index.d.ts +20 -5
  200. package/query-planner/index.d.ts.map +1 -1
  201. package/query-planner/index.js +16 -3
  202. package/query-planner/ir.d.ts +6 -1
  203. package/query-planner/ir.d.ts.map +1 -1
  204. package/query-planner/ir.js +63 -1
  205. package/query-planner/odata-protocol-module.d.ts +54 -0
  206. package/query-planner/odata-protocol-module.d.ts.map +1 -0
  207. package/query-planner/odata-protocol-module.js +199 -0
  208. package/query-planner/odata-v1.d.ts +23 -0
  209. package/query-planner/odata-v1.d.ts.map +1 -0
  210. package/query-planner/odata-v1.js +202 -0
  211. package/query-planner/odata.d.ts +0 -3
  212. package/query-planner/odata.d.ts.map +1 -1
  213. package/query-planner/odata.js +0 -143
  214. package/query-planner/ogc-features.d.ts.map +1 -1
  215. package/query-planner/ogc-features.js +23 -1
  216. package/query-planner/planner.d.ts +2 -2
  217. package/query-planner/planner.d.ts.map +1 -1
  218. package/query-planner/planner.js +146 -27
  219. package/query-planner/representation.d.ts +59 -0
  220. package/query-planner/representation.d.ts.map +1 -0
  221. package/query-planner/representation.js +140 -0
  222. package/query-planner/types.d.ts +153 -3
  223. package/query-planner/types.d.ts.map +1 -1
  224. package/query-planner/wfs-protocol-module.d.ts +57 -0
  225. package/query-planner/wfs-protocol-module.d.ts.map +1 -0
  226. package/query-planner/wfs-protocol-module.js +731 -0
  227. package/query-planner/wfs-v1.d.ts +41 -0
  228. package/query-planner/wfs-v1.d.ts.map +1 -0
  229. package/query-planner/wfs-v1.js +366 -0
  230. package/query-planner/wfs.d.ts +1 -3
  231. package/query-planner/wfs.d.ts.map +1 -1
  232. package/query-planner/wfs.js +1 -70
  233. package/realtime/checkpoint-store.d.ts +206 -0
  234. package/realtime/checkpoint-store.d.ts.map +1 -0
  235. package/realtime/checkpoint-store.js +504 -0
  236. package/realtime/honua-server.d.ts +8 -0
  237. package/realtime/honua-server.d.ts.map +1 -1
  238. package/realtime/honua-server.js +123 -14
  239. package/realtime/index.d.ts +4 -0
  240. package/realtime/index.d.ts.map +1 -1
  241. package/realtime/index.js +2 -0
  242. package/realtime/reconciliation.d.ts +245 -0
  243. package/realtime/reconciliation.d.ts.map +1 -0
  244. package/realtime/reconciliation.js +377 -0
  245. package/realtime/resumable-transport.d.ts.map +1 -1
  246. package/realtime/sse.d.ts.map +1 -1
  247. package/realtime/sse.js +7 -1
  248. package/realtime/websocket.d.ts.map +1 -1
  249. package/realtime/wire.d.ts +2 -1
  250. package/realtime/wire.d.ts.map +1 -1
  251. package/realtime/wire.js +24 -8
  252. package/replica-sync/errors.d.ts +19 -1
  253. package/replica-sync/errors.d.ts.map +1 -1
  254. package/replica-sync/errors.js +16 -0
  255. package/replica-sync/geoservices.d.ts +260 -0
  256. package/replica-sync/geoservices.d.ts.map +1 -0
  257. package/replica-sync/geoservices.js +1093 -0
  258. package/replica-sync/index.d.ts +5 -1
  259. package/replica-sync/index.d.ts.map +1 -1
  260. package/replica-sync/index.js +3 -1
  261. package/replica-sync/transport-conformance.d.ts +58 -0
  262. package/replica-sync/transport-conformance.d.ts.map +1 -0
  263. package/replica-sync/transport-conformance.js +265 -0
  264. package/replica-sync/types.d.ts +22 -0
  265. package/replica-sync/types.d.ts.map +1 -1
  266. package/runtime/index.d.ts +6 -2
  267. package/runtime/index.d.ts.map +1 -1
  268. package/runtime/index.js +3 -1
  269. package/runtime/load-package.d.ts +24 -0
  270. package/runtime/load-package.d.ts.map +1 -1
  271. package/runtime/load-package.js +45 -1
  272. package/runtime/maplibre-renderer.d.ts +11 -0
  273. package/runtime/maplibre-renderer.d.ts.map +1 -1
  274. package/runtime/maplibre-renderer.js +32 -7
  275. package/runtime/offline-region-protocol.d.ts +73 -0
  276. package/runtime/offline-region-protocol.d.ts.map +1 -0
  277. package/runtime/offline-region-protocol.js +63 -0
  278. package/runtime/offline-region-style.d.ts +78 -0
  279. package/runtime/offline-region-style.d.ts.map +1 -0
  280. package/runtime/offline-region-style.js +147 -0
  281. package/runtime/pmtiles-protocol.d.ts +7 -8
  282. package/runtime/pmtiles-protocol.d.ts.map +1 -1
  283. package/runtime/pmtiles-protocol.js +19 -66
  284. package/runtime/protocol-registry.d.ts +55 -0
  285. package/runtime/protocol-registry.d.ts.map +1 -0
  286. package/runtime/protocol-registry.js +103 -0
  287. package/runtime/runtime.d.ts +2 -0
  288. package/runtime/runtime.d.ts.map +1 -1
  289. package/runtime/runtime.js +6 -1
  290. package/runtime/style-compose.d.ts.map +1 -1
  291. package/runtime/style-compose.js +78 -9
  292. package/scene-workspace/analysis-widgets.d.ts +4 -2
  293. package/scene-workspace/analysis-widgets.d.ts.map +1 -1
  294. package/scene-workspace/analysis-widgets.js +4 -2
  295. package/scene-workspace/camera-correspondence.d.ts +151 -0
  296. package/scene-workspace/camera-correspondence.d.ts.map +1 -0
  297. package/scene-workspace/camera-correspondence.js +220 -0
  298. package/scene-workspace/cesium-adapter.d.ts +230 -29
  299. package/scene-workspace/cesium-adapter.d.ts.map +1 -1
  300. package/scene-workspace/cesium-adapter.js +741 -56
  301. package/scene-workspace/cesium-mount.d.ts +205 -0
  302. package/scene-workspace/cesium-mount.d.ts.map +1 -0
  303. package/scene-workspace/cesium-mount.js +392 -0
  304. package/scene-workspace/cesium-scene-owner.d.ts +160 -0
  305. package/scene-workspace/cesium-scene-owner.d.ts.map +1 -0
  306. package/scene-workspace/cesium-scene-owner.js +205 -0
  307. package/scene-workspace/cesium-state-sync.d.ts +101 -0
  308. package/scene-workspace/cesium-state-sync.d.ts.map +1 -0
  309. package/scene-workspace/cesium-state-sync.js +432 -0
  310. package/scene-workspace/cesium-time.d.ts +346 -0
  311. package/scene-workspace/cesium-time.d.ts.map +1 -0
  312. package/scene-workspace/cesium-time.js +403 -0
  313. package/scene-workspace/index.d.ts +42 -10
  314. package/scene-workspace/index.d.ts.map +1 -1
  315. package/scene-workspace/index.js +32 -7
  316. package/scene-workspace/maplibre-state-sync.d.ts +112 -0
  317. package/scene-workspace/maplibre-state-sync.d.ts.map +1 -0
  318. package/scene-workspace/maplibre-state-sync.js +400 -0
  319. package/scene-workspace/primitives.d.ts +237 -3
  320. package/scene-workspace/primitives.d.ts.map +1 -1
  321. package/scene-workspace/primitives.js +1087 -17
  322. package/scene-workspace/scene-discovery.d.ts +5 -2
  323. package/scene-workspace/scene-discovery.d.ts.map +1 -1
  324. package/scene-workspace/scene-discovery.js +5 -2
  325. package/scene-workspace/scene-view.d.ts +5 -2
  326. package/scene-workspace/scene-view.d.ts.map +1 -1
  327. package/scene-workspace/scene-view.js +5 -2
  328. package/scene-workspace/source-to-cesium.d.ts +141 -8
  329. package/scene-workspace/source-to-cesium.d.ts.map +1 -1
  330. package/scene-workspace/source-to-cesium.js +497 -72
  331. package/scene-workspace/state-sync-port-kit.d.ts +156 -0
  332. package/scene-workspace/state-sync-port-kit.d.ts.map +1 -0
  333. package/scene-workspace/state-sync-port-kit.js +319 -0
  334. package/scene-workspace/state-sync.d.ts +34 -1
  335. package/scene-workspace/state-sync.d.ts.map +1 -1
  336. package/scene-workspace/state-sync.js +48 -0
  337. package/scene-workspace/types.d.ts +8 -0
  338. package/scene-workspace/types.d.ts.map +1 -1
  339. package/scene-workspace/types.js +2 -0
  340. package/scene-workspace/workspace.d.ts +12 -1
  341. package/scene-workspace/workspace.d.ts.map +1 -1
  342. package/scene-workspace/workspace.js +13 -0
  343. package/studio/index.d.ts +24 -7
  344. package/studio/index.d.ts.map +1 -1
  345. package/studio/index.js +21 -7
  346. package/studio/lifecycle-client.d.ts +164 -0
  347. package/studio/lifecycle-client.d.ts.map +1 -0
  348. package/studio/lifecycle-client.js +299 -0
  349. package/studio/lifecycle-errors.d.ts +91 -0
  350. package/studio/lifecycle-errors.d.ts.map +1 -0
  351. package/studio/lifecycle-errors.js +77 -0
  352. package/studio/lifecycle-types.d.ts +321 -0
  353. package/studio/lifecycle-types.d.ts.map +1 -0
  354. package/studio/lifecycle-types.js +22 -0
  355. package/web-components/controller.d.ts.map +1 -1
  356. package/web-components/csp-styles.d.ts +6 -0
  357. package/web-components/csp-styles.d.ts.map +1 -0
  358. package/web-components/csp-styles.js +53 -0
  359. package/web-components/elements.d.ts +158 -2
  360. package/web-components/elements.d.ts.map +1 -1
  361. package/web-components/elements.js +1302 -215
  362. package/web-components/export-redaction.d.ts +252 -0
  363. package/web-components/export-redaction.d.ts.map +1 -0
  364. package/web-components/export-redaction.js +588 -0
  365. package/web-components/export.d.ts +417 -0
  366. package/web-components/export.d.ts.map +1 -0
  367. package/web-components/export.js +719 -0
  368. package/web-components/feature-editor-model.d.ts +265 -0
  369. package/web-components/feature-editor-model.d.ts.map +1 -0
  370. package/web-components/feature-editor-model.js +438 -0
  371. package/web-components/feature-editor-sketch.d.ts +125 -0
  372. package/web-components/feature-editor-sketch.d.ts.map +1 -0
  373. package/web-components/feature-editor-sketch.js +194 -0
  374. package/web-components/feature-editor-workflow.d.ts +286 -0
  375. package/web-components/feature-editor-workflow.d.ts.map +1 -0
  376. package/web-components/feature-editor-workflow.js +889 -0
  377. package/web-components/feature-editor.d.ts +83 -0
  378. package/web-components/feature-editor.d.ts.map +1 -0
  379. package/web-components/feature-editor.js +829 -0
  380. package/web-components/feature-table-engine.d.ts +465 -0
  381. package/web-components/feature-table-engine.d.ts.map +1 -0
  382. package/web-components/feature-table-engine.js +1360 -0
  383. package/web-components/feature-table-view.d.ts +95 -0
  384. package/web-components/feature-table-view.d.ts.map +1 -0
  385. package/web-components/feature-table-view.js +343 -0
  386. package/web-components/index.d.ts +34 -3
  387. package/web-components/index.d.ts.map +1 -1
  388. package/web-components/index.js +35 -2
  389. package/web-components/maplibre-renderer.d.ts.map +1 -1
  390. package/web-components/maplibre-renderer.js +13 -4
  391. package/web-components/measurement.d.ts +3 -1
  392. package/web-components/measurement.d.ts.map +1 -1
  393. package/web-components/measurement.js +62 -18
  394. package/web-components/time-slider.d.ts +122 -0
  395. package/web-components/time-slider.d.ts.map +1 -0
  396. package/web-components/time-slider.js +740 -0
  397. package/web-components/types.d.ts +310 -0
  398. package/web-components/types.d.ts.map +1 -1
  399. package/webmap/convert-label.js +0 -1
  400. package/webmap/convert-symbol.d.ts.map +1 -1
@@ -0,0 +1,465 @@
1
+ /**
2
+ * Bounded feature-table engine — the headless kernel behind
3
+ * `<honua-feature-table>` (issue #681).
4
+ *
5
+ * The engine is deliberately DOM-free so the whole production contract
6
+ * (paging, sort, typed filters, column semantics, budgets, virtualization,
7
+ * linked exploration state, realtime reconciliation, bounded export, and the
8
+ * keyboard focus model) is testable without a browser and reusable by any
9
+ * renderer.
10
+ *
11
+ * Design rules this module holds itself to:
12
+ *
13
+ * - **Public seams only.** Data arrives through the canonical `Source`-shaped
14
+ * query surface ({@link HonuaFeatureTableQuerySource}), typed filters are
15
+ * compiled by `@honua/sdk-js/filter-registry`, linked state flows through an
16
+ * `@honua/sdk-js/exploration` view controller, and realtime deltas arrive as
17
+ * the `@honua/sdk-js/realtime` reconciliation diff. No protocol adapter,
18
+ * renderer, or SDK-private path is imported.
19
+ * - **Never manufacture a count.** {@link HonuaFeatureTableCount} always names
20
+ * the evidence a number came from, and reports `"unknown"` rather than
21
+ * guessing (REQ-004).
22
+ * - **Never materialize a layer.** Every fetch is bounded by
23
+ * {@link HonuaFeatureTableBudgets}; the page cache evicts to stay under the
24
+ * row/byte ceilings and stops issuing work once the request ceiling is
25
+ * reached (REQ-002).
26
+ * - **Identity before linkage.** A table with no resolvable stable row identity
27
+ * enters the `"unsupported"` state instead of keying rows by their position
28
+ * in a page, which would corrupt selection across paging.
29
+ *
30
+ * @module
31
+ */
32
+ import type { DegradedReason, FeatureId, Query, Result, SortSpec, SourceDescriptor } from "../contract/types.js";
33
+ import type { HonuaTypedFeature } from "../core/types.js";
34
+ import type { FilterClause as ExplorationFilterClause, ExplorationViewController, FeatureSelectionTarget } from "../exploration/types.js";
35
+ import type { FilterClause, FilterRegistrySnapshot } from "../filter-registry/index.js";
36
+ import type { QueryExecutionPlan, QueryPlanFidelity } from "../query-planner/types.js";
37
+ import type { RealtimeReconciliationInvalidation, RealtimeReconciliationResetReasonCode } from "../realtime/reconciliation.js";
38
+ /**
39
+ * The exact slice of the canonical `Source` contract this engine needs. A real
40
+ * `Source` from `dataset.source(id)` satisfies it structurally, so consumers
41
+ * never wrap it and tests never stub a protocol adapter.
42
+ */
43
+ export interface HonuaFeatureTableQuerySource<T = Record<string, unknown>> {
44
+ /** Optional descriptor; supplies `schema.primaryKey`, schema identity, and freshness. */
45
+ readonly descriptor?: SourceDescriptor;
46
+ /** Bounded single-page query. */
47
+ query(request?: Query<T>): Promise<Result<T>>;
48
+ /** Forward-only cursor paging. Required for `pagingMode: "cursor"`. */
49
+ stream?(request?: Query<T>): AsyncGenerator<Result<T>, void, undefined>;
50
+ }
51
+ /** Protocol-neutral column value class used for alignment and formatting. */
52
+ export type HonuaFeatureTableColumnType = "string" | "number" | "integer" | "boolean" | "date" | "unknown";
53
+ /** One column of the grid: identity, presentation, and per-column affordances. */
54
+ export interface HonuaFeatureTableColumn {
55
+ readonly field: string;
56
+ readonly label?: string;
57
+ readonly type?: HonuaFeatureTableColumnType;
58
+ /** `false` hides the column without dropping it from the declared order. */
59
+ readonly visible?: boolean;
60
+ readonly sortable?: boolean;
61
+ /** Presentation-only formatter. Always client work; recorded as such in the evidence. */
62
+ readonly format?: (value: unknown) => string;
63
+ }
64
+ /** A resolved column, with every optional narrowed to a concrete value. */
65
+ export interface HonuaFeatureTableResolvedColumn {
66
+ readonly field: string;
67
+ readonly label: string;
68
+ readonly type: HonuaFeatureTableColumnType;
69
+ readonly visible: boolean;
70
+ readonly sortable: boolean;
71
+ readonly format?: (value: unknown) => string;
72
+ }
73
+ /**
74
+ * Stable row key. Shares the `@honua/sdk-js/realtime` feature key space so a
75
+ * realtime reconciliation diff applies directly, and is convertible to an
76
+ * exploration selection target through {@link HonuaFeatureTableRow.target}.
77
+ */
78
+ export type HonuaFeatureTableRowKey = string;
79
+ /** Build the engine's row key. Shares the realtime key space (`sourceId:id`). */
80
+ export declare function featureTableRowKey(sourceId: string, id: FeatureId): HonuaFeatureTableRowKey;
81
+ /** One materialized row inside the bounded window cache. */
82
+ export interface HonuaFeatureTableRow<T = Record<string, unknown>> {
83
+ readonly key: HonuaFeatureTableRowKey;
84
+ readonly id: FeatureId;
85
+ readonly sourceId: string;
86
+ /** Absolute row index in the ordered result, so virtualization is exact. */
87
+ readonly index: number;
88
+ readonly attributes: T;
89
+ readonly geometry?: HonuaTypedFeature<T>["geometry"];
90
+ /** Exploration selection target for this row (stable across paging). */
91
+ readonly target: FeatureSelectionTarget;
92
+ }
93
+ /**
94
+ * Lifecycle of the table. `partial` and `stale` are first-class rather than
95
+ * folded into `ready`, and `cancelled` is distinct from `error`.
96
+ */
97
+ export type HonuaFeatureTableState = "idle" | "loading" | "ready" | "partial" | "stale" | "cancelled" | "unsupported" | "error";
98
+ /** Where a row count came from. `"none"` means no evidence existed. */
99
+ export type HonuaFeatureTableCountEvidence = "result-total-count" | "plan-estimate" | "exhausted-pages" | "loaded-rows" | "none";
100
+ /**
101
+ * Row-count truth. `value` is present only when evidence supports a number;
102
+ * `kind: "unknown"` is returned rather than inventing one (REQ-004).
103
+ */
104
+ export interface HonuaFeatureTableCount {
105
+ readonly kind: "known" | "estimated" | "partial" | "unknown";
106
+ readonly value?: number;
107
+ /** Rows currently materialized in the bounded cache. Always exact. */
108
+ readonly loaded: number;
109
+ readonly evidence: HonuaFeatureTableCountEvidence;
110
+ }
111
+ /** Configurable row, memory, and request ceilings. All are hard limits. */
112
+ export interface HonuaFeatureTableBudgets {
113
+ /** Rows requested per page. */
114
+ readonly pageSize: number;
115
+ /** Hard ceiling on simultaneously materialized rows. Older pages are evicted. */
116
+ readonly maxCachedRows: number;
117
+ /** Hard ceiling on the serialized attribute bytes retained in the cache. */
118
+ readonly maxCachedBytes: number;
119
+ /** Hard ceiling on remote requests for the life of one filter/sort identity. */
120
+ readonly maxRequests: number;
121
+ /** Hard ceiling on rows an export may drain. */
122
+ readonly maxExportRows: number;
123
+ /** Extra rows fetched either side of the visible window. */
124
+ readonly windowOverscan: number;
125
+ }
126
+ /** Conservative defaults sized for an operational browser panel. */
127
+ export declare const DEFAULT_FEATURE_TABLE_BUDGETS: HonuaFeatureTableBudgets;
128
+ /** Which ceiling a bounded operation ran into. */
129
+ export type HonuaFeatureTableBudgetKind = "rows" | "bytes" | "requests" | "export-rows";
130
+ /** Running budget consumption. Exact, and never reset by a render. */
131
+ export interface HonuaFeatureTableBudgetLedger {
132
+ /**
133
+ * Requests issued against the **current** filter/sort/projection identity,
134
+ * which is what `budgets.maxRequests` bounds. Reset when the identity
135
+ * changes, so a new question always gets its own request allowance.
136
+ */
137
+ readonly requests: number;
138
+ /** Requests issued over the engine's whole lifetime. Never reset. */
139
+ readonly lifetimeRequests: number;
140
+ /** Rows transferred over the engine's whole lifetime. Never reset. */
141
+ readonly rows: number;
142
+ /** Attribute bytes transferred over the engine's whole lifetime. Never reset. */
143
+ readonly bytes: number;
144
+ /** Rows dropped by cache eviction over the whole lifetime. Never reset. */
145
+ readonly evictedRows: number;
146
+ /** Ceilings hit under the current identity. */
147
+ readonly exhausted: readonly HonuaFeatureTableBudgetKind[];
148
+ }
149
+ /** Where a unit of query work actually ran. */
150
+ export type HonuaFeatureTableWorkTier = "server" | "worker" | "client";
151
+ /** What the work was for. */
152
+ export type HonuaFeatureTableWorkConcern = "filter" | "sort" | "paging" | "projection" | "format" | "virtualization" | "selection";
153
+ /** One attributed unit of query or presentation work. */
154
+ export interface HonuaFeatureTableWorkItem {
155
+ readonly tier: HonuaFeatureTableWorkTier;
156
+ readonly concern: HonuaFeatureTableWorkConcern;
157
+ readonly detail: string;
158
+ /** Accepted-plan step id, when the work was attributed to a plan step. */
159
+ readonly planStepId?: string;
160
+ }
161
+ /**
162
+ * Evidence for one refresh: the accepted plan's identity and pushdown verdict,
163
+ * the residual work the plan pushed back to the client (or an injected worker),
164
+ * and the presentation work this engine adds on top.
165
+ */
166
+ export interface HonuaFeatureTableQueryEvidence {
167
+ readonly planId?: string;
168
+ readonly planFingerprint?: `sha256:${string}`;
169
+ readonly pushdown?: "full" | "partial";
170
+ readonly fidelity?: QueryPlanFidelity;
171
+ readonly work: readonly HonuaFeatureTableWorkItem[];
172
+ readonly degraded: readonly DegradedReason[];
173
+ /** Page-cache identity digest for this filter/sort/projection generation. */
174
+ readonly cacheKey: string;
175
+ }
176
+ /** Select the work items attributed to one execution tier. */
177
+ export declare function featureTableWorkByTier(evidence: HonuaFeatureTableQueryEvidence, tier: HonuaFeatureTableWorkTier): readonly HonuaFeatureTableWorkItem[];
178
+ /** Scroll geometry the renderer measures and hands back to the engine. */
179
+ export interface HonuaFeatureTableScrollMetrics {
180
+ readonly scrollTop: number;
181
+ readonly rowHeight: number;
182
+ readonly viewportHeight: number;
183
+ }
184
+ /** Inclusive-exclusive row window the renderer should paint. */
185
+ export interface HonuaFeatureTableWindow {
186
+ readonly startIndex: number;
187
+ readonly endIndex: number;
188
+ }
189
+ /**
190
+ * Pure window computation: which absolute row indices a renderer must paint
191
+ * for the given scroll geometry, widened by `overscan` and clamped to
192
+ * `totalRows` when a total is known.
193
+ */
194
+ export declare function featureTableWindow(metrics: HonuaFeatureTableScrollMetrics, options?: {
195
+ readonly overscan?: number;
196
+ readonly totalRows?: number;
197
+ }): HonuaFeatureTableWindow;
198
+ /** The focused grid cell. Survives re-render and non-conflicting deltas. */
199
+ export interface HonuaFeatureTableFocus {
200
+ readonly rowKey: HonuaFeatureTableRowKey;
201
+ readonly field: string;
202
+ }
203
+ /** WAI-ARIA data-grid navigation vocabulary (WCAG 2.2 AA workflow). */
204
+ export type HonuaFeatureTableFocusMove = "up" | "down" | "left" | "right" | "row-start" | "row-end" | "page-up" | "page-down" | "grid-start" | "grid-end";
205
+ /** Documented conflict announced when a delta cannot preserve interaction state. */
206
+ export type HonuaFeatureTableConflictCode = "focused-row-deleted" | "selection-invalidated" | "snapshot-reset" | "schema-changed" | "sort-key-changed";
207
+ /** One announced conflict. Never silent, never a reorder behind the user's back. */
208
+ export interface HonuaFeatureTableConflict {
209
+ readonly code: HonuaFeatureTableConflictCode;
210
+ readonly message: string;
211
+ readonly rowKeys: readonly HonuaFeatureTableRowKey[];
212
+ }
213
+ /**
214
+ * Realtime input. A `RealtimeReconciliationDiff<HonuaTypedFeature<T>>` or
215
+ * `RealtimeReconciliationResult<HonuaTypedFeature<T>>` from
216
+ * `@honua/sdk-js/realtime` satisfies this structurally, so callers pass the
217
+ * reconciler output straight through.
218
+ */
219
+ export interface HonuaFeatureTableRealtimeDiff<T = Record<string, unknown>> {
220
+ readonly changes: readonly {
221
+ readonly kind: "create" | "update" | "delete";
222
+ readonly key: string;
223
+ readonly id: FeatureId;
224
+ readonly sourceId?: string;
225
+ /** Present for `"create"`/`"update"`. */
226
+ readonly record?: {
227
+ readonly feature: HonuaTypedFeature<T>;
228
+ };
229
+ }[];
230
+ readonly reset: boolean;
231
+ readonly resetReason?: RealtimeReconciliationResetReasonCode;
232
+ }
233
+ /** Outcome of applying one realtime diff to the table. */
234
+ export interface HonuaFeatureTableRealtimeOutcome {
235
+ /** True when focus, selection, sort, and window all survived unchanged. */
236
+ readonly preserved: boolean;
237
+ readonly conflicts: readonly HonuaFeatureTableConflict[];
238
+ readonly focus?: HonuaFeatureTableFocus;
239
+ readonly selection: readonly HonuaFeatureTableRowKey[];
240
+ readonly sort: readonly SortSpec[];
241
+ readonly window: HonuaFeatureTableWindow;
242
+ readonly invalidations: readonly RealtimeReconciliationInvalidation[];
243
+ /** Rows patched in place. A delta never reorders a materialized page. */
244
+ readonly patchedRowKeys: readonly HonuaFeatureTableRowKey[];
245
+ }
246
+ /** Bounded export request. Reuses the same paged query path as the grid. */
247
+ export interface HonuaFeatureTableExportRequest {
248
+ readonly format: "csv" | "json";
249
+ /** Requested row ceiling. Clamped to `budgets.maxExportRows`; never raises it. */
250
+ readonly maxRows?: number;
251
+ /** Restrict to the current selection instead of the full filtered result. */
252
+ readonly selectionOnly?: boolean;
253
+ readonly signal?: AbortSignal;
254
+ }
255
+ /** Bounded export result. `truncated` is the policy limit talking, not an error. */
256
+ export interface HonuaFeatureTableExport {
257
+ readonly format: "csv" | "json";
258
+ readonly content: string;
259
+ readonly rowCount: number;
260
+ readonly truncated: boolean;
261
+ readonly limit?: HonuaFeatureTableBudgetKind;
262
+ readonly columns: readonly string[];
263
+ readonly evidence: HonuaFeatureTableQueryEvidence;
264
+ }
265
+ /**
266
+ * Everything that must change the cache key. Omitting any of these would let a
267
+ * stale page answer a different question.
268
+ */
269
+ export interface HonuaFeatureTablePageIdentity {
270
+ readonly sourceId: string;
271
+ readonly sourceVersion?: string;
272
+ readonly schemaVersion?: string;
273
+ readonly planFingerprint?: string;
274
+ readonly filterKey: string;
275
+ readonly sortKey: string;
276
+ readonly projectionKey: string;
277
+ readonly authorizationScope: readonly string[];
278
+ readonly freshness: string;
279
+ }
280
+ /** Deterministic page-cache key. Stable across property insertion order. */
281
+ export declare function featureTablePageCacheKey(identity: HonuaFeatureTablePageIdentity, page?: {
282
+ readonly offset?: number;
283
+ readonly limit?: number;
284
+ readonly cursor?: number;
285
+ }): string;
286
+ /** Forward-only cursor paging or random-access offset paging. */
287
+ export type HonuaFeatureTablePagingMode = "offset" | "cursor";
288
+ /** Paging position and drain state. */
289
+ export interface HonuaFeatureTablePaging {
290
+ readonly mode: HonuaFeatureTablePagingMode;
291
+ readonly pageSize: number;
292
+ readonly loadedPages: number;
293
+ /** True once the source reported no further rows for this identity. */
294
+ readonly exhausted: boolean;
295
+ }
296
+ /** Immutable view of the whole table. Renderers read only this. */
297
+ export interface HonuaFeatureTableSnapshot<T = Record<string, unknown>> {
298
+ readonly sourceId: string | undefined;
299
+ readonly state: HonuaFeatureTableState;
300
+ readonly columns: readonly HonuaFeatureTableResolvedColumn[];
301
+ readonly visibleColumns: readonly HonuaFeatureTableResolvedColumn[];
302
+ /**
303
+ * The window slice, in absolute row order. `undefined` marks a row inside
304
+ * the window whose page is not resident — the renderer paints a placeholder
305
+ * rather than the engine inventing data.
306
+ */
307
+ readonly rows: readonly (HonuaFeatureTableRow<T> | undefined)[];
308
+ readonly window: HonuaFeatureTableWindow;
309
+ readonly count: HonuaFeatureTableCount;
310
+ readonly sort: readonly SortSpec[];
311
+ readonly filters: readonly FilterClause[];
312
+ readonly selection: readonly HonuaFeatureTableRowKey[];
313
+ readonly focus?: HonuaFeatureTableFocus;
314
+ readonly paging: HonuaFeatureTablePaging;
315
+ readonly budgets: HonuaFeatureTableBudgets;
316
+ readonly ledger: HonuaFeatureTableBudgetLedger;
317
+ readonly evidence: HonuaFeatureTableQueryEvidence;
318
+ readonly conflicts: readonly HonuaFeatureTableConflict[];
319
+ readonly stale: boolean;
320
+ readonly message?: string;
321
+ readonly error?: unknown;
322
+ /** Monotonic revision; changes exactly when the snapshot changes. */
323
+ readonly revision: number;
324
+ }
325
+ /** Accepted-plan provider. Called with the composed query before each fetch. */
326
+ export type HonuaFeatureTablePlanner<T = Record<string, unknown>> = (query: Query<T>) => QueryExecutionPlan | undefined;
327
+ export interface CreateHonuaFeatureTableOptions<T = Record<string, unknown>> {
328
+ readonly source: HonuaFeatureTableQuerySource<T>;
329
+ readonly sourceId: string;
330
+ readonly columns?: readonly HonuaFeatureTableColumn[];
331
+ readonly budgets?: Partial<HonuaFeatureTableBudgets>;
332
+ readonly pagingMode?: HonuaFeatureTablePagingMode;
333
+ readonly sort?: readonly SortSpec[];
334
+ readonly filters?: readonly FilterClause[] | FilterRegistrySnapshot;
335
+ /**
336
+ * Attribute carrying stable row identity. Defaults to
337
+ * `descriptor.schema.primaryKey`. Without one the table reports
338
+ * `"unsupported"` instead of keying rows by page position.
339
+ */
340
+ readonly identityField?: string;
341
+ /**
342
+ * Explains the composed query so evidence can attribute pushdown. Pass
343
+ * `(query) => explainQuery({ descriptor, query })` from
344
+ * `@honua/sdk-js/query-planner`; omit to run without plan evidence.
345
+ */
346
+ readonly planner?: HonuaFeatureTablePlanner<T>;
347
+ /** Where the plan's non-remote residual steps actually execute. @default "client" */
348
+ readonly residualExecution?: "worker" | "client";
349
+ /** Stable scope identifiers only. Never credentials. */
350
+ readonly authorizationScope?: readonly string[];
351
+ /** Bounded, credential-screened source version identity for the cache key. */
352
+ readonly sourceVersion?: string;
353
+ /** Whether geometry is requested with each page. @default false */
354
+ readonly returnGeometry?: boolean;
355
+ }
356
+ export interface HonuaFeatureTable<T = Record<string, unknown>> {
357
+ readonly snapshot: HonuaFeatureTableSnapshot<T>;
358
+ subscribe(listener: (snapshot: HonuaFeatureTableSnapshot<T>) => void): () => void;
359
+ /** Discard cached pages and load the window again under the current identity. */
360
+ refresh(options?: {
361
+ readonly signal?: AbortSignal;
362
+ }): Promise<HonuaFeatureTableSnapshot<T>>;
363
+ /** Report scroll geometry; loads only the pages the new window needs. */
364
+ setScroll(metrics: HonuaFeatureTableScrollMetrics): Promise<HonuaFeatureTableSnapshot<T>>;
365
+ /** Replace the multi-column sort. Invalidates the page cache. */
366
+ setSort(sort: readonly SortSpec[]): Promise<HonuaFeatureTableSnapshot<T>>;
367
+ /** Cycle one column asc → desc → unsorted. `additive` keeps the other keys. */
368
+ toggleSort(field: string, options?: {
369
+ readonly additive?: boolean;
370
+ }): Promise<HonuaFeatureTableSnapshot<T>>;
371
+ /** Replace typed filters. Invalidates the page cache. */
372
+ setFilters(filters: readonly FilterClause[] | FilterRegistrySnapshot): Promise<HonuaFeatureTableSnapshot<T>>;
373
+ /** Replace column visibility/order/formatting. Projection changes refetch. */
374
+ setColumns(columns: readonly HonuaFeatureTableColumn[]): Promise<HonuaFeatureTableSnapshot<T>>;
375
+ /** Show/hide one column without reordering the rest. */
376
+ setColumnVisibility(field: string, visible: boolean): Promise<HonuaFeatureTableSnapshot<T>>;
377
+ select(keys: readonly HonuaFeatureTableRowKey[], options?: {
378
+ readonly replace?: boolean;
379
+ }): void;
380
+ deselect(keys?: readonly HonuaFeatureTableRowKey[]): void;
381
+ /** Resolve exploration selection targets (map selection) to table row keys. */
382
+ keysForTargets(targets: readonly FeatureSelectionTarget[]): readonly HonuaFeatureTableRowKey[];
383
+ /** Exploration selection targets for the current selection (table → map). */
384
+ selectionTargets(): readonly FeatureSelectionTarget[];
385
+ setFocus(focus: HonuaFeatureTableFocus | undefined): void;
386
+ /** Move the focused cell; may load the page the new focus lands on. */
387
+ moveFocus(move: HonuaFeatureTableFocusMove): Promise<HonuaFeatureTableSnapshot<T>>;
388
+ /** Apply one realtime diff, preserving interaction state or announcing a conflict. */
389
+ applyRealtimeDiff(diff: HonuaFeatureTableRealtimeDiff<T>): HonuaFeatureTableRealtimeOutcome;
390
+ /** Mark the resident pages stale without discarding them. */
391
+ markStale(message?: string): void;
392
+ /** Bounded export over the same paged query path. Cannot exceed policy. */
393
+ export(request: HonuaFeatureTableExportRequest): Promise<HonuaFeatureTableExport>;
394
+ /** Cancel the in-flight fetch; the table settles in the `"cancelled"` state. */
395
+ cancel(): void;
396
+ dispose(): void;
397
+ }
398
+ /**
399
+ * Create a bounded feature table.
400
+ *
401
+ * The engine starts `"idle"` and performs no I/O until {@link
402
+ * HonuaFeatureTable.refresh} or {@link HonuaFeatureTable.setScroll} is called,
403
+ * so mounting a grid never triggers an unbounded drain.
404
+ */
405
+ export declare function createHonuaFeatureTable<T = Record<string, unknown>>(options: CreateHonuaFeatureTableOptions<T>): HonuaFeatureTable<T>;
406
+ export interface LinkFeatureTableToExplorationOptions {
407
+ /** Sync the table's sort to the shared `sort` slice. @default true */
408
+ readonly sort?: boolean;
409
+ /** Sync column visibility to the shared `visibleFields` slice. @default true */
410
+ readonly visibleFields?: boolean;
411
+ /** Sync table filters with the shared `filters` slice in both directions. @default true */
412
+ readonly filters?: boolean;
413
+ /** Publish the table's selection to the shared `selection` slice. @default true */
414
+ readonly selection?: boolean;
415
+ /** Publish the virtualization window as the shared `page` slice. @default true */
416
+ readonly page?: boolean;
417
+ }
418
+ /**
419
+ * Wire a bounded table to a shared exploration view controller in **both**
420
+ * directions (REQ-003).
421
+ *
422
+ * Table → context: selection, sort, filters, and the virtualization window
423
+ * (as the shared `page` slice) are published as intents from the bound view,
424
+ * so the linked-view preset decides whether peers accept them.
425
+ *
426
+ * Context → table: peer changes to selection, sort, visible fields, and filters
427
+ * are applied to the table. The view controller suppresses self-origin
428
+ * notifications, and this binding additionally guards re-entry, so no feedback
429
+ * loop is possible.
430
+ *
431
+ * Returns an unsubscribe function; call it on component teardown.
432
+ */
433
+ export declare function linkFeatureTableToExploration<T>(table: HonuaFeatureTable<T>, view: ExplorationViewController, options?: LinkFeatureTableToExplorationOptions): () => void;
434
+ /**
435
+ * Project one exploration filter clause onto a filter-registry clause so the
436
+ * shared `filters` slice compiles through the same typed pushdown path as
437
+ * table-owned filters.
438
+ */
439
+ export declare function explorationClauseToFilterClause(id: string, clause: ExplorationFilterClause): FilterClause;
440
+ /**
441
+ * Project a table-owned filter back onto the shared exploration filter shape.
442
+ * Registry-only metadata is intentionally omitted; unsupported clauses (for
443
+ * example spatial masks without a field/operator pair) remain table-local.
444
+ */
445
+ export declare function filterClauseToExplorationClause(clause: FilterClause): ExplorationFilterClause | undefined;
446
+ /**
447
+ * Default cell formatting. Pure presentation (always client work): `null` and
448
+ * `undefined` render as an empty string rather than the words
449
+ * `"null"`/`"undefined"`.
450
+ */
451
+ export declare function formatFeatureTableCell(value: unknown, column?: HonuaFeatureTableResolvedColumn): string;
452
+ /** `aria-sort` token for one column, per the WAI-ARIA grid pattern. */
453
+ export declare function featureTableAriaSort(field: string, sort: readonly SortSpec[]): "ascending" | "descending" | "none" | "other";
454
+ /**
455
+ * Screen-reader announcement for the current result truth. Deliberately says
456
+ * "at least" for partial results instead of presenting a loaded-row count as a
457
+ * total (REQ-004).
458
+ */
459
+ export declare function describeFeatureTableCount(count: HonuaFeatureTableCount): string;
460
+ /**
461
+ * `aria-rowcount` for the grid. Returns `-1` — the ARIA value for "total
462
+ * unknown" — instead of substituting the loaded-row count (REQ-004).
463
+ */
464
+ export declare function featureTableAriaRowCount(count: HonuaFeatureTableCount): number;
465
+ //# sourceMappingURL=feature-table-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature-table-engine.d.ts","sourceRoot":"","sources":["../../../src/web-components/feature-table-engine.ts"],"names":[],"mappings":"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"}