@photivra/engine 0.6.0 → 1.0.1

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 (750) hide show
  1. package/AGENTS.md +674 -0
  2. package/CHANGELOG.md +191 -0
  3. package/CITATION.cff +1 -1
  4. package/CONTRIBUTING.md +76 -0
  5. package/DCO +33 -0
  6. package/NODE_SUPPORT.md +37 -0
  7. package/NOTICE +2 -0
  8. package/README.md +139 -72
  9. package/SECURITY.md +55 -0
  10. package/THIRD_PARTY.md +63 -0
  11. package/dist/camera/equivalent-focal-length.d.ts +9 -0
  12. package/dist/camera/equivalent-focal-length.d.ts.map +1 -1
  13. package/dist/camera/equivalent-focal-length.js +9 -0
  14. package/dist/camera/equivalent-focal-length.js.map +1 -1
  15. package/dist/camera/field-of-view.d.ts +13 -0
  16. package/dist/camera/field-of-view.d.ts.map +1 -1
  17. package/dist/camera/field-of-view.js +13 -0
  18. package/dist/camera/field-of-view.js.map +1 -1
  19. package/dist/camera/projected-object-size.d.ts +8 -0
  20. package/dist/camera/projected-object-size.d.ts.map +1 -1
  21. package/dist/camera/projected-object-size.js +8 -0
  22. package/dist/camera/projected-object-size.js.map +1 -1
  23. package/dist/capture/capture-export-metadata.d.ts +60 -0
  24. package/dist/capture/capture-export-metadata.d.ts.map +1 -0
  25. package/dist/capture/capture-export-metadata.js +62 -0
  26. package/dist/capture/capture-export-metadata.js.map +1 -0
  27. package/dist/capture/environment-raw-producer.d.ts +55 -0
  28. package/dist/capture/environment-raw-producer.d.ts.map +1 -0
  29. package/dist/capture/environment-raw-producer.js +88 -0
  30. package/dist/capture/environment-raw-producer.js.map +1 -0
  31. package/dist/capture/export-jpeg.d.ts +12 -0
  32. package/dist/capture/export-jpeg.d.ts.map +1 -0
  33. package/dist/capture/export-jpeg.js +126 -0
  34. package/dist/capture/export-jpeg.js.map +1 -0
  35. package/dist/capture/export-tiff.d.ts +45 -0
  36. package/dist/capture/export-tiff.d.ts.map +1 -0
  37. package/dist/capture/export-tiff.js +129 -0
  38. package/dist/capture/export-tiff.js.map +1 -0
  39. package/dist/capture/focus-control.d.ts +210 -0
  40. package/dist/capture/focus-control.d.ts.map +1 -0
  41. package/dist/capture/focus-control.js +664 -0
  42. package/dist/capture/focus-control.js.map +1 -0
  43. package/dist/capture/linear-encoding.d.ts +59 -0
  44. package/dist/capture/linear-encoding.d.ts.map +1 -0
  45. package/dist/capture/linear-encoding.js +98 -0
  46. package/dist/capture/linear-encoding.js.map +1 -0
  47. package/dist/capture/photographic-export.d.ts +135 -0
  48. package/dist/capture/photographic-export.d.ts.map +1 -0
  49. package/dist/capture/photographic-export.js +273 -0
  50. package/dist/capture/photographic-export.js.map +1 -0
  51. package/dist/capture/raw-frame-limits.d.ts +12 -0
  52. package/dist/capture/raw-frame-limits.d.ts.map +1 -0
  53. package/dist/capture/raw-frame-limits.js +13 -0
  54. package/dist/capture/raw-frame-limits.js.map +1 -0
  55. package/dist/capture/raw-frame-reconstruction.d.ts +48 -0
  56. package/dist/capture/raw-frame-reconstruction.d.ts.map +1 -0
  57. package/dist/capture/raw-frame-reconstruction.js +146 -0
  58. package/dist/capture/raw-frame-reconstruction.js.map +1 -0
  59. package/dist/capture/release-sequence.d.ts +120 -0
  60. package/dist/capture/release-sequence.d.ts.map +1 -0
  61. package/dist/capture/release-sequence.js +446 -0
  62. package/dist/capture/release-sequence.js.map +1 -0
  63. package/dist/capture/sensor-raw-frame.d.ts +34 -0
  64. package/dist/capture/sensor-raw-frame.d.ts.map +1 -0
  65. package/dist/capture/sensor-raw-frame.js +106 -0
  66. package/dist/capture/sensor-raw-frame.js.map +1 -0
  67. package/dist/capture/sensor-raw-producer.d.ts +51 -0
  68. package/dist/capture/sensor-raw-producer.d.ts.map +1 -0
  69. package/dist/capture/sensor-raw-producer.js +235 -0
  70. package/dist/capture/sensor-raw-producer.js.map +1 -0
  71. package/dist/capture/simulated-capture.d.ts +125 -0
  72. package/dist/capture/simulated-capture.d.ts.map +1 -0
  73. package/dist/capture/simulated-capture.js +248 -0
  74. package/dist/capture/simulated-capture.js.map +1 -0
  75. package/dist/color/capture-color.d.ts +73 -0
  76. package/dist/color/capture-color.d.ts.map +1 -0
  77. package/dist/color/capture-color.js +145 -0
  78. package/dist/color/capture-color.js.map +1 -0
  79. package/dist/color/sensor-color-development.d.ts +23 -0
  80. package/dist/color/sensor-color-development.d.ts.map +1 -0
  81. package/dist/color/sensor-color-development.js +56 -0
  82. package/dist/color/sensor-color-development.js.map +1 -0
  83. package/dist/color/white-balance.d.ts +175 -0
  84. package/dist/color/white-balance.d.ts.map +1 -0
  85. package/dist/color/white-balance.js +606 -0
  86. package/dist/color/white-balance.js.map +1 -0
  87. package/dist/composition/image-formation-plan.d.ts +481 -0
  88. package/dist/composition/image-formation-plan.d.ts.map +1 -0
  89. package/dist/composition/image-formation-plan.js +2499 -0
  90. package/dist/composition/image-formation-plan.js.map +1 -0
  91. package/dist/composition/plan-consumer.d.ts +53 -0
  92. package/dist/composition/plan-consumer.d.ts.map +1 -0
  93. package/dist/composition/plan-consumer.js +119 -0
  94. package/dist/composition/plan-consumer.js.map +1 -0
  95. package/dist/core/calculation-result.d.ts.map +1 -1
  96. package/dist/core/calculation-result.js +6 -0
  97. package/dist/core/calculation-result.js.map +1 -1
  98. package/dist/core/canonical-json.d.ts +18 -0
  99. package/dist/core/canonical-json.d.ts.map +1 -0
  100. package/dist/core/canonical-json.js +44 -0
  101. package/dist/core/canonical-json.js.map +1 -0
  102. package/dist/core/configuration-error.d.ts +6 -0
  103. package/dist/core/configuration-error.d.ts.map +1 -1
  104. package/dist/core/configuration-error.js +6 -0
  105. package/dist/core/configuration-error.js.map +1 -1
  106. package/dist/core/evidence-provenance.d.ts +6 -0
  107. package/dist/core/evidence-provenance.d.ts.map +1 -1
  108. package/dist/core/evidence-provenance.js +7 -0
  109. package/dist/core/evidence-provenance.js.map +1 -1
  110. package/dist/core/image-formation.d.ts +9 -3
  111. package/dist/core/image-formation.d.ts.map +1 -1
  112. package/dist/core/image-formation.js +29 -5
  113. package/dist/core/image-formation.js.map +1 -1
  114. package/dist/core/owned-data.d.ts +25 -0
  115. package/dist/core/owned-data.d.ts.map +1 -0
  116. package/dist/core/owned-data.js +34 -0
  117. package/dist/core/owned-data.js.map +1 -0
  118. package/dist/core/record-validation.d.ts +17 -0
  119. package/dist/core/record-validation.d.ts.map +1 -0
  120. package/dist/core/record-validation.js +44 -0
  121. package/dist/core/record-validation.js.map +1 -0
  122. package/dist/core/scientific-assurance.d.ts +101 -0
  123. package/dist/core/scientific-assurance.d.ts.map +1 -0
  124. package/dist/core/scientific-assurance.js +301 -0
  125. package/dist/core/scientific-assurance.js.map +1 -0
  126. package/dist/core/spectral-composition.d.ts +106 -0
  127. package/dist/core/spectral-composition.d.ts.map +1 -0
  128. package/dist/core/spectral-composition.js +334 -0
  129. package/dist/core/spectral-composition.js.map +1 -0
  130. package/dist/core/spectral.d.ts +34 -0
  131. package/dist/core/spectral.d.ts.map +1 -0
  132. package/dist/core/spectral.js +57 -0
  133. package/dist/core/spectral.js.map +1 -0
  134. package/dist/core/validation.d.ts +6 -0
  135. package/dist/core/validation.d.ts.map +1 -1
  136. package/dist/core/validation.js +6 -0
  137. package/dist/core/validation.js.map +1 -1
  138. package/dist/core/version.d.ts +9 -0
  139. package/dist/core/version.d.ts.map +1 -0
  140. package/dist/core/version.js +10 -0
  141. package/dist/core/version.js.map +1 -0
  142. package/dist/equipment/exposure-capabilities.d.ts +125 -0
  143. package/dist/equipment/exposure-capabilities.d.ts.map +1 -0
  144. package/dist/equipment/exposure-capabilities.js +391 -0
  145. package/dist/equipment/exposure-capabilities.js.map +1 -0
  146. package/dist/equipment/generic-tier-assets.d.ts +82 -0
  147. package/dist/equipment/generic-tier-assets.d.ts.map +1 -0
  148. package/dist/equipment/generic-tier-assets.js +119 -0
  149. package/dist/equipment/generic-tier-assets.js.map +1 -0
  150. package/dist/equipment/generic-tier-presets.d.ts +57 -0
  151. package/dist/equipment/generic-tier-presets.d.ts.map +1 -0
  152. package/dist/equipment/generic-tier-presets.js +122 -0
  153. package/dist/equipment/generic-tier-presets.js.map +1 -0
  154. package/dist/equipment/iso-capabilities.d.ts +143 -0
  155. package/dist/equipment/iso-capabilities.d.ts.map +1 -0
  156. package/dist/equipment/iso-capabilities.js +578 -0
  157. package/dist/equipment/iso-capabilities.js.map +1 -0
  158. package/dist/equipment/metering-capabilities.d.ts +58 -0
  159. package/dist/equipment/metering-capabilities.d.ts.map +1 -0
  160. package/dist/equipment/metering-capabilities.js +151 -0
  161. package/dist/equipment/metering-capabilities.js.map +1 -0
  162. package/dist/equipment/release-capabilities.d.ts +33 -0
  163. package/dist/equipment/release-capabilities.d.ts.map +1 -0
  164. package/dist/equipment/release-capabilities.js +176 -0
  165. package/dist/equipment/release-capabilities.js.map +1 -0
  166. package/dist/exposure/exposure-duration-control.d.ts +72 -0
  167. package/dist/exposure/exposure-duration-control.d.ts.map +1 -0
  168. package/dist/exposure/exposure-duration-control.js +161 -0
  169. package/dist/exposure/exposure-duration-control.js.map +1 -0
  170. package/dist/exposure/exposure-mode-resolver.d.ts +637 -0
  171. package/dist/exposure/exposure-mode-resolver.d.ts.map +1 -0
  172. package/dist/exposure/exposure-mode-resolver.js +1905 -0
  173. package/dist/exposure/exposure-mode-resolver.js.map +1 -0
  174. package/dist/exposure/exposure.d.ts +8 -0
  175. package/dist/exposure/exposure.d.ts.map +1 -1
  176. package/dist/exposure/exposure.js +8 -0
  177. package/dist/exposure/exposure.js.map +1 -1
  178. package/dist/exposure/flash.d.ts +179 -0
  179. package/dist/exposure/flash.d.ts.map +1 -0
  180. package/dist/exposure/flash.js +644 -0
  181. package/dist/exposure/flash.js.map +1 -0
  182. package/dist/exposure/metering-scene-radiance.d.ts +72 -0
  183. package/dist/exposure/metering-scene-radiance.d.ts.map +1 -0
  184. package/dist/exposure/metering-scene-radiance.js +222 -0
  185. package/dist/exposure/metering-scene-radiance.js.map +1 -0
  186. package/dist/exposure/metering-target.d.ts +67 -0
  187. package/dist/exposure/metering-target.d.ts.map +1 -0
  188. package/dist/exposure/metering-target.js +265 -0
  189. package/dist/exposure/metering-target.js.map +1 -0
  190. package/dist/exposure/metering-temporal.d.ts +76 -0
  191. package/dist/exposure/metering-temporal.d.ts.map +1 -0
  192. package/dist/exposure/metering-temporal.js +210 -0
  193. package/dist/exposure/metering-temporal.js.map +1 -0
  194. package/dist/exposure/metering.d.ts +124 -0
  195. package/dist/exposure/metering.d.ts.map +1 -0
  196. package/dist/exposure/metering.js +422 -0
  197. package/dist/exposure/metering.js.map +1 -0
  198. package/dist/exposure/program-line.d.ts +29 -0
  199. package/dist/exposure/program-line.d.ts.map +1 -0
  200. package/dist/exposure/program-line.js +126 -0
  201. package/dist/exposure/program-line.js.map +1 -0
  202. package/dist/index.d.ts +87 -6
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +85 -6
  205. package/dist/index.js.map +1 -1
  206. package/dist/motion/camera-rotation.d.ts +16 -0
  207. package/dist/motion/camera-rotation.d.ts.map +1 -1
  208. package/dist/motion/camera-rotation.js +16 -0
  209. package/dist/motion/camera-rotation.js.map +1 -1
  210. package/dist/motion/capture-rotation-inverse-mapping.d.ts +13 -0
  211. package/dist/motion/capture-rotation-inverse-mapping.d.ts.map +1 -1
  212. package/dist/motion/capture-rotation-inverse-mapping.js +13 -0
  213. package/dist/motion/capture-rotation-inverse-mapping.js.map +1 -1
  214. package/dist/motion/capture-rotation-temporal-quadrature.d.ts +15 -0
  215. package/dist/motion/capture-rotation-temporal-quadrature.d.ts.map +1 -1
  216. package/dist/motion/capture-rotation-temporal-quadrature.js +15 -0
  217. package/dist/motion/capture-rotation-temporal-quadrature.js.map +1 -1
  218. package/dist/motion/capture-rotation-trajectory.d.ts +15 -0
  219. package/dist/motion/capture-rotation-trajectory.d.ts.map +1 -1
  220. package/dist/motion/capture-rotation-trajectory.js +15 -0
  221. package/dist/motion/capture-rotation-trajectory.js.map +1 -1
  222. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts +119 -0
  223. package/dist/motion/capture-translation-parallax-temporal-quadrature.d.ts.map +1 -0
  224. package/dist/motion/capture-translation-parallax-temporal-quadrature.js +263 -0
  225. package/dist/motion/capture-translation-parallax-temporal-quadrature.js.map +1 -0
  226. package/dist/motion/extended-object-projection.d.ts +175 -0
  227. package/dist/motion/extended-object-projection.d.ts.map +1 -0
  228. package/dist/motion/extended-object-projection.js +402 -0
  229. package/dist/motion/extended-object-projection.js.map +1 -0
  230. package/dist/motion/projected-motion.d.ts +11 -0
  231. package/dist/motion/projected-motion.d.ts.map +1 -1
  232. package/dist/motion/projected-motion.js +11 -0
  233. package/dist/motion/projected-motion.js.map +1 -1
  234. package/dist/optics/aperture.d.ts +9 -0
  235. package/dist/optics/aperture.d.ts.map +1 -1
  236. package/dist/optics/aperture.js +9 -0
  237. package/dist/optics/aperture.js.map +1 -1
  238. package/dist/optics/circle-of-confusion.d.ts +8 -0
  239. package/dist/optics/circle-of-confusion.d.ts.map +1 -1
  240. package/dist/optics/circle-of-confusion.js +8 -0
  241. package/dist/optics/circle-of-confusion.js.map +1 -1
  242. package/dist/optics/complex-pupil-psf.d.ts +128 -0
  243. package/dist/optics/complex-pupil-psf.d.ts.map +1 -0
  244. package/dist/optics/complex-pupil-psf.js +462 -0
  245. package/dist/optics/complex-pupil-psf.js.map +1 -0
  246. package/dist/optics/depth-of-field.d.ts +18 -0
  247. package/dist/optics/depth-of-field.d.ts.map +1 -1
  248. package/dist/optics/depth-of-field.js +29 -4
  249. package/dist/optics/depth-of-field.js.map +1 -1
  250. package/dist/optics/diffraction.d.ts +8 -0
  251. package/dist/optics/diffraction.d.ts.map +1 -1
  252. package/dist/optics/diffraction.js +8 -0
  253. package/dist/optics/diffraction.js.map +1 -1
  254. package/dist/optics/focus-breathing.d.ts +13 -0
  255. package/dist/optics/focus-breathing.d.ts.map +1 -1
  256. package/dist/optics/focus-breathing.js +13 -0
  257. package/dist/optics/focus-breathing.js.map +1 -1
  258. package/dist/optics/focus-state.d.ts +47 -0
  259. package/dist/optics/focus-state.d.ts.map +1 -0
  260. package/dist/optics/focus-state.js +78 -0
  261. package/dist/optics/focus-state.js.map +1 -0
  262. package/dist/optics/front-of-lens-filter.d.ts +114 -0
  263. package/dist/optics/front-of-lens-filter.d.ts.map +1 -0
  264. package/dist/optics/front-of-lens-filter.js +468 -0
  265. package/dist/optics/front-of-lens-filter.js.map +1 -0
  266. package/dist/optics/illumination-vignetting.d.ts +9 -0
  267. package/dist/optics/illumination-vignetting.d.ts.map +1 -1
  268. package/dist/optics/illumination-vignetting.js +9 -0
  269. package/dist/optics/illumination-vignetting.js.map +1 -1
  270. package/dist/optics/lateral-chromatic-aberration.d.ts +11 -0
  271. package/dist/optics/lateral-chromatic-aberration.d.ts.map +1 -1
  272. package/dist/optics/lateral-chromatic-aberration.js +11 -0
  273. package/dist/optics/lateral-chromatic-aberration.js.map +1 -1
  274. package/dist/optics/lens-psf-profile.d.ts +217 -0
  275. package/dist/optics/lens-psf-profile.d.ts.map +1 -0
  276. package/dist/optics/lens-psf-profile.js +823 -0
  277. package/dist/optics/lens-psf-profile.js.map +1 -0
  278. package/dist/optics/polygon-diffraction.d.ts +67 -0
  279. package/dist/optics/polygon-diffraction.d.ts.map +1 -0
  280. package/dist/optics/polygon-diffraction.js +145 -0
  281. package/dist/optics/polygon-diffraction.js.map +1 -0
  282. package/dist/optics/profile-contract.d.ts +42 -0
  283. package/dist/optics/profile-contract.d.ts.map +1 -0
  284. package/dist/optics/profile-contract.js +92 -0
  285. package/dist/optics/profile-contract.js.map +1 -0
  286. package/dist/optics/psf-foundation.d.ts +16 -3
  287. package/dist/optics/psf-foundation.d.ts.map +1 -1
  288. package/dist/optics/psf-foundation.js +28 -15
  289. package/dist/optics/psf-foundation.js.map +1 -1
  290. package/dist/optics/radial-distortion.d.ts +18 -0
  291. package/dist/optics/radial-distortion.d.ts.map +1 -1
  292. package/dist/optics/radial-distortion.js +18 -0
  293. package/dist/optics/radial-distortion.js.map +1 -1
  294. package/dist/optics/scene-to-sensor-irradiance.d.ts +213 -0
  295. package/dist/optics/scene-to-sensor-irradiance.d.ts.map +1 -0
  296. package/dist/optics/scene-to-sensor-irradiance.js +662 -0
  297. package/dist/optics/scene-to-sensor-irradiance.js.map +1 -0
  298. package/dist/optics/scene-to-sensor-quadrature.d.ts +63 -0
  299. package/dist/optics/scene-to-sensor-quadrature.d.ts.map +1 -0
  300. package/dist/optics/scene-to-sensor-quadrature.js +82 -0
  301. package/dist/optics/scene-to-sensor-quadrature.js.map +1 -0
  302. package/dist/optics/sensor-environment-query.d.ts +60 -0
  303. package/dist/optics/sensor-environment-query.d.ts.map +1 -0
  304. package/dist/optics/sensor-environment-query.js +50 -0
  305. package/dist/optics/sensor-environment-query.js.map +1 -0
  306. package/dist/optics/sensor-psf-quadrature.d.ts +70 -0
  307. package/dist/optics/sensor-psf-quadrature.d.ts.map +1 -0
  308. package/dist/optics/sensor-psf-quadrature.js +101 -0
  309. package/dist/optics/sensor-psf-quadrature.js.map +1 -0
  310. package/dist/optics/sensor-psf-support.d.ts +20 -0
  311. package/dist/optics/sensor-psf-support.d.ts.map +1 -0
  312. package/dist/optics/sensor-psf-support.js +13 -0
  313. package/dist/optics/sensor-psf-support.js.map +1 -0
  314. package/dist/optics/stray-light.d.ts +91 -0
  315. package/dist/optics/stray-light.d.ts.map +1 -0
  316. package/dist/optics/stray-light.js +110 -0
  317. package/dist/optics/stray-light.js.map +1 -0
  318. package/dist/optics/thin-lens.d.ts +8 -0
  319. package/dist/optics/thin-lens.d.ts.map +1 -1
  320. package/dist/optics/thin-lens.js +8 -0
  321. package/dist/optics/thin-lens.js.map +1 -1
  322. package/dist/output/capture-corrected-sdr.d.ts +49 -0
  323. package/dist/output/capture-corrected-sdr.d.ts.map +1 -0
  324. package/dist/output/capture-corrected-sdr.js +149 -0
  325. package/dist/output/capture-corrected-sdr.js.map +1 -0
  326. package/dist/output/capture-geometry.d.ts.map +1 -1
  327. package/dist/output/capture-geometry.js +8 -0
  328. package/dist/output/capture-geometry.js.map +1 -1
  329. package/dist/output/capture-sdr.d.ts +49 -0
  330. package/dist/output/capture-sdr.d.ts.map +1 -0
  331. package/dist/output/capture-sdr.js +90 -0
  332. package/dist/output/capture-sdr.js.map +1 -0
  333. package/dist/output/crop.d.ts +6 -0
  334. package/dist/output/crop.d.ts.map +1 -1
  335. package/dist/output/crop.js +6 -0
  336. package/dist/output/crop.js.map +1 -1
  337. package/dist/output/geometric-transforms.d.ts +137 -0
  338. package/dist/output/geometric-transforms.d.ts.map +1 -0
  339. package/dist/output/geometric-transforms.js +225 -0
  340. package/dist/output/geometric-transforms.js.map +1 -0
  341. package/dist/output/lens-corrections.d.ts +121 -0
  342. package/dist/output/lens-corrections.d.ts.map +1 -0
  343. package/dist/output/lens-corrections.js +210 -0
  344. package/dist/output/lens-corrections.js.map +1 -0
  345. package/dist/output/sdr-rendering.d.ts +81 -0
  346. package/dist/output/sdr-rendering.d.ts.map +1 -0
  347. package/dist/output/sdr-rendering.js +106 -0
  348. package/dist/output/sdr-rendering.js.map +1 -0
  349. package/dist/output/subject-framing-crop.d.ts +8 -0
  350. package/dist/output/subject-framing-crop.d.ts.map +1 -1
  351. package/dist/output/subject-framing-crop.js +8 -0
  352. package/dist/output/subject-framing-crop.js.map +1 -1
  353. package/dist/schema/camera.d.ts +6 -0
  354. package/dist/schema/camera.d.ts.map +1 -1
  355. package/dist/schema/illumination-spectral.d.ts +51 -0
  356. package/dist/schema/illumination-spectral.d.ts.map +1 -0
  357. package/dist/schema/illumination-spectral.js +132 -0
  358. package/dist/schema/illumination-spectral.js.map +1 -0
  359. package/dist/schema/illumination-temporal.d.ts +156 -0
  360. package/dist/schema/illumination-temporal.d.ts.map +1 -0
  361. package/dist/schema/illumination-temporal.js +554 -0
  362. package/dist/schema/illumination-temporal.js.map +1 -0
  363. package/dist/schema/illumination.d.ts +138 -0
  364. package/dist/schema/illumination.d.ts.map +1 -0
  365. package/dist/schema/illumination.js +483 -0
  366. package/dist/schema/illumination.js.map +1 -0
  367. package/dist/schema/scene-radiance-temporal.d.ts +107 -0
  368. package/dist/schema/scene-radiance-temporal.d.ts.map +1 -0
  369. package/dist/schema/scene-radiance-temporal.js +259 -0
  370. package/dist/schema/scene-radiance-temporal.js.map +1 -0
  371. package/dist/schema/scene-radiance.d.ts +185 -0
  372. package/dist/schema/scene-radiance.d.ts.map +1 -0
  373. package/dist/schema/scene-radiance.js +535 -0
  374. package/dist/schema/scene-radiance.js.map +1 -0
  375. package/dist/schema/scene.d.ts +7 -0
  376. package/dist/schema/scene.d.ts.map +1 -1
  377. package/dist/schema/validation.d.ts.map +1 -1
  378. package/dist/schema/validation.js +7 -0
  379. package/dist/schema/validation.js.map +1 -1
  380. package/dist/sensor/accumulated-charge.d.ts +199 -0
  381. package/dist/sensor/accumulated-charge.d.ts.map +1 -0
  382. package/dist/sensor/accumulated-charge.js +450 -0
  383. package/dist/sensor/accumulated-charge.js.map +1 -0
  384. package/dist/sensor/architecture.d.ts +48 -13
  385. package/dist/sensor/architecture.d.ts.map +1 -1
  386. package/dist/sensor/architecture.js +58 -16
  387. package/dist/sensor/architecture.js.map +1 -1
  388. package/dist/sensor/camera-saturation-capacity.d.ts +138 -0
  389. package/dist/sensor/camera-saturation-capacity.d.ts.map +1 -0
  390. package/dist/sensor/camera-saturation-capacity.js +356 -0
  391. package/dist/sensor/camera-saturation-capacity.js.map +1 -0
  392. package/dist/sensor/capture-color-sampling-binding.d.ts +1 -0
  393. package/dist/sensor/capture-color-sampling-binding.d.ts.map +1 -1
  394. package/dist/sensor/capture-color-sampling-binding.js +14 -0
  395. package/dist/sensor/capture-color-sampling-binding.js.map +1 -1
  396. package/dist/sensor/capture-mode-timing.d.ts +63 -0
  397. package/dist/sensor/capture-mode-timing.d.ts.map +1 -0
  398. package/dist/sensor/capture-mode-timing.js +270 -0
  399. package/dist/sensor/capture-mode-timing.js.map +1 -0
  400. package/dist/sensor/capture-mode.d.ts.map +1 -1
  401. package/dist/sensor/capture-mode.js +13 -0
  402. package/dist/sensor/capture-mode.js.map +1 -1
  403. package/dist/sensor/color-sampling.d.ts.map +1 -1
  404. package/dist/sensor/color-sampling.js +19 -0
  405. package/dist/sensor/color-sampling.js.map +1 -1
  406. package/dist/sensor/constant-rate-temporal-integration.d.ts +126 -0
  407. package/dist/sensor/constant-rate-temporal-integration.d.ts.map +1 -0
  408. package/dist/sensor/constant-rate-temporal-integration.js +382 -0
  409. package/dist/sensor/constant-rate-temporal-integration.js.map +1 -0
  410. package/dist/sensor/dark-current.d.ts +169 -0
  411. package/dist/sensor/dark-current.d.ts.map +1 -0
  412. package/dist/sensor/dark-current.js +427 -0
  413. package/dist/sensor/dark-current.js.map +1 -0
  414. package/dist/sensor/environment-photo-signal.d.ts +123 -0
  415. package/dist/sensor/environment-photo-signal.d.ts.map +1 -0
  416. package/dist/sensor/environment-photo-signal.js +186 -0
  417. package/dist/sensor/environment-photo-signal.js.map +1 -0
  418. package/dist/sensor/eqe-electron-rate.d.ts +107 -0
  419. package/dist/sensor/eqe-electron-rate.d.ts.map +1 -0
  420. package/dist/sensor/eqe-electron-rate.js +561 -0
  421. package/dist/sensor/eqe-electron-rate.js.map +1 -0
  422. package/dist/sensor/eqe-local-exposure.d.ts +65 -0
  423. package/dist/sensor/eqe-local-exposure.d.ts.map +1 -0
  424. package/dist/sensor/eqe-local-exposure.js +84 -0
  425. package/dist/sensor/eqe-local-exposure.js.map +1 -0
  426. package/dist/sensor/eqe-temporal-exposure.d.ts +55 -0
  427. package/dist/sensor/eqe-temporal-exposure.d.ts.map +1 -0
  428. package/dist/sensor/eqe-temporal-exposure.js +62 -0
  429. package/dist/sensor/eqe-temporal-exposure.js.map +1 -0
  430. package/dist/sensor/exposure-window.d.ts +14 -0
  431. package/dist/sensor/exposure-window.d.ts.map +1 -1
  432. package/dist/sensor/exposure-window.js +14 -0
  433. package/dist/sensor/exposure-window.js.map +1 -1
  434. package/dist/sensor/iso-signal-chain.d.ts +148 -0
  435. package/dist/sensor/iso-signal-chain.d.ts.map +1 -0
  436. package/dist/sensor/iso-signal-chain.js +411 -0
  437. package/dist/sensor/iso-signal-chain.js.map +1 -0
  438. package/dist/sensor/local-exposure-binding.d.ts +87 -0
  439. package/dist/sensor/local-exposure-binding.d.ts.map +1 -0
  440. package/dist/sensor/local-exposure-binding.js +214 -0
  441. package/dist/sensor/local-exposure-binding.js.map +1 -0
  442. package/dist/sensor/optical-stack.d.ts.map +1 -1
  443. package/dist/sensor/optical-stack.js +17 -0
  444. package/dist/sensor/optical-stack.js.map +1 -1
  445. package/dist/sensor/photon-energy.d.ts +97 -0
  446. package/dist/sensor/photon-energy.d.ts.map +1 -0
  447. package/dist/sensor/photon-energy.js +390 -0
  448. package/dist/sensor/photon-energy.js.map +1 -0
  449. package/dist/sensor/physical-charge-capacity.d.ts +130 -0
  450. package/dist/sensor/physical-charge-capacity.d.ts.map +1 -0
  451. package/dist/sensor/physical-charge-capacity.js +345 -0
  452. package/dist/sensor/physical-charge-capacity.js.map +1 -0
  453. package/dist/sensor/pixel-pitch.d.ts +6 -0
  454. package/dist/sensor/pixel-pitch.d.ts.map +1 -1
  455. package/dist/sensor/pixel-pitch.js +6 -0
  456. package/dist/sensor/pixel-pitch.js.map +1 -1
  457. package/dist/sensor/radiometry-readiness.d.ts +10 -0
  458. package/dist/sensor/radiometry-readiness.d.ts.map +1 -1
  459. package/dist/sensor/radiometry-readiness.js +10 -0
  460. package/dist/sensor/radiometry-readiness.js.map +1 -1
  461. package/dist/sensor/raw-readout.d.ts +314 -0
  462. package/dist/sensor/raw-readout.d.ts.map +1 -0
  463. package/dist/sensor/raw-readout.js +914 -0
  464. package/dist/sensor/raw-readout.js.map +1 -0
  465. package/dist/sensor/raw-reconstruction.d.ts +170 -0
  466. package/dist/sensor/raw-reconstruction.d.ts.map +1 -0
  467. package/dist/sensor/raw-reconstruction.js +424 -0
  468. package/dist/sensor/raw-reconstruction.js.map +1 -0
  469. package/dist/sensor/readout-exposure-linkage.d.ts +12 -0
  470. package/dist/sensor/readout-exposure-linkage.d.ts.map +1 -1
  471. package/dist/sensor/readout-exposure-linkage.js +12 -0
  472. package/dist/sensor/readout-exposure-linkage.js.map +1 -1
  473. package/dist/sensor/readout-timing.d.ts +13 -0
  474. package/dist/sensor/readout-timing.d.ts.map +1 -1
  475. package/dist/sensor/readout-timing.js +13 -0
  476. package/dist/sensor/readout-timing.js.map +1 -1
  477. package/dist/sensor/response-application-compatibility.d.ts +136 -0
  478. package/dist/sensor/response-application-compatibility.d.ts.map +1 -0
  479. package/dist/sensor/response-application-compatibility.js +408 -0
  480. package/dist/sensor/response-application-compatibility.js.map +1 -0
  481. package/dist/sensor/response-operating-range.d.ts +173 -0
  482. package/dist/sensor/response-operating-range.d.ts.map +1 -0
  483. package/dist/sensor/response-operating-range.js +672 -0
  484. package/dist/sensor/response-operating-range.js.map +1 -0
  485. package/dist/sensor/responsivity-photocurrent.d.ts +158 -0
  486. package/dist/sensor/responsivity-photocurrent.d.ts.map +1 -0
  487. package/dist/sensor/responsivity-photocurrent.js +644 -0
  488. package/dist/sensor/responsivity-photocurrent.js.map +1 -0
  489. package/dist/sensor/sampling-aperture.d.ts.map +1 -1
  490. package/dist/sensor/sampling-aperture.js +14 -0
  491. package/dist/sensor/sampling-aperture.js.map +1 -1
  492. package/dist/sensor/scene-eqe-temporal-exposure.d.ts +45 -0
  493. package/dist/sensor/scene-eqe-temporal-exposure.d.ts.map +1 -0
  494. package/dist/sensor/scene-eqe-temporal-exposure.js +64 -0
  495. package/dist/sensor/scene-eqe-temporal-exposure.js.map +1 -0
  496. package/dist/sensor/sensor-geometry.d.ts +12 -0
  497. package/dist/sensor/sensor-geometry.d.ts.map +1 -1
  498. package/dist/sensor/sensor-geometry.js +12 -0
  499. package/dist/sensor/sensor-geometry.js.map +1 -1
  500. package/dist/sensor/signal-noise.d.ts +10 -0
  501. package/dist/sensor/signal-noise.d.ts.map +1 -1
  502. package/dist/sensor/signal-noise.js +10 -0
  503. package/dist/sensor/signal-noise.js.map +1 -1
  504. package/dist/sensor/spatial-sample-reduction.d.ts +44 -1
  505. package/dist/sensor/spatial-sample-reduction.d.ts.map +1 -1
  506. package/dist/sensor/spatial-sample-reduction.js +51 -5
  507. package/dist/sensor/spatial-sample-reduction.js.map +1 -1
  508. package/dist/sensor/spatial-sampling-quadrature.d.ts +24 -0
  509. package/dist/sensor/spatial-sampling-quadrature.d.ts.map +1 -1
  510. package/dist/sensor/spatial-sampling-quadrature.js +27 -0
  511. package/dist/sensor/spatial-sampling-quadrature.js.map +1 -1
  512. package/dist/sensor/spatio-spectral-reduction.d.ts +187 -0
  513. package/dist/sensor/spatio-spectral-reduction.d.ts.map +1 -0
  514. package/dist/sensor/spatio-spectral-reduction.js +373 -0
  515. package/dist/sensor/spatio-spectral-reduction.js.map +1 -0
  516. package/dist/sensor/spectral-coverage.d.ts +24 -0
  517. package/dist/sensor/spectral-coverage.d.ts.map +1 -0
  518. package/dist/sensor/spectral-coverage.js +86 -0
  519. package/dist/sensor/spectral-coverage.js.map +1 -0
  520. package/dist/sensor/spectral-quadrature.d.ts +169 -0
  521. package/dist/sensor/spectral-quadrature.d.ts.map +1 -0
  522. package/dist/sensor/spectral-quadrature.js +542 -0
  523. package/dist/sensor/spectral-quadrature.js.map +1 -0
  524. package/dist/sensor/spectral-response.d.ts +192 -0
  525. package/dist/sensor/spectral-response.d.ts.map +1 -0
  526. package/dist/sensor/spectral-response.js +664 -0
  527. package/dist/sensor/spectral-response.js.map +1 -0
  528. package/dist/sensor/temporal-eqe-sum.d.ts +15 -0
  529. package/dist/sensor/temporal-eqe-sum.d.ts.map +1 -0
  530. package/dist/sensor/temporal-eqe-sum.js +30 -0
  531. package/dist/sensor/temporal-eqe-sum.js.map +1 -0
  532. package/dist/sensor/temporal-photo-signal.d.ts +38 -0
  533. package/dist/sensor/temporal-photo-signal.d.ts.map +1 -0
  534. package/dist/sensor/temporal-photo-signal.js +110 -0
  535. package/dist/sensor/temporal-photo-signal.js.map +1 -0
  536. package/dist/sensor/temporal-sample-binding.d.ts +6 -0
  537. package/dist/sensor/temporal-sample-binding.d.ts.map +1 -0
  538. package/dist/sensor/temporal-sample-binding.js +32 -0
  539. package/dist/sensor/temporal-sample-binding.js.map +1 -0
  540. package/dist/simulation/poc-simulation.d.ts.map +1 -1
  541. package/dist/simulation/poc-simulation.js +34 -11
  542. package/dist/simulation/poc-simulation.js.map +1 -1
  543. package/dist/stabilization/camera-shake.d.ts +11 -0
  544. package/dist/stabilization/camera-shake.d.ts.map +1 -1
  545. package/dist/stabilization/camera-shake.js +11 -0
  546. package/dist/stabilization/camera-shake.js.map +1 -1
  547. package/dist/stabilization/system.d.ts +218 -0
  548. package/dist/stabilization/system.d.ts.map +1 -0
  549. package/dist/stabilization/system.js +695 -0
  550. package/dist/stabilization/system.js.map +1 -0
  551. package/docs/API_REFERENCE.md +2017 -0
  552. package/docs/API_STYLE.md +139 -3
  553. package/docs/ARCHITECTURE.md +134 -24
  554. package/docs/AUTOMATION_COORDINATION.md +2 -0
  555. package/docs/CAPTURE_COLOR.md +25 -0
  556. package/docs/CAPTURE_CORRECTED_SDR.md +25 -0
  557. package/docs/CAPTURE_EXPORT_METADATA.md +27 -0
  558. package/docs/CAPTURE_SDR.md +20 -0
  559. package/docs/DEVELOPERS.md +60 -0
  560. package/docs/DIGITAL_OPTICS_FOUNDATION.md +69 -0
  561. package/docs/ENVIRONMENT_RAW_CAPTURE.md +187 -0
  562. package/docs/EXPORT_ACCEPTANCE.md +133 -0
  563. package/docs/GENERIC_TIER_PRESETS.md +269 -0
  564. package/docs/GEOMETRIC_PREPARATION_REUSE.md +141 -0
  565. package/docs/IMAGE_FORMATION.md +80 -10
  566. package/docs/LINEAR_CAPTURE_ENCODING.md +25 -0
  567. package/docs/MOTION_AND_SIGNAL.md +5 -3
  568. package/docs/NUMERICAL_CORRECTNESS.md +191 -0
  569. package/docs/PERFORMANCE_BASELINE.md +56 -0
  570. package/docs/PHOTOGRAPHIC_EXPORT.md +206 -0
  571. package/docs/PHYSICS_FOUNDATION.md +152 -5
  572. package/docs/POC_API.md +2 -0
  573. package/docs/POC_PROJECTION_REUSE.md +124 -0
  574. package/docs/PROCESSED_OUTPUT.md +157 -0
  575. package/docs/PRODUCTION_COMPOSITION.md +373 -0
  576. package/docs/PRODUCTION_ENVIRONMENT_CAPTURE.md +131 -0
  577. package/docs/PROVENANCE.md +4 -0
  578. package/docs/PSF_FOUNDATION.md +110 -88
  579. package/docs/RAW_FRAME_ENVELOPE.md +56 -0
  580. package/docs/RAW_FRAME_RECONSTRUCTION.md +30 -0
  581. package/docs/RELEASE_1_0.md +66 -0
  582. package/docs/RELEASE_1_0_1.md +61 -0
  583. package/docs/RELEASE_AUDIT.md +39 -0
  584. package/docs/SCENE_RADIANCE_AND_ILLUMINATION.md +298 -0
  585. package/docs/SCENE_SENSOR_QUADRATURE.md +98 -0
  586. package/docs/SCENE_SENSOR_TEMPORAL_EXPOSURE.md +86 -0
  587. package/docs/SCIENTIFIC_ASSURANCE.md +280 -0
  588. package/docs/SCIENTIFIC_CONFORMANCE.md +83 -0
  589. package/docs/SDR_RENDERING.md +33 -0
  590. package/docs/SENSOR_ENVIRONMENT_QUERY.md +86 -0
  591. package/docs/SENSOR_EQE_LOCAL_EXPOSURE.md +104 -0
  592. package/docs/SENSOR_EQE_TEMPORAL_EXPOSURE.md +74 -0
  593. package/docs/SENSOR_PSF_QUADRATURE.md +90 -0
  594. package/docs/SENSOR_RAW_FRAME.md +20 -0
  595. package/docs/SENSOR_RAW_PRODUCER.md +77 -0
  596. package/docs/SIGNAL_CONFORMANCE.md +23 -0
  597. package/docs/SIMULATED_CAPTURE.md +65 -0
  598. package/docs/STABILIZATION.md +160 -17
  599. package/docs/TEMPORAL_PHOTO_RAW.md +83 -0
  600. package/docs/TIER_ACCEPTANCE.md +129 -0
  601. package/docs/TIER_PRESET_ACCEPTANCE.md +59 -0
  602. package/docs/USAGE.md +5050 -1047
  603. package/docs/V1_COMPOSITION_MAP.md +123 -0
  604. package/docs/V1_HELPER_REUSE_REVIEW.md +60 -0
  605. package/docs/V1_PERFORMANCE_DISPOSITION.md +88 -0
  606. package/docs/api/camera-equivalent-focal-length.md +53 -0
  607. package/docs/api/camera-field-of-view.md +119 -0
  608. package/docs/api/camera-projected-object-size.md +54 -0
  609. package/docs/api/capture-capture-export-metadata.md +107 -0
  610. package/docs/api/capture-environment-raw-producer.md +56 -0
  611. package/docs/api/capture-focus-control.md +419 -0
  612. package/docs/api/capture-linear-encoding.md +99 -0
  613. package/docs/api/capture-photographic-export.md +172 -0
  614. package/docs/api/capture-raw-frame-reconstruction.md +87 -0
  615. package/docs/api/capture-release-sequence.md +252 -0
  616. package/docs/api/capture-sensor-raw-frame.md +66 -0
  617. package/docs/api/capture-sensor-raw-producer.md +98 -0
  618. package/docs/api/capture-simulated-capture.md +179 -0
  619. package/docs/api/color-capture-color.md +122 -0
  620. package/docs/api/color-white-balance.md +386 -0
  621. package/docs/api/composition-image-formation-plan.md +825 -0
  622. package/docs/api/composition-plan-consumer.md +98 -0
  623. package/docs/api/core-calculation-result.md +220 -0
  624. package/docs/api/core-configuration-error.md +19 -0
  625. package/docs/api/core-image-formation.md +204 -0
  626. package/docs/api/core-scientific-assurance.md +214 -0
  627. package/docs/api/core-spectral-composition.md +268 -0
  628. package/docs/api/core-spectral.md +78 -0
  629. package/docs/api/core-validation.md +34 -0
  630. package/docs/api/core-version.md +14 -0
  631. package/docs/api/equipment-exposure-capabilities.md +270 -0
  632. package/docs/api/equipment-generic-tier-assets.md +82 -0
  633. package/docs/api/equipment-generic-tier-presets.md +103 -0
  634. package/docs/api/equipment-iso-capabilities.md +295 -0
  635. package/docs/api/equipment-metering-capabilities.md +126 -0
  636. package/docs/api/equipment-release-capabilities.md +91 -0
  637. package/docs/api/exports.json +5656 -0
  638. package/docs/api/exposure-exposure-duration-control.md +115 -0
  639. package/docs/api/exposure-exposure-mode-resolver.md +966 -0
  640. package/docs/api/exposure-exposure.md +150 -0
  641. package/docs/api/exposure-flash.md +327 -0
  642. package/docs/api/exposure-metering-scene-radiance.md +154 -0
  643. package/docs/api/exposure-metering-target.md +134 -0
  644. package/docs/api/exposure-metering-temporal.md +77 -0
  645. package/docs/api/exposure-metering.md +172 -0
  646. package/docs/api/exposure-program-line.md +64 -0
  647. package/docs/api/motion-camera-rotation.md +215 -0
  648. package/docs/api/motion-capture-rotation-inverse-mapping.md +128 -0
  649. package/docs/api/motion-capture-rotation-temporal-quadrature.md +127 -0
  650. package/docs/api/motion-capture-rotation-trajectory.md +132 -0
  651. package/docs/api/motion-capture-translation-parallax-temporal-quadrature.md +171 -0
  652. package/docs/api/motion-extended-object-projection.md +312 -0
  653. package/docs/api/motion-projected-motion.md +60 -0
  654. package/docs/api/optics-aperture.md +69 -0
  655. package/docs/api/optics-circle-of-confusion.md +46 -0
  656. package/docs/api/optics-complex-pupil-psf.md +193 -0
  657. package/docs/api/optics-depth-of-field.md +92 -0
  658. package/docs/api/optics-diffraction.md +46 -0
  659. package/docs/api/optics-focus-breathing.md +119 -0
  660. package/docs/api/optics-focus-state.md +64 -0
  661. package/docs/api/optics-front-of-lens-filter.md +263 -0
  662. package/docs/api/optics-illumination-vignetting.md +95 -0
  663. package/docs/api/optics-lateral-chromatic-aberration.md +225 -0
  664. package/docs/api/optics-lens-psf-profile.md +380 -0
  665. package/docs/api/optics-polygon-diffraction.md +68 -0
  666. package/docs/api/optics-profile-contract.md +47 -0
  667. package/docs/api/optics-psf-foundation.md +181 -0
  668. package/docs/api/optics-radial-distortion.md +194 -0
  669. package/docs/api/optics-scene-to-sensor-irradiance.md +371 -0
  670. package/docs/api/optics-scene-to-sensor-quadrature.md +78 -0
  671. package/docs/api/optics-sensor-environment-query.md +58 -0
  672. package/docs/api/optics-sensor-psf-quadrature.md +81 -0
  673. package/docs/api/optics-stray-light.md +109 -0
  674. package/docs/api/optics-thin-lens.md +53 -0
  675. package/docs/api/output-capture-corrected-sdr.md +71 -0
  676. package/docs/api/output-capture-geometry.md +500 -0
  677. package/docs/api/output-capture-sdr.md +69 -0
  678. package/docs/api/output-crop.md +47 -0
  679. package/docs/api/output-geometric-transforms.md +199 -0
  680. package/docs/api/output-lens-corrections.md +162 -0
  681. package/docs/api/output-sdr-rendering.md +122 -0
  682. package/docs/api/output-subject-framing-crop.md +59 -0
  683. package/docs/api/schema-camera.md +84 -0
  684. package/docs/api/schema-illumination-spectral.md +77 -0
  685. package/docs/api/schema-illumination-temporal.md +289 -0
  686. package/docs/api/schema-illumination.md +246 -0
  687. package/docs/api/schema-scene-radiance-temporal.md +215 -0
  688. package/docs/api/schema-scene-radiance.md +415 -0
  689. package/docs/api/schema-scene.md +105 -0
  690. package/docs/api/schema-validation.md +25 -0
  691. package/docs/api/sensor-accumulated-charge.md +273 -0
  692. package/docs/api/sensor-architecture.md +155 -0
  693. package/docs/api/sensor-camera-saturation-capacity.md +215 -0
  694. package/docs/api/sensor-capture-color-sampling-binding.md +323 -0
  695. package/docs/api/sensor-capture-mode-timing.md +123 -0
  696. package/docs/api/sensor-capture-mode.md +321 -0
  697. package/docs/api/sensor-color-sampling.md +228 -0
  698. package/docs/api/sensor-constant-rate-temporal-integration.md +152 -0
  699. package/docs/api/sensor-dark-current.md +227 -0
  700. package/docs/api/sensor-environment-photo-signal.md +77 -0
  701. package/docs/api/sensor-eqe-electron-rate.md +166 -0
  702. package/docs/api/sensor-eqe-local-exposure.md +68 -0
  703. package/docs/api/sensor-eqe-temporal-exposure.md +73 -0
  704. package/docs/api/sensor-exposure-window.md +183 -0
  705. package/docs/api/sensor-iso-signal-chain.md +264 -0
  706. package/docs/api/sensor-local-exposure-binding.md +126 -0
  707. package/docs/api/sensor-optical-stack.md +211 -0
  708. package/docs/api/sensor-photon-energy.md +149 -0
  709. package/docs/api/sensor-physical-charge-capacity.md +196 -0
  710. package/docs/api/sensor-pixel-pitch.md +41 -0
  711. package/docs/api/sensor-radiometry-readiness.md +240 -0
  712. package/docs/api/sensor-raw-readout.md +499 -0
  713. package/docs/api/sensor-raw-reconstruction.md +260 -0
  714. package/docs/api/sensor-readout-exposure-linkage.md +172 -0
  715. package/docs/api/sensor-readout-timing.md +209 -0
  716. package/docs/api/sensor-response-application-compatibility.md +256 -0
  717. package/docs/api/sensor-response-operating-range.md +293 -0
  718. package/docs/api/sensor-responsivity-photocurrent.md +245 -0
  719. package/docs/api/sensor-sampling-aperture.md +221 -0
  720. package/docs/api/sensor-scene-eqe-temporal-exposure.md +56 -0
  721. package/docs/api/sensor-sensor-geometry.md +143 -0
  722. package/docs/api/sensor-signal-noise.md +75 -0
  723. package/docs/api/sensor-spatial-sample-reduction.md +186 -0
  724. package/docs/api/sensor-spatial-sampling-quadrature.md +188 -0
  725. package/docs/api/sensor-spatio-spectral-reduction.md +217 -0
  726. package/docs/api/sensor-spectral-coverage.md +33 -0
  727. package/docs/api/sensor-spectral-quadrature.md +183 -0
  728. package/docs/api/sensor-spectral-response.md +291 -0
  729. package/docs/api/sensor-temporal-photo-signal.md +62 -0
  730. package/docs/api/simulation-poc-simulation.md +364 -0
  731. package/docs/api/stabilization-camera-shake.md +71 -0
  732. package/docs/api/stabilization-system.md +442 -0
  733. package/docs/benchmarks/2026-10-01-main-baseline.json +694 -0
  734. package/docs/benchmarks/2026-10-02-geometric-preparation-reuse.json +2190 -0
  735. package/docs/benchmarks/2026-10-02-poc-projection-reuse.json +2423 -0
  736. package/docs/benchmarks/2026-10-02-v1-environment-gc-profile.json +210 -0
  737. package/docs/benchmarks/2026-10-02-v1-environment-ordinary.json +187 -0
  738. package/docs/benchmarks/2026-10-02-v1-geometry-gc-profile.json +756 -0
  739. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-1.json +711 -0
  740. package/docs/benchmarks/2026-10-02-v1-geometry-ordinary-2.json +711 -0
  741. package/docs/benchmarks/2026-10-02-v1-poc-gc-profile.json +885 -0
  742. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-1.json +868 -0
  743. package/docs/benchmarks/2026-10-02-v1-poc-ordinary-2.json +868 -0
  744. package/docs/examples/production-capture.mjs +34 -0
  745. package/docs/examples/production-request.json +4613 -0
  746. package/docs/examples/quick-start.mjs +12 -0
  747. package/docs/validation/documentation-fragments.json +212 -0
  748. package/docs/validation/release-audit-inventory.json +1306 -0
  749. package/docs/validation/tier-acceptance-report-v1.json +2538 -0
  750. package/package.json +15 -3
