@elaraai/e3-ui 1.0.94 → 1.0.96

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 (303) hide show
  1. package/dist/src/allocation/adapters.d.ts +159 -0
  2. package/dist/src/allocation/adapters.d.ts.map +1 -0
  3. package/dist/src/allocation/adapters.js +241 -0
  4. package/dist/src/allocation/adapters.js.map +1 -0
  5. package/dist/src/allocation/functions.d.ts +664 -0
  6. package/dist/src/allocation/functions.d.ts.map +1 -0
  7. package/dist/src/allocation/functions.js +782 -0
  8. package/dist/src/allocation/functions.js.map +1 -0
  9. package/dist/src/allocation/index.d.ts +2985 -0
  10. package/dist/src/allocation/index.d.ts.map +1 -0
  11. package/dist/src/allocation/index.js +499 -0
  12. package/dist/src/allocation/index.js.map +1 -0
  13. package/dist/src/allocation/types.d.ts +832 -0
  14. package/dist/src/allocation/types.d.ts.map +1 -0
  15. package/dist/src/allocation/types.js +360 -0
  16. package/dist/src/allocation/types.js.map +1 -0
  17. package/dist/src/bind/func.d.ts +14 -0
  18. package/dist/src/bind/func.d.ts.map +1 -1
  19. package/dist/src/bind/func.js +22 -1
  20. package/dist/src/bind/func.js.map +1 -1
  21. package/dist/src/calendar/index.d.ts +510 -1639
  22. package/dist/src/calendar/index.d.ts.map +1 -1
  23. package/dist/src/calendar/index.js +56 -29
  24. package/dist/src/calendar/index.js.map +1 -1
  25. package/dist/src/flowchart/canvas.d.ts +9 -21
  26. package/dist/src/flowchart/canvas.d.ts.map +1 -1
  27. package/dist/src/flowchart/canvas.js +10 -22
  28. package/dist/src/flowchart/canvas.js.map +1 -1
  29. package/dist/src/flowchart/flowchart.d.ts +19 -13
  30. package/dist/src/flowchart/flowchart.d.ts.map +1 -1
  31. package/dist/src/flowchart/flowchart.js.map +1 -1
  32. package/dist/src/flowchart/index.d.ts +44 -21
  33. package/dist/src/flowchart/index.d.ts.map +1 -1
  34. package/dist/src/flowchart/index.js +43 -20
  35. package/dist/src/flowchart/index.js.map +1 -1
  36. package/dist/src/flowchart/library.d.ts +166 -81
  37. package/dist/src/flowchart/library.d.ts.map +1 -1
  38. package/dist/src/flowchart/library.js +232 -105
  39. package/dist/src/flowchart/library.js.map +1 -1
  40. package/dist/src/flowchart/over.d.ts +9 -16
  41. package/dist/src/flowchart/over.d.ts.map +1 -1
  42. package/dist/src/flowchart/over.js +9 -16
  43. package/dist/src/flowchart/over.js.map +1 -1
  44. package/dist/src/flowchart/payload.d.ts +710 -508
  45. package/dist/src/flowchart/payload.d.ts.map +1 -1
  46. package/dist/src/flowchart/payload.js +128 -74
  47. package/dist/src/flowchart/payload.js.map +1 -1
  48. package/dist/src/flowchart/window.d.ts +132 -347
  49. package/dist/src/flowchart/window.d.ts.map +1 -1
  50. package/dist/src/flowchart/window.js +48 -55
  51. package/dist/src/flowchart/window.js.map +1 -1
  52. package/dist/src/index.d.ts +11 -7
  53. package/dist/src/index.d.ts.map +1 -1
  54. package/dist/src/index.js +14 -6
  55. package/dist/src/index.js.map +1 -1
  56. package/dist/src/internal.d.ts +18 -7
  57. package/dist/src/internal.d.ts.map +1 -1
  58. package/dist/src/internal.js +28 -9
  59. package/dist/src/internal.js.map +1 -1
  60. package/dist/src/plan/event-rows.d.ts +26 -10
  61. package/dist/src/plan/event-rows.d.ts.map +1 -1
  62. package/dist/src/plan/event-rows.js +39 -13
  63. package/dist/src/plan/event-rows.js.map +1 -1
  64. package/dist/src/plan/ir.d.ts +244 -815
  65. package/dist/src/plan/ir.d.ts.map +1 -1
  66. package/dist/src/plan/ir.js +8 -6
  67. package/dist/src/plan/ir.js.map +1 -1
  68. package/dist/src/plan/library.d.ts +3 -0
  69. package/dist/src/plan/library.d.ts.map +1 -1
  70. package/dist/src/plan/library.js +1 -1
  71. package/dist/src/plan/library.js.map +1 -1
  72. package/dist/src/plan/ordered-source.d.ts +1 -0
  73. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  74. package/dist/src/plan/plan.d.ts +559 -1667
  75. package/dist/src/plan/plan.d.ts.map +1 -1
  76. package/dist/src/plan/plan.js +123 -45
  77. package/dist/src/plan/plan.js.map +1 -1
  78. package/dist/src/plan/root.d.ts +16 -20
  79. package/dist/src/plan/root.d.ts.map +1 -1
  80. package/dist/src/plan/root.js +23 -33
  81. package/dist/src/plan/root.js.map +1 -1
  82. package/dist/src/roster/coverage.d.ts +17 -231
  83. package/dist/src/roster/coverage.d.ts.map +1 -1
  84. package/dist/src/roster/coverage.js +94 -90
  85. package/dist/src/roster/coverage.js.map +1 -1
  86. package/dist/src/roster/fit.d.ts +59 -0
  87. package/dist/src/roster/fit.d.ts.map +1 -0
  88. package/dist/src/roster/fit.js +155 -0
  89. package/dist/src/roster/fit.js.map +1 -0
  90. package/dist/src/roster/index.d.ts +2862 -3662
  91. package/dist/src/roster/index.d.ts.map +1 -1
  92. package/dist/src/roster/index.js +383 -81
  93. package/dist/src/roster/index.js.map +1 -1
  94. package/dist/src/roster/library.d.ts +37 -92
  95. package/dist/src/roster/library.d.ts.map +1 -1
  96. package/dist/src/roster/library.js +25 -64
  97. package/dist/src/roster/library.js.map +1 -1
  98. package/dist/src/roster/lists.d.ts +195 -0
  99. package/dist/src/roster/lists.d.ts.map +1 -0
  100. package/dist/src/roster/lists.js +233 -0
  101. package/dist/src/roster/lists.js.map +1 -0
  102. package/dist/src/roster/rules.d.ts +17 -260
  103. package/dist/src/roster/rules.d.ts.map +1 -1
  104. package/dist/src/roster/rules.js +135 -132
  105. package/dist/src/roster/rules.js.map +1 -1
  106. package/dist/src/roster/targets.d.ts +115 -0
  107. package/dist/src/roster/targets.d.ts.map +1 -0
  108. package/dist/src/roster/targets.js +213 -0
  109. package/dist/src/roster/targets.js.map +1 -0
  110. package/dist/src/roster/times.d.ts +251 -0
  111. package/dist/src/roster/times.d.ts.map +1 -0
  112. package/dist/src/roster/times.js +174 -0
  113. package/dist/src/roster/times.js.map +1 -0
  114. package/dist/src/roster/types.d.ts +828 -183
  115. package/dist/src/roster/types.d.ts.map +1 -1
  116. package/dist/src/roster/types.js +224 -97
  117. package/dist/src/roster/types.js.map +1 -1
  118. package/dist/src/schedule/accessor.d.ts +28 -0
  119. package/dist/src/schedule/accessor.d.ts.map +1 -0
  120. package/dist/src/schedule/accessor.js +39 -0
  121. package/dist/src/schedule/accessor.js.map +1 -0
  122. package/dist/src/schedule/events.d.ts +170 -42
  123. package/dist/src/schedule/events.d.ts.map +1 -1
  124. package/dist/src/schedule/events.js +431 -171
  125. package/dist/src/schedule/events.js.map +1 -1
  126. package/dist/src/schedule/index.d.ts +41 -4
  127. package/dist/src/schedule/index.d.ts.map +1 -1
  128. package/dist/src/schedule/index.js +35 -3
  129. package/dist/src/schedule/index.js.map +1 -1
  130. package/dist/src/schedule/library.d.ts +13 -3
  131. package/dist/src/schedule/library.d.ts.map +1 -1
  132. package/dist/src/schedule/library.js +11 -4
  133. package/dist/src/schedule/library.js.map +1 -1
  134. package/dist/src/schedule/periods.d.ts +115 -0
  135. package/dist/src/schedule/periods.d.ts.map +1 -0
  136. package/dist/src/schedule/periods.js +215 -0
  137. package/dist/src/schedule/periods.js.map +1 -0
  138. package/dist/src/schedule/record-window.d.ts +25 -3
  139. package/dist/src/schedule/record-window.d.ts.map +1 -1
  140. package/dist/src/schedule/record-window.js +31 -18
  141. package/dist/src/schedule/record-window.js.map +1 -1
  142. package/dist/src/schedule/resources.d.ts +82 -4
  143. package/dist/src/schedule/resources.d.ts.map +1 -1
  144. package/dist/src/schedule/resources.js +44 -14
  145. package/dist/src/schedule/resources.js.map +1 -1
  146. package/dist/src/schedule/session.d.ts +69 -0
  147. package/dist/src/schedule/session.d.ts.map +1 -0
  148. package/dist/src/schedule/session.js +121 -0
  149. package/dist/src/schedule/session.js.map +1 -0
  150. package/dist/src/schedule/templates.d.ts +14 -2
  151. package/dist/src/schedule/templates.d.ts.map +1 -1
  152. package/dist/src/schedule/templates.js +5 -3
  153. package/dist/src/schedule/templates.js.map +1 -1
  154. package/dist/src/schedule/types.d.ts +1671 -37
  155. package/dist/src/schedule/types.d.ts.map +1 -1
  156. package/dist/src/schedule/types.js +196 -5
  157. package/dist/src/schedule/types.js.map +1 -1
  158. package/dist/src/schedule/window.d.ts +14 -0
  159. package/dist/src/schedule/window.d.ts.map +1 -1
  160. package/dist/src/schedule/window.js +14 -4
  161. package/dist/src/schedule/window.js.map +1 -1
  162. package/dist/src/schedule/words.d.ts +22 -0
  163. package/dist/src/schedule/words.d.ts.map +1 -0
  164. package/dist/src/schedule/words.js +25 -0
  165. package/dist/src/schedule/words.js.map +1 -0
  166. package/dist/src/sheet/index.d.ts +61 -27
  167. package/dist/src/sheet/index.d.ts.map +1 -1
  168. package/dist/src/sheet/index.js +59 -25
  169. package/dist/src/sheet/index.js.map +1 -1
  170. package/dist/src/sheet/library.d.ts +21 -3
  171. package/dist/src/sheet/library.d.ts.map +1 -1
  172. package/dist/src/sheet/library.js +23 -6
  173. package/dist/src/sheet/library.js.map +1 -1
  174. package/dist/src/sheet/registers.d.ts +100 -85
  175. package/dist/src/sheet/registers.d.ts.map +1 -1
  176. package/dist/src/sheet/registers.js +100 -85
  177. package/dist/src/sheet/registers.js.map +1 -1
  178. package/dist/src/sheet/root.d.ts +8 -12
  179. package/dist/src/sheet/root.d.ts.map +1 -1
  180. package/dist/src/sheet/root.js +6 -40
  181. package/dist/src/sheet/root.js.map +1 -1
  182. package/dist/src/sheet/sheet.d.ts +598 -2349
  183. package/dist/src/sheet/sheet.d.ts.map +1 -1
  184. package/dist/src/sheet/sheet.js +124 -37
  185. package/dist/src/sheet/sheet.js.map +1 -1
  186. package/dist/src/sheet/sub-rows.d.ts +74 -28
  187. package/dist/src/sheet/sub-rows.d.ts.map +1 -1
  188. package/dist/src/sheet/sub-rows.js +74 -28
  189. package/dist/src/sheet/sub-rows.js.map +1 -1
  190. package/dist/src/sheet/templates.d.ts +98 -34
  191. package/dist/src/sheet/templates.d.ts.map +1 -1
  192. package/dist/src/sheet/templates.js +102 -58
  193. package/dist/src/sheet/templates.js.map +1 -1
  194. package/dist/src/sheet/types.d.ts +289 -1359
  195. package/dist/src/sheet/types.d.ts.map +1 -1
  196. package/dist/src/sheet/types.js +20 -26
  197. package/dist/src/sheet/types.js.map +1 -1
  198. package/dist/src/sheet/views.d.ts +10 -11
  199. package/dist/src/sheet/views.d.ts.map +1 -1
  200. package/dist/src/sheet/views.js +15 -20
  201. package/dist/src/sheet/views.js.map +1 -1
  202. package/dist/src/{roster/visibility.d.ts → utils/key-visibility.d.ts} +42 -7
  203. package/dist/src/utils/key-visibility.d.ts.map +1 -0
  204. package/dist/src/utils/key-visibility.js +36 -0
  205. package/dist/src/utils/key-visibility.js.map +1 -0
  206. package/dist/src/utils/ordered-source.d.ts +1 -0
  207. package/dist/src/utils/ordered-source.d.ts.map +1 -1
  208. package/dist/src/utils/ordered-source.js +8 -3
  209. package/dist/src/utils/ordered-source.js.map +1 -1
  210. package/dist/src/utils/record-sources.d.ts +107 -0
  211. package/dist/src/utils/record-sources.d.ts.map +1 -0
  212. package/dist/src/utils/record-sources.js +132 -0
  213. package/dist/src/utils/record-sources.js.map +1 -0
  214. package/dist/test/allocation/allocation.examples.d.ts +2902 -0
  215. package/dist/test/allocation/allocation.examples.d.ts.map +1 -0
  216. package/dist/test/allocation/allocation.examples.js +643 -0
  217. package/dist/test/allocation/allocation.examples.js.map +1 -0
  218. package/dist/test/allocation/fit.examples.d.ts +546 -0
  219. package/dist/test/allocation/fit.examples.d.ts.map +1 -0
  220. package/dist/test/allocation/fit.examples.js +171 -0
  221. package/dist/test/allocation/fit.examples.js.map +1 -0
  222. package/dist/test/allocation/kiln-yard.d.ts +181 -0
  223. package/dist/test/allocation/kiln-yard.d.ts.map +1 -0
  224. package/dist/test/allocation/kiln-yard.js +228 -0
  225. package/dist/test/allocation/kiln-yard.js.map +1 -0
  226. package/dist/test/bind/data/data.examples.d.ts +651 -1
  227. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  228. package/dist/test/bind/data/data.examples.js +140 -2
  229. package/dist/test/bind/data/data.examples.js.map +1 -1
  230. package/dist/test/bind/func/func.examples.d.ts +10 -1
  231. package/dist/test/bind/func/func.examples.d.ts.map +1 -1
  232. package/dist/test/bind/func/func.examples.js +8 -1
  233. package/dist/test/bind/func/func.examples.js.map +1 -1
  234. package/dist/test/bind/record/record.examples.d.ts +633 -1
  235. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  236. package/dist/test/bind/record/record.examples.js +26 -2
  237. package/dist/test/bind/record/record.examples.js.map +1 -1
  238. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  239. package/dist/test/calendar/calendar-records.examples.js +18 -14
  240. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  241. package/dist/test/calendar/calendar.examples.d.ts +521 -16
  242. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  243. package/dist/test/calendar/calendar.examples.js +182 -135
  244. package/dist/test/calendar/calendar.examples.js.map +1 -1
  245. package/dist/test/examples-package.d.ts +75 -0
  246. package/dist/test/examples-package.d.ts.map +1 -0
  247. package/dist/test/examples-package.js +263 -0
  248. package/dist/test/examples-package.js.map +1 -0
  249. package/dist/test/flowchart/flowchart.examples.d.ts +211 -19
  250. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  251. package/dist/test/flowchart/flowchart.examples.js +102 -75
  252. package/dist/test/flowchart/flowchart.examples.js.map +1 -1
  253. package/dist/test/plan/plan-events.examples.d.ts +1439 -209
  254. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  255. package/dist/test/plan/plan-events.examples.js +199 -59
  256. package/dist/test/plan/plan-events.examples.js.map +1 -1
  257. package/dist/test/plan/plan-records.examples.d.ts +420 -0
  258. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  259. package/dist/test/plan/plan-records.examples.js +70 -19
  260. package/dist/test/plan/plan-records.examples.js.map +1 -1
  261. package/dist/test/plan/plan-windows.examples.d.ts +636 -55
  262. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  263. package/dist/test/plan/plan-windows.examples.js +69 -33
  264. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  265. package/dist/test/plan/plan.examples.d.ts +153 -31
  266. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  267. package/dist/test/plan/plan.examples.js +178 -101
  268. package/dist/test/plan/plan.examples.js.map +1 -1
  269. package/dist/test/roster/domain.examples.d.ts +467 -250
  270. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  271. package/dist/test/roster/domain.examples.js +92 -29
  272. package/dist/test/roster/domain.examples.js.map +1 -1
  273. package/dist/test/roster/roster-records.examples.d.ts +430 -586
  274. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  275. package/dist/test/roster/roster-records.examples.js +102 -43
  276. package/dist/test/roster/roster-records.examples.js.map +1 -1
  277. package/dist/test/roster/roster.examples.d.ts +2319 -606
  278. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  279. package/dist/test/roster/roster.examples.js +456 -148
  280. package/dist/test/roster/roster.examples.js.map +1 -1
  281. package/dist/test/roster/warehouse.d.ts +172 -63
  282. package/dist/test/roster/warehouse.d.ts.map +1 -1
  283. package/dist/test/roster/warehouse.js +172 -39
  284. package/dist/test/roster/warehouse.js.map +1 -1
  285. package/dist/test/schedule/schedule.examples.d.ts +3499 -0
  286. package/dist/test/schedule/schedule.examples.d.ts.map +1 -0
  287. package/dist/test/schedule/schedule.examples.js +192 -0
  288. package/dist/test/schedule/schedule.examples.js.map +1 -0
  289. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  290. package/dist/test/sheet/sheet-records.examples.js +22 -18
  291. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  292. package/dist/test/sheet/sheet.examples.d.ts +715 -26
  293. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  294. package/dist/test/sheet/sheet.examples.js +204 -130
  295. package/dist/test/sheet/sheet.examples.js.map +1 -1
  296. package/package.json +17 -10
  297. package/dist/src/roster/people.d.ts +0 -50
  298. package/dist/src/roster/people.d.ts.map +0 -1
  299. package/dist/src/roster/people.js +0 -32
  300. package/dist/src/roster/people.js.map +0 -1
  301. package/dist/src/roster/visibility.d.ts.map +0 -1
  302. package/dist/src/roster/visibility.js +0 -25
  303. package/dist/src/roster/visibility.js.map +0 -1
