@sheetxl/sdk 0.7.28-beta.4 → 0.8.0-beta.10

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 (565) hide show
  1. package/THIRD-PARTY-NOTICES.md +1 -1
  2. package/browser/esm/{DBIu6NUHIcxOOBQp.mjs → BEAY9XgKNx-bakXW.mjs} +2 -2
  3. package/browser/esm/BbSmt62FpFIpoVzu.mjs +392 -0
  4. package/browser/esm/BcHmrKHwMMOlzc9_.mjs +357 -0
  5. package/browser/esm/BgcZ-CoTbMfmyDJL.mjs +412 -0
  6. package/browser/esm/Bk7xxbdDpa7-sIwd.mjs +7 -0
  7. package/browser/esm/BqskM7wA8oPfFQue.mjs +20 -0
  8. package/browser/esm/Btg43M1Bf-ENDreu.mjs +540 -0
  9. package/browser/esm/BzLfNyc6OOShIErH.mjs +598 -0
  10. package/browser/esm/C9B0djuUarfNdoj0.mjs +466 -0
  11. package/browser/esm/{CHSahmMFYNB0Ajkf.mjs → CSx9ed1JOs7K5BXO.mjs} +2 -2
  12. package/browser/esm/CYyv6uGjo10ig5FP.mjs +142 -0
  13. package/browser/esm/CZ5oa92wZEAXebgk.mjs +622 -0
  14. package/browser/esm/CdLZWVcH8cncBUPJ.mjs +849 -0
  15. package/browser/esm/Cgd5BnM3hg9RyUel.mjs +171 -0
  16. package/browser/esm/CjsUGJEQSbGjnH6R.mjs +1001 -0
  17. package/browser/esm/ClB5ix51roQOpZEr.mjs +7402 -0
  18. package/browser/esm/{CKk58ZLcrllMzfou.mjs → Cqr3knDsBvoVZ6MN.mjs} +179 -202
  19. package/browser/esm/D4uVlrG0xEFctsSM.mjs +905 -0
  20. package/browser/esm/DOMHmhYzPcLVcpAW.mjs +7 -0
  21. package/browser/esm/DUvUK61b2_4pf4tG.mjs +484 -0
  22. package/browser/esm/De175LygU7ot4nQm.mjs +441 -0
  23. package/browser/esm/DhKkrCVASZ6Isvz6.mjs +527 -0
  24. package/browser/esm/Di58Ji1n--3Mgc_2.mjs +607 -0
  25. package/browser/esm/Dtoyt8q5RyGAlxCp.mjs +1141 -0
  26. package/browser/esm/Y79I7Sm8kjaYexhf.mjs +167 -0
  27. package/browser/esm/index.mjs +1472 -1023
  28. package/browser/esm/o8MFgcVXns987D6_.mjs +400 -0
  29. package/browser/esm/zqJOaweiXE9D8RY1.mjs +66681 -0
  30. package/licenses/dependencies.txt +209 -209
  31. package/node/esm/B6D7sSetrcOWLsKj.mjs +1135 -0
  32. package/node/esm/B9ljpEIZg6wOTzRE.mjs +142 -0
  33. package/node/esm/BH1v-E4Ro3bR7Znw.mjs +962 -0
  34. package/node/esm/BN9j8V9gCExMjVtJ.mjs +540 -0
  35. package/node/esm/{DUYP6faJJHCaW1Xf.mjs → Bh4dv6tMjXX3X4nI.mjs} +1 -1
  36. package/node/esm/Bqd62L8KFgdS0Vou.mjs +7 -0
  37. package/node/esm/Bsx9uijd4X_SKV3L.mjs +360 -0
  38. package/node/esm/BtuY37FumvLE7EBo.mjs +629 -0
  39. package/node/esm/C6ZXsNyLXI6zA63X.mjs +402 -0
  40. package/node/esm/CCouEwT37f08qO3V.mjs +7 -0
  41. package/node/esm/CD9wbvufChVYYkrI.mjs +451 -0
  42. package/node/esm/CImNvdz1iP-lUlro.mjs +610 -0
  43. package/node/esm/CT0CN82y0_Qgoryk.mjs +7568 -0
  44. package/node/esm/CUQi5ZtMO02nhG0W.mjs +596 -0
  45. package/node/esm/CUUoseJmFsCf82bb.mjs +28 -0
  46. package/node/esm/CnSQ7MTXAUAyBOoS.mjs +911 -0
  47. package/node/esm/D7MfcID2Wf6l6VpC.mjs +171 -0
  48. package/node/esm/DCplLG93GfTs1vNw.mjs +1860 -0
  49. package/node/esm/DHUADiCmxNQS1ARz.mjs +417 -0
  50. package/node/esm/DMD12JUh7HJw2-jl.mjs +638 -0
  51. package/node/esm/DdFgXl-Ux2cMBTs_.mjs +15 -0
  52. package/node/esm/DefYISWfdZJFx57m.mjs +255 -0
  53. package/node/esm/Ds0d8zXzmgOu3MGx.mjs +403 -0
  54. package/node/esm/MiU4rDOiocmJ-9Ry.mjs +1783 -0
  55. package/node/esm/index.mjs +49153 -36824
  56. package/package.json +15 -16
  57. package/resources/contents.json +64 -0
  58. package/resources/fonts/arial-bold-italic.metrics.json +139 -0
  59. package/resources/fonts/arial-bold.metrics.json +139 -0
  60. package/resources/fonts/arial-italic.metrics.json +139 -0
  61. package/resources/fonts/arial-regular.metrics.json +139 -0
  62. package/resources/fonts/calibri-bold-italic.metrics.json +137 -0
  63. package/resources/fonts/calibri-bold.metrics.json +137 -0
  64. package/resources/fonts/calibri-italic.metrics.json +137 -0
  65. package/resources/fonts/calibri-regular.metrics.json +137 -0
  66. package/resources/fonts/cambria-bold-italic.metrics.json +66 -0
  67. package/resources/fonts/cambria-bold.metrics.json +66 -0
  68. package/resources/fonts/cambria-italic.metrics.json +66 -0
  69. package/resources/fonts/cambria-regular.metrics.json +66 -0
  70. package/resources/fonts/contents.json +126 -0
  71. package/resources/fonts/courier-new-bold-italic.metrics.json +143 -0
  72. package/resources/fonts/courier-new-bold.metrics.json +143 -0
  73. package/resources/fonts/courier-new-italic.metrics.json +143 -0
  74. package/resources/fonts/courier-new-regular.metrics.json +143 -0
  75. package/resources/fonts/times-new-roman-bold-italic.metrics.json +141 -0
  76. package/resources/fonts/times-new-roman-bold.metrics.json +141 -0
  77. package/resources/fonts/times-new-roman-italic.metrics.json +143 -0
  78. package/resources/fonts/times-new-roman-regular.metrics.json +141 -0
  79. package/resources/locales/de/model.msg.json +112 -12
  80. package/resources/locales/en/model.msg.json +119 -13
  81. package/types/scripting-api.json +8048 -0
  82. package/types/scripting-enums.json +277 -106
  83. package/types/scripting.d.ts +18126 -7971
  84. package/types/src/anchored/AbstractAnchored.d.ts +18 -8
  85. package/types/src/anchored/AnchoredMap.d.ts +2 -0
  86. package/types/src/anchored/IAnchoredMap.d.ts +52 -4
  87. package/types/src/autoFill/AutoFill.d.ts +316 -32
  88. package/types/src/autoFill/IAutoFill.d.ts +232 -15
  89. package/types/src/border/{IBorder.d.ts → IBorders.d.ts} +42 -41
  90. package/types/src/border/index.d.ts +1 -1
  91. package/types/src/calculation/Calculation.d.ts +759 -49
  92. package/types/src/calculation/ExternalBookBindings.d.ts +118 -0
  93. package/types/src/calculation/FormulaText.d.ts +82 -0
  94. package/types/src/calculation/ICalculation.d.ts +318 -81
  95. package/types/src/calculation/INamedFormulasCollection.d.ts +5 -8
  96. package/types/src/calculation/NamedFormulaCollection.d.ts +139 -107
  97. package/types/src/calculation/NamedLambdaFunction.d.ts +28 -0
  98. package/types/src/calculation/TokenType.d.ts +9 -0
  99. package/types/src/calculation/Types.d.ts +83 -2
  100. package/types/src/calculation/_CloneBoundary.d.ts +80 -0
  101. package/types/src/calculation/_TableRename.d.ts +13 -0
  102. package/types/src/calculation/compiler/ASTTypes.d.ts +71 -0
  103. package/types/src/calculation/compiler/CompilerUtils.d.ts +135 -44
  104. package/types/src/calculation/compiler/FormulaCompiler.d.ts +29 -4
  105. package/types/src/calculation/compiler/FormulaParser.d.ts +1 -2
  106. package/types/src/calculation/compiler/LiteTransform.d.ts +17 -0
  107. package/types/src/calculation/compiler/ParserUtils.d.ts +26 -1
  108. package/types/src/calculation/compiler/SRParser.d.ts +2 -1
  109. package/types/src/calculation/compiler/Types.d.ts +79 -9
  110. package/types/src/calculation/executor/CalcExecutor.d.ts +422 -34
  111. package/types/src/calculation/executor/CalcExecutorUtils.d.ts +43 -2
  112. package/types/src/calculation/executor/CircularReference.d.ts +2 -0
  113. package/types/src/calculation/formula/Formula.d.ts +58 -21
  114. package/types/src/calculation/formula/FormulaBlock.d.ts +125 -23
  115. package/types/src/calculation/formula/FormulaRecordView.d.ts +79 -0
  116. package/types/src/calculation/formula/FunctionValues.d.ts +10 -0
  117. package/types/src/calculation/formula/IFormulaBlock.d.ts +261 -67
  118. package/types/src/calculation/formula/LambdaValue.d.ts +46 -23
  119. package/types/src/calculation/formula/LazyValue.d.ts +96 -0
  120. package/types/src/calculation/formula/TokenUtils.d.ts +25 -1
  121. package/types/src/calculation/formula/index.d.ts +1 -0
  122. package/types/src/calculation/functions/FunctionDeclarations.d.ts +31 -0
  123. package/types/src/calculation/functions/Operators.d.ts +8 -0
  124. package/types/src/calculation/functions/initializeFunctions.d.ts +15 -2
  125. package/types/src/calculation/grid/CalcGrid.d.ts +407 -158
  126. package/types/src/calculation/grid/CalcGridBackend.d.ts +493 -0
  127. package/types/src/calculation/grid/CalcGridProxy.d.ts +133 -0
  128. package/types/src/calculation/grid/CalcGridUtils.d.ts +62 -12
  129. package/types/src/calculation/grid/FormulaEntry.d.ts +129 -0
  130. package/types/src/calculation/grid/FormulaHost.d.ts +239 -0
  131. package/types/src/calculation/grid/ICalcGrid.d.ts +499 -141
  132. package/types/src/calculation/grid/_CalcRequest.d.ts +289 -0
  133. package/types/src/calculation/grid/index.d.ts +4 -0
  134. package/types/src/calculation/index.d.ts +2 -0
  135. package/types/src/calculation/spatial/ContentfulSpatialValue.d.ts +6 -2
  136. package/types/src/calculation/spatial/FormulaSpatialValue.d.ts +339 -11
  137. package/types/src/calculation/spatial/SpillEntry.d.ts +20 -5
  138. package/types/src/calculation/spatial/TouchedWindows.d.ts +86 -0
  139. package/types/src/calculation/spatial/index.d.ts +1 -0
  140. package/types/src/calculation/state/CalcInputs.d.ts +41 -0
  141. package/types/src/calculation/state/CalcNode.d.ts +160 -29
  142. package/types/src/calculation/state/CalcScope.d.ts +37 -0
  143. package/types/src/calculation/state/CalcState.d.ts +22 -1
  144. package/types/src/calculation/state/CalculationContext.d.ts +53 -4
  145. package/types/src/calculation/state/IContextContainer.d.ts +159 -26
  146. package/types/src/calculation/state/_PendingOverlayGrid.d.ts +163 -0
  147. package/types/src/calculation/state/_ReadObservedGrid.d.ts +74 -8
  148. package/types/src/calculation/state/index.d.ts +1 -0
  149. package/types/src/calculation/symbol/ExternalSheetSymbols.d.ts +80 -0
  150. package/types/src/calculation/symbol/ISymbolRegistry.d.ts +23 -0
  151. package/types/src/calculation/symbol/IndirectSymbolProvider.d.ts +16 -2
  152. package/types/src/calculation/symbol/SheetSymbolProvider.d.ts +63 -3
  153. package/types/src/calculation/symbol/SymbolRegistry.d.ts +20 -0
  154. package/types/src/calculation/symbol/index.d.ts +3 -2
  155. package/types/src/cell/ICell.d.ts +104 -29
  156. package/types/src/cell/ICellHeader.d.ts +24 -2
  157. package/types/src/cell/ICellProtection.d.ts +50 -10
  158. package/types/src/cellRange/ICellRange.d.ts +458 -97
  159. package/types/src/cellRange/ICellRanges.d.ts +23 -21
  160. package/types/src/chart/Chart.d.ts +41 -13
  161. package/types/src/chart/ChartCollection.d.ts +26 -0
  162. package/types/src/chart/IChart.d.ts +166 -12
  163. package/types/src/chart/IChartCollection.d.ts +25 -0
  164. package/types/src/chart/_ChartXml.d.ts +70 -0
  165. package/types/src/chart/index.d.ts +1 -3
  166. package/types/src/collections/ArraysGrid.d.ts +1 -1
  167. package/types/src/collections/IGrid.d.ts +1 -1
  168. package/types/src/collections/ISparseGrid.d.ts +9 -0
  169. package/types/src/collections/ISpatialMap.d.ts +59 -21
  170. package/types/src/collections/ImmutableList.d.ts +28 -0
  171. package/types/src/collections/MixedTypedArrayList.d.ts +168 -108
  172. package/types/src/collections/OverlappingRangeIterator.d.ts +13 -17
  173. package/types/src/collections/RepeatingList.d.ts +7 -0
  174. package/types/src/collections/ScalarGrid.d.ts +50 -0
  175. package/types/src/collections/SparseGrid.d.ts +1 -1
  176. package/types/src/collections/SpatialMap.d.ts +13 -21
  177. package/types/src/collections/Tuple.d.ts +128 -16
  178. package/types/src/collections/_GridUtils.d.ts +19 -6
  179. package/types/src/collections/_RangeSweep.d.ts +97 -0
  180. package/types/src/collections/_SpatialUtils.d.ts +20 -2
  181. package/types/src/collections/index.d.ts +1 -0
  182. package/types/src/color/_BuiltInIndexDefs.d.ts +6 -0
  183. package/types/src/comment/Comment.d.ts +223 -0
  184. package/types/src/comment/CommentCollection.d.ts +40 -0
  185. package/types/src/comment/IComment.d.ts +340 -50
  186. package/types/src/comment/ICommentCollection.d.ts +90 -0
  187. package/types/src/comment/NoteMovable.d.ts +26 -0
  188. package/types/src/comment/_CommentUtils.d.ts +50 -0
  189. package/types/src/comment/_NoteBox.d.ts +50 -0
  190. package/types/src/comment/index.d.ts +1 -0
  191. package/types/src/condition/AnchoredConditional.d.ts +82 -17
  192. package/types/src/condition/BuiltInOperators/AbstractOperator.d.ts +42 -12
  193. package/types/src/condition/BuiltInOperators/AfterEqualToOperator.d.ts +2 -0
  194. package/types/src/condition/BuiltInOperators/AfterOperator.d.ts +2 -0
  195. package/types/src/condition/BuiltInOperators/AndOperator.d.ts +3 -1
  196. package/types/src/condition/BuiltInOperators/AverageOperator.d.ts +2 -0
  197. package/types/src/condition/BuiltInOperators/BeforeEqualToOperator.d.ts +2 -0
  198. package/types/src/condition/BuiltInOperators/BeforeOperator.d.ts +2 -0
  199. package/types/src/condition/BuiltInOperators/BetweenOperator.d.ts +2 -0
  200. package/types/src/condition/BuiltInOperators/ColorOperator.d.ts +4 -0
  201. package/types/src/condition/BuiltInOperators/ContainsOperator.d.ts +2 -0
  202. package/types/src/condition/BuiltInOperators/EndsWithOperator.d.ts +2 -0
  203. package/types/src/condition/BuiltInOperators/EqualToOperator.d.ts +4 -1
  204. package/types/src/condition/BuiltInOperators/ExpressionOperator.d.ts +5 -6
  205. package/types/src/condition/BuiltInOperators/GreaterThanEqualToOperator.d.ts +2 -0
  206. package/types/src/condition/BuiltInOperators/GreaterThanOperator.d.ts +2 -0
  207. package/types/src/condition/BuiltInOperators/IconOperator.d.ts +4 -0
  208. package/types/src/condition/BuiltInOperators/InSetOperator.d.ts +22 -5
  209. package/types/src/condition/BuiltInOperators/LessThanEqualToOperator.d.ts +2 -0
  210. package/types/src/condition/BuiltInOperators/LessThanOperator.d.ts +2 -0
  211. package/types/src/condition/BuiltInOperators/NotOperator.d.ts +2 -0
  212. package/types/src/condition/BuiltInOperators/OrOperator.d.ts +3 -1
  213. package/types/src/condition/BuiltInOperators/StartsWithOperator.d.ts +2 -0
  214. package/types/src/condition/BuiltInOperators/TimePeriodOperator.d.ts +2 -0
  215. package/types/src/condition/BuiltInOperators/TopNOperator.d.ts +6 -0
  216. package/types/src/condition/BuiltinSelectors/BaseSelector.d.ts +21 -6
  217. package/types/src/condition/BuiltinSelectors/DateSelector.d.ts +4 -5
  218. package/types/src/condition/BuiltinSelectors/DisplaySelector.d.ts +20 -0
  219. package/types/src/condition/BuiltinSelectors/TextLengthSelector.d.ts +7 -5
  220. package/types/src/condition/BuiltinSelectors/TimeSelector.d.ts +3 -5
  221. package/types/src/condition/BuiltinSelectors/WholeSelector.d.ts +3 -5
  222. package/types/src/condition/BuiltinSelectors/index.d.ts +12 -6
  223. package/types/src/condition/Condition.d.ts +19 -1
  224. package/types/src/condition/ICondition.d.ts +293 -73
  225. package/types/src/condition/_ConditionFormula.d.ts +152 -0
  226. package/types/src/condition/_ConditionUtils.d.ts +167 -13
  227. package/types/src/conditionalFormat/ConditionalEntry.d.ts +3 -3
  228. package/types/src/conditionalFormat/ConditionalFormat.d.ts +25 -14
  229. package/types/src/conditionalFormat/ConditionalFormatCollection.d.ts +19 -8
  230. package/types/src/conditionalFormat/IConditionalFormat.d.ts +12 -10
  231. package/types/src/conditionalFormat/IConditionalFormatCollection.d.ts +2 -0
  232. package/types/src/dataValidation/DataValidation.d.ts +69 -3
  233. package/types/src/dataValidation/DataValidationCollection.d.ts +20 -9
  234. package/types/src/dataValidation/IDataValidation.d.ts +149 -30
  235. package/types/src/dataValidation/IDataValidationCollection.d.ts +10 -2
  236. package/types/src/date/DateUtils.d.ts +20 -0
  237. package/types/src/date/_DateUtils.d.ts +91 -7
  238. package/types/src/externalBook/ExternalBookCollection.d.ts +145 -12
  239. package/types/src/externalBook/ExternalBookName.d.ts +96 -0
  240. package/types/src/externalBook/IExternalBook.d.ts +170 -18
  241. package/types/src/externalBook/IExternalBookCollection.d.ts +79 -7
  242. package/types/src/externalBook/index.d.ts +1 -0
  243. package/types/src/{lib/file → file}/file.browser.d.ts +22 -8
  244. package/types/src/{lib/file → file}/file.node.d.ts +7 -2
  245. package/types/src/fill/IEffect.d.ts +5 -5
  246. package/types/src/fill/IFill.d.ts +123 -78
  247. package/types/src/fill/IStroke.d.ts +190 -64
  248. package/types/src/fill/RectAlignment.d.ts +20 -0
  249. package/types/src/fill/_Fills.d.ts +187 -0
  250. package/types/src/fill/_Stroke.d.ts +89 -0
  251. package/types/src/fill/index.d.ts +1 -0
  252. package/types/src/filter/IFilter.d.ts +188 -5
  253. package/types/src/font/AdvanceBuilder.d.ts +25 -0
  254. package/types/src/font/AdvanceTable.d.ts +114 -0
  255. package/types/src/font/FontCollection.d.ts +57 -0
  256. package/types/src/font/IFont.d.ts +17 -0
  257. package/types/src/font/IFontCollection.d.ts +120 -22
  258. package/types/src/font/TableFileAdvanceBuilder.d.ts +27 -0
  259. package/types/src/font/_BuiltinFontTables.d.ts +10 -0
  260. package/types/src/font/index.d.ts +4 -1
  261. package/types/src/group/Group.d.ts +136 -0
  262. package/types/src/group/GroupMovableCollection.d.ts +37 -0
  263. package/types/src/group/IGroup.d.ts +129 -0
  264. package/types/src/group/index.d.ts +2 -0
  265. package/types/src/history/IHistory.d.ts +3 -2
  266. package/types/src/hyperlink/IHyperlink.d.ts +13 -0
  267. package/types/src/hyperlink/_Hyperlink.d.ts +5 -1
  268. package/types/src/i18n/LanguagePack.d.ts +12 -4
  269. package/types/src/index.d.ts +5 -0
  270. package/types/src/io/AbstractBackingStore.d.ts +24 -1
  271. package/types/src/io/ArrayBackingStore.d.ts +1 -1
  272. package/types/src/io/EmbeddedPart.d.ts +20 -0
  273. package/types/src/io/IEmbeddedPart.d.ts +63 -0
  274. package/types/src/io/IWorkbookIO.d.ts +185 -18
  275. package/types/src/io/WorkbookIO.d.ts +9 -0
  276. package/types/src/io/WorkbookOrigin.d.ts +20 -11
  277. package/types/src/io/WorkbookOriginProvider.d.ts +46 -0
  278. package/types/src/io/_XmlFragment.d.ts +49 -0
  279. package/types/src/io/index.d.ts +1 -0
  280. package/types/src/license/LicenseDetails.d.ts +1 -0
  281. package/types/src/license/LicenseManager.d.ts +4 -1
  282. package/types/src/license/Types.d.ts +38 -0
  283. package/types/src/license/_Utils.d.ts +22 -0
  284. package/types/src/license/details.d.ts +24 -0
  285. package/types/src/license/license-key.d.ts +49 -2
  286. package/types/src/license/runtime.browser.d.ts +41 -0
  287. package/types/src/{lib/utils/utils.node.d.ts → license/runtime.node.d.ts} +9 -12
  288. package/types/src/listener/IListener.d.ts +12 -7
  289. package/types/src/listener/ListenerEmitter.d.ts +46 -5
  290. package/types/src/model/AbstractModel.d.ts +14 -5
  291. package/types/src/movable/AbstractMovableContent.d.ts +182 -0
  292. package/types/src/movable/CustomElement.d.ts +4 -5
  293. package/types/src/movable/ErrorContent.d.ts +49 -0
  294. package/types/src/movable/FormControl.d.ts +285 -0
  295. package/types/src/movable/GroupMember.d.ts +87 -0
  296. package/types/src/movable/ICustomElement.d.ts +7 -2
  297. package/types/src/movable/IErrorContent.d.ts +23 -0
  298. package/types/src/movable/IFormControl.d.ts +455 -0
  299. package/types/src/movable/IMovable.d.ts +378 -46
  300. package/types/src/movable/IMovableCollection.d.ts +63 -3
  301. package/types/src/movable/Movable.d.ts +149 -49
  302. package/types/src/movable/MovableCollection.d.ts +15 -8
  303. package/types/src/movable/MovableContentRegistry.d.ts +113 -0
  304. package/types/src/movable/_BuiltInContents.d.ts +14 -0
  305. package/types/src/movable/_ContentFactory.d.ts +35 -0
  306. package/types/src/movable/_DrawnBounds.d.ts +37 -0
  307. package/types/src/movable/_InsertableCollection.d.ts +28 -0
  308. package/types/src/movable/_MovableUtils.d.ts +5 -0
  309. package/types/src/movable/_PendingContent.d.ts +25 -0
  310. package/types/src/movable/_PlacementUtils.d.ts +55 -0
  311. package/types/src/movable/_RotatedFrame.d.ts +20 -0
  312. package/types/src/movable/index.d.ts +7 -1
  313. package/types/src/named/AbstractNamed.d.ts +1 -1
  314. package/types/src/named/INamed.d.ts +4 -1
  315. package/types/src/named/INamedCollection.d.ts +26 -0
  316. package/types/src/named/NamedCollection.d.ts +16 -15
  317. package/types/src/numFmt/BuiltInFormats.d.ts +20 -7
  318. package/types/src/numFmt/IFormatEngine.d.ts +2 -0
  319. package/types/src/numFmt/NumfmtFormatEngine.d.ts +2 -0
  320. package/types/src/numFmt/_FormatCell.d.ts +11 -2
  321. package/types/src/numFmt/_NumFmtUtils.d.ts +0 -1
  322. package/types/src/numFmt/vendor/numfmt/_sheetxl.d.ts +6 -0
  323. package/types/src/outline/IOutline.d.ts +186 -0
  324. package/types/src/outline/Outline.d.ts +157 -0
  325. package/types/src/outline/index.d.ts +2 -0
  326. package/types/src/person/IPerson.d.ts +99 -0
  327. package/types/src/person/IPersonCollection.d.ts +51 -0
  328. package/types/src/person/Person.d.ts +32 -0
  329. package/types/src/person/PersonCollection.d.ts +49 -0
  330. package/types/src/person/index.d.ts +4 -0
  331. package/types/src/picture/IPicture.d.ts +33 -3
  332. package/types/src/picture/Picture.d.ts +33 -13
  333. package/types/src/pivot/IPivotTable.d.ts +72 -0
  334. package/types/src/pivot/IPivotTableCollection.d.ts +25 -0
  335. package/types/src/pivot/PivotCache.d.ts +34 -0
  336. package/types/src/pivot/PivotTable.d.ts +61 -0
  337. package/types/src/pivot/PivotTableCollection.d.ts +25 -0
  338. package/types/src/pivot/_PivotXml.d.ts +24 -0
  339. package/types/src/pivot/index.d.ts +6 -0
  340. package/types/src/primitives/CompositeRangeStats.d.ts +2 -0
  341. package/types/src/primitives/Criteria.d.ts +1 -1
  342. package/types/src/primitives/Grouping.d.ts +65 -0
  343. package/types/src/primitives/LambdaBrand.d.ts +26 -0
  344. package/types/src/primitives/PrimitiveUtils.d.ts +60 -21
  345. package/types/src/primitives/Range.d.ts +136 -26
  346. package/types/src/primitives/RangeStats.d.ts +30 -2
  347. package/types/src/primitives/ReferenceRange.d.ts +44 -0
  348. package/types/src/primitives/Runtime.d.ts +15 -2
  349. package/types/src/primitives/environment.browser.d.ts +9 -0
  350. package/types/src/primitives/environment.node.d.ts +10 -0
  351. package/types/src/primitives/stats/AggregateStats.d.ts +49 -15
  352. package/types/src/primitives/stats/Cancellation.d.ts +13 -0
  353. package/types/src/primitives/stats/FrequencyStats.d.ts +10 -1
  354. package/types/src/primitives/stats/LookupIndex.d.ts +46 -0
  355. package/types/src/primitives/stats/Ranked.d.ts +1 -1
  356. package/types/src/primitives/stats/SortedNumbers.d.ts +4 -2
  357. package/types/src/primitives/stats/index.d.ts +1 -0
  358. package/types/src/print/IPrint.d.ts +0 -22
  359. package/types/src/protectedRange/IProtectedRange.d.ts +4 -0
  360. package/types/src/protectedRange/IProtectedRangeCollection.d.ts +2 -0
  361. package/types/src/protectedRange/ProtectedRange.d.ts +1 -4
  362. package/types/src/protectedRange/ProtectedRangeCollection.d.ts +19 -8
  363. package/types/src/protection/DefaultProtection.d.ts +12 -1
  364. package/types/src/protection/IProtection.d.ts +36 -2
  365. package/types/src/reference/ReferenceUtils.d.ts +80 -0
  366. package/types/src/reference/index.d.ts +2 -0
  367. package/types/src/resource/IResource.d.ts +21 -1
  368. package/types/src/resource/IResourceCollection.d.ts +9 -1
  369. package/types/src/resource/ResourceCollection.d.ts +6 -6
  370. package/types/src/scripting/FunctionArguments.d.ts +22 -0
  371. package/types/src/scripting/FunctionCollection.d.ts +49 -15
  372. package/types/src/scripting/IFunctionCollection.d.ts +62 -32
  373. package/types/src/scripting/IModule.d.ts +25 -0
  374. package/types/src/scripting/IModuleCollection.d.ts +17 -0
  375. package/types/src/scripting/IScript.d.ts +28 -26
  376. package/types/src/scripting/Module.d.ts +34 -6
  377. package/types/src/scripting/ModuleCollection.d.ts +17 -12
  378. package/types/src/scripting/Runtime.d.ts +15 -0
  379. package/types/src/scripting/Scripts.d.ts +3 -7
  380. package/types/src/scripting/TypedFunction.d.ts +200 -4
  381. package/types/src/scripting/_FunctionIndex.d.ts +8 -3
  382. package/types/src/scripting/_ModuleUtils.d.ts +11 -1
  383. package/types/src/scripting/_ScriptUtils.d.ts +3 -0
  384. package/types/src/scripting/declarations.browser.d.ts +10 -0
  385. package/types/src/scripting/declarations.d.ts +49 -0
  386. package/types/src/scripting/declarations.node.d.ts +9 -0
  387. package/types/src/scripting/index.d.ts +3 -0
  388. package/types/src/selection/IMovableSelection.d.ts +148 -0
  389. package/types/src/selection/IRangeSelection.d.ts +9 -4
  390. package/types/src/selection/MovableSelection.d.ts +48 -0
  391. package/types/src/selection/RangeSelection.d.ts +15 -0
  392. package/types/src/selection/index.d.ts +1 -0
  393. package/types/src/shape/GeometryPreset.d.ts +197 -0
  394. package/types/src/shape/IGeometry.d.ts +380 -0
  395. package/types/src/shape/IShape.d.ts +341 -194
  396. package/types/src/shape/IShapeStyle.d.ts +135 -0
  397. package/types/src/shape/Shape.d.ts +107 -21
  398. package/types/src/shape/ShapeStyleUtils.d.ts +54 -0
  399. package/types/src/shape/_ConnectorFrame.d.ts +32 -0
  400. package/types/src/shape/_ConnectorRoute.d.ts +33 -0
  401. package/types/src/shape/_Connectors.d.ts +108 -0
  402. package/types/src/shape/_Geometry.d.ts +14 -0
  403. package/types/src/shape/_GeometryLoader.d.ts +21 -0
  404. package/types/src/shape/_ShapeStyle.d.ts +70 -0
  405. package/types/src/shape/_builtIn/_BuiltInChunks.d.ts +10 -0
  406. package/types/src/shape/_builtIn/_BuiltInDef.d.ts +9 -0
  407. package/types/src/shape/_builtIn/arrows.d.ts +6 -0
  408. package/types/src/shape/_builtIn/basic.d.ts +6 -0
  409. package/types/src/shape/_builtIn/callouts.d.ts +6 -0
  410. package/types/src/shape/_builtIn/flowchart.d.ts +6 -0
  411. package/types/src/shape/_builtIn/lines.d.ts +6 -0
  412. package/types/src/shape/_builtIn/math.d.ts +6 -0
  413. package/types/src/shape/_builtIn/other.d.ts +6 -0
  414. package/types/src/shape/_builtIn/rectangles.d.ts +6 -0
  415. package/types/src/shape/_builtIn/starsBanners.d.ts +6 -0
  416. package/types/src/shape/geometry/_strokeEnds.d.ts +7 -0
  417. package/types/src/shape/geometry/format.d.ts +3 -0
  418. package/types/src/shape/geometry/geometry.d.ts +85 -0
  419. package/types/src/shape/geometry/guides.d.ts +54 -0
  420. package/types/src/shape/geometry/handles.d.ts +14 -0
  421. package/types/src/shape/geometry/index.d.ts +7 -0
  422. package/types/src/shape/geometry/lineEnds.d.ts +54 -0
  423. package/types/src/shape/geometry/paths.d.ts +35 -0
  424. package/types/src/shape/geometry/segments.d.ts +114 -0
  425. package/types/src/shape/index.d.ts +3 -0
  426. package/types/src/sheet/CellRegion.d.ts +6 -0
  427. package/types/src/sheet/ICellContainerOptions.d.ts +50 -0
  428. package/types/src/sheet/ISheet.d.ts +197 -50
  429. package/types/src/sheet/ISheetCollection.d.ts +2 -5
  430. package/types/src/sheet/NamedCellRange.d.ts +16 -7
  431. package/types/src/sheet/NamedRange.d.ts +8 -0
  432. package/types/src/sheet/Sheet.d.ts +923 -138
  433. package/types/src/sheet/SheetCell.d.ts +92 -32
  434. package/types/src/sheet/SheetCollection.d.ts +19 -8
  435. package/types/src/sheet/SheetRange.d.ts +92 -17
  436. package/types/src/sheet/SheetRanges.d.ts +22 -9
  437. package/types/src/sheet/_CellBuffer.d.ts +214 -0
  438. package/types/src/sheet/_HeldFormula.d.ts +69 -0
  439. package/types/src/sheet/_InvalidSheetRange.d.ts +7 -7
  440. package/types/src/sheet/_ListenerAnchor.d.ts +104 -0
  441. package/types/src/sheet/_RangeStateSweep.d.ts +16 -0
  442. package/types/src/sheet/_ScalarListFactory.d.ts +61 -0
  443. package/types/src/sheet/_SheetAutoFillUtils.d.ts +74 -0
  444. package/types/src/sheet/_SheetAutoFitUtils.d.ts +28 -0
  445. package/types/src/sheet/_SheetEvents.d.ts +43 -0
  446. package/types/src/sheet/_SheetFilterUtils.d.ts +49 -1
  447. package/types/src/sheet/_SheetIntents.d.ts +296 -0
  448. package/types/src/sheet/_SheetMutations.d.ts +182 -62
  449. package/types/src/sheet/_SheetStateReader.d.ts +19 -13
  450. package/types/src/sheet/_SheetStateTypes.d.ts +83 -78
  451. package/types/src/sheet/_SheetUtils.d.ts +39 -22
  452. package/types/src/sheet/_WatchAnchor.d.ts +93 -0
  453. package/types/src/sheet/spatial/HeldFormulaEntry.d.ts +36 -0
  454. package/types/src/sheet/spatial/index.d.ts +1 -0
  455. package/types/src/sheet/style/SheetCellStyle.d.ts +209 -304
  456. package/types/src/sheet/style/SheetDirectStyle.d.ts +30 -19
  457. package/types/src/sheet/style/SheetNamedStyle.d.ts +17 -17
  458. package/types/src/sheet/style/SheetTableStyle.d.ts +5 -5
  459. package/types/src/sheet/style/_Resolvers.d.ts +14 -8
  460. package/types/src/sheet/style/_StyleUtils.d.ts +38 -8
  461. package/types/src/sheetHeader/ISheetHeader.d.ts +94 -53
  462. package/types/src/sheetHeader/SheetCellHeader.d.ts +4 -0
  463. package/types/src/sheetHeader/SheetHeader.d.ts +42 -22
  464. package/types/src/sheetHeader/_HeaderMetrics.d.ts +37 -0
  465. package/types/src/sheetHeader/_HeaderUtils.d.ts +5 -3
  466. package/types/src/sheetProtection/ISheetProtection.d.ts +41 -7
  467. package/types/src/sheetProtection/SheetProtection.d.ts +12 -0
  468. package/types/src/sheetView/ISheetView.d.ts +69 -15
  469. package/types/src/sheetView/SheetView.d.ts +20 -11
  470. package/types/src/slicer/ISlicer.d.ts +304 -17
  471. package/types/src/slicer/ISlicerStyle.d.ts +109 -0
  472. package/types/src/slicer/Slicer.d.ts +128 -13
  473. package/types/src/slicer/SlicerStyle.d.ts +25 -0
  474. package/types/src/slicer/_BuiltInSlicerStyles.d.ts +13 -0
  475. package/types/src/slicer/_SlicerUtils.d.ts +30 -0
  476. package/types/src/slicer/index.d.ts +1 -0
  477. package/types/src/sort/ISort.d.ts +4 -2
  478. package/types/src/string/IStringCollection.d.ts +5 -0
  479. package/types/src/string/StringCollection.d.ts +6 -6
  480. package/types/src/style/{IStyle.d.ts → ICellStyle.d.ts} +72 -52
  481. package/types/src/style/INamedStyleCollection.d.ts +72 -0
  482. package/types/src/style/ISlicerStyleCollection.d.ts +77 -0
  483. package/types/src/style/IStyleCollection.d.ts +91 -60
  484. package/types/src/style/ITableStyleCollection.d.ts +89 -0
  485. package/types/src/style/NamedStyleCollection.d.ts +39 -0
  486. package/types/src/style/SlicerStyleCollection.d.ts +46 -0
  487. package/types/src/style/StyleCollection.d.ts +81 -26
  488. package/types/src/style/TableStyleCollection.d.ts +49 -0
  489. package/types/src/style/_BuiltInStyleDefs.d.ts +6 -6
  490. package/types/src/style/_BuiltInStyleNames.d.ts +2 -2
  491. package/types/src/style/index.d.ts +7 -1
  492. package/types/src/table/AnchoredTable.d.ts +701 -72
  493. package/types/src/table/AutoTable.d.ts +7 -5
  494. package/types/src/table/ITable.d.ts +261 -34
  495. package/types/src/table/ITableCollection.d.ts +12 -0
  496. package/types/src/table/ITableStyle.d.ts +37 -37
  497. package/types/src/table/TableCollection.d.ts +19 -8
  498. package/types/src/table/_FilterField.d.ts +19 -6
  499. package/types/src/table/_NamedTable.d.ts +17 -1
  500. package/types/src/table/_NamedTableSource.d.ts +1 -0
  501. package/types/src/table/_SortField.d.ts +2 -0
  502. package/types/src/table/_TableColumn.d.ts +13 -2
  503. package/types/src/table/_TableMessages.d.ts +1 -0
  504. package/types/src/table/_TableUtils.d.ts +40 -0
  505. package/types/src/text/Bullet.d.ts +4 -0
  506. package/types/src/text/IText.d.ts +182 -0
  507. package/types/src/text/ITextFrame.d.ts +110 -1
  508. package/types/src/text/TextBoxAlignment.d.ts +25 -16
  509. package/types/src/text/TextFrame.d.ts +4 -0
  510. package/types/src/text/TextLine.d.ts +4 -0
  511. package/types/src/text/TextParagraph.d.ts +4 -0
  512. package/types/src/text/TextRotation.d.ts +3 -3
  513. package/types/src/text/TextRun.d.ts +9 -0
  514. package/types/src/text/TextStacked.d.ts +83 -0
  515. package/types/src/text/index.d.ts +1 -0
  516. package/types/src/text/richtext/IRichText.d.ts +36 -0
  517. package/types/src/text/richtext/IStyledFont.d.ts +18 -18
  518. package/types/src/text/richtext/index.d.ts +1 -0
  519. package/types/src/theme/ITheme.d.ts +45 -4
  520. package/types/src/theme/IThemeCollection.d.ts +2 -0
  521. package/types/src/theme/ThemeCollection.d.ts +11 -7
  522. package/types/src/theme/_OfficeFormatScheme.d.ts +3 -0
  523. package/types/src/transaction/ITransaction.d.ts +258 -45
  524. package/types/src/transaction/Transaction.d.ts +101 -11
  525. package/types/src/transaction/TransactionUndoManager.d.ts +4 -1
  526. package/types/src/type/AbstractCollection.d.ts +101 -0
  527. package/types/src/type/ICollection.d.ts +117 -0
  528. package/types/src/type/ITypes.d.ts +9 -7
  529. package/types/src/type/index.d.ts +1 -0
  530. package/types/src/utils/_CSSUtils.d.ts +3 -3
  531. package/types/src/wasm/_sdkWasm.d.ts +7 -0
  532. package/types/src/wasm/index.d.ts +2 -0
  533. package/types/src/wasm/sdkWasm.d.ts +29 -0
  534. package/types/src/workbook/IWorkbook.d.ts +180 -40
  535. package/types/src/workbook/Workbook.d.ts +123 -10
  536. package/types/src/workbook/_WorkbookIntents.d.ts +36 -0
  537. package/types/src/workbookProtection/IWorkbookProtection.d.ts +7 -0
  538. package/types/src/workbookProtection/WorkbookProtection.d.ts +3 -0
  539. package/types/src/workbookView/IWorkbookView.d.ts +12 -0
  540. package/types/src/workbookView/WorkbookView.d.ts +5 -0
  541. package/browser/cjs/B7_pDFYCVzt-3hUs.cjs +0 -1
  542. package/browser/cjs/BF14ZEAnaqxXroSj.cjs +0 -1
  543. package/browser/cjs/BXtvdT1Z-MsB_o5F.cjs +0 -1
  544. package/browser/cjs/Bc4JjVVZfFo3R4He.cjs +0 -33
  545. package/browser/cjs/CD2RXdnfqSYNc6gX.cjs +0 -57
  546. package/browser/cjs/DcLpXGexEtOxi-dD.cjs +0 -1
  547. package/browser/cjs/Dv3x6zut1ZRUt3IF.cjs +0 -10
  548. package/browser/cjs/index.cjs +0 -3
  549. package/browser/esm/0Mj5WKM362q6CECb.mjs +0 -824
  550. package/browser/esm/CPTtL2f6_4iblmFM.mjs +0 -4436
  551. package/browser/esm/CoA-sUxjiIUIpTUF.mjs +0 -109
  552. package/browser/esm/Dy4Sdpju1T2icURu.mjs +0 -50854
  553. package/node/esm/BtGxbEbBm79YvF_k.mjs +0 -843
  554. package/node/esm/DqgWsVXROpSgKq6c.mjs +0 -114
  555. package/types/src/cellRange/_GraphNode.d.ts +0 -38
  556. package/types/src/condition/BuiltinSelectors/ListSelector.d.ts +0 -12
  557. package/types/src/dataValidation/_Utils.d.ts +0 -10
  558. package/types/src/lib/utils/_Utils.d.ts +0 -20
  559. package/types/src/lib/utils/utils.browser.d.ts +0 -33
  560. package/types/src/movable/IGroup.d.ts +0 -30
  561. package/types/src/movable/IMovableSelection.d.ts +0 -49
  562. package/types/src/sheet/listener/RangesListener.d.ts +0 -32
  563. package/types/src/sheet/listener/RangesListenerEntry.d.ts +0 -19
  564. package/types/src/sheet/listener/index.d.ts +0 -3
  565. /package/types/src/{lib/utils → license}/banner.d.ts +0 -0
