@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,966 @@
1
+ # exposure/exposure-mode-resolver.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
+ ## AperturePriorityAutoIsoExposureModeResolution
6
+
7
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
8
+
9
+ ```ts
10
+ export type AperturePriorityAutoIsoExposureModeResolution =
11
+ | {
12
+ resolverVersion:
13
+ typeof EXPOSURE_MODE_RESOLVER_VERSION;
14
+ mode:
15
+ "aperture-priority";
16
+ status: "resolved";
17
+ axisOwnership: {
18
+ aperture: "manual";
19
+ shutter: "automatic";
20
+ iso: "automatic";
21
+ };
22
+ targetId: string;
23
+ targetSourceMeterSnapshot:
24
+ ExposureMeterTarget["sourceMeterSnapshot"];
25
+ referenceExposure:
26
+ RelativeExposureControlAnchor;
27
+ manualAperture: number;
28
+ policy:
29
+ AperturePriorityAutoIsoPolicy;
30
+ baselineIso: number;
31
+ idealShutterAtBaselineIsoSeconds:
32
+ number;
33
+ preferredShutterSeconds:
34
+ number;
35
+ afterMaximumIsoFallbackUsed:
36
+ boolean;
37
+ resolvedSettings: {
38
+ aperture: number;
39
+ shutterSeconds: number;
40
+ iso: number;
41
+ };
42
+ shutterResolution: {
43
+ kind:
44
+ | "continuous"
45
+ | "discrete";
46
+ quantized: boolean;
47
+ clamped:
48
+ | false
49
+ | "minimum"
50
+ | "maximum";
51
+ selectionPolicy:
52
+ | "not-longer-than-target"
53
+ | "nearest-log2-shorter-on-tie";
54
+ };
55
+ isoResolution:
56
+ PriorityAutoIsoResolutionCommon["isoResolution"];
57
+ idealIsoBeforeConstraints: number;
58
+ targetResidual:
59
+ Extract<
60
+ ExposureTargetResidual,
61
+ { status: "resolved" }
62
+ >;
63
+ apertureMutatedByResolver: false;
64
+ shutterResolvedByResolver: true;
65
+ isoResolvedByResolver: true;
66
+ exposureCompensationAppliedByResolver:
67
+ false;
68
+ meterRecomputedByResolver: false;
69
+ flashPolicyApplied: false;
70
+ safetyShiftApplied: false;
71
+ }
72
+ | {
73
+ resolverVersion:
74
+ typeof EXPOSURE_MODE_RESOLVER_VERSION;
75
+ mode:
76
+ "aperture-priority";
77
+ status: "blocked";
78
+ axisOwnership: {
79
+ aperture: "manual";
80
+ shutter: "automatic";
81
+ iso: "automatic";
82
+ };
83
+ targetId: string;
84
+ targetSourceMeterSnapshot:
85
+ ExposureMeterTarget["sourceMeterSnapshot"];
86
+ referenceExposure:
87
+ RelativeExposureControlAnchor;
88
+ manualAperture: number;
89
+ policy:
90
+ AperturePriorityAutoIsoPolicy;
91
+ resolvedSettings: {
92
+ aperture: number;
93
+ };
94
+ blocker:
95
+ | "auto-iso-unsupported"
96
+ | "auto-iso-unknown"
97
+ | "target-no-signal";
98
+ targetResidual: {
99
+ status:
100
+ "target-unresolved";
101
+ state:
102
+ "target-unresolved";
103
+ reason:
104
+ | "no-signal-target"
105
+ | "auto-iso-unavailable";
106
+ };
107
+ apertureMutatedByResolver: false;
108
+ exposureCompensationAppliedByResolver:
109
+ false;
110
+ meterRecomputedByResolver: false;
111
+ flashPolicyApplied: false;
112
+ safetyShiftApplied: false;
113
+ };
114
+ ```
115
+
116
+ ## AperturePriorityAutoIsoPolicy
117
+
118
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
119
+
120
+ ```ts
121
+ export interface AperturePriorityAutoIsoPolicy
122
+ extends AutoIsoBaselinePolicy {
123
+ kind:
124
+ "minimum-iso-until-slowest-preferred-shutter";
125
+ slowestPreferredShutterSeconds:
126
+ number;
127
+ shutterSelectionPolicy:
128
+ "not-longer-than-target";
129
+ afterMaximumIso:
130
+ | "allow-slower-shutter"
131
+ | "hold-preferred-shutter";
132
+ }
133
+ ```
134
+
135
+ ## AperturePriorityExposureModeResolution
136
+
137
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
138
+
139
+ ```ts
140
+ export type AperturePriorityExposureModeResolution =
141
+ | (AperturePriorityExposureResolutionBase & {
142
+ status: "resolved";
143
+ resolvedSettings: {
144
+ aperture: number;
145
+ shutterSeconds: number;
146
+ iso: number;
147
+ };
148
+ idealShutterSecondsBeforeConstraints:
149
+ number;
150
+ shutterResolution: {
151
+ kind:
152
+ | "continuous"
153
+ | "discrete";
154
+ quantizationPolicy:
155
+ "nearest-log2-shorter-on-tie";
156
+ quantized: boolean;
157
+ clamped:
158
+ | false
159
+ | "minimum"
160
+ | "maximum";
161
+ };
162
+ targetResidual: {
163
+ status: "resolved";
164
+ state:
165
+ | "matched"
166
+ | "under-target"
167
+ | "over-target";
168
+ targetExposureStops: number;
169
+ achievedExposureStops: number;
170
+ residualStops: number;
171
+ limitingConstraint:
172
+ ExposureResolutionConstraint;
173
+ };
174
+ })
175
+ | (AperturePriorityExposureResolutionBase & {
176
+ status: "blocked";
177
+ resolvedSettings: {
178
+ aperture: number;
179
+ iso: number;
180
+ };
181
+ idealShutterSecondsBeforeConstraints:
182
+ null;
183
+ blocker: "target-no-signal";
184
+ targetResidual: {
185
+ status: "target-unresolved";
186
+ state: "target-unresolved";
187
+ reason: "no-signal-target";
188
+ };
189
+ });
190
+ ```
191
+
192
+ ## AutoIsoBaselinePolicy
193
+
194
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
195
+
196
+ ```ts
197
+ export interface AutoIsoBaselinePolicy {
198
+ isoBaseline: "minimum-selectable";
199
+ isoQuantizationPolicy:
200
+ "nearest-log2-lower-on-tie";
201
+ }
202
+ ```
203
+
204
+ ## EXPOSURE_MODE_RESOLVER_VERSION
205
+
206
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
207
+
208
+ ```ts
209
+ EXPOSURE_MODE_RESOLVER_VERSION =
210
+ "0.5.0" as const
211
+ ```
212
+
213
+ ## ExposureResolutionConstraint
214
+
215
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
216
+
217
+ ```ts
218
+ export type ExposureResolutionConstraint =
219
+ | "none"
220
+ | "iso-minimum"
221
+ | "iso-maximum"
222
+ | "iso-grid-quantization"
223
+ | "shutter-minimum"
224
+ | "shutter-maximum"
225
+ | "shutter-grid-quantization"
226
+ | "aperture-widest"
227
+ | "aperture-narrowest"
228
+ | "aperture-grid-quantization";
229
+ ```
230
+
231
+ ## ExposureTargetResidual
232
+
233
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
234
+
235
+ ```ts
236
+ export type ExposureTargetResidual =
237
+ | {
238
+ status: "resolved";
239
+ state:
240
+ | "matched"
241
+ | "under-target"
242
+ | "over-target";
243
+ targetExposureStops: number;
244
+ achievedExposureStops: number;
245
+ residualStops: number;
246
+ limitingConstraint:
247
+ ExposureResolutionConstraint;
248
+ }
249
+ | {
250
+ status:
251
+ "target-unresolved";
252
+ state:
253
+ "target-unresolved";
254
+ reason:
255
+ "no-signal-target";
256
+ };
257
+ ```
258
+
259
+ ## ExposureTargetResidualState
260
+
261
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
262
+
263
+ ```ts
264
+ export type ExposureTargetResidualState =
265
+ | "matched"
266
+ | "under-target"
267
+ | "over-target"
268
+ | "target-unresolved";
269
+ ```
270
+
271
+ ## FullAutoExposureModeResolution
272
+
273
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
274
+
275
+ ```ts
276
+ export type FullAutoExposureModeResolution =
277
+ | (ProgramExposureResolutionBase & {
278
+ mode:
279
+ "full-auto-exposure";
280
+ status: "resolved";
281
+ axisOwnership: {
282
+ aperture: "automatic";
283
+ shutter: "automatic";
284
+ iso: "automatic";
285
+ };
286
+ policy:
287
+ FullAutoExposurePolicy;
288
+ baselineIso: number;
289
+ idealIsoBeforeConstraints:
290
+ number;
291
+ isoResolution:
292
+ PriorityAutoIsoResolutionCommon["isoResolution"];
293
+ resolvedSettings: {
294
+ aperture: number;
295
+ shutterSeconds: number;
296
+ iso: number;
297
+ };
298
+ targetResidual:
299
+ Extract<
300
+ ExposureTargetResidual,
301
+ { status: "resolved" }
302
+ >;
303
+ autofocusResolved: false;
304
+ whiteBalanceResolved: false;
305
+ flashResolved: false;
306
+ driveResolved: false;
307
+ sceneRecognitionResolved: false;
308
+ stabilizationPolicyResolved:
309
+ false;
310
+ })
311
+ | {
312
+ resolverVersion:
313
+ typeof EXPOSURE_MODE_RESOLVER_VERSION;
314
+ mode:
315
+ "full-auto-exposure";
316
+ status: "blocked";
317
+ axisOwnership: {
318
+ aperture: "automatic";
319
+ shutter: "automatic";
320
+ iso: "automatic";
321
+ };
322
+ policy:
323
+ FullAutoExposurePolicy;
324
+ targetId: string;
325
+ targetSourceMeterSnapshot:
326
+ ExposureMeterTarget["sourceMeterSnapshot"];
327
+ referenceExposure:
328
+ RelativeExposureControlAnchor;
329
+ blocker:
330
+ | "target-no-signal"
331
+ | "auto-iso-unsupported"
332
+ | "auto-iso-unknown";
333
+ targetResidual: {
334
+ status: "target-unresolved";
335
+ state: "target-unresolved";
336
+ reason:
337
+ | "no-signal-target"
338
+ | "auto-iso-unavailable";
339
+ };
340
+ exposureCompensationAppliedByResolver:
341
+ false;
342
+ meterRecomputedByResolver: false;
343
+ flashPolicyApplied: false;
344
+ safetyShiftApplied: false;
345
+ autofocusResolved: false;
346
+ whiteBalanceResolved: false;
347
+ flashResolved: false;
348
+ driveResolved: false;
349
+ sceneRecognitionResolved: false;
350
+ stabilizationPolicyResolved:
351
+ false;
352
+ };
353
+ ```
354
+
355
+ ## FullAutoExposurePolicy
356
+
357
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
358
+
359
+ ```ts
360
+ export interface FullAutoExposurePolicy {
361
+ kind:
362
+ "generic-program-line-minimum-iso";
363
+ programLine:
364
+ ExposureProgramLineProfile;
365
+ isoBaseline:
366
+ "minimum-selectable";
367
+ isoQuantizationPolicy:
368
+ "nearest-log2-lower-on-tie";
369
+ }
370
+ ```
371
+
372
+ ## ManualExposureModeResolution
373
+
374
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
375
+
376
+ ```ts
377
+ export type ManualExposureModeResolution =
378
+ | (ManualExposureResolutionBase & {
379
+ status: "resolved";
380
+ isoControl: "manual";
381
+ resolvedSettings: {
382
+ aperture: number;
383
+ shutterSeconds: number;
384
+ iso: number;
385
+ };
386
+ idealIsoBeforeConstraints:
387
+ null;
388
+ isoResolution: {
389
+ kind: "manual-preserved";
390
+ quantized: false;
391
+ clamped: false;
392
+ };
393
+ targetResidual:
394
+ ExposureTargetResidual;
395
+ })
396
+ | (ManualExposureResolutionBase & {
397
+ status: "resolved";
398
+ isoControl: "automatic";
399
+ resolvedSettings: {
400
+ aperture: number;
401
+ shutterSeconds: number;
402
+ iso: number;
403
+ };
404
+ idealIsoBeforeConstraints:
405
+ number;
406
+ isoResolution: {
407
+ kind:
408
+ | "continuous"
409
+ | "discrete";
410
+ quantizationPolicy:
411
+ "nearest-log2-lower-on-tie";
412
+ quantized: boolean;
413
+ clamped:
414
+ | false
415
+ | "minimum"
416
+ | "maximum";
417
+ };
418
+ targetResidual: {
419
+ status: "resolved";
420
+ state:
421
+ | "matched"
422
+ | "under-target"
423
+ | "over-target";
424
+ targetExposureStops: number;
425
+ achievedExposureStops: number;
426
+ residualStops: number;
427
+ limitingConstraint:
428
+ ExposureResolutionConstraint;
429
+ };
430
+ })
431
+ | (ManualExposureResolutionBase & {
432
+ status: "blocked";
433
+ isoControl: "automatic";
434
+ resolvedSettings: {
435
+ aperture: number;
436
+ shutterSeconds: number;
437
+ };
438
+ idealIsoBeforeConstraints:
439
+ null;
440
+ blocker:
441
+ | "auto-iso-unsupported"
442
+ | "auto-iso-unknown"
443
+ | "target-no-signal";
444
+ targetResidual: {
445
+ status:
446
+ "target-unresolved";
447
+ state:
448
+ "target-unresolved";
449
+ reason:
450
+ "no-signal-target" |
451
+ "auto-iso-unavailable";
452
+ };
453
+ });
454
+ ```
455
+
456
+ ## ManualIsoControl
457
+
458
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
459
+
460
+ ```ts
461
+ export type ManualIsoControl =
462
+ | {
463
+ kind: "manual";
464
+ iso: number;
465
+ }
466
+ | {
467
+ kind: "automatic";
468
+ quantizationPolicy:
469
+ "nearest-log2-lower-on-tie";
470
+ };
471
+ ```
472
+
473
+ ## ProgramAutoExposureModeResolution
474
+
475
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
476
+
477
+ ```ts
478
+ export type ProgramAutoExposureModeResolution =
479
+ | (ProgramExposureResolutionBase & {
480
+ mode: "program-auto";
481
+ status: "resolved";
482
+ axisOwnership: {
483
+ aperture: "automatic";
484
+ shutter: "automatic";
485
+ iso: "manual";
486
+ };
487
+ isoControl: "manual";
488
+ manualIso: number;
489
+ resolvedSettings: {
490
+ aperture: number;
491
+ shutterSeconds: number;
492
+ iso: number;
493
+ };
494
+ targetResidual:
495
+ Extract<
496
+ ExposureTargetResidual,
497
+ { status: "resolved" }
498
+ >;
499
+ })
500
+ | (ProgramExposureResolutionBase & {
501
+ mode: "program-auto";
502
+ status: "resolved";
503
+ axisOwnership: {
504
+ aperture: "automatic";
505
+ shutter: "automatic";
506
+ iso: "automatic";
507
+ };
508
+ isoControl: "automatic";
509
+ baselineIso: number;
510
+ idealIsoBeforeConstraints:
511
+ number;
512
+ isoResolution:
513
+ PriorityAutoIsoResolutionCommon["isoResolution"];
514
+ resolvedSettings: {
515
+ aperture: number;
516
+ shutterSeconds: number;
517
+ iso: number;
518
+ };
519
+ targetResidual:
520
+ Extract<
521
+ ExposureTargetResidual,
522
+ { status: "resolved" }
523
+ >;
524
+ })
525
+ | {
526
+ resolverVersion:
527
+ typeof EXPOSURE_MODE_RESOLVER_VERSION;
528
+ mode: "program-auto";
529
+ status: "blocked";
530
+ axisOwnership: {
531
+ aperture: "automatic";
532
+ shutter: "automatic";
533
+ iso: "manual" | "automatic";
534
+ };
535
+ isoControl: "manual" | "automatic";
536
+ targetId: string;
537
+ targetSourceMeterSnapshot:
538
+ ExposureMeterTarget["sourceMeterSnapshot"];
539
+ referenceExposure:
540
+ RelativeExposureControlAnchor;
541
+ blocker:
542
+ | "target-no-signal"
543
+ | "auto-iso-unsupported"
544
+ | "auto-iso-unknown";
545
+ targetResidual: {
546
+ status: "target-unresolved";
547
+ state: "target-unresolved";
548
+ reason:
549
+ | "no-signal-target"
550
+ | "auto-iso-unavailable";
551
+ };
552
+ exposureCompensationAppliedByResolver:
553
+ false;
554
+ meterRecomputedByResolver: false;
555
+ flashPolicyApplied: false;
556
+ safetyShiftApplied: false;
557
+ };
558
+ ```
559
+
560
+ ## ProgramAutoIsoControl
561
+
562
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
563
+
564
+ ```ts
565
+ export type ProgramAutoIsoControl =
566
+ | {
567
+ kind: "manual";
568
+ iso: number;
569
+ }
570
+ | {
571
+ kind: "automatic";
572
+ isoBaseline:
573
+ "minimum-selectable";
574
+ isoQuantizationPolicy:
575
+ "nearest-log2-lower-on-tie";
576
+ };
577
+ ```
578
+
579
+ ## ProgramLineSelectionDiagnostics
580
+
581
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
582
+
583
+ ```ts
584
+ export interface ProgramLineSelectionDiagnostics {
585
+ profileId: string;
586
+ profileVersion: string;
587
+ requestedOpticalExposureStopsFromReference:
588
+ number;
589
+ selectedOpticalExposureStopsFromReference:
590
+ number;
591
+ position:
592
+ | "within-line"
593
+ | "below-line"
594
+ | "above-line";
595
+ interpolationPhase:
596
+ number | null;
597
+ idealAperture: number;
598
+ idealShutterSeconds: number;
599
+ resolvedAperture: number;
600
+ resolvedShutterSeconds: number;
601
+ apertureQuantized: boolean;
602
+ shutterQuantized: boolean;
603
+ apertureClamped:
604
+ | false
605
+ | "widest"
606
+ | "narrowest";
607
+ shutterClamped:
608
+ | false
609
+ | "minimum"
610
+ | "maximum";
611
+ }
612
+ ```
613
+
614
+ ## RelativeExposureControlAnchor
615
+
616
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
617
+
618
+ ```ts
619
+ export interface RelativeExposureControlAnchor {
620
+ aperture: number;
621
+ shutterSeconds: number;
622
+ iso: number;
623
+ }
624
+ ```
625
+
626
+ ## resolveAperturePriorityAutoIsoExposureMode
627
+
628
+ Hold aperture fixed, follow the declared minimum-shutter policy and use bounded Auto ISO to absorb
629
+ remaining target residual.
630
+
631
+ Exposure modes apply control policy to one shared relative exposure equation and an explicit
632
+ reference anchor. Compensation is already included in the immutable meter target. Manual axes remain
633
+ unchanged; automatic axes use declared setting grids and expose signed residual stops and limit
634
+ diagnostics. A zero-signal target cannot authorize an invented exposure.
635
+
636
+ ```ts
637
+ export function resolveAperturePriorityAutoIsoExposureMode(
638
+ input:
639
+ ResolveAperturePriorityAutoIsoExposureModeInput
640
+ ): AperturePriorityAutoIsoExposureModeResolution;
641
+ ```
642
+
643
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
644
+
645
+ ## ResolveAperturePriorityAutoIsoExposureModeInput
646
+
647
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
648
+
649
+ ```ts
650
+ export interface ResolveAperturePriorityAutoIsoExposureModeInput {
651
+ target: ExposureMeterTarget;
652
+ capabilities:
653
+ ResolvedGenericEquipmentExposureCapabilities;
654
+ referenceExposure:
655
+ RelativeExposureControlAnchor;
656
+ manualAperture: number;
657
+ policy: AperturePriorityAutoIsoPolicy;
658
+ }
659
+ ```
660
+
661
+ ## resolveAperturePriorityExposureMode
662
+
663
+ Resolves Aperture Priority with manual ISO.
664
+
665
+ Aperture and ISO remain caller-owned. Shutter is the only automatic axis.
666
+ The target/reference relationship is the same relative exposure model used
667
+ by Manual + Auto ISO; no new mode-specific exposure equation is introduced.
668
+
669
+ ```ts
670
+ export function resolveAperturePriorityExposureMode(
671
+ input:
672
+ ResolveAperturePriorityExposureModeInput
673
+ ): AperturePriorityExposureModeResolution;
674
+ ```
675
+
676
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
677
+
678
+ ## ResolveAperturePriorityExposureModeInput
679
+
680
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
681
+
682
+ ```ts
683
+ export interface ResolveAperturePriorityExposureModeInput {
684
+ target: ExposureMeterTarget;
685
+ capabilities:
686
+ ResolvedGenericEquipmentExposureCapabilities;
687
+ referenceExposure:
688
+ RelativeExposureControlAnchor;
689
+ manualAperture: number;
690
+ manualIso: number;
691
+ shutterQuantizationPolicy:
692
+ "nearest-log2-shorter-on-tie";
693
+ }
694
+ ```
695
+
696
+ ## resolveFullAutoExposureMode
697
+
698
+ Resolve aperture, shutter and ISO under an explicit generic Full Auto exposure policy. Autofocus,
699
+ WB, flash, drive and scene recognition remain unresolved.
700
+
701
+ Exposure modes apply control policy to one shared relative exposure equation and an explicit
702
+ reference anchor. Compensation is already included in the immutable meter target. Manual axes remain
703
+ unchanged; automatic axes use declared setting grids and expose signed residual stops and limit
704
+ diagnostics. A zero-signal target cannot authorize an invented exposure.
705
+
706
+ ```ts
707
+ export function resolveFullAutoExposureMode(
708
+ input:
709
+ ResolveFullAutoExposureModeInput
710
+ ): FullAutoExposureModeResolution;
711
+ ```
712
+
713
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
714
+
715
+ ## ResolveFullAutoExposureModeInput
716
+
717
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
718
+
719
+ ```ts
720
+ export interface ResolveFullAutoExposureModeInput {
721
+ target: ExposureMeterTarget;
722
+ capabilities:
723
+ ResolvedGenericEquipmentExposureCapabilities;
724
+ referenceExposure:
725
+ RelativeExposureControlAnchor;
726
+ policy:
727
+ FullAutoExposurePolicy;
728
+ }
729
+ ```
730
+
731
+ ## resolveManualExposureMode
732
+
733
+ Resolves Manual exposure with either manual ISO or Auto ISO.
734
+
735
+ Aperture and shutter are always caller-owned and are never changed.
736
+ The relative meter target is normalized by an explicit reference exposure
737
+ anchor; no ISO-100 or other hidden absolute calibration is assumed.
738
+
739
+ ```ts
740
+ export function resolveManualExposureMode(
741
+ input:
742
+ ResolveManualExposureModeInput
743
+ ): ManualExposureModeResolution;
744
+ ```
745
+
746
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
747
+
748
+ ## ResolveManualExposureModeInput
749
+
750
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
751
+
752
+ ```ts
753
+ export interface ResolveManualExposureModeInput {
754
+ target: ExposureMeterTarget;
755
+ capabilities:
756
+ ResolvedGenericEquipmentExposureCapabilities;
757
+ referenceExposure:
758
+ RelativeExposureControlAnchor;
759
+ manualAperture: number;
760
+ manualShutterSeconds: number;
761
+ isoControl: ManualIsoControl;
762
+ }
763
+ ```
764
+
765
+ ## resolveProgramAutoExposureMode
766
+
767
+ Evaluate the declared generic program line in log2 exposure space, quantize aperture/shutter and
768
+ optionally use Auto ISO for residual exposure.
769
+
770
+ Exposure modes apply control policy to one shared relative exposure equation and an explicit
771
+ reference anchor. Compensation is already included in the immutable meter target. Manual axes remain
772
+ unchanged; automatic axes use declared setting grids and expose signed residual stops and limit
773
+ diagnostics. A zero-signal target cannot authorize an invented exposure.
774
+
775
+ ```ts
776
+ export function resolveProgramAutoExposureMode(
777
+ input:
778
+ ResolveProgramAutoExposureModeInput
779
+ ): ProgramAutoExposureModeResolution;
780
+ ```
781
+
782
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
783
+
784
+ ## ResolveProgramAutoExposureModeInput
785
+
786
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
787
+
788
+ ```ts
789
+ export interface ResolveProgramAutoExposureModeInput {
790
+ target: ExposureMeterTarget;
791
+ capabilities:
792
+ ResolvedGenericEquipmentExposureCapabilities;
793
+ referenceExposure:
794
+ RelativeExposureControlAnchor;
795
+ programLine:
796
+ ExposureProgramLineProfile;
797
+ isoControl:
798
+ ProgramAutoIsoControl;
799
+ }
800
+ ```
801
+
802
+ ## resolveShutterPriorityExposureMode
803
+
804
+ Hold shutter fixed and resolve aperture plus optional Auto ISO against the exact capability
805
+ envelope.
806
+
807
+ Exposure modes apply control policy to one shared relative exposure equation and an explicit
808
+ reference anchor. Compensation is already included in the immutable meter target. Manual axes remain
809
+ unchanged; automatic axes use declared setting grids and expose signed residual stops and limit
810
+ diagnostics. A zero-signal target cannot authorize an invented exposure.
811
+
812
+ ```ts
813
+ export function resolveShutterPriorityExposureMode(
814
+ input:
815
+ ResolveShutterPriorityExposureModeInput
816
+ ): ShutterPriorityExposureModeResolution;
817
+ ```
818
+
819
+ This call is synchronous; any supplied provider must follow its explicit synchronous contract.
820
+
821
+ ## ResolveShutterPriorityExposureModeInput
822
+
823
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
824
+
825
+ ```ts
826
+ export interface ResolveShutterPriorityExposureModeInput {
827
+ target: ExposureMeterTarget;
828
+ capabilities:
829
+ ResolvedGenericEquipmentExposureCapabilities;
830
+ referenceExposure:
831
+ RelativeExposureControlAnchor;
832
+ manualShutterSeconds: number;
833
+ isoControl:
834
+ | {
835
+ kind: "manual";
836
+ iso: number;
837
+ apertureQuantizationPolicy:
838
+ "nearest-log2-narrower-on-tie";
839
+ }
840
+ | {
841
+ kind: "automatic";
842
+ policy:
843
+ ShutterPriorityAutoIsoPolicy;
844
+ };
845
+ }
846
+ ```
847
+
848
+ ## ShutterPriorityAutoIsoPolicy
849
+
850
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
851
+
852
+ ```ts
853
+ export interface ShutterPriorityAutoIsoPolicy
854
+ extends AutoIsoBaselinePolicy {
855
+ kind:
856
+ "minimum-iso-aperture-first";
857
+ apertureSelectionPolicy:
858
+ "not-wider-than-target";
859
+ }
860
+ ```
861
+
862
+ ## ShutterPriorityExposureModeResolution
863
+
864
+ The exact contract is declared below; use the domain guide for assumptions and staged integration.
865
+
866
+ ```ts
867
+ export type ShutterPriorityExposureModeResolution =
868
+ | (ShutterPriorityResolutionBase & {
869
+ status: "resolved";
870
+ axisOwnership: {
871
+ aperture: "automatic";
872
+ shutter: "manual";
873
+ iso: "manual";
874
+ };
875
+ isoControl: "manual";
876
+ manualIso: number;
877
+ idealApertureBeforeConstraints:
878
+ number;
879
+ resolvedSettings: {
880
+ aperture: number;
881
+ shutterSeconds: number;
882
+ iso: number;
883
+ };
884
+ apertureResolution: {
885
+ kind:
886
+ | "continuous"
887
+ | "discrete";
888
+ quantizationPolicy:
889
+ "nearest-log2-narrower-on-tie";
890
+ quantized: boolean;
891
+ clamped:
892
+ | false
893
+ | "widest"
894
+ | "narrowest";
895
+ };
896
+ targetResidual:
897
+ Extract<
898
+ ExposureTargetResidual,
899
+ { status: "resolved" }
900
+ >;
901
+ })
902
+ | (ShutterPriorityResolutionBase & {
903
+ status: "resolved";
904
+ axisOwnership: {
905
+ aperture: "automatic";
906
+ shutter: "manual";
907
+ iso: "automatic";
908
+ };
909
+ isoControl: "automatic";
910
+ policy:
911
+ ShutterPriorityAutoIsoPolicy;
912
+ baselineIso: number;
913
+ idealApertureAtBaselineIso:
914
+ number;
915
+ resolvedSettings: {
916
+ aperture: number;
917
+ shutterSeconds: number;
918
+ iso: number;
919
+ };
920
+ apertureResolution: {
921
+ kind:
922
+ | "continuous"
923
+ | "discrete";
924
+ quantized: boolean;
925
+ clamped:
926
+ | false
927
+ | "widest"
928
+ | "narrowest";
929
+ selectionPolicy:
930
+ "not-wider-than-target";
931
+ };
932
+ idealIsoBeforeConstraints: number;
933
+ isoResolution:
934
+ PriorityAutoIsoResolutionCommon["isoResolution"];
935
+ targetResidual:
936
+ Extract<
937
+ ExposureTargetResidual,
938
+ { status: "resolved" }
939
+ >;
940
+ })
941
+ | (ShutterPriorityResolutionBase & {
942
+ status: "blocked";
943
+ axisOwnership: {
944
+ aperture: "automatic";
945
+ shutter: "manual";
946
+ iso: "manual" | "automatic";
947
+ };
948
+ isoControl: "manual" | "automatic";
949
+ resolvedSettings: {
950
+ shutterSeconds: number;
951
+ };
952
+ blocker:
953
+ | "auto-iso-unsupported"
954
+ | "auto-iso-unknown"
955
+ | "target-no-signal";
956
+ targetResidual: {
957
+ status:
958
+ "target-unresolved";
959
+ state:
960
+ "target-unresolved";
961
+ reason:
962
+ | "no-signal-target"
963
+ | "auto-iso-unavailable";
964
+ };
965
+ });
966
+ ```