@@ -0,0 +1,664 @@
1
+ /**
2
+ * Copyright (c) 2025 Elara AI Pty Ltd
3
+ * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
4
+ */
5
+ /**
6
+ * The Allocation's pure functions (`Allocation Spec.md` §5.1, §12): a day's
7
+ * loads, a fit's candidates, the built-in rules, an answer to a fit's
8
+ * question, a greedy look-ahead, the built-in checks and the day's slots, and
9
+ * a bin as the board reads it from the app's row. Tasks, the app's
10
+ * `e3.function` fit and the renderer run these same East functions, so the
11
+ * screen and e3 agree on every figure and every word.
12
+ *
13
+ * Those over a day take the app's bin row type (#1371, `Builder Interfaces
14
+ * Spec.md` §6.3), as `Editing.apply` takes its source type:
15
+ * `Allocation.loads(KilnBin)` is an East function over
16
+ * `Allocation.Types.Day(KilnBin)`. They read each bin's roles, never its row,
17
+ * which they carry for the app's own functions. `Allocation.fit` reads one
18
+ * candidate, so it needs none.
19
+ *
20
+ * @packageDocumentation
21
+ */
22
+ import { ArrayType, BooleanType, DateTimeType, DictType, FloatType, FunctionType, IntegerType, OptionType, StringType, StructType, type EastType, type ExprType } from "@elaraai/east";
23
+ import { ScheduleAllocationRolesType } from "../schedule/types.js";
24
+ import { AllocationCandidateType, AllocationFitResultType, AllocationFitType, AllocationIssueType, AllocationLoadType, AllocationSlotType, type AllocationBinType, type AllocationContextType as ContextType, type AllocationDayType, type AllocationFitRequestType } from "./types.js";
25
+ /**
26
+ * A duration in milliseconds — a month counts 30 days, as Schedule's do.
27
+ *
28
+ * @param step - The duration
29
+ * @returns Its length in milliseconds
30
+ */
31
+ export declare const allocationMilliseconds: import("@elaraai/east").CallableFunctionExpr<[import("@elaraai/east").VariantType<{
32
+ readonly minutes: FloatType;
33
+ readonly hours: FloatType;
34
+ readonly days: FloatType;
35
+ readonly weeks: FloatType;
36
+ readonly months: FloatType;
37
+ }>], IntegerType>;
38
+ /**
39
+ * A quantity and its unit.
40
+ *
41
+ * @param value - The quantity
42
+ * @param unit - The unit, or empty
43
+ * @returns `21 m³`, or `21` with no unit
44
+ */
45
+ export declare const allocationQuantityText: import("@elaraai/east").CallableFunctionExpr<[FloatType, StringType], StringType>;
46
+ /**
47
+ * A day as the board names it.
48
+ *
49
+ * @param at - An instant on the day
50
+ * @returns `Wed 19`
51
+ */
52
+ export declare const allocationDayText: import("@elaraai/east").CallableFunctionExpr<[DateTimeType], StringType>;
53
+ /**
54
+ * A resource's load, naming the limit it breaks (A19).
55
+ *
56
+ * @param fill - What its bins put on it
57
+ * @param resource - The resource
58
+ * @param unit - The quantity's unit
59
+ * @returns `11 m³ · max 9 · 2 over`, `16 m³ · min 40 · 24 short`, or `45 m³ · takes 26–48`
60
+ */
61
+ export declare const allocationLoadText: import("@elaraai/east").CallableFunctionExpr<[FloatType, StructType<{
62
+ readonly key: StringType;
63
+ readonly label: StringType;
64
+ readonly group: OptionType<StringType>;
65
+ readonly meta: OptionType<StringType>;
66
+ readonly note: OptionType<StringType>;
67
+ readonly min: FloatType;
68
+ readonly max: FloatType;
69
+ readonly hold: import("@elaraai/east").VariantType<{
70
+ readonly minutes: FloatType;
71
+ readonly hours: FloatType;
72
+ readonly days: FloatType;
73
+ readonly weeks: FloatType;
74
+ readonly months: FloatType;
75
+ }>;
76
+ readonly jobs: ArrayType<StructType<{
77
+ readonly label: StringType;
78
+ readonly start: DateTimeType;
79
+ readonly end: DateTimeType;
80
+ }>>;
81
+ }>, StringType], StringType>;
82
+ /**
83
+ * The job that makes a resource busy on a day: one covering the day's start,
84
+ * the latest to end of them.
85
+ *
86
+ * @param resource - The resource
87
+ * @param day - The plan day
88
+ * @returns The job, or `none`
89
+ */
90
+ export declare const allocationBusyJob: import("@elaraai/east").CallableFunctionExpr<[StructType<{
91
+ readonly key: StringType;
92
+ readonly label: StringType;
93
+ readonly group: OptionType<StringType>;
94
+ readonly meta: OptionType<StringType>;
95
+ readonly note: OptionType<StringType>;
96
+ readonly min: FloatType;
97
+ readonly max: FloatType;
98
+ readonly hold: import("@elaraai/east").VariantType<{
99
+ readonly minutes: FloatType;
100
+ readonly hours: FloatType;
101
+ readonly days: FloatType;
102
+ readonly weeks: FloatType;
103
+ readonly months: FloatType;
104
+ }>;
105
+ readonly jobs: ArrayType<StructType<{
106
+ readonly label: StringType;
107
+ readonly start: DateTimeType;
108
+ readonly end: DateTimeType;
109
+ }>>;
110
+ }>, DateTimeType], OptionType<StructType<{
111
+ readonly label: StringType;
112
+ readonly start: DateTimeType;
113
+ readonly end: DateTimeType;
114
+ }>>>;
115
+ /**
116
+ * A resource's next job after a day's start: the first to start.
117
+ *
118
+ * @param resource - The resource
119
+ * @param day - The plan day
120
+ * @returns The job, or `none`
121
+ */
122
+ export declare const allocationNextJob: import("@elaraai/east").CallableFunctionExpr<[StructType<{
123
+ readonly key: StringType;
124
+ readonly label: StringType;
125
+ readonly group: OptionType<StringType>;
126
+ readonly meta: OptionType<StringType>;
127
+ readonly note: OptionType<StringType>;
128
+ readonly min: FloatType;
129
+ readonly max: FloatType;
130
+ readonly hold: import("@elaraai/east").VariantType<{
131
+ readonly minutes: FloatType;
132
+ readonly hours: FloatType;
133
+ readonly days: FloatType;
134
+ readonly weeks: FloatType;
135
+ readonly months: FloatType;
136
+ }>;
137
+ readonly jobs: ArrayType<StructType<{
138
+ readonly label: StringType;
139
+ readonly start: DateTimeType;
140
+ readonly end: DateTimeType;
141
+ }>>;
142
+ }>, DateTimeType], OptionType<StructType<{
143
+ readonly label: StringType;
144
+ readonly start: DateTimeType;
145
+ readonly end: DateTimeType;
146
+ }>>>;
147
+ /**
148
+ * A resource's line on the plan day (A19), and the marks its bins' cards carry
149
+ * (A16).
150
+ *
151
+ * @param day - The plan day
152
+ * @param resource - The resource
153
+ * @param load - Its load
154
+ * @param unit - The quantity's unit
155
+ * @returns Its line, its tone, whether it is over its maximum, under its minimum, or held into its next job, and that job
156
+ *
157
+ * @remarks
158
+ * Loading, the line is its load (`45 m³ · takes 26–48`; `reserved · takes
159
+ * 26–48` with only reservations) and `· 2 d into next job` when its hold runs
160
+ * into the job; busy, `busy until Fri 14`; free, its meta (or its group) and
161
+ * what it takes (`Hall B · 40 m³ · takes 20–40 m³`).
162
+ */
163
+ export declare const allocationResourceLine: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, StructType<{
164
+ readonly key: StringType;
165
+ readonly label: StringType;
166
+ readonly group: OptionType<StringType>;
167
+ readonly meta: OptionType<StringType>;
168
+ readonly note: OptionType<StringType>;
169
+ readonly min: FloatType;
170
+ readonly max: FloatType;
171
+ readonly hold: import("@elaraai/east").VariantType<{
172
+ readonly minutes: FloatType;
173
+ readonly hours: FloatType;
174
+ readonly days: FloatType;
175
+ readonly weeks: FloatType;
176
+ readonly months: FloatType;
177
+ }>;
178
+ readonly jobs: ArrayType<StructType<{
179
+ readonly label: StringType;
180
+ readonly start: DateTimeType;
181
+ readonly end: DateTimeType;
182
+ }>>;
183
+ }>, StructType<{
184
+ readonly resource: StringType;
185
+ readonly fill: FloatType;
186
+ readonly bins: IntegerType;
187
+ readonly hold: OptionType<StructType<{
188
+ readonly from: DateTimeType;
189
+ readonly to: DateTimeType;
190
+ }>>;
191
+ readonly state: import("@elaraai/east").VariantType<{
192
+ readonly free: import("@elaraai/east").NullType;
193
+ readonly loading: import("@elaraai/east").NullType;
194
+ readonly busy: import("@elaraai/east").NullType;
195
+ }>;
196
+ }>, StringType], StructType<{
197
+ readonly text: StringType;
198
+ readonly tone: import("@elaraai/east").VariantType<{
199
+ readonly success: import("@elaraai/east").NullType;
200
+ readonly warning: import("@elaraai/east").NullType;
201
+ readonly danger: import("@elaraai/east").NullType;
202
+ readonly info: import("@elaraai/east").NullType;
203
+ readonly neutral: import("@elaraai/east").NullType;
204
+ }>;
205
+ readonly over: BooleanType;
206
+ readonly under: BooleanType;
207
+ readonly overlap: BooleanType;
208
+ readonly next: OptionType<StructType<{
209
+ readonly label: StringType;
210
+ readonly start: DateTimeType;
211
+ readonly end: DateTimeType;
212
+ }>>;
213
+ }>>;
214
+ /**
215
+ * One bin, as the board reads it on its plan day (#1371, B12): its kind's
216
+ * roles beside its row — a stored bin's roles as the kind's `rows` gives them,
217
+ * a drafted one's as its `read` does.
218
+ *
219
+ * @typeParam R - The app's bin row type
220
+ * @param row - The app's bin row type
221
+ * @returns An East function `(roles, row, day) → Option<Bin(R)>`: the bin, when its `at` falls in the day `[day, day + 1 d)`; `none` for a bin of another day
222
+ *
223
+ * @remarks
224
+ * A bin's UTC day is its plan day (`Builder Interfaces Spec.md` §6.2), so the
225
+ * board's day holds the bins whose `at` falls in it, `day` its UTC midnight.
226
+ * Each bin's `at` is read as it is, so a batch's bins, booked a minute apart,
227
+ * read back a minute apart, in one slot (`Allocation.slots`).
228
+ * @internal
229
+ */
230
+ export declare function allocationBinOf<R extends EastType>(row: R): ExprType<FunctionType<[ScheduleAllocationRolesType, R, DateTimeType], OptionType<AllocationBinType<R>>>>;
231
+ /**
232
+ * One bin's part on one resource, as loads and candidates read it.
233
+ *
234
+ * @property bin - The bin's id; empty for a placement the look-ahead adds
235
+ * @property quantity - Its part's quantity
236
+ * @property hold - Its hold, in milliseconds
237
+ * @property kind - Its kind
238
+ * @property reserve - Whether it is a reservation
239
+ * @internal
240
+ */
241
+ export declare const AllocationMateType: StructType<{
242
+ readonly bin: StringType;
243
+ readonly quantity: FloatType;
244
+ readonly hold: IntegerType;
245
+ readonly kind: OptionType<StringType>;
246
+ readonly reserve: BooleanType;
247
+ }>;
248
+ /** The bins' parts on every resource, by the resource's key. @internal */
249
+ declare const MatesType: DictType<StringType, ArrayType<StructType<{
250
+ readonly bin: StringType;
251
+ readonly quantity: FloatType;
252
+ readonly hold: IntegerType;
253
+ readonly kind: OptionType<StringType>;
254
+ readonly reserve: BooleanType;
255
+ }>>>;
256
+ /**
257
+ * Every resource's parts of the day's bins, an entry for every resource.
258
+ *
259
+ * @typeParam R - The app's bin row type
260
+ * @param row - The app's bin row type
261
+ * @returns An East function from the day and the context to the parts on each resource
262
+ * @internal
263
+ */
264
+ export declare function allocationMates<R extends EastType>(row: R): ExprType<FunctionType<[AllocationDayType<R>, ContextType], typeof MatesType>>;
265
+ /**
266
+ * A resource's load from its parts.
267
+ *
268
+ * @param day - The plan day
269
+ * @param resource - The resource
270
+ * @param mates - Its parts
271
+ * @returns Its load
272
+ * @internal
273
+ */
274
+ export declare const allocationLoadOf: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, StructType<{
275
+ readonly key: StringType;
276
+ readonly label: StringType;
277
+ readonly group: OptionType<StringType>;
278
+ readonly meta: OptionType<StringType>;
279
+ readonly note: OptionType<StringType>;
280
+ readonly min: FloatType;
281
+ readonly max: FloatType;
282
+ readonly hold: import("@elaraai/east").VariantType<{
283
+ readonly minutes: FloatType;
284
+ readonly hours: FloatType;
285
+ readonly days: FloatType;
286
+ readonly weeks: FloatType;
287
+ readonly months: FloatType;
288
+ }>;
289
+ readonly jobs: ArrayType<StructType<{
290
+ readonly label: StringType;
291
+ readonly start: DateTimeType;
292
+ readonly end: DateTimeType;
293
+ }>>;
294
+ }>, ArrayType<StructType<{
295
+ readonly bin: StringType;
296
+ readonly quantity: FloatType;
297
+ readonly hold: IntegerType;
298
+ readonly kind: OptionType<StringType>;
299
+ readonly reserve: BooleanType;
300
+ }>>], StructType<{
301
+ readonly resource: StringType;
302
+ readonly fill: FloatType;
303
+ readonly bins: IntegerType;
304
+ readonly hold: OptionType<StructType<{
305
+ readonly from: DateTimeType;
306
+ readonly to: DateTimeType;
307
+ }>>;
308
+ readonly state: import("@elaraai/east").VariantType<{
309
+ readonly free: import("@elaraai/east").NullType;
310
+ readonly loading: import("@elaraai/east").NullType;
311
+ readonly busy: import("@elaraai/east").NullType;
312
+ }>;
313
+ }>>;
314
+ /**
315
+ * One candidate: a quantity on a resource, against the parts it already holds.
316
+ *
317
+ * @param day - The plan day
318
+ * @param bin - The bin it is for, if any
319
+ * @param reserve - Whether it reserves a slot
320
+ * @param quantity - What the resource would hold of it
321
+ * @param arrival - Its arrival, if any
322
+ * @param kind - Its kind
323
+ * @param hold - Its hold, in milliseconds
324
+ * @param resource - The resource
325
+ * @param mates - The resource's other parts
326
+ * @param load - The resource's load
327
+ * @param rules - The built-in rules
328
+ * @param unit - The quantity's unit
329
+ * @returns The candidate
330
+ * @internal
331
+ */
332
+ export declare const allocationCandidateOf: import("@elaraai/east").CallableFunctionExpr<[DateTimeType, OptionType<StringType>, BooleanType, FloatType, OptionType<StructType<{
333
+ readonly key: StringType;
334
+ readonly label: StringType;
335
+ readonly meta: OptionType<StringType>;
336
+ readonly quantity: FloatType;
337
+ readonly hold: import("@elaraai/east").VariantType<{
338
+ readonly minutes: FloatType;
339
+ readonly hours: FloatType;
340
+ readonly days: FloatType;
341
+ readonly weeks: FloatType;
342
+ readonly months: FloatType;
343
+ }>;
344
+ readonly kind: OptionType<StringType>;
345
+ readonly due: OptionType<DateTimeType>;
346
+ readonly window: OptionType<StructType<{
347
+ readonly from: DateTimeType;
348
+ readonly to: DateTimeType;
349
+ }>>;
350
+ readonly details: ArrayType<StructType<{
351
+ readonly label: StringType;
352
+ readonly value: StringType;
353
+ }>>;
354
+ }>>, OptionType<StringType>, IntegerType, StructType<{
355
+ readonly key: StringType;
356
+ readonly label: StringType;
357
+ readonly group: OptionType<StringType>;
358
+ readonly meta: OptionType<StringType>;
359
+ readonly note: OptionType<StringType>;
360
+ readonly min: FloatType;
361
+ readonly max: FloatType;
362
+ readonly hold: import("@elaraai/east").VariantType<{
363
+ readonly minutes: FloatType;
364
+ readonly hours: FloatType;
365
+ readonly days: FloatType;
366
+ readonly weeks: FloatType;
367
+ readonly months: FloatType;
368
+ }>;
369
+ readonly jobs: ArrayType<StructType<{
370
+ readonly label: StringType;
371
+ readonly start: DateTimeType;
372
+ readonly end: DateTimeType;
373
+ }>>;
374
+ }>, ArrayType<StructType<{
375
+ readonly bin: StringType;
376
+ readonly quantity: FloatType;
377
+ readonly hold: IntegerType;
378
+ readonly kind: OptionType<StringType>;
379
+ readonly reserve: BooleanType;
380
+ }>>, StructType<{
381
+ readonly resource: StringType;
382
+ readonly fill: FloatType;
383
+ readonly bins: IntegerType;
384
+ readonly hold: OptionType<StructType<{
385
+ readonly from: DateTimeType;
386
+ readonly to: DateTimeType;
387
+ }>>;
388
+ readonly state: import("@elaraai/east").VariantType<{
389
+ readonly free: import("@elaraai/east").NullType;
390
+ readonly loading: import("@elaraai/east").NullType;
391
+ readonly busy: import("@elaraai/east").NullType;
392
+ }>;
393
+ }>, StructType<{
394
+ readonly under: BooleanType;
395
+ }>, StringType], StructType<{
396
+ readonly day: DateTimeType;
397
+ readonly bin: OptionType<StringType>;
398
+ readonly reserve: BooleanType;
399
+ readonly quantity: FloatType;
400
+ readonly arrival: OptionType<StructType<{
401
+ readonly key: StringType;
402
+ readonly label: StringType;
403
+ readonly meta: OptionType<StringType>;
404
+ readonly quantity: FloatType;
405
+ readonly hold: import("@elaraai/east").VariantType<{
406
+ readonly minutes: FloatType;
407
+ readonly hours: FloatType;
408
+ readonly days: FloatType;
409
+ readonly weeks: FloatType;
410
+ readonly months: FloatType;
411
+ }>;
412
+ readonly kind: OptionType<StringType>;
413
+ readonly due: OptionType<DateTimeType>;
414
+ readonly window: OptionType<StructType<{
415
+ readonly from: DateTimeType;
416
+ readonly to: DateTimeType;
417
+ }>>;
418
+ readonly details: ArrayType<StructType<{
419
+ readonly label: StringType;
420
+ readonly value: StringType;
421
+ }>>;
422
+ }>>;
423
+ readonly kind: OptionType<StringType>;
424
+ readonly resource: StructType<{
425
+ readonly key: StringType;
426
+ readonly label: StringType;
427
+ readonly group: OptionType<StringType>;
428
+ readonly meta: OptionType<StringType>;
429
+ readonly note: OptionType<StringType>;
430
+ readonly min: FloatType;
431
+ readonly max: FloatType;
432
+ readonly hold: import("@elaraai/east").VariantType<{
433
+ readonly minutes: FloatType;
434
+ readonly hours: FloatType;
435
+ readonly days: FloatType;
436
+ readonly weeks: FloatType;
437
+ readonly months: FloatType;
438
+ }>;
439
+ readonly jobs: ArrayType<StructType<{
440
+ readonly label: StringType;
441
+ readonly start: DateTimeType;
442
+ readonly end: DateTimeType;
443
+ }>>;
444
+ }>;
445
+ readonly load: StructType<{
446
+ readonly resource: StringType;
447
+ readonly fill: FloatType;
448
+ readonly bins: IntegerType;
449
+ readonly hold: OptionType<StructType<{
450
+ readonly from: DateTimeType;
451
+ readonly to: DateTimeType;
452
+ }>>;
453
+ readonly state: import("@elaraai/east").VariantType<{
454
+ readonly free: import("@elaraai/east").NullType;
455
+ readonly loading: import("@elaraai/east").NullType;
456
+ readonly busy: import("@elaraai/east").NullType;
457
+ }>;
458
+ }>;
459
+ readonly after: FloatType;
460
+ readonly hold: StructType<{
461
+ readonly from: DateTimeType;
462
+ readonly to: DateTimeType;
463
+ }>;
464
+ readonly spare: OptionType<FloatType>;
465
+ readonly kindMates: BooleanType;
466
+ readonly otherMates: BooleanType;
467
+ readonly rules: StructType<{
468
+ readonly under: BooleanType;
469
+ }>;
470
+ readonly unit: StringType;
471
+ }>>;
472
+ /**
473
+ * The built-in rules (§12.3): one verdict for one candidate.
474
+ *
475
+ * @param candidate - A quantity on a resource, against the drafted day
476
+ * @returns Its verdict
477
+ *
478
+ * @remarks
479
+ * In order: a job covering the day's start refuses it (`busy until Fri 14`);
480
+ * a hold running past the next job's start refuses it (`gap too short · next
481
+ * job Wed 19`); a fill over the maximum refuses it (`over max by 4 m³`); a
482
+ * reservation on a resource already at its maximum is refused (`full · …`).
483
+ * Otherwise it fits: its score is what it fills of the maximum, plus 0.25 when
484
+ * a bin of its kind is already there, less 0.1 when only other kinds are, less
485
+ * 0.5 under the minimum, less 0.04 a spare day up to six; its reason the spare
486
+ * days and the load it leaves; under the minimum it warns, when the rules ask.
487
+ */
488
+ export declare const allocationFit: import("@elaraai/east").CallableFunctionExpr<[StructType<{
489
+ readonly day: DateTimeType;
490
+ readonly bin: OptionType<StringType>;
491
+ readonly reserve: BooleanType;
492
+ readonly quantity: FloatType;
493
+ readonly arrival: OptionType<StructType<{
494
+ readonly key: StringType;
495
+ readonly label: StringType;
496
+ readonly meta: OptionType<StringType>;
497
+ readonly quantity: FloatType;
498
+ readonly hold: import("@elaraai/east").VariantType<{
499
+ readonly minutes: FloatType;
500
+ readonly hours: FloatType;
501
+ readonly days: FloatType;
502
+ readonly weeks: FloatType;
503
+ readonly months: FloatType;
504
+ }>;
505
+ readonly kind: OptionType<StringType>;
506
+ readonly due: OptionType<DateTimeType>;
507
+ readonly window: OptionType<StructType<{
508
+ readonly from: DateTimeType;
509
+ readonly to: DateTimeType;
510
+ }>>;
511
+ readonly details: ArrayType<StructType<{
512
+ readonly label: StringType;
513
+ readonly value: StringType;
514
+ }>>;
515
+ }>>;
516
+ readonly kind: OptionType<StringType>;
517
+ readonly resource: StructType<{
518
+ readonly key: StringType;
519
+ readonly label: StringType;
520
+ readonly group: OptionType<StringType>;
521
+ readonly meta: OptionType<StringType>;
522
+ readonly note: OptionType<StringType>;
523
+ readonly min: FloatType;
524
+ readonly max: FloatType;
525
+ readonly hold: import("@elaraai/east").VariantType<{
526
+ readonly minutes: FloatType;
527
+ readonly hours: FloatType;
528
+ readonly days: FloatType;
529
+ readonly weeks: FloatType;
530
+ readonly months: FloatType;
531
+ }>;
532
+ readonly jobs: ArrayType<StructType<{
533
+ readonly label: StringType;
534
+ readonly start: DateTimeType;
535
+ readonly end: DateTimeType;
536
+ }>>;
537
+ }>;
538
+ readonly load: StructType<{
539
+ readonly resource: StringType;
540
+ readonly fill: FloatType;
541
+ readonly bins: IntegerType;
542
+ readonly hold: OptionType<StructType<{
543
+ readonly from: DateTimeType;
544
+ readonly to: DateTimeType;
545
+ }>>;
546
+ readonly state: import("@elaraai/east").VariantType<{
547
+ readonly free: import("@elaraai/east").NullType;
548
+ readonly loading: import("@elaraai/east").NullType;
549
+ readonly busy: import("@elaraai/east").NullType;
550
+ }>;
551
+ }>;
552
+ readonly after: FloatType;
553
+ readonly hold: StructType<{
554
+ readonly from: DateTimeType;
555
+ readonly to: DateTimeType;
556
+ }>;
557
+ readonly spare: OptionType<FloatType>;
558
+ readonly kindMates: BooleanType;
559
+ readonly otherMates: BooleanType;
560
+ readonly rules: StructType<{
561
+ readonly under: BooleanType;
562
+ }>;
563
+ readonly unit: StringType;
564
+ }>], import("@elaraai/east").VariantType<{
565
+ readonly fits: StructType<{
566
+ readonly score: FloatType;
567
+ readonly why: StringType;
568
+ readonly warn: OptionType<StringType>;
569
+ }>;
570
+ readonly refused: StructType<{
571
+ readonly group: StringType;
572
+ readonly reason: StringType;
573
+ readonly measure: import("@elaraai/east").VariantType<{
574
+ readonly none: import("@elaraai/east").NullType;
575
+ readonly amount: StructType<{
576
+ readonly lead: StringType;
577
+ readonly value: FloatType;
578
+ }>;
579
+ readonly day: StructType<{
580
+ readonly lead: StringType;
581
+ readonly at: DateTimeType;
582
+ }>;
583
+ }>;
584
+ }>;
585
+ }>>;
586
+ /**
587
+ * Every resource's load on the plan day.
588
+ *
589
+ * @typeParam R - The app's bin row type
590
+ * @param row - The app's bin row type
591
+ * @returns An East function `(day, plan, context) → Dict<String, Load>`: an entry for every resource, by key
592
+ */
593
+ export declare function allocationLoads<R extends EastType>(row: R): ExprType<FunctionType<[DateTimeType, AllocationDayType<R>, ContextType], DictType<StringType, typeof AllocationLoadType>>>;
594
+ /**
595
+ * The candidates for a fit's question.
596
+ *
597
+ * @typeParam R - The app's bin row type
598
+ * @param row - The app's bin row type
599
+ * @returns An East function `(request) → Array<Candidate>`: a place's subject on every resource, in the resources' key order; or for a take, every bin on its resource, then every arrival the day has not booked, then a reservation
600
+ *
601
+ * @remarks
602
+ * A bin is placed with its own kind and hold, an arrival with its, and a bin
603
+ * booking no arrival — a reservation — with no quantity and each resource's
604
+ * own hold (§12.3, rule 4); the resource's other parts are every bin's but
605
+ * the subject's. A take places each bin's unallocated quantity (with its part
606
+ * already there), or the whole bin when it has none; then each arrival no bin
607
+ * of the day books, whole, as a place of it would; and last a reservation with
608
+ * the resource's hold.
609
+ */
610
+ export declare function allocationCandidates<R extends EastType>(row: R): ExprType<FunctionType<[AllocationFitRequestType<R>], ArrayType<typeof AllocationCandidateType>>>;
611
+ /**
612
+ * Answers a fit's question with a fit per candidate.
613
+ *
614
+ * @typeParam R - The app's bin row type
615
+ * @param row - The app's bin row type
616
+ * @returns An East function `(request, fit, basis) → FitResult`: a place's verdict for every resource, or a take's for every bin, every arrival the day has not booked, and reserving; `basis` says in words how the fit ranks (`ranked by load, kind and spare days`)
617
+ */
618
+ export declare function allocationAnswer<R extends EastType>(row: R): ExprType<FunctionType<[AllocationFitRequestType<R>, FunctionType<[typeof AllocationCandidateType], typeof AllocationFitType>, StringType], typeof AllocationFitResultType>>;
619
+ /**
620
+ * A greedy look-ahead over a fit (§12.4): what a placement leaves for the
621
+ * day's other arrivals.
622
+ *
623
+ * @typeParam R - The app's bin row type
624
+ * @param row - The app's bin row type
625
+ * @returns An East function `(request, candidate, fit) → Fit`
626
+ *
627
+ * @remarks
628
+ * A refusal is returned as `fit` gives it. A fit places the candidate — a bin
629
+ * moves whole onto the candidate's resource with the candidate's quantity —
630
+ * then each of the day's unbooked arrivals, largest first (ties in key
631
+ * order), on the resource `fit` scores best for it (ties in key order), and
632
+ * lowers the score by one for each arrival left with nowhere to go, adding
633
+ * `· leaves 1 load with no fit` to its reason.
634
+ */
635
+ export declare function allocationLookahead<R extends EastType>(row: R): ExprType<FunctionType<[AllocationFitRequestType<R>, typeof AllocationCandidateType, FunctionType<[typeof AllocationCandidateType], typeof AllocationFitType>], typeof AllocationFitType>>;
636
+ /**
637
+ * The built-in checks (§12.3), over committed and drafted bins alike.
638
+ *
639
+ * @typeParam R - The app's bin row type
640
+ * @param row - The app's bin row type
641
+ * @returns An East function `(day, plan, context) → Array<Issue>`: bins not linked, then partly allocated, then resources whose hold overlaps their next job, over their maximum, and under their minimum when the rules ask
642
+ *
643
+ * @remarks
644
+ * Issues never block Save or Publish. A resource's issue offers to move its
645
+ * latest bin; the app's `check` follows these wherever issues show.
646
+ */
647
+ export declare function allocationCheck<R extends EastType>(row: R): ExprType<FunctionType<[DateTimeType, AllocationDayType<R>, ContextType], ArrayType<typeof AllocationIssueType>>>;
648
+ /**
649
+ * The plan day's lane slots: one per lane per `every`, in time then lane order.
650
+ *
651
+ * @typeParam R - The app's bin row type
652
+ * @param row - The app's bin row type
653
+ * @returns An East function `(day, plan, context) → Array<Slot>`
654
+ *
655
+ * @remarks
656
+ * A bin is in the slot whose time it follows: from ten minutes before the
657
+ * slot's time to ten minutes before the next one's, as a batch follows its
658
+ * slot by a minute a bin. A slot holding a bin booking an arrival is booked,
659
+ * one holding only reservations reserved, an empty one free. A bin in a lane
660
+ * the context does not have is in no slot.
661
+ */
662
+ export declare function allocationSlots<R extends EastType>(row: R): ExprType<FunctionType<[DateTimeType, AllocationDayType<R>, ContextType], ArrayType<typeof AllocationSlotType>>>;
663
+ export {};
664
+ //# sourceMappingURL=functions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../../../src/allocation/functions.ts"],"names":[],"mappings":"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"}