@@ -0,0 +1,321 @@
1
+ # sensor/capture-mode.ts public contracts
2
+
3
+ Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## CaptureModeAcquisition
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ export type CaptureModeAcquisition =
11
+ | SingleFrameCaptureAcquisition
12
+ | FixedMultiFrameCaptureAcquisition
13
+ | VariableMultiFrameCaptureAcquisition;
14
+ ```
15
+
16
+ ## CaptureModeDefinition
17
+
18
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
19
+
20
+ ```ts
21
+ export interface CaptureModeDefinition {
22
+ modeId: string;
23
+ /**
24
+ * Evidence supporting the existence/overall acquisition behavior of this
25
+ * mode. Field-level facts below retain their own evidence when needed.
26
+ */
27
+ evidence: readonly EvidenceProvenance[];
28
+ acquisition: CaptureModeAcquisition;
29
+ perFrameSampling: CaptureModePerFrameSampling;
30
+ /**
31
+ * Optional ordered sensor-displacement sequence for fixed multi-frame modes.
32
+ * The whole sequence is one evidence-backed fact because published mode
33
+ * documentation commonly describes the sequence as a unit.
34
+ */
35
+ interFrameSensorOffsetsNativeSamples?: SourcedCaptureModeFact<
36
+ readonly CaptureModeSensorOffsetNativeSamples[]
37
+ >;
38
+ /**
39
+ * Ordered reconstruction/combination stages owned by later reconstruction
40
+ * work. These labels reserve semantics; they do not implement algorithms.
41
+ */
42
+ reconstructionStages?: readonly SourcedCaptureModeFact<CaptureModeReconstructionStage>[];
43
+ /**
44
+ * Image raster produced by the capture-mode/reconstruction pipeline before
45
+ * final output crop/resampling.
46
+ *
47
+ * This raster does not redefine physical sensor geometry or field of view.
48
+ */
49
+ processedImageRaster: SourcedCaptureModeFact<RasterDimensions>;
50
+ /**
51
+ * Explicit downstream scientific/model dependencies for this mode.
52
+ */
53
+ dependencies?: readonly CaptureModeDependency[];
54
+ }
55
+ ```
56
+
57
+ ## CaptureModeDependency
58
+
59
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
60
+
61
+ ```ts
62
+ export type CaptureModeDependency =
63
+ | "color-sampling-model"
64
+ | "mode-specific-readout-timing"
65
+ | "radiometric-calibration"
66
+ | "inter-frame-registration";
67
+ ```
68
+
69
+ ## CaptureModePerFrameSampling
70
+
71
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
72
+
73
+ ```ts
74
+ export type CaptureModePerFrameSampling =
75
+ | NativeEffectiveCaptureSampling
76
+ | GroupedNativeCaptureSampling
77
+ | DeclaredEffectiveCaptureSampling;
78
+ ```
79
+
80
+ ## CaptureModeProfile
81
+
82
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
83
+
84
+ ```ts
85
+ export interface CaptureModeProfile {
86
+ schemaVersion: "0.1.0";
87
+ modes: readonly CaptureModeDefinition[];
88
+ }
89
+ ```
90
+
91
+ ## CaptureModeReconstructionStage
92
+
93
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
94
+
95
+ ```ts
96
+ export type CaptureModeReconstructionStage =
97
+ | "remosaic"
98
+ | "pixel-shift-combination"
99
+ | "multi-frame-computational-combination";
100
+ ```
101
+
102
+ ## CaptureModeSampleCombinationDomain
103
+
104
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
105
+
106
+ ```ts
107
+ export type CaptureModeSampleCombinationDomain =
108
+ | "charge-domain"
109
+ | "pre-conversion-analog"
110
+ | "post-conversion-digital";
111
+ ```
112
+
113
+ ## CaptureModeSensorOffsetNativeSamples
114
+
115
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
116
+
117
+ ```ts
118
+ export interface CaptureModeSensorOffsetNativeSamples {
119
+ /**
120
+ * Horizontal sensor displacement in units of the native effective sampling
121
+ * pitch. This is not a claim about physical photodiode pitch.
122
+ */
123
+ x: number;
124
+ /**
125
+ * Vertical sensor displacement in units of the native effective sampling
126
+ * pitch. This is not a claim about physical photodiode pitch.
127
+ */
128
+ y: number;
129
+ }
130
+ ```
131
+
132
+ ## DeclaredEffectiveCaptureSampling
133
+
134
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
135
+
136
+ ```ts
137
+ export interface DeclaredEffectiveCaptureSampling {
138
+ kind: "declared-effective-raster";
139
+ /**
140
+ * Per-frame effective sampling raster for a mode whose sampling relationship
141
+ * to the native grid is not safely expressible as simple integer grouping.
142
+ */
143
+ raster: SourcedCaptureModeFact<RasterDimensions>;
144
+ }
145
+ ```
146
+
147
+ ## FixedMultiFrameCaptureAcquisition
148
+
149
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
150
+
151
+ ```ts
152
+ export interface FixedMultiFrameCaptureAcquisition {
153
+ kind: "fixed-multi-frame";
154
+ frameCount: SourcedCaptureModeFact<number>;
155
+ }
156
+ ```
157
+
158
+ ## GroupedNativeCaptureSampling
159
+
160
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
161
+
162
+ ```ts
163
+ export interface GroupedNativeCaptureSampling {
164
+ kind: "grouped-native-samples";
165
+ groupWidthSamples: SourcedCaptureModeFact<number>;
166
+ groupHeightSamples: SourcedCaptureModeFact<number>;
167
+ /**
168
+ * Omitted means unknown/unasserted. Do not infer where combination occurs
169
+ * from the word "binning" or from the raster ratio.
170
+ */
171
+ combinationDomain?: SourcedCaptureModeFact<CaptureModeSampleCombinationDomain>;
172
+ }
173
+ ```
174
+
175
+ ## NativeEffectiveCaptureSampling
176
+
177
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
178
+
179
+ ```ts
180
+ export interface NativeEffectiveCaptureSampling {
181
+ kind: "native-effective-raster";
182
+ }
183
+ ```
184
+
185
+ ## parseCaptureModeProfile
186
+
187
+ Parses a capture-mode profile without inferring sensor physics from output
188
+ resolution or marketing mode names.
189
+
190
+ The profile is intentionally orthogonal: acquisition frame sequence,
191
+ per-frame sampling, optional inter-frame sensor shift, reconstruction stages,
192
+ processed raster and downstream dependencies are independent axes.
193
+
194
+ ```ts
195
+ export function parseCaptureModeProfile(
196
+ value: unknown
197
+ ): CaptureModeProfile;
198
+ ```
199
+
200
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
201
+
202
+ ## resolveCaptureMode
203
+
204
+ Resolves one capture mode against the selected sensor's native effective
205
+ image-sampling raster.
206
+
207
+ Resolution changes do not mutate physical sensor geometry. The returned
208
+ processed raster is pre-output geometry and must not be used to infer crop
209
+ factor, field of view or physical photosite count.
210
+
211
+ ```ts
212
+ export function resolveCaptureMode(
213
+ input: ResolveCaptureModeInput
214
+ ): ResolvedCaptureMode;
215
+ ```
216
+
217
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
218
+
219
+ ## ResolveCaptureModeInput
220
+
221
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
222
+
223
+ ```ts
224
+ export interface ResolveCaptureModeInput {
225
+ nativeRaster: NativeImageRaster;
226
+ profile: CaptureModeProfile;
227
+ modeId: string;
228
+ }
229
+ ```
230
+
231
+ ## ResolvedCaptureMode
232
+
233
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
234
+
235
+ ```ts
236
+ export interface ResolvedCaptureMode {
237
+ modeId: string;
238
+ modeEvidence: readonly EvidenceProvenance[];
239
+ nativeRaster: NativeImageRaster;
240
+ nativeRasterSemantic:
241
+ "effective-image-sampling-grid-not-photosite-count";
242
+ acquisition:
243
+ | {
244
+ kind: "single-frame";
245
+ frameCount: 1;
246
+ }
247
+ | {
248
+ kind: "fixed-multi-frame";
249
+ frameCount: SourcedCaptureModeFact<number>;
250
+ }
251
+ | {
252
+ kind: "variable-multi-frame";
253
+ evidence: readonly EvidenceProvenance[];
254
+ minimumFrameCount?: SourcedCaptureModeFact<number>;
255
+ maximumFrameCount?: SourcedCaptureModeFact<number>;
256
+ };
257
+ perFrameSampling:
258
+ | {
259
+ kind: "native-effective-raster";
260
+ raster: NativeImageRaster;
261
+ }
262
+ | {
263
+ kind: "grouped-native-samples";
264
+ raster: RasterDimensions;
265
+ groupWidthSamples: SourcedCaptureModeFact<number>;
266
+ groupHeightSamples: SourcedCaptureModeFact<number>;
267
+ combinationDomain?: SourcedCaptureModeFact<CaptureModeSampleCombinationDomain>;
268
+ }
269
+ | {
270
+ kind: "declared-effective-raster";
271
+ raster: SourcedCaptureModeFact<RasterDimensions>;
272
+ };
273
+ interFrameSensorOffsetsNativeSamples?: SourcedCaptureModeFact<
274
+ readonly CaptureModeSensorOffsetNativeSamples[]
275
+ >;
276
+ reconstructionStages: readonly SourcedCaptureModeFact<CaptureModeReconstructionStage>[];
277
+ processedImageRaster: SourcedCaptureModeFact<RasterDimensions>;
278
+ processedImageMegapixels: number;
279
+ dependencies: readonly CaptureModeDependency[];
280
+ physicalSensorGeometryMutation: false;
281
+ photositeCountInference:
282
+ "not-permitted-from-native-or-processed-raster";
283
+ finalOutputRasterOwnership:
284
+ "downstream-capture-output-geometry";
285
+ }
286
+ ```
287
+
288
+ ## SingleFrameCaptureAcquisition
289
+
290
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
291
+
292
+ ```ts
293
+ export interface SingleFrameCaptureAcquisition {
294
+ kind: "single-frame";
295
+ }
296
+ ```
297
+
298
+ ## SourcedCaptureModeFact
299
+
300
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
301
+
302
+ ```ts
303
+ export type SourcedCaptureModeFact<T> = EvidenceBackedFact<T>;
304
+ ```
305
+
306
+ ## VariableMultiFrameCaptureAcquisition
307
+
308
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
309
+
310
+ ```ts
311
+ export interface VariableMultiFrameCaptureAcquisition {
312
+ kind: "variable-multi-frame";
313
+ /**
314
+ * Evidence that the mode is variable/multi-frame, even when exact count
315
+ * bounds are not published.
316
+ */
317
+ evidence: readonly EvidenceProvenance[];
318
+ minimumFrameCount?: SourcedCaptureModeFact<number>;
319
+ maximumFrameCount?: SourcedCaptureModeFact<number>;
320
+ }
321
+ ```
@@ -0,0 +1,228 @@
1
+ # sensor/color-sampling.ts public contracts
2
+
3
+ Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## LayeredColorSamplingLayout
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ export interface LayeredColorSamplingLayout {
11
+ kind: "layered";
12
+ /**
13
+ * Semantic layer/channel identifiers only. They do not define spectral
14
+ * response, depth ordering, spatial sampling density, or registration.
15
+ */
16
+ layerChannelIds: readonly string[];
17
+ /**
18
+ * The first layered representation is deliberately structural only because
19
+ * real layered sensors may use unequal per-layer spatial sampling.
20
+ */
21
+ spatialSamplingRelationship: "not-resolved";
22
+ }
23
+ ```
24
+
25
+ ## MonochromeColorSamplingLayout
26
+
27
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
28
+
29
+ ```ts
30
+ export interface MonochromeColorSamplingLayout {
31
+ kind: "monochrome";
32
+ /**
33
+ * Semantic measurement-channel identifier only. It is not a spectral
34
+ * response curve, wavelength, colorimetric primary, or calibration.
35
+ */
36
+ channelId: string;
37
+ }
38
+ ```
39
+
40
+ ## NativeColorSamplingSiteCoordinateSystem
41
+
42
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
43
+
44
+ ```ts
45
+ export type NativeColorSamplingSiteCoordinateSystem =
46
+ "native-sensor-color-sampling-site-index";
47
+ ```
48
+
49
+ ## NativeColorSamplingSiteIndex
50
+
51
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
52
+
53
+ ```ts
54
+ export interface NativeColorSamplingSiteIndex {
55
+ /**
56
+ * Zero-based integer site index from the native sensor's left edge.
57
+ *
58
+ * This is an abstract color-sampling-site lattice index. It is not a
59
+ * NativeImageRaster coordinate and does not assert one site = one physical
60
+ * photodiode.
61
+ */
62
+ x: number;
63
+ /**
64
+ * Zero-based integer site index from the native sensor's top edge.
65
+ *
66
+ * +Y points downward in native sensor-facing coordinates.
67
+ */
68
+ y: number;
69
+ }
70
+ ```
71
+
72
+ ## parseSensorColorSamplingProfile
73
+
74
+ Parses an exact color-sampling topology declaration without binding it to
75
+ NativeImageRaster, physical photodiodes, spectral response, or a
76
+ manufacturer-specific family enum.
77
+
78
+ Periodic mosaics use an abstract native sensor color-sampling-site lattice
79
+ with zero-based integer indices, top-left origin, +X right and +Y down.
80
+ The repeat phase is anchored to the sensor lattice, so later active crops or
81
+ orientation transforms must preserve the original native site indices.
82
+
83
+ Layered layouts are structural-only in this first contract because real
84
+ layered sensors may use unequal spatial sampling density/registration across
85
+ layers. No per-site layered resolver is exposed until that relationship is
86
+ modeled explicitly.
87
+
88
+ ```ts
89
+ export function parseSensorColorSamplingProfile(
90
+ value: unknown
91
+ ): SensorColorSamplingProfile;
92
+ ```
93
+
94
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
95
+
96
+ ## PeriodicMosaicColorSamplingLayout
97
+
98
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
99
+
100
+ ```ts
101
+ export interface PeriodicMosaicColorSamplingLayout {
102
+ kind: "periodic-mosaic";
103
+ /**
104
+ * Number of color-sampling sites in one horizontal repeat period.
105
+ */
106
+ repeatWidthSites: number;
107
+ /**
108
+ * Number of color-sampling sites in one vertical repeat period.
109
+ */
110
+ repeatHeightSites: number;
111
+ /**
112
+ * Row-major semantic channel IDs for one repeating tile.
113
+ *
114
+ * Length must equal repeatWidthSites × repeatHeightSites.
115
+ */
116
+ siteChannelIds: readonly string[];
117
+ /**
118
+ * The repeat tile is anchored at native sensor sampling-site index (0, 0).
119
+ *
120
+ * Active crops and physical orientation must not silently reset this phase.
121
+ */
122
+ anchor: "native-sensor-top-left-site";
123
+ }
124
+ ```
125
+
126
+ ## resolveColorSamplingSite
127
+
128
+ Resolves the semantic measurement-channel assignment at one abstract native
129
+ sensor color-sampling-site index for monochrome or periodic-mosaic layouts.
130
+
131
+ This API intentionally has no NativeImageRaster input. A later explicit
132
+ binding must establish how a selected capture mode's effective raster maps
133
+ to this color-sampling-site lattice before RAW/CFA sampling can be simulated.
134
+
135
+ Layered layouts fail closed because their per-layer spatial relationship is
136
+ not resolved by the first structural contract.
137
+
138
+ ```ts
139
+ export function resolveColorSamplingSite(
140
+ input: ResolveColorSamplingSiteInput
141
+ ): ResolvedColorSamplingSite;
142
+ ```
143
+
144
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
145
+
146
+ ## ResolveColorSamplingSiteInput
147
+
148
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
149
+
150
+ ```ts
151
+ export interface ResolveColorSamplingSiteInput {
152
+ profile: SensorColorSamplingProfile;
153
+ site: NativeColorSamplingSiteIndex;
154
+ }
155
+ ```
156
+
157
+ ## ResolvedColorSamplingSite
158
+
159
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
160
+
161
+ ```ts
162
+ export interface ResolvedColorSamplingSite {
163
+ profileId: string;
164
+ coordinateSystem: NativeColorSamplingSiteCoordinateSystem;
165
+ site: NativeColorSamplingSiteIndex;
166
+ mapping:
167
+ | {
168
+ kind: "monochrome";
169
+ channelId: string;
170
+ }
171
+ | {
172
+ kind: "periodic-mosaic";
173
+ channelId: string;
174
+ repeatCoordinate: {
175
+ x: number;
176
+ y: number;
177
+ };
178
+ repeatWidthSites: number;
179
+ repeatHeightSites: number;
180
+ };
181
+ /**
182
+ * Explicit scientific boundaries for downstream consumers.
183
+ */
184
+ spectralResponseEstablished: false;
185
+ nativeImageRasterBindingEstablished: false;
186
+ physicalPhotodiodeBindingEstablished: false;
187
+ }
188
+ ```
189
+
190
+ ## SensorColorSamplingLayout
191
+
192
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
193
+
194
+ ```ts
195
+ export type SensorColorSamplingLayout =
196
+ | MonochromeColorSamplingLayout
197
+ | PeriodicMosaicColorSamplingLayout
198
+ | LayeredColorSamplingLayout;
199
+ ```
200
+
201
+ ## SensorColorSamplingProfile
202
+
203
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
204
+
205
+ ```ts
206
+ export interface SensorColorSamplingProfile {
207
+ schemaVersion: "0.1.0";
208
+ profileId: string;
209
+ /**
210
+ * Evidence supporting this exact topology declaration.
211
+ *
212
+ * Descriptive architecture-family metadata remains a separate contract.
213
+ */
214
+ evidence: readonly EvidenceProvenance[];
215
+ coordinateSystem: SensorColorSamplingProfileCoordinateSystem;
216
+ layout: SensorColorSamplingLayout;
217
+ }
218
+ ```
219
+
220
+ ## SensorColorSamplingProfileCoordinateSystem
221
+
222
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
223
+
224
+ ```ts
225
+ export type SensorColorSamplingProfileCoordinateSystem =
226
+ | NativeColorSamplingSiteCoordinateSystem
227
+ | "native-sensor-layered-spatial-relationship-not-resolved";
228
+ ```
@@ -0,0 +1,152 @@
1
+ # sensor/constant-rate-temporal-integration.ts public contracts
2
+
3
+ Package **1.0.1**, root API **1.0.1**. [Navigation](../API_REFERENCE.md) · [Developer guide](../DEVELOPERS.md). Generated signatures retain independent schema/model versions. Only the exports listed here are root-package contracts; module-local helpers are not supported deep imports.
4
+
5
+ ## IntegrateStationarySensorRateInput
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ export interface IntegrateStationarySensorRateInput {
11
+ rate:
12
+ SensorInstantaneousRateResult;
13
+ exposureBinding:
14
+ SensorRateLocalExposureBinding;
15
+ stationarityProfile:
16
+ SensorRateTemporalStationarityProfile;
17
+ }
18
+ ```
19
+
20
+ ## integrateStationarySensorRateOverLocalExposure
21
+
22
+ Integrates one explicitly stationary response-rate result over its exact
23
+ bound local exposure window.
24
+
25
+ This function is intentionally limited to the constant-rate approximation.
26
+ It does not sample or integrate a time-varying signal.
27
+
28
+ ```ts
29
+ export function integrateStationarySensorRateOverLocalExposure(
30
+ input:
31
+ IntegrateStationarySensorRateInput
32
+ ): CalculationResult<SensorStationaryRateExposureIntegration>;
33
+ ```
34
+
35
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
36
+
37
+ ## parseSensorRateTemporalStationarityProfile
38
+
39
+ Validate an untrusted declaration and return the normalized typed contract. Unknown enum values,
40
+ missing required fields and incompatible scientific data fail at this boundary.
41
+
42
+ Rate times duration is allowed only by explicit stationarity bound to the exact site and local
43
+ shutter interval. EQE integrates to expected photons/electrons; A/W integrates current magnitude to
44
+ coulombs without an implicit carrier mapping. Counts remain fractional expectations before
45
+ stochastic sampling.
46
+
47
+ ```ts
48
+ export function parseSensorRateTemporalStationarityProfile(
49
+ value: unknown
50
+ ): SensorRateTemporalStationarityProfile;
51
+ ```
52
+
53
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
54
+
55
+ ## SensorEqeExposureIntegration
56
+
57
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
58
+
59
+ ```ts
60
+ export interface SensorEqeExposureIntegration
61
+ extends SensorTemporalIntegrationCommon {
62
+ kind: "eqe-expected-counts";
63
+ incidentPhotonRatePerSecond: number;
64
+ expectedGeneratedElectronRatePerSecond:
65
+ number;
66
+ expectedIncidentPhotonCount: number;
67
+ expectedGeneratedElectronCount:
68
+ number;
69
+ countsAreExpectationValues: true;
70
+ integerPhotonCountSampled: false;
71
+ integerElectronCountSampled: false;
72
+ chargeCalculated: false;
73
+ currentCalculated: false;
74
+ }
75
+ ```
76
+
77
+ ## SensorRateStationarityStatus
78
+
79
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
80
+
81
+ ```ts
82
+ export type SensorRateStationarityStatus =
83
+ | "established"
84
+ | "approximation";
85
+ ```
86
+
87
+ ## SensorRateTemporalStationarityProfile
88
+
89
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
90
+
91
+ ```ts
92
+ export interface SensorRateTemporalStationarityProfile {
93
+ schemaVersion: "0.1.0";
94
+ profileId: string;
95
+ rateDomain:
96
+ SensorRateLocalExposureBinding["rateDomain"];
97
+ colorSamplingProfileId: string;
98
+ channelId: string;
99
+ site: {
100
+ x: number;
101
+ y: number;
102
+ };
103
+ bindingId: string;
104
+ localExposureWindow: {
105
+ timeReference:
106
+ "first-opening-boundary-phase";
107
+ startOffsetSecondsFromOpeningReference:
108
+ number;
109
+ endOffsetSecondsFromOpeningReference:
110
+ number;
111
+ };
112
+ stationarityMeaning:
113
+ "reported-rate-constant-through-bound-local-exposure";
114
+ status:
115
+ SensorRateStationarityStatus;
116
+ evidence: readonly EvidenceProvenance[];
117
+ limitation?: string;
118
+ }
119
+ ```
120
+
121
+ ## SensorResponsivityExposureIntegration
122
+
123
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
124
+
125
+ ```ts
126
+ export interface SensorResponsivityExposureIntegration
127
+ extends SensorTemporalIntegrationCommon {
128
+ kind:
129
+ "responsivity-photocurrent-charge";
130
+ photocurrentMagnitudeAmperes: number;
131
+ photochargeMagnitudeCoulombs:
132
+ number;
133
+ currentSignConvention:
134
+ "magnitude-only-no-circuit-polarity";
135
+ chargeSignConvention:
136
+ "magnitude-only-no-carrier-or-circuit-polarity";
137
+ carrierCountInferred: false;
138
+ electronCountCalculated: false;
139
+ photonCountCalculated: false;
140
+ detectorBandwidthModeled: false;
141
+ }
142
+ ```
143
+
144
+ ## SensorStationaryRateExposureIntegration
145
+
146
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
147
+
148
+ ```ts
149
+ export type SensorStationaryRateExposureIntegration =
150
+ | SensorEqeExposureIntegration
151
+ | SensorResponsivityExposureIntegration;
152
+ ```