@@ -1,68 +1,210 @@
1
1
  import { IRange, FormulaError } from '@sheetxl/primitives';
2
2
  import { ICalculation } from '../ICalculation';
3
- import { ReferenceCoords, SetReferenceOptions } from '../Types';
4
- export interface IFormulaBlock {
3
+ import { ReferenceCoords, SetReferenceOptions, PrecedentTemplate, StructuredReference } from '../Types';
4
+ /**
5
+ * A compiled formula as data (DESIGN-CALC-SERVICE §8): what the engine vends for a block, and all
6
+ * the facade needs to image a read view of it for the model (`FormulaRecordView`). Plain data, so
7
+ * it survives `structuredClone`; the syntax tree never crosses.
8
+ *
9
+ * @remarks
10
+ * The tokens carry stable ids in their values - a sheet's, a name's, a table's - and cell
11
+ * coordinates relative to the block's top-left, so one record serves every cell of the block. Text
12
+ * is imaged from them against the reader's own symbol map ({@link FormulaImager}), which is what
13
+ * makes a held copy rename-proof: nothing in the record names a sheet by its name. The model
14
+ * never sees one: it holds the view.
15
+ */
16
+ export interface FormulaRecord {
17
+ /** The block's tokens, stable ids in their values, references relative to the block's top-left. */
18
+ readonly tokens: readonly ICalculation.FormulaToken[];
19
+ /** Set when the text did not parse. */
20
+ readonly error?: FormulaRecord.ParseFailure;
21
+ /** {@inheritDoc IFormulaBlockView.isReferenceOnly} */
22
+ readonly isReferenceOnly: boolean;
5
23
  /**
6
- * This is the eval used internally by graph.
7
- * precedents must be an array of either IRange or Scalar.
24
+ * The block's written references in order, aligned with `FormulaToken.referenceIndex`: what
25
+ * {@link IFormulaBlockView.getReferencesAt} answers from. Absent when there are none.
26
+ */
27
+ readonly references?: readonly FormulaRecord.Reference[];
28
+ }
29
+ export declare namespace FormulaRecord {
30
+ /**
31
+ * A written reference as the record carries it. A cell or range is relative to the block's
32
+ * top-left, a name is its stable id, and a table reference is as written: the model resolves it
33
+ * against its own table, per cell. `null` is a reference that cannot be one (`#REF!`).
34
+ */
35
+ type Reference = IRange.FixableCoords | {
36
+ readonly nameId: string;
37
+ } | {
38
+ readonly table: StructuredReference;
39
+ } | null;
40
+ /** A parse failure as data: what {@link IFormulaBlockView.getError} is rebuilt from. */
41
+ interface ParseFailure {
42
+ /** The text as written. */
43
+ readonly input: string;
44
+ /** The primary error's message. */
45
+ readonly message: string;
46
+ /**
47
+ * `true` when nothing parsed: there are no faithful tokens, and a read answers `input`. A
48
+ * recovered formula (an error, but a tree) images from its tokens like any other.
49
+ */
50
+ readonly unparsed: boolean;
51
+ /** Where the primary error sits in `input`. */
52
+ readonly details?: {
53
+ line: number;
54
+ column: number;
55
+ offset: number;
56
+ length: number;
57
+ };
58
+ }
59
+ }
60
+ /**
61
+ * The READ side of a formula block — what the model and the UI see. `Sheet`, `SheetCell`, autofit
62
+ * and `Formula` type against this; nothing outside `src/calculation/` sees the rest.
63
+ *
64
+ * @remarks
65
+ * The split exists so the calc engine can move behind a worker boundary. {@link ICalcGrid} is the
66
+ * WRITE surface (later comlink-proxied): every mutation and every question that needs the live
67
+ * graph goes there, its notifications come back on `ICalcGrid.Results`, and what lands here is a
68
+ * read view the facade builds from the engine's record of the block ({@link FormulaRecord}):
69
+ * tokens with stable ids, imaged on the model's side of the channel against the model's symbol
70
+ * map. The model holds the view and nothing else.
71
+ *
72
+ * The line: a fact that belongs to ONE BLOCK - derivable from its record - is declared here. A
73
+ * fact that needs the graph, the container, or a range of blocks belongs to {@link ICalcGrid}:
74
+ * evaluating (`evaluateAt`), every write, the recursive walks (`getPrecedentsAt`,
75
+ * `getDependentsAt`), the reverse edges (`getDirectDependentsAt`), what a range READ last calc
76
+ * (`getDirectPrecedentsAt`, which also consults the runtime `INDIRECT`/`OFFSET` registry), and
77
+ * the range form of what a block declares (`getNamedReferencesAt`).
78
+ *
79
+ * `FormulaBlock` satisfies both halves engine-side; `FormulaRecordView` satisfies this one over a
80
+ * record at the facade, and the sheet's `FormulaEntry` over that view, or over its own text while
81
+ * the entry is pending.
82
+ */
83
+ export interface IFormulaBlockView {
84
+ /**
85
+ * Return the formula string.
86
+ *
87
+ * @param row The row of the cell to evaluate.
88
+ * @param column The column of the cell to evaluate.
89
+ * @param r1c1 If 'true' then returns string as r1c1
90
+ * @param target Who the text is for. Default `'storage'` — the form files, undo snapshots and
91
+ * re-parses read. See {@link ICalculation.FormulaTarget}.
92
+ */
93
+ getTextAt(row: number, column: number, r1c1?: boolean, evalIndex?: number, target?: ICalculation.FormulaTarget): string;
94
+ /**
95
+ * Return the formula as an array of formula token values.
8
96
  *
9
97
  * @param row The row of the cell to evaluate.
10
98
  * @param column The column of the cell to evaluate.
11
99
  * @param evalIndex The index of the evaluation to use from the tokens.
100
+ * @remarks
101
+ * These can be used by advanced editors.
102
+ */
103
+ getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
104
+ /**
105
+ * @see
106
+ * { @link ICalculation.IFormula.isReferenceOnly }
107
+ */
108
+ isReferenceOnly(): boolean;
109
+ /**
110
+ * Return an error with the formula.
12
111
  *
13
112
  * @remarks
14
- * The precedents can be passed in as a performance optimization graph caches them as it calculates.
113
+ * This is not a value error but that the formula is unable to resolve.
15
114
  */
16
- evaluateAt(row: number, column: number, evalIndex?: number): any;
115
+ getError(): FormulaError.Parse | null;
17
116
  /**
18
- * Finalizes a raw value from {@link evaluateAt} for RETURN to a caller: collapses a range to
19
- * its anchor scalar (implicit intersection) and prepares a spillable range. A multi-area
20
- * result (`=(A1:A3,C1:C3)`, or a name whose body is a comma union) stays an **array**, one
21
- * finalized area per element, so an API caller receives every area. Applied by the return
22
- * sites (`IFormula.evaluate()`, `ICalculation.evaluate()`) — `evaluateAt` itself returns the
23
- * raw value so a consumer (e.g. a named reference used by a function) sees the reference intact.
117
+ * The formula's written references at a cell, absolute, aligned with
118
+ * `FormulaToken.referenceIndex`.
24
119
  *
25
- * @see {@link finalizeValueForCell} for the write-to-a-grid variant.
120
+ * @param row The row of the cell.
121
+ * @param column The column of the cell.
122
+ *
123
+ * @remarks
124
+ * A name is `{ nameId }` holding its display name, a table reference resolves to the cells it
125
+ * designates from this cell (marked with its `tableId`), and a reference that cannot be one is
126
+ * `null`. What the formula READ on the last calculation (`INDIRECT`, `OFFSET`) is the graph's,
127
+ * not this list.
26
128
  */
27
- finalizeValue(value: any): any;
129
+ getReferencesAt(row: number, column: number): ReferenceCoords[];
130
+ }
131
+ /**
132
+ * A compiled formula body, over the range of cells that share it.
133
+ *
134
+ * @remarks
135
+ * Extends {@link IFormulaBlockView}. The members declared HERE need the compiled AST or the
136
+ * engine's container. No caller outside `src/calculation/` uses any of them: a committed formula
137
+ * reaches the equivalent through its view ({@link IFormulaBlockView.getReferencesAt}) or
138
+ * {@link ICalcGrid} (`setReferenceAt`), and the block forms below serve the UNCOMMITTED path (`TemporaryFormula`, the
139
+ * formula the editor is tokenizing while it is typed), which has no grid entry to resolve against.
140
+ */
141
+ export interface IFormulaBlock extends IFormulaBlockView {
28
142
  /**
29
- * {@link finalizeValue} plus the one rule that is specific to STORING a result in a single
30
- * grid cell: a cell has no representation for a multi-area union, so an array of areas
31
- * becomes `#VALUE!`. Applied by the executor when committing to a grid; returning a
32
- * multi-area through the API is legal and uses {@link finalizeValue} instead.
143
+ * The block as data: what the engine vends for it, and what the facade images the model's view
144
+ * from.
145
+ *
146
+ * @remarks
147
+ * Built once per block and shared by every vend of it: a record is never mutated.
33
148
  */
34
- finalizeValueForCell(value: any): any;
149
+ getRecord(): FormulaRecord;
35
150
  /**
36
- * Return the formula as an array of formula token values.
151
+ * Returns all references used by the formula.
152
+ * Named references are {@link NamedReference} objects (detect via `'nameId' in ref`);
153
+ * cell/range references are {@link IRange.FixableCoords}; unresolvable refs are `null`.
37
154
  *
38
- * @param row The row of the cell to evaluate.
39
- * @param column The column of the cell to evaluate.
40
- * @param evalIndex The index of the evaluation to use from the tokens.
41
155
  * @remarks
42
- * These can be used by advanced editors.
156
+ * Relative to (`row`, `column`). {@link IFormulaBlockView.getReferencesAt} is the same list
157
+ * absolutized, and is how the model asks; it answers from the record's
158
+ * {@link FormulaRecord.references}.
159
+ *
160
+ * Not to be confused with `ICalcGrid.getDirectPrecedentsAt`, which is a different KIND of fact:
161
+ * what a range of blocks READ on the last calculation, including runtime reads (`INDIRECT`,
162
+ * `OFFSET`) that appear in no reference list. That one needs the container's dynamic registry
163
+ * and stays on the grid.
43
164
  */
44
- getTokensAt(row: number, column: number, evalIndex?: number): ICalculation.FormulaToken[];
165
+ getReferences(row: number, column: number): ReferenceCoords[];
45
166
  /**
46
- * Return the formula string.
167
+ * The root of the compiled tree in the shape a {@link ICalculation.FormulaTransform} and a
168
+ * {@link ICalculation.FormulaDialect} read, or `null` when nothing parsed.
47
169
  *
48
- * @param row The row of the cell to evaluate.
49
- * @param column The column of the cell to evaluate.
50
- * @param r1c1 If 'true' then returns string as r1c1
51
- * @param formulaTransform An {@link ICalculation.FormulaTransform} applied structurally to
52
- * the compiled AST before imaging (runs once per block; an all-void transform costs no
53
- * recompile) — how a format exporter (io-xlsx `LegacyFormula`) applies its dialect spellings.
170
+ * @remarks
171
+ * Engine-side, and deliberately not on {@link IFormulaBlockView}: the tree is never handed to
172
+ * the model. A consumer that needs something from it asks for the answer instead.
54
173
  */
55
- getTextAt(row: number, column: number, r1c1?: boolean, formulaTransform?: ICalculation.FormulaTransform, evalIndex?: number,
174
+ getNode(): ICalculation.FormulaNode | null;
56
175
  /**
57
- * Serialize function names in CANONICAL (English) form — the persistence/internal
58
- * representation (files, undo snapshots, re-parses). Default `false` = display form
59
- * (localized via the active language pack).
176
+ * The references an entered formula inherits its number format from, in text order: the cell
177
+ * and range literals that are value operands.
178
+ *
179
+ * @remarks
180
+ * Excel's entry rule: `=A1+B1` takes the format of the first of `A1`, `B1` that is not
181
+ * General; `=OFFSET(A1,0,0)` takes nothing, since `A1` sits in a reference-typed parameter.
182
+ * Names, structured references and `#REF!` slots are not listed. Anchor-free - offsets on a
183
+ * relative axis, a position on a fixed one - so one list serves every cell of the block; the
184
+ * executor ships it on {@link ICalcGrid.Results.formatInserts} for the sheet to resolve.
185
+ */
186
+ getFormatReferences(): IRange.FixableCoords[];
187
+ /**
188
+ * Returns the distinct stable nameIds of the named references in this formula
189
+ * (see `collectNamedIds`). Direct only, never descends into a name's body —
190
+ * transitivity is carried by the dependency graph. Used by `recompileNamed`'s all3D
191
+ * scan to find the formulas to invalidate when a named formula changes.
192
+ *
193
+ * @remarks
194
+ * NOT a projection of {@link IFormulaBlockView.getReferences} - that list is per-POSITION and
195
+ * index-aligned to `FormulaToken.referenceIndex` (null slots kept), while this is deduped,
196
+ * position-free, skips bound `LET`/`LAMBDA` parameters, and is cached on the compiled formula.
197
+ * Ids rather than {@link NamedReference}s because every caller compares ids (against
198
+ * `recompileNamed`'s targets, `IndirectSymbolProvider.reconcile()`).
199
+ *
200
+ * Engine-side: no view-side caller. `ICalcGrid.getNamedReferencesAt` is the range form - the
201
+ * union of this over the blocks a range covers - and is how `Sheet` asks.
60
202
  */
61
- canonical?: boolean): string;
203
+ getNamedIds(): string[];
62
204
  /**
63
205
  * Returns a new formula block with the reference at `index` replaced.
64
206
  *
65
- * @param index The index of the reference to replace (aligned to {@link getReferences}).
207
+ * @param index The index of the reference to replace (aligned to {@link IFormulaBlock.getReferences}).
66
208
  * @param reference The new reference — the {@link ReferenceCoords} TYPE carries the shape intent:
67
209
  * - an {@link IRange.FixableCellCoords} (single cell) collapses an existing range to a lone cell
68
210
  * (`A1:B2` → `A1`, dropping the `:`);
@@ -71,6 +213,10 @@ export interface IFormulaBlock {
71
213
  * - a {@link NamedReference} replaces a named ref with another named ref;
72
214
  * - a {@link FormulaError.Ref} injects a `#REF!`; `null` clears.
73
215
  * @param options See {@link SetReferenceOptions}.
216
+ *
217
+ * @remarks
218
+ * PURE — returns a new block rather than rewriting this one. The committed form is
219
+ * `ICalcGrid.setReferenceAt`, which rewrites inside a transaction batch.
74
220
  */
75
221
  setReferenceAt(index: number, reference: ReferenceCoords, options?: SetReferenceOptions): this;
76
222
  /**
@@ -83,23 +229,54 @@ export interface IFormulaBlock {
83
229
  * @remarks
84
230
  * This is used for moving formulas between grids and requires the formula block to be able to update all of its precedents based on the new and old grid ids.
85
231
  * This is required for cut/paste and drag fill between sheets.
232
+ *
233
+ * Its one caller outside the engine is `Sheet._imageWatchBody`, which composes it with
234
+ * `createFormulaBlock` and `getTextAt` — compiler work, so it stays with the compiled block
235
+ * rather than following the read view.
86
236
  */
87
237
  reanchorReferences(scopeFrom: string, force?: boolean): this;
88
238
  /**
89
- * Replaces all refs explicitly qualified to `fromSheetDisplay` with `toSheetDisplay`.
90
- * Unlike reanchorReferences, unqualified refs are left untouched.
91
- * Used when moving data cross-sheet so explicit same-sheet refs follow the data.
239
+ * This is the eval used internally by graph.
240
+ * precedents must be an array of either IRange or Scalar.
241
+ *
242
+ * @param row The row of the cell to evaluate.
243
+ * @param column The column of the cell to evaluate.
244
+ * @param evalIndex The index of the evaluation to use from the tokens.
245
+ *
246
+ * @remarks
247
+ * Engine-side: evaluating needs the calc scope. A caller reaches it through
248
+ * `ICalcGrid.evaluateAt`, which establishes that scope and is async.
249
+ *
250
+ * The precedents can be passed in as a performance optimization graph caches them as it calculates.
92
251
  */
93
- replaceSheetReferences(fromSheetDisplay: string, toSheetDisplay: string): this;
252
+ evaluateAt(row: number, column: number, evalIndex?: number): any;
94
253
  /**
95
- * Returns all references used by the formula.
96
- * Named references are {@link NamedReference} objects (detect via `'nameId' in ref`);
97
- * cell/range references are {@link IRange.FixableCoords}; unresolvable refs are `null`.
254
+ * Finalizes a raw value from {@link IFormulaBlock.evaluateAt} for RETURN to a caller:
255
+ * collapses a range to its anchor scalar (implicit intersection) and prepares a spillable range.
256
+ * A multi-area result (`=(A1:A3,C1:C3)`, or a name whose body is a comma union) stays an
257
+ * **array**, one finalized area per element, so an API caller receives every area. Applied by
258
+ * the return sites (`IFormula.evaluate()`, `ICalculation.evaluate()`) — `evaluateAt` itself
259
+ * returns the raw value so a consumer (e.g. a named reference used by a function) sees the
260
+ * reference intact.
261
+ *
262
+ * @see {@link IFormulaBlock.finalizeValueForCell} for the write-to-a-grid variant.
98
263
  */
99
- getReferences(row: number, column: number): ReferenceCoords[];
264
+ finalizeValue(value: any): any;
265
+ /**
266
+ * {@link IFormulaBlock.finalizeValue} plus the one rule that is specific to STORING a result
267
+ * in a single grid cell: a cell has no representation for a multi-area union, so an array of
268
+ * areas becomes `#VALUE!`. Applied by the executor when committing to a grid; returning a
269
+ * multi-area through the API is legal and uses {@link IFormulaBlock.finalizeValue} instead.
270
+ */
271
+ finalizeValueForCell(value: any): any;
272
+ /**
273
+ * Replaces the scope of every ref qualified with the stable id `fromScopeId` by `toScopeId` — a
274
+ * sheet id, a 3-D span id, or another. Unqualified refs are left untouched.
275
+ */
276
+ replaceScopeIds(fromScopeId: string | null, toScopeId: string | null): this;
100
277
  /**
101
278
  * Returns the reference at `index`, or `null` if out of range.
102
- * Convenience single-slot accessor aligned to {@link getReferences}.
279
+ * Convenience single-slot accessor aligned to {@link IFormulaBlock.getReferences}.
103
280
  */
104
281
  getReferenceAt(row: number, column: number, index: number): ReferenceCoords;
105
282
  /**
@@ -118,6 +295,23 @@ export interface IFormulaBlock {
118
295
  * * Returns as absolute coordinates.
119
296
  */
120
297
  resolvedPrecedentsAt(row: number, column: number, includeInvalidIntersect?: boolean, verticalAbs?: boolean[], horizontalAbs?: boolean[]): readonly (Readonly<IRange.FixableCoords> | FormulaError.Known)[];
298
+ /**
299
+ * The relative form of {@link IFormulaBlock.resolvedPrecedentsAt} when that answer is a pure
300
+ * TRANSLATION of the formula's own references — one edge per root reference, at the asking
301
+ * cell's offset — or `null` when it is not.
302
+ *
303
+ * @remarks
304
+ * This is what lets a block of many cells stop storing an edge list per cell: with a template
305
+ * in hand, a cell's edges are its own position plus the relative rects here, so they can be
306
+ * materialized on demand into one reusable buffer instead of allocated a million times over.
307
+ *
308
+ * `null` for everything the resolver actually has to RESOLVE rather than translate — a name to
309
+ * flatten into the caller's edges, a table reference, a range/intersection/union operator, a
310
+ * computed operand. Those blocks keep their per-cell lists. A broken reference (`#REF!`) is not
311
+ * among them: it is the same error at every cell and rides the template as an edge that
312
+ * translates to nothing.
313
+ */
314
+ getPrecedentTemplate(): PrecedentTemplate | null;
121
315
  /**
122
316
  * Wraps the formula in an implicit reference operator if hasSpill returns true and the formula
123
317
  * expects a spill.
@@ -130,28 +324,9 @@ export interface IFormulaBlock {
130
324
  * This is used for importing Excel as it doesn't always add '@' for backward compatibility.
131
325
  */
132
326
  wrapImplicit(rowIndex: number, colIndex: number, setSpillCells: Set<string>): this;
133
- /**
134
- * @see
135
- * { @link ICalculation.IFormula.isReferenceOnly }
136
- */
137
- isReferenceOnly(): boolean;
138
- /**
139
- * Return an error with the formula.
140
- *
141
- * @remarks
142
- * This is not a value error but that the formula is unable to resolve.
143
- */
144
- getError(): FormulaError.Parse | null;
145
- /**
146
- * Returns the distinct stable nameIds of the named references in this formula
147
- * (see `collectNamedIds`). Direct only, never descends into a name's body —
148
- * transitivity is carried by the dependency graph. Used by `recompileNamed`'s all3D
149
- * scan to find the formulas to invalidate when a named formula changes.
150
- */
151
- getNamedIds(): string[];
152
327
  /**
153
328
  * Returns the distinct stable fake ids of the direct indirect-symbol references in this formula —
154
- * named formulas AND tables. Superset of {@link getNamedIds}.
329
+ * named formulas AND tables. Superset of {@link IFormulaBlock.getNamedIds}.
155
330
  *
156
331
  * @remarks
157
332
  * Used to reverse-invalidate dependents when a name/table's resolution changes (add/heal, delete,
@@ -171,6 +346,25 @@ export interface IFormulaBlock {
171
346
  * either all of them call a total function or none do.
172
347
  */
173
348
  hasTotals(): boolean;
349
+ /**
350
+ * Whether the cells of a block running this formula whose relative inputs are all blank share
351
+ * one value within a pass, as far as the formula TEXT can say.
352
+ *
353
+ * @remarks
354
+ * Read straight off the compiled cache — see `CompiledFormula.isBlankCacheable`. The block's
355
+ * own gates (a precedent template, not array-entered) and the pass's run-time ones are checked
356
+ * by the consumer; `false` here settles it without them.
357
+ *
358
+ * @param arrayMode For a block whose every cell is its own 1x1 array-entered extent — see
359
+ * `CompiledFormula.isBlankCacheableArray`.
360
+ */
361
+ isBlankCacheable(arrayMode?: boolean): boolean;
362
+ /**
363
+ * Prepares the formula to be evaluated under a first-cell demand — as the body of a block whose
364
+ * every cell is its own 1x1 array-entered extent — by marking which nodes only ever have element
365
+ * `[0,0]` read (`CompilerUtils.annotateFirstCell`). Idempotent.
366
+ */
367
+ demandFirstCell(): void;
174
368
  /**
175
369
  * If the formula is logically equal to another formula.
176
370
  *
@@ -1,4 +1,5 @@
1
1
  import { IFunction } from '@sheetxl/primitives';
2
+ import { ILambdaValue } from '../../primitives/LambdaBrand';
2
3
  import { ASTNode } from '../compiler/ASTTypes';
3
4
  import { CompiledFormula } from '../compiler/Types';
4
5
  import { IFormulaBlock } from './IFormulaBlock';
@@ -29,10 +30,7 @@ export interface LambdaParam {
29
30
  readonly slot: number;
30
31
  /** The declared spelling — for arity messages and (later) the wizard signature. */
31
32
  readonly name: string;
32
- /**
33
- * Declared optional (`[b]`). Always `false` until P2.5 lands the `[b]` parse; the apply arity
34
- * rule is already written against it.
35
- */
33
+ /** Declared optional (`[b]`) — an absent trailing argument is legal at and after it. */
36
34
  readonly optional: boolean;
37
35
  }
38
36
  /**
@@ -49,9 +47,11 @@ export interface LambdaParam {
49
47
  * creating formula's register file at the moment the `LAMBDA` node evaluated. The copy is what
50
48
  * makes recursion sound — a self-recursive named lambda re-evaluates the SHARED named body block
51
49
  * at every level, clobbering the block's live registers, and only a captured copy keeps an outer
52
- * activation's environment intact underneath it.
50
+ * activation's environment intact underneath it. The snapshot is also the ACTIVATION: every
51
+ * application of the value runs its body in these registers, and only a re-entrant application
52
+ * copies them (`FormulaBlock._evaluateBody`).
53
53
  */
54
- export declare class LambdaValue {
54
+ export declare class LambdaValue implements ILambdaValue {
55
55
  /** The declared parameters, in order. */
56
56
  readonly params: readonly LambdaParam[];
57
57
  /** The body subtree (excluded from the eager execution list — design §3.3). */
@@ -71,12 +71,12 @@ export declare class LambdaValue {
71
71
  /** The anchor the owner was being evaluated at — deferred name resolution re-uses it. */
72
72
  readonly anchorRow: number;
73
73
  readonly anchorCol: number;
74
- /**
75
- * The function-value brand, shared with {@link FunctionValue} — checked structurally by the
76
- * coercion sites (`coerceScalar`, `addCoercedValue`, the operators), which cannot import this
77
- * calculation-private module.
78
- */
79
- readonly isLambda: true;
74
+ /** @inheritdoc ILambdaValue.isFunctionValue */
75
+ readonly isFunctionValue: true;
76
+ /** The value as a declared, executable function — built on first ask. */
77
+ private _asFunction;
78
+ /** Applications of this value currently running in `regs` — see the class remarks. */
79
+ active: number;
80
80
  constructor(
81
81
  /** The declared parameters, in order. */
82
82
  params: readonly LambdaParam[],
@@ -102,6 +102,21 @@ export declare class LambdaValue {
102
102
  * which shares `_evaluateBody` (and the recursion budget) with the spelled `Call` path.
103
103
  */
104
104
  makeCallable(): LambdaCallable;
105
+ private _function;
106
+ /**
107
+ * Applies the lambda over values and returns its RAW result — the caller applies its own rule to
108
+ * an array. An error comes back as a value, never thrown.
109
+ */
110
+ execute<R = any>(...args: any[]): R;
111
+ /** Always `''`: a lambda passed as a value has no name. */
112
+ getName(): string;
113
+ /** Declares the lambda's own parameters, optional ones flagged. */
114
+ getDeclaration(): IFunction.IDeclaration;
115
+ getDescriptor(locale?: string): Promise<IFunction.IDescriptor>;
116
+ isBuiltIn(): boolean;
117
+ isLambda(): boolean;
118
+ getContext(): string | null;
119
+ get isIFunction(): true;
105
120
  get [Symbol.toStringTag](): string;
106
121
  }
107
122
  /**
@@ -109,14 +124,15 @@ export declare class LambdaValue {
109
124
  * bare built-in (or UDF) name resolves to (design §1, the bare-name NODE half).
110
125
  *
111
126
  * @remarks
112
- * Shares the `isLambda` brand: both are function values, and every non-callee consumer treats them
113
- * identically (cell → `#CALC!`, coercion → `#VALUE!`). Apply dispatches to the function itself.
127
+ * Shares the `isFunctionValue` brand: both are function values, and every non-callee consumer
128
+ * treats them identically (cell → `#CALC!`, coercion → `#VALUE!`). Apply dispatches to the function
129
+ * itself, and as an {@link IFunction} it answers as that function does.
114
130
  */
115
- export declare class FunctionValue {
131
+ export declare class FunctionValue implements ILambdaValue {
116
132
  /** The referenced function. */
117
133
  readonly fn: IFunction;
118
- /** @see LambdaValue.isLambda */
119
- readonly isLambda: true;
134
+ /** @inheritdoc ILambdaValue.isFunctionValue */
135
+ readonly isFunctionValue: true;
120
136
  constructor(
121
137
  /** The referenced function. */
122
138
  fn: IFunction);
@@ -128,16 +144,25 @@ export declare class FunctionValue {
128
144
  * arity/coercion error comes back as a value, embedding per element like any other result.
129
145
  */
130
146
  makeCallable(): LambdaCallable;
147
+ execute<R = any>(...args: any[]): R;
148
+ getName(): string;
149
+ getDeclaration(): IFunction.IDeclaration;
150
+ getDescriptor(locale?: string): Promise<IFunction.IDescriptor>;
151
+ isBuiltIn(): boolean;
152
+ isLambda(): boolean;
153
+ getContext(): string | null;
154
+ get isIFunction(): true;
131
155
  get [Symbol.toStringTag](): string;
132
156
  }
133
157
  /**
134
- * The sentinel apply binds for an absent or explicitly-skipped OPTIONAL parameter (design §3.5).
158
+ * The sentinel a binding holds when its argument was supplied EMPTY — an explicitly empty slot at
159
+ * a lambda or `LET` call (`f(,1)`, `LET(x,,…)`), or an absent trailing argument at an OPTIONAL
160
+ * parameter (design §3.4).
135
161
  *
136
162
  * @remarks
137
163
  * `ISOMITTED(x)` answers TRUE for it and FALSE for everything else; EVERY other consumer reads it
138
164
  * as BLANK. The sentinel never escapes a frame: reads coerce it to blank at the use site
139
- * (`readFrameValue`), except in the argument slot of `ISOMITTED` itself. Unreachable until P2.5
140
- * lands the `[b]` optional-parameter parse — no declaration can mark a parameter optional yet.
165
+ * (`readFrameValue`), except in the argument slot of `ISOMITTED` itself.
141
166
  */
142
167
  export declare const OMITTED: unique symbol;
143
168
  /**
@@ -149,9 +174,7 @@ export declare const readFrameValue: (value: any) => any;
149
174
  * The recursion budget apply enforces via `CalcScope.depth`.
150
175
  *
151
176
  * @remarks
152
- * Excel Online configures `maxLambdaDepth: 1000` (plus a tail-call carve-out we do not implement
153
- * and a separate `maxLambdaCalls: 10000`). DESKTOP measured (probe-lambda-eval block A,
154
- * 2026-08-21): its cap sits between 5,000 and 100,000, and the error at it IS `#NUM!` — the
177
+ * DESKTOP measured (probe-lambda-eval block A, 2026-08-21): its cap sits between 5,000 and 100,000, and the error at it IS `#NUM!` — the
155
178
  * error Microsoft's own LAMBDA documentation names for runaway recursion.
156
179
  *
157
180
  * 512 rather than Online's 1000: each apply level costs a dozen JS frames, and past ~1000 levels a
@@ -0,0 +1,96 @@
1
+ import { ILazy } from '@sheetxl/primitives';
2
+ import { ASTNode } from '../compiler/ASTTypes';
3
+ import { IFormulaBlock } from './IFormulaBlock';
4
+ /**
5
+ * The handle a `Lazy` parameter receives — one argument's subtree, anchored at the calling cell,
6
+ * that the engine has either not evaluated yet or has evaluated already.
7
+ *
8
+ * @remarks
9
+ * CALCULATION-PRIVATE as a class; the INTERFACE (`ILazy`) is public, because a function author
10
+ * declares the slot and may read it. The sibling of `LambdaValue`, and the same idea: "evaluate
11
+ * this piece of the formula later, anchored at this cell". The difference is only what it closes
12
+ * over — an argument's subtree rather than a lambda's body — and that this one takes no
13
+ * parameters, so forcing it is a call with an empty argument list.
14
+ *
15
+ * A body does one of two things with it, and the engine answers for both:
16
+ *
17
+ * - **returns it unread** — the engine sees its own handle come back as the call's result and
18
+ * evaluates the subtree then, on its normal path, so an ASYNC subtree is fine there.
19
+ * - **forces it** with {@link getValue} — which happens mid-body, where the engine has no way to
20
+ * wait, so a subtree that answers a promise is `#VALUE!` rather than a wrong answer.
21
+ *
22
+ * A DEFERRED handle carries the block, the node and the registers to evaluate against; a
23
+ * PRE-FILLED one carries the value alone ({@link LazyValue.of}) and is what the engine hands over
24
+ * whenever it declines to defer — an empty or literal argument, or a call that is about to lift.
25
+ * The author cannot tell them apart, which is the point: laziness is the engine's to grant.
26
+ *
27
+ * ### Lifetime, and why the deferred handles are pooled
28
+ *
29
+ * A handle lives exactly as long as the call it was built for, and that life is SYNCHRONOUS: the
30
+ * body either forces it in place or returns it unread, and the executor forces a returned one
31
+ * before it moves on. Nothing retains a handle past that point — every value-layer boundary
32
+ * (coercion, the operators, a range's typed read, a cell's final value) recognizes and refuses
33
+ * one. So a deferred handle is not allocated per call; it is taken from a pool indexed by call
34
+ * DEPTH and argument position ({@link deferred}) and re-pointed at the next call's subtree. Depth,
35
+ * not node: the same `IF` node re-enters at a deeper level under recursion, and a nested call
36
+ * inside a body (a forced arm that itself calls `IF`) must not re-point the handles the enclosing
37
+ * body is still holding. The executor brackets each lazy call with {@link enter} / {@link leave},
38
+ * which is what makes the nested call land one level deeper.
39
+ *
40
+ * The async case is safe under this: {@link _force} stores the promise as the value, and the
41
+ * executor's chain holds the promise, not the handle.
42
+ */
43
+ export declare class LazyValue implements ILazy {
44
+ /** @inheritdoc ILazy.isLazy */
45
+ readonly isLazy: true;
46
+ /** The forced value, once {@link _force} has run. */
47
+ private _value;
48
+ private _forced;
49
+ /** The block whose formula the subtree belongs to, or `null` when pre-filled. */
50
+ private _owner;
51
+ /** The argument's subtree root. */
52
+ private _node;
53
+ /** The register file to evaluate against — the block's own, or a lambda activation's. */
54
+ private _regs;
55
+ /** The lambda-parameter frame in scope, when the call sits inside a lambda body. */
56
+ private _frame;
57
+ /** The anchor the owner is being evaluated at. */
58
+ private _row;
59
+ private _col;
60
+ private constructor();
61
+ /**
62
+ * One row of handles per call depth, one handle per argument position — see the class remarks.
63
+ * Grows to the deepest nesting and widest lazy call seen, and is never trimmed.
64
+ */
65
+ private static readonly _pool;
66
+ private static _depth;
67
+ /**
68
+ * Opens the handle row for a lazy call about to be filled. Answers the depth to pass to
69
+ * {@link deferred} and back to {@link leave}, in a `finally`.
70
+ */
71
+ static enter(): number;
72
+ /** Closes the row {@link enter} opened. Restores rather than decrements, so a throw cannot skew it. */
73
+ static leave(depth: number): void;
74
+ /**
75
+ * A handle over a subtree the engine has NOT evaluated — the pooled handle at `(depth, slot)`,
76
+ * re-pointed. Valid until {@link leave} closes the depth; the caller must not keep it past that.
77
+ */
78
+ static deferred(depth: number, slot: number, owner: IFormulaBlock, node: ASTNode, regs: any[], frame: ReadonlyMap<number, any> | null, row: number, column: number): LazyValue;
79
+ /** A handle over a value the engine has ALREADY computed — the decline path. */
80
+ static of(value: any): LazyValue;
81
+ /**
82
+ * Re-points a filled handle at another value. The lift's per-element reset: one handle per lazy
83
+ * slot for the whole spill, pointed at each sampled member in turn, instead of {@link of} per
84
+ * element. Only for a handle that was never deferred.
85
+ */
86
+ _fill(value: any): void;
87
+ /**
88
+ * Evaluates the subtree, at most once. The ENGINE's entry point: a promise here is an async
89
+ * subtree returned unread, which the caller chains like any other async node result.
90
+ */
91
+ _force(): any;
92
+ /** @inheritdoc ILazy.getValue */
93
+ getValue(): any;
94
+ get [Symbol.toStringTag](): string;
95
+ }
96
+ //# sourceMappingURL=LazyValue.d.ts.map