@elaraai/e3-ui 1.0.97 → 1.0.98

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 (304) hide show
  1. package/dist/src/allocation/index.d.ts +258 -7
  2. package/dist/src/allocation/index.d.ts.map +1 -1
  3. package/dist/src/allocation/index.js +30 -1
  4. package/dist/src/allocation/index.js.map +1 -1
  5. package/dist/src/allocation/types.d.ts +41 -0
  6. package/dist/src/allocation/types.d.ts.map +1 -1
  7. package/dist/src/allocation/types.js +35 -0
  8. package/dist/src/allocation/types.js.map +1 -1
  9. package/dist/src/bind/data-indexed.d.ts +31 -4
  10. package/dist/src/bind/data-indexed.d.ts.map +1 -1
  11. package/dist/src/bind/data-indexed.js +54 -10
  12. package/dist/src/bind/data-indexed.js.map +1 -1
  13. package/dist/src/calendar/index.d.ts +540 -14
  14. package/dist/src/calendar/index.d.ts.map +1 -1
  15. package/dist/src/calendar/index.js +43 -7
  16. package/dist/src/calendar/index.js.map +1 -1
  17. package/dist/src/calendar/paged.d.ts +89 -0
  18. package/dist/src/calendar/paged.d.ts.map +1 -0
  19. package/dist/src/calendar/paged.js +148 -0
  20. package/dist/src/calendar/paged.js.map +1 -0
  21. package/dist/src/flowchart/payload.d.ts +156 -0
  22. package/dist/src/flowchart/payload.d.ts.map +1 -1
  23. package/dist/src/flowchart/window.d.ts +12 -0
  24. package/dist/src/flowchart/window.d.ts.map +1 -1
  25. package/dist/src/index.d.ts +11 -2
  26. package/dist/src/index.d.ts.map +1 -1
  27. package/dist/src/index.js +19 -0
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/internal.d.ts +11 -5
  30. package/dist/src/internal.d.ts.map +1 -1
  31. package/dist/src/internal.js +28 -7
  32. package/dist/src/internal.js.map +1 -1
  33. package/dist/src/plan/builders.d.ts +12 -8
  34. package/dist/src/plan/builders.d.ts.map +1 -1
  35. package/dist/src/plan/builders.js +12 -8
  36. package/dist/src/plan/builders.js.map +1 -1
  37. package/dist/src/plan/event-rows.d.ts +228 -156
  38. package/dist/src/plan/event-rows.d.ts.map +1 -1
  39. package/dist/src/plan/event-rows.js +239 -54
  40. package/dist/src/plan/event-rows.js.map +1 -1
  41. package/dist/src/plan/index.d.ts +5 -0
  42. package/dist/src/plan/index.d.ts.map +1 -1
  43. package/dist/src/plan/index.js +3 -0
  44. package/dist/src/plan/index.js.map +1 -1
  45. package/dist/src/plan/ir.d.ts +70 -0
  46. package/dist/src/plan/ir.d.ts.map +1 -1
  47. package/dist/src/plan/ordered-source.d.ts +2038 -1
  48. package/dist/src/plan/ordered-source.d.ts.map +1 -1
  49. package/dist/src/plan/ordered-source.js +19 -11
  50. package/dist/src/plan/ordered-source.js.map +1 -1
  51. package/dist/src/plan/plan.d.ts +513 -32
  52. package/dist/src/plan/plan.d.ts.map +1 -1
  53. package/dist/src/plan/plan.js +119 -32
  54. package/dist/src/plan/plan.js.map +1 -1
  55. package/dist/src/plan/root.d.ts +4 -2
  56. package/dist/src/plan/root.d.ts.map +1 -1
  57. package/dist/src/plan/root.js +6 -4
  58. package/dist/src/plan/root.js.map +1 -1
  59. package/dist/src/plan/series.d.ts +13 -0
  60. package/dist/src/plan/series.d.ts.map +1 -1
  61. package/dist/src/plan/series.js +61 -7
  62. package/dist/src/plan/series.js.map +1 -1
  63. package/dist/src/plan/types.d.ts +14 -0
  64. package/dist/src/plan/types.d.ts.map +1 -1
  65. package/dist/src/plan/types.js +8 -0
  66. package/dist/src/plan/types.js.map +1 -1
  67. package/dist/src/roster/index.d.ts +608 -20
  68. package/dist/src/roster/index.d.ts.map +1 -1
  69. package/dist/src/roster/index.js +103 -29
  70. package/dist/src/roster/index.js.map +1 -1
  71. package/dist/src/roster/library.d.ts +12 -2
  72. package/dist/src/roster/library.d.ts.map +1 -1
  73. package/dist/src/roster/library.js +8 -0
  74. package/dist/src/roster/library.js.map +1 -1
  75. package/dist/src/roster/lists.d.ts +59 -12
  76. package/dist/src/roster/lists.d.ts.map +1 -1
  77. package/dist/src/roster/lists.js +51 -58
  78. package/dist/src/roster/lists.js.map +1 -1
  79. package/dist/src/roster/times.d.ts +402 -0
  80. package/dist/src/roster/times.d.ts.map +1 -1
  81. package/dist/src/roster/types.d.ts +913 -1
  82. package/dist/src/roster/types.d.ts.map +1 -1
  83. package/dist/src/roster/types.js +43 -3
  84. package/dist/src/roster/types.js.map +1 -1
  85. package/dist/src/schedule/cell-checks.d.ts +85 -0
  86. package/dist/src/schedule/cell-checks.d.ts.map +1 -0
  87. package/dist/src/schedule/cell-checks.js +211 -0
  88. package/dist/src/schedule/cell-checks.js.map +1 -0
  89. package/dist/src/schedule/events.d.ts +42 -10
  90. package/dist/src/schedule/events.d.ts.map +1 -1
  91. package/dist/src/schedule/events.js +349 -155
  92. package/dist/src/schedule/events.js.map +1 -1
  93. package/dist/src/schedule/fields.d.ts +134 -0
  94. package/dist/src/schedule/fields.d.ts.map +1 -0
  95. package/dist/src/schedule/fields.js +207 -0
  96. package/dist/src/schedule/fields.js.map +1 -0
  97. package/dist/src/schedule/library.d.ts +11 -3
  98. package/dist/src/schedule/library.d.ts.map +1 -1
  99. package/dist/src/schedule/library.js +9 -6
  100. package/dist/src/schedule/library.js.map +1 -1
  101. package/dist/src/schedule/optimise.d.ts +124 -0
  102. package/dist/src/schedule/optimise.d.ts.map +1 -0
  103. package/dist/src/schedule/optimise.js +140 -0
  104. package/dist/src/schedule/optimise.js.map +1 -0
  105. package/dist/src/schedule/pages.d.ts +76 -0
  106. package/dist/src/schedule/pages.d.ts.map +1 -0
  107. package/dist/src/schedule/pages.js +86 -0
  108. package/dist/src/schedule/pages.js.map +1 -0
  109. package/dist/src/schedule/record-window.d.ts +119 -6
  110. package/dist/src/schedule/record-window.d.ts.map +1 -1
  111. package/dist/src/schedule/record-window.js +139 -60
  112. package/dist/src/schedule/record-window.js.map +1 -1
  113. package/dist/src/schedule/resources.d.ts +8 -4
  114. package/dist/src/schedule/resources.d.ts.map +1 -1
  115. package/dist/src/schedule/resources.js +35 -15
  116. package/dist/src/schedule/resources.js.map +1 -1
  117. package/dist/src/schedule/session.d.ts +14 -0
  118. package/dist/src/schedule/session.d.ts.map +1 -1
  119. package/dist/src/schedule/session.js +29 -17
  120. package/dist/src/schedule/session.js.map +1 -1
  121. package/dist/src/schedule/types.d.ts +426 -36
  122. package/dist/src/schedule/types.d.ts.map +1 -1
  123. package/dist/src/schedule/types.js +63 -17
  124. package/dist/src/schedule/types.js.map +1 -1
  125. package/dist/src/schedule/window.d.ts +30 -9
  126. package/dist/src/schedule/window.d.ts.map +1 -1
  127. package/dist/src/schedule/window.js +101 -49
  128. package/dist/src/schedule/window.js.map +1 -1
  129. package/dist/src/schematic/index.d.ts +277 -0
  130. package/dist/src/schematic/index.d.ts.map +1 -0
  131. package/dist/src/schematic/index.js +206 -0
  132. package/dist/src/schematic/index.js.map +1 -0
  133. package/dist/src/schematic/kinds.d.ts +501 -0
  134. package/dist/src/schematic/kinds.d.ts.map +1 -0
  135. package/dist/src/schematic/kinds.js +1027 -0
  136. package/dist/src/schematic/kinds.js.map +1 -0
  137. package/dist/src/schematic/layers.d.ts +74 -0
  138. package/dist/src/schematic/layers.d.ts.map +1 -0
  139. package/dist/src/schematic/layers.js +99 -0
  140. package/dist/src/schematic/layers.js.map +1 -0
  141. package/dist/src/schematic/library.d.ts +202 -0
  142. package/dist/src/schematic/library.d.ts.map +1 -0
  143. package/dist/src/schematic/library.js +244 -0
  144. package/dist/src/schematic/library.js.map +1 -0
  145. package/dist/src/schematic/payload.d.ts +8360 -0
  146. package/dist/src/schematic/payload.d.ts.map +1 -0
  147. package/dist/src/schematic/payload.js +446 -0
  148. package/dist/src/schematic/payload.js.map +1 -0
  149. package/dist/src/schematic/schematic.d.ts +27 -0
  150. package/dist/src/schematic/schematic.d.ts.map +1 -0
  151. package/dist/src/schematic/schematic.js +17 -0
  152. package/dist/src/schematic/schematic.js.map +1 -0
  153. package/dist/src/schematic/shapes.d.ts +150 -0
  154. package/dist/src/schematic/shapes.d.ts.map +1 -0
  155. package/dist/src/schematic/shapes.js +171 -0
  156. package/dist/src/schematic/shapes.js.map +1 -0
  157. package/dist/src/schematic/templates.d.ts +96 -0
  158. package/dist/src/schematic/templates.d.ts.map +1 -0
  159. package/dist/src/schematic/templates.js +91 -0
  160. package/dist/src/schematic/templates.js.map +1 -0
  161. package/dist/src/schematic/types.d.ts +5766 -0
  162. package/dist/src/schematic/types.d.ts.map +1 -0
  163. package/dist/src/schematic/types.js +688 -0
  164. package/dist/src/schematic/types.js.map +1 -0
  165. package/dist/src/schematic/window.d.ts +212 -0
  166. package/dist/src/schematic/window.d.ts.map +1 -0
  167. package/dist/src/schematic/window.js +337 -0
  168. package/dist/src/schematic/window.js.map +1 -0
  169. package/dist/src/sheet/editing-bridge.d.ts +4 -2
  170. package/dist/src/sheet/editing-bridge.d.ts.map +1 -1
  171. package/dist/src/sheet/editing-bridge.js +8 -2
  172. package/dist/src/sheet/editing-bridge.js.map +1 -1
  173. package/dist/src/sheet/editing-types.d.ts +9 -5
  174. package/dist/src/sheet/editing-types.d.ts.map +1 -1
  175. package/dist/src/sheet/editing-types.js +9 -5
  176. package/dist/src/sheet/editing-types.js.map +1 -1
  177. package/dist/src/sheet/index.d.ts +18 -8
  178. package/dist/src/sheet/index.d.ts.map +1 -1
  179. package/dist/src/sheet/index.js +15 -7
  180. package/dist/src/sheet/index.js.map +1 -1
  181. package/dist/src/sheet/optimise.d.ts +69 -0
  182. package/dist/src/sheet/optimise.d.ts.map +1 -0
  183. package/dist/src/sheet/optimise.js +81 -0
  184. package/dist/src/sheet/optimise.js.map +1 -0
  185. package/dist/src/sheet/registers.d.ts +5 -5
  186. package/dist/src/sheet/registers.js +5 -5
  187. package/dist/src/sheet/root.d.ts +2 -0
  188. package/dist/src/sheet/root.d.ts.map +1 -1
  189. package/dist/src/sheet/root.js +2 -2
  190. package/dist/src/sheet/root.js.map +1 -1
  191. package/dist/src/sheet/sheet.d.ts +753 -573
  192. package/dist/src/sheet/sheet.d.ts.map +1 -1
  193. package/dist/src/sheet/sheet.js +45 -13
  194. package/dist/src/sheet/sheet.js.map +1 -1
  195. package/dist/src/sheet/types.d.ts +92 -12
  196. package/dist/src/sheet/types.d.ts.map +1 -1
  197. package/dist/src/sheet/types.js +4 -8
  198. package/dist/src/sheet/types.js.map +1 -1
  199. package/dist/src/utils/keyed-rows.d.ts +41 -0
  200. package/dist/src/utils/keyed-rows.d.ts.map +1 -0
  201. package/dist/src/utils/keyed-rows.js +64 -0
  202. package/dist/src/utils/keyed-rows.js.map +1 -0
  203. package/dist/src/utils/optimise.d.ts +79 -0
  204. package/dist/src/utils/optimise.d.ts.map +1 -0
  205. package/dist/src/utils/optimise.js +46 -0
  206. package/dist/src/utils/optimise.js.map +1 -0
  207. package/dist/test/allocation/allocation.examples.d.ts +6 -18
  208. package/dist/test/allocation/allocation.examples.d.ts.map +1 -1
  209. package/dist/test/allocation/allocation.examples.js +3 -3
  210. package/dist/test/allocation/allocation.examples.js.map +1 -1
  211. package/dist/test/allocation/optimise.examples.d.ts +109 -0
  212. package/dist/test/allocation/optimise.examples.d.ts.map +1 -0
  213. package/dist/test/allocation/optimise.examples.js +223 -0
  214. package/dist/test/allocation/optimise.examples.js.map +1 -0
  215. package/dist/test/bind/data/data.examples.d.ts +540 -36
  216. package/dist/test/bind/data/data.examples.d.ts.map +1 -1
  217. package/dist/test/bind/data/data.examples.js +66 -2
  218. package/dist/test/bind/data/data.examples.js.map +1 -1
  219. package/dist/test/bind/record/record.examples.d.ts +1 -3
  220. package/dist/test/bind/record/record.examples.d.ts.map +1 -1
  221. package/dist/test/calendar/calendar-records.examples.d.ts.map +1 -1
  222. package/dist/test/calendar/calendar-records.examples.js +3 -3
  223. package/dist/test/calendar/calendar-records.examples.js.map +1 -1
  224. package/dist/test/calendar/calendar-windows.examples.d.ts +9 -0
  225. package/dist/test/calendar/calendar-windows.examples.d.ts.map +1 -0
  226. package/dist/test/calendar/calendar-windows.examples.js +111 -0
  227. package/dist/test/calendar/calendar-windows.examples.js.map +1 -0
  228. package/dist/test/calendar/calendar.examples.d.ts +7 -21
  229. package/dist/test/calendar/calendar.examples.d.ts.map +1 -1
  230. package/dist/test/calendar/calendar.examples.js +7 -7
  231. package/dist/test/calendar/calendar.examples.js.map +1 -1
  232. package/dist/test/calendar/optimise.examples.d.ts +132 -0
  233. package/dist/test/calendar/optimise.examples.d.ts.map +1 -0
  234. package/dist/test/calendar/optimise.examples.js +75 -0
  235. package/dist/test/calendar/optimise.examples.js.map +1 -0
  236. package/dist/test/examples-package.d.ts +46 -10
  237. package/dist/test/examples-package.d.ts.map +1 -1
  238. package/dist/test/examples-package.js +142 -32
  239. package/dist/test/examples-package.js.map +1 -1
  240. package/dist/test/flowchart/flowchart.examples.d.ts +10 -30
  241. package/dist/test/flowchart/flowchart.examples.d.ts.map +1 -1
  242. package/dist/test/plan/optimise.examples.d.ts +207 -0
  243. package/dist/test/plan/optimise.examples.d.ts.map +1 -0
  244. package/dist/test/plan/optimise.examples.js +98 -0
  245. package/dist/test/plan/optimise.examples.js.map +1 -0
  246. package/dist/test/plan/plan-events.examples.d.ts +8 -24
  247. package/dist/test/plan/plan-events.examples.d.ts.map +1 -1
  248. package/dist/test/plan/plan-events.examples.js +3 -3
  249. package/dist/test/plan/plan-events.examples.js.map +1 -1
  250. package/dist/test/plan/plan-records.examples.d.ts +200 -19
  251. package/dist/test/plan/plan-records.examples.d.ts.map +1 -1
  252. package/dist/test/plan/plan-records.examples.js +125 -28
  253. package/dist/test/plan/plan-records.examples.js.map +1 -1
  254. package/dist/test/plan/plan-windows.examples.d.ts +853 -36
  255. package/dist/test/plan/plan-windows.examples.d.ts.map +1 -1
  256. package/dist/test/plan/plan-windows.examples.js +166 -29
  257. package/dist/test/plan/plan-windows.examples.js.map +1 -1
  258. package/dist/test/plan/plan.examples.d.ts +7 -21
  259. package/dist/test/plan/plan.examples.d.ts.map +1 -1
  260. package/dist/test/plan/plan.examples.js +11 -9
  261. package/dist/test/plan/plan.examples.js.map +1 -1
  262. package/dist/test/roster/domain.examples.d.ts +804 -0
  263. package/dist/test/roster/domain.examples.d.ts.map +1 -1
  264. package/dist/test/roster/domain.examples.js +3 -3
  265. package/dist/test/roster/domain.examples.js.map +1 -1
  266. package/dist/test/roster/optimise.examples.d.ts +485 -0
  267. package/dist/test/roster/optimise.examples.d.ts.map +1 -0
  268. package/dist/test/roster/optimise.examples.js +155 -0
  269. package/dist/test/roster/optimise.examples.js.map +1 -0
  270. package/dist/test/roster/roster-records.examples.d.ts +6 -18
  271. package/dist/test/roster/roster-records.examples.d.ts.map +1 -1
  272. package/dist/test/roster/roster-records.examples.js +1 -1
  273. package/dist/test/roster/roster-records.examples.js.map +1 -1
  274. package/dist/test/roster/roster.examples.d.ts +3391 -21
  275. package/dist/test/roster/roster.examples.d.ts.map +1 -1
  276. package/dist/test/roster/roster.examples.js +54 -7
  277. package/dist/test/roster/roster.examples.js.map +1 -1
  278. package/dist/test/roster/warehouse.d.ts +150 -7
  279. package/dist/test/roster/warehouse.d.ts.map +1 -1
  280. package/dist/test/roster/warehouse.js +36 -11
  281. package/dist/test/roster/warehouse.js.map +1 -1
  282. package/dist/test/schedule/schedule.examples.d.ts +1 -3
  283. package/dist/test/schedule/schedule.examples.d.ts.map +1 -1
  284. package/dist/test/schematic/schematic-records.examples.d.ts +444 -0
  285. package/dist/test/schematic/schematic-records.examples.d.ts.map +1 -0
  286. package/dist/test/schematic/schematic-records.examples.js +205 -0
  287. package/dist/test/schematic/schematic-records.examples.js.map +1 -0
  288. package/dist/test/schematic/schematic.examples.d.ts +2289 -0
  289. package/dist/test/schematic/schematic.examples.d.ts.map +1 -0
  290. package/dist/test/schematic/schematic.examples.js +453 -0
  291. package/dist/test/schematic/schematic.examples.js.map +1 -0
  292. package/dist/test/sheet/optimise.examples.d.ts +177 -0
  293. package/dist/test/sheet/optimise.examples.d.ts.map +1 -0
  294. package/dist/test/sheet/optimise.examples.js +75 -0
  295. package/dist/test/sheet/optimise.examples.js.map +1 -0
  296. package/dist/test/sheet/sheet-records.examples.d.ts +95 -204
  297. package/dist/test/sheet/sheet-records.examples.d.ts.map +1 -1
  298. package/dist/test/sheet/sheet-records.examples.js +42 -17
  299. package/dist/test/sheet/sheet-records.examples.js.map +1 -1
  300. package/dist/test/sheet/sheet.examples.d.ts +17 -33
  301. package/dist/test/sheet/sheet.examples.d.ts.map +1 -1
  302. package/dist/test/sheet/sheet.examples.js +18 -15
  303. package/dist/test/sheet/sheet.examples.js.map +1 -1
  304. package/package.json +11 -11
@@ -188,13 +188,14 @@ export declare const RosterGroupType: StructType<{
188
188
  }>;
189
189
  export type RosterGroupType = typeof RosterGroupType;
190
190
  /**
191
- * A recurring shift's start and nominal hours.
191
+ * A recurring shift's start and nominal hours, and its colour.
192
192
  * @remarks An end past midnight belongs to the following day; a duty still belongs to its shift's start day.
193
193
  * @property key - Stable identifier
194
194
  * @property label - Display name
195
195
  * @property code - Short code in the week layout
196
196
  * @property start - Start time in UTC, shared with Schedule
197
197
  * @property hours - Nominal shift duration: what a new duty runs, and a skill holder's capacity
198
+ * @property color - The app's colour token for it (#1406): the People layout's tiles' and marks' fill; `none`, neutral
198
199
  */
199
200
  export declare const RosterShiftType: StructType<{
200
201
  readonly key: StringType;
@@ -205,8 +206,157 @@ export declare const RosterShiftType: StructType<{
205
206
  readonly minute: IntegerType;
206
207
  }>;
207
208
  readonly hours: FloatType;
209
+ readonly color: OptionType<VariantType<{
210
+ readonly brand: VariantType<{
211
+ readonly "50": NullType;
212
+ readonly "100": NullType;
213
+ readonly "200": NullType;
214
+ readonly "300": NullType;
215
+ readonly "400": NullType;
216
+ readonly "500": NullType;
217
+ readonly "600": NullType;
218
+ readonly "700": NullType;
219
+ readonly "800": NullType;
220
+ readonly "900": NullType;
221
+ }>;
222
+ readonly gray: VariantType<{
223
+ readonly "50": NullType;
224
+ readonly "100": NullType;
225
+ readonly "200": NullType;
226
+ readonly "300": NullType;
227
+ readonly "400": NullType;
228
+ readonly "500": NullType;
229
+ readonly "600": NullType;
230
+ readonly "700": NullType;
231
+ readonly "800": NullType;
232
+ readonly "900": NullType;
233
+ }>;
234
+ readonly red: VariantType<{
235
+ readonly "50": NullType;
236
+ readonly "100": NullType;
237
+ readonly "200": NullType;
238
+ readonly "300": NullType;
239
+ readonly "400": NullType;
240
+ readonly "500": NullType;
241
+ readonly "600": NullType;
242
+ readonly "700": NullType;
243
+ readonly "800": NullType;
244
+ readonly "900": NullType;
245
+ }>;
246
+ readonly orange: VariantType<{
247
+ readonly "50": NullType;
248
+ readonly "100": NullType;
249
+ readonly "200": NullType;
250
+ readonly "300": NullType;
251
+ readonly "400": NullType;
252
+ readonly "500": NullType;
253
+ readonly "600": NullType;
254
+ readonly "700": NullType;
255
+ readonly "800": NullType;
256
+ readonly "900": NullType;
257
+ }>;
258
+ readonly yellow: VariantType<{
259
+ readonly "50": NullType;
260
+ readonly "100": NullType;
261
+ readonly "200": NullType;
262
+ readonly "300": NullType;
263
+ readonly "400": NullType;
264
+ readonly "500": NullType;
265
+ readonly "600": NullType;
266
+ readonly "700": NullType;
267
+ readonly "800": NullType;
268
+ readonly "900": NullType;
269
+ }>;
270
+ readonly green: VariantType<{
271
+ readonly "50": NullType;
272
+ readonly "100": NullType;
273
+ readonly "200": NullType;
274
+ readonly "300": NullType;
275
+ readonly "400": NullType;
276
+ readonly "500": NullType;
277
+ readonly "600": NullType;
278
+ readonly "700": NullType;
279
+ readonly "800": NullType;
280
+ readonly "900": NullType;
281
+ }>;
282
+ readonly teal: VariantType<{
283
+ readonly "50": NullType;
284
+ readonly "100": NullType;
285
+ readonly "200": NullType;
286
+ readonly "300": NullType;
287
+ readonly "400": NullType;
288
+ readonly "500": NullType;
289
+ readonly "600": NullType;
290
+ readonly "700": NullType;
291
+ readonly "800": NullType;
292
+ readonly "900": NullType;
293
+ }>;
294
+ readonly blue: VariantType<{
295
+ readonly "50": NullType;
296
+ readonly "100": NullType;
297
+ readonly "200": NullType;
298
+ readonly "300": NullType;
299
+ readonly "400": NullType;
300
+ readonly "500": NullType;
301
+ readonly "600": NullType;
302
+ readonly "700": NullType;
303
+ readonly "800": NullType;
304
+ readonly "900": NullType;
305
+ }>;
306
+ readonly cyan: VariantType<{
307
+ readonly "50": NullType;
308
+ readonly "100": NullType;
309
+ readonly "200": NullType;
310
+ readonly "300": NullType;
311
+ readonly "400": NullType;
312
+ readonly "500": NullType;
313
+ readonly "600": NullType;
314
+ readonly "700": NullType;
315
+ readonly "800": NullType;
316
+ readonly "900": NullType;
317
+ }>;
318
+ readonly purple: VariantType<{
319
+ readonly "50": NullType;
320
+ readonly "100": NullType;
321
+ readonly "200": NullType;
322
+ readonly "300": NullType;
323
+ readonly "400": NullType;
324
+ readonly "500": NullType;
325
+ readonly "600": NullType;
326
+ readonly "700": NullType;
327
+ readonly "800": NullType;
328
+ readonly "900": NullType;
329
+ }>;
330
+ readonly pink: VariantType<{
331
+ readonly "50": NullType;
332
+ readonly "100": NullType;
333
+ readonly "200": NullType;
334
+ readonly "300": NullType;
335
+ readonly "400": NullType;
336
+ readonly "500": NullType;
337
+ readonly "600": NullType;
338
+ readonly "700": NullType;
339
+ readonly "800": NullType;
340
+ readonly "900": NullType;
341
+ }>;
342
+ }>>;
208
343
  }>;
209
344
  export type RosterShiftType = typeof RosterShiftType;
345
+ /**
346
+ * A week pattern, as the Roster reads it from the app's row (`Roster.patterns`,
347
+ * #1406): seven days from the week's first day, each a shift's key or `none`
348
+ * for a day off, which a drop on a person's week applies.
349
+ * @remarks The Roster reads patterns and writes nothing to them; a drop writes the person's duties.
350
+ * @property key - Its row's key
351
+ * @property label - Display name: the card's, and the drop's words
352
+ * @property days - Seven entries from the week's first day: a shift's key, or `none` for a day off
353
+ */
354
+ export declare const RosterPatternType: StructType<{
355
+ readonly key: StringType;
356
+ readonly label: StringType;
357
+ readonly days: ArrayType<OptionType<StringType>>;
358
+ }>;
359
+ export type RosterPatternType = typeof RosterPatternType;
210
360
  /**
211
361
  * A position someone may hold on a shift.
212
362
  * @remarks Position order determines lead ordering in the grid.
@@ -318,6 +468,140 @@ export declare const RosterContextType: StructType<{
318
468
  readonly minute: IntegerType;
319
469
  }>;
320
470
  readonly hours: FloatType;
471
+ readonly color: OptionType<VariantType<{
472
+ readonly brand: VariantType<{
473
+ readonly "50": NullType;
474
+ readonly "100": NullType;
475
+ readonly "200": NullType;
476
+ readonly "300": NullType;
477
+ readonly "400": NullType;
478
+ readonly "500": NullType;
479
+ readonly "600": NullType;
480
+ readonly "700": NullType;
481
+ readonly "800": NullType;
482
+ readonly "900": NullType;
483
+ }>;
484
+ readonly gray: VariantType<{
485
+ readonly "50": NullType;
486
+ readonly "100": NullType;
487
+ readonly "200": NullType;
488
+ readonly "300": NullType;
489
+ readonly "400": NullType;
490
+ readonly "500": NullType;
491
+ readonly "600": NullType;
492
+ readonly "700": NullType;
493
+ readonly "800": NullType;
494
+ readonly "900": NullType;
495
+ }>;
496
+ readonly red: VariantType<{
497
+ readonly "50": NullType;
498
+ readonly "100": NullType;
499
+ readonly "200": NullType;
500
+ readonly "300": NullType;
501
+ readonly "400": NullType;
502
+ readonly "500": NullType;
503
+ readonly "600": NullType;
504
+ readonly "700": NullType;
505
+ readonly "800": NullType;
506
+ readonly "900": NullType;
507
+ }>;
508
+ readonly orange: VariantType<{
509
+ readonly "50": NullType;
510
+ readonly "100": NullType;
511
+ readonly "200": NullType;
512
+ readonly "300": NullType;
513
+ readonly "400": NullType;
514
+ readonly "500": NullType;
515
+ readonly "600": NullType;
516
+ readonly "700": NullType;
517
+ readonly "800": NullType;
518
+ readonly "900": NullType;
519
+ }>;
520
+ readonly yellow: VariantType<{
521
+ readonly "50": NullType;
522
+ readonly "100": NullType;
523
+ readonly "200": NullType;
524
+ readonly "300": NullType;
525
+ readonly "400": NullType;
526
+ readonly "500": NullType;
527
+ readonly "600": NullType;
528
+ readonly "700": NullType;
529
+ readonly "800": NullType;
530
+ readonly "900": NullType;
531
+ }>;
532
+ readonly green: VariantType<{
533
+ readonly "50": NullType;
534
+ readonly "100": NullType;
535
+ readonly "200": NullType;
536
+ readonly "300": NullType;
537
+ readonly "400": NullType;
538
+ readonly "500": NullType;
539
+ readonly "600": NullType;
540
+ readonly "700": NullType;
541
+ readonly "800": NullType;
542
+ readonly "900": NullType;
543
+ }>;
544
+ readonly teal: VariantType<{
545
+ readonly "50": NullType;
546
+ readonly "100": NullType;
547
+ readonly "200": NullType;
548
+ readonly "300": NullType;
549
+ readonly "400": NullType;
550
+ readonly "500": NullType;
551
+ readonly "600": NullType;
552
+ readonly "700": NullType;
553
+ readonly "800": NullType;
554
+ readonly "900": NullType;
555
+ }>;
556
+ readonly blue: VariantType<{
557
+ readonly "50": NullType;
558
+ readonly "100": NullType;
559
+ readonly "200": NullType;
560
+ readonly "300": NullType;
561
+ readonly "400": NullType;
562
+ readonly "500": NullType;
563
+ readonly "600": NullType;
564
+ readonly "700": NullType;
565
+ readonly "800": NullType;
566
+ readonly "900": NullType;
567
+ }>;
568
+ readonly cyan: VariantType<{
569
+ readonly "50": NullType;
570
+ readonly "100": NullType;
571
+ readonly "200": NullType;
572
+ readonly "300": NullType;
573
+ readonly "400": NullType;
574
+ readonly "500": NullType;
575
+ readonly "600": NullType;
576
+ readonly "700": NullType;
577
+ readonly "800": NullType;
578
+ readonly "900": NullType;
579
+ }>;
580
+ readonly purple: VariantType<{
581
+ readonly "50": NullType;
582
+ readonly "100": NullType;
583
+ readonly "200": NullType;
584
+ readonly "300": NullType;
585
+ readonly "400": NullType;
586
+ readonly "500": NullType;
587
+ readonly "600": NullType;
588
+ readonly "700": NullType;
589
+ readonly "800": NullType;
590
+ readonly "900": NullType;
591
+ }>;
592
+ readonly pink: VariantType<{
593
+ readonly "50": NullType;
594
+ readonly "100": NullType;
595
+ readonly "200": NullType;
596
+ readonly "300": NullType;
597
+ readonly "400": NullType;
598
+ readonly "500": NullType;
599
+ readonly "600": NullType;
600
+ readonly "700": NullType;
601
+ readonly "800": NullType;
602
+ readonly "900": NullType;
603
+ }>;
604
+ }>>;
321
605
  }>>;
322
606
  readonly positions: ArrayType<StructType<{
323
607
  readonly key: StringType;
@@ -565,6 +849,140 @@ export declare function RosterPayRequestTypeFor<R extends EastType>(row: R): Str
565
849
  readonly minute: IntegerType;
566
850
  }>;
567
851
  readonly hours: FloatType;
852
+ readonly color: OptionType<VariantType<{
853
+ readonly brand: VariantType<{
854
+ readonly "50": NullType;
855
+ readonly "100": NullType;
856
+ readonly "200": NullType;
857
+ readonly "300": NullType;
858
+ readonly "400": NullType;
859
+ readonly "500": NullType;
860
+ readonly "600": NullType;
861
+ readonly "700": NullType;
862
+ readonly "800": NullType;
863
+ readonly "900": NullType;
864
+ }>;
865
+ readonly gray: VariantType<{
866
+ readonly "50": NullType;
867
+ readonly "100": NullType;
868
+ readonly "200": NullType;
869
+ readonly "300": NullType;
870
+ readonly "400": NullType;
871
+ readonly "500": NullType;
872
+ readonly "600": NullType;
873
+ readonly "700": NullType;
874
+ readonly "800": NullType;
875
+ readonly "900": NullType;
876
+ }>;
877
+ readonly red: VariantType<{
878
+ readonly "50": NullType;
879
+ readonly "100": NullType;
880
+ readonly "200": NullType;
881
+ readonly "300": NullType;
882
+ readonly "400": NullType;
883
+ readonly "500": NullType;
884
+ readonly "600": NullType;
885
+ readonly "700": NullType;
886
+ readonly "800": NullType;
887
+ readonly "900": NullType;
888
+ }>;
889
+ readonly orange: VariantType<{
890
+ readonly "50": NullType;
891
+ readonly "100": NullType;
892
+ readonly "200": NullType;
893
+ readonly "300": NullType;
894
+ readonly "400": NullType;
895
+ readonly "500": NullType;
896
+ readonly "600": NullType;
897
+ readonly "700": NullType;
898
+ readonly "800": NullType;
899
+ readonly "900": NullType;
900
+ }>;
901
+ readonly yellow: VariantType<{
902
+ readonly "50": NullType;
903
+ readonly "100": NullType;
904
+ readonly "200": NullType;
905
+ readonly "300": NullType;
906
+ readonly "400": NullType;
907
+ readonly "500": NullType;
908
+ readonly "600": NullType;
909
+ readonly "700": NullType;
910
+ readonly "800": NullType;
911
+ readonly "900": NullType;
912
+ }>;
913
+ readonly green: VariantType<{
914
+ readonly "50": NullType;
915
+ readonly "100": NullType;
916
+ readonly "200": NullType;
917
+ readonly "300": NullType;
918
+ readonly "400": NullType;
919
+ readonly "500": NullType;
920
+ readonly "600": NullType;
921
+ readonly "700": NullType;
922
+ readonly "800": NullType;
923
+ readonly "900": NullType;
924
+ }>;
925
+ readonly teal: VariantType<{
926
+ readonly "50": NullType;
927
+ readonly "100": NullType;
928
+ readonly "200": NullType;
929
+ readonly "300": NullType;
930
+ readonly "400": NullType;
931
+ readonly "500": NullType;
932
+ readonly "600": NullType;
933
+ readonly "700": NullType;
934
+ readonly "800": NullType;
935
+ readonly "900": NullType;
936
+ }>;
937
+ readonly blue: VariantType<{
938
+ readonly "50": NullType;
939
+ readonly "100": NullType;
940
+ readonly "200": NullType;
941
+ readonly "300": NullType;
942
+ readonly "400": NullType;
943
+ readonly "500": NullType;
944
+ readonly "600": NullType;
945
+ readonly "700": NullType;
946
+ readonly "800": NullType;
947
+ readonly "900": NullType;
948
+ }>;
949
+ readonly cyan: VariantType<{
950
+ readonly "50": NullType;
951
+ readonly "100": NullType;
952
+ readonly "200": NullType;
953
+ readonly "300": NullType;
954
+ readonly "400": NullType;
955
+ readonly "500": NullType;
956
+ readonly "600": NullType;
957
+ readonly "700": NullType;
958
+ readonly "800": NullType;
959
+ readonly "900": NullType;
960
+ }>;
961
+ readonly purple: VariantType<{
962
+ readonly "50": NullType;
963
+ readonly "100": NullType;
964
+ readonly "200": NullType;
965
+ readonly "300": NullType;
966
+ readonly "400": NullType;
967
+ readonly "500": NullType;
968
+ readonly "600": NullType;
969
+ readonly "700": NullType;
970
+ readonly "800": NullType;
971
+ readonly "900": NullType;
972
+ }>;
973
+ readonly pink: VariantType<{
974
+ readonly "50": NullType;
975
+ readonly "100": NullType;
976
+ readonly "200": NullType;
977
+ readonly "300": NullType;
978
+ readonly "400": NullType;
979
+ readonly "500": NullType;
980
+ readonly "600": NullType;
981
+ readonly "700": NullType;
982
+ readonly "800": NullType;
983
+ readonly "900": NullType;
984
+ }>;
985
+ }>>;
568
986
  }>>;
569
987
  readonly positions: ArrayType<StructType<{
570
988
  readonly key: StringType;
@@ -663,6 +1081,140 @@ export declare function RosterCheckContextTypeFor<R extends EastType>(row: R): S
663
1081
  readonly minute: IntegerType;
664
1082
  }>;
665
1083
  readonly hours: FloatType;
1084
+ readonly color: OptionType<VariantType<{
1085
+ readonly brand: VariantType<{
1086
+ readonly "50": NullType;
1087
+ readonly "100": NullType;
1088
+ readonly "200": NullType;
1089
+ readonly "300": NullType;
1090
+ readonly "400": NullType;
1091
+ readonly "500": NullType;
1092
+ readonly "600": NullType;
1093
+ readonly "700": NullType;
1094
+ readonly "800": NullType;
1095
+ readonly "900": NullType;
1096
+ }>;
1097
+ readonly gray: VariantType<{
1098
+ readonly "50": NullType;
1099
+ readonly "100": NullType;
1100
+ readonly "200": NullType;
1101
+ readonly "300": NullType;
1102
+ readonly "400": NullType;
1103
+ readonly "500": NullType;
1104
+ readonly "600": NullType;
1105
+ readonly "700": NullType;
1106
+ readonly "800": NullType;
1107
+ readonly "900": NullType;
1108
+ }>;
1109
+ readonly red: VariantType<{
1110
+ readonly "50": NullType;
1111
+ readonly "100": NullType;
1112
+ readonly "200": NullType;
1113
+ readonly "300": NullType;
1114
+ readonly "400": NullType;
1115
+ readonly "500": NullType;
1116
+ readonly "600": NullType;
1117
+ readonly "700": NullType;
1118
+ readonly "800": NullType;
1119
+ readonly "900": NullType;
1120
+ }>;
1121
+ readonly orange: VariantType<{
1122
+ readonly "50": NullType;
1123
+ readonly "100": NullType;
1124
+ readonly "200": NullType;
1125
+ readonly "300": NullType;
1126
+ readonly "400": NullType;
1127
+ readonly "500": NullType;
1128
+ readonly "600": NullType;
1129
+ readonly "700": NullType;
1130
+ readonly "800": NullType;
1131
+ readonly "900": NullType;
1132
+ }>;
1133
+ readonly yellow: VariantType<{
1134
+ readonly "50": NullType;
1135
+ readonly "100": NullType;
1136
+ readonly "200": NullType;
1137
+ readonly "300": NullType;
1138
+ readonly "400": NullType;
1139
+ readonly "500": NullType;
1140
+ readonly "600": NullType;
1141
+ readonly "700": NullType;
1142
+ readonly "800": NullType;
1143
+ readonly "900": NullType;
1144
+ }>;
1145
+ readonly green: VariantType<{
1146
+ readonly "50": NullType;
1147
+ readonly "100": NullType;
1148
+ readonly "200": NullType;
1149
+ readonly "300": NullType;
1150
+ readonly "400": NullType;
1151
+ readonly "500": NullType;
1152
+ readonly "600": NullType;
1153
+ readonly "700": NullType;
1154
+ readonly "800": NullType;
1155
+ readonly "900": NullType;
1156
+ }>;
1157
+ readonly teal: VariantType<{
1158
+ readonly "50": NullType;
1159
+ readonly "100": NullType;
1160
+ readonly "200": NullType;
1161
+ readonly "300": NullType;
1162
+ readonly "400": NullType;
1163
+ readonly "500": NullType;
1164
+ readonly "600": NullType;
1165
+ readonly "700": NullType;
1166
+ readonly "800": NullType;
1167
+ readonly "900": NullType;
1168
+ }>;
1169
+ readonly blue: VariantType<{
1170
+ readonly "50": NullType;
1171
+ readonly "100": NullType;
1172
+ readonly "200": NullType;
1173
+ readonly "300": NullType;
1174
+ readonly "400": NullType;
1175
+ readonly "500": NullType;
1176
+ readonly "600": NullType;
1177
+ readonly "700": NullType;
1178
+ readonly "800": NullType;
1179
+ readonly "900": NullType;
1180
+ }>;
1181
+ readonly cyan: VariantType<{
1182
+ readonly "50": NullType;
1183
+ readonly "100": NullType;
1184
+ readonly "200": NullType;
1185
+ readonly "300": NullType;
1186
+ readonly "400": NullType;
1187
+ readonly "500": NullType;
1188
+ readonly "600": NullType;
1189
+ readonly "700": NullType;
1190
+ readonly "800": NullType;
1191
+ readonly "900": NullType;
1192
+ }>;
1193
+ readonly purple: VariantType<{
1194
+ readonly "50": NullType;
1195
+ readonly "100": NullType;
1196
+ readonly "200": NullType;
1197
+ readonly "300": NullType;
1198
+ readonly "400": NullType;
1199
+ readonly "500": NullType;
1200
+ readonly "600": NullType;
1201
+ readonly "700": NullType;
1202
+ readonly "800": NullType;
1203
+ readonly "900": NullType;
1204
+ }>;
1205
+ readonly pink: VariantType<{
1206
+ readonly "50": NullType;
1207
+ readonly "100": NullType;
1208
+ readonly "200": NullType;
1209
+ readonly "300": NullType;
1210
+ readonly "400": NullType;
1211
+ readonly "500": NullType;
1212
+ readonly "600": NullType;
1213
+ readonly "700": NullType;
1214
+ readonly "800": NullType;
1215
+ readonly "900": NullType;
1216
+ }>;
1217
+ }>>;
666
1218
  }>>;
667
1219
  readonly positions: ArrayType<StructType<{
668
1220
  readonly key: StringType;
@@ -842,6 +1394,140 @@ export declare function RosterFitRequestTypeFor<R extends EastType>(row: R): Str
842
1394
  readonly minute: IntegerType;
843
1395
  }>;
844
1396
  readonly hours: FloatType;
1397
+ readonly color: OptionType<VariantType<{
1398
+ readonly brand: VariantType<{
1399
+ readonly "50": NullType;
1400
+ readonly "100": NullType;
1401
+ readonly "200": NullType;
1402
+ readonly "300": NullType;
1403
+ readonly "400": NullType;
1404
+ readonly "500": NullType;
1405
+ readonly "600": NullType;
1406
+ readonly "700": NullType;
1407
+ readonly "800": NullType;
1408
+ readonly "900": NullType;
1409
+ }>;
1410
+ readonly gray: VariantType<{
1411
+ readonly "50": NullType;
1412
+ readonly "100": NullType;
1413
+ readonly "200": NullType;
1414
+ readonly "300": NullType;
1415
+ readonly "400": NullType;
1416
+ readonly "500": NullType;
1417
+ readonly "600": NullType;
1418
+ readonly "700": NullType;
1419
+ readonly "800": NullType;
1420
+ readonly "900": NullType;
1421
+ }>;
1422
+ readonly red: VariantType<{
1423
+ readonly "50": NullType;
1424
+ readonly "100": NullType;
1425
+ readonly "200": NullType;
1426
+ readonly "300": NullType;
1427
+ readonly "400": NullType;
1428
+ readonly "500": NullType;
1429
+ readonly "600": NullType;
1430
+ readonly "700": NullType;
1431
+ readonly "800": NullType;
1432
+ readonly "900": NullType;
1433
+ }>;
1434
+ readonly orange: VariantType<{
1435
+ readonly "50": NullType;
1436
+ readonly "100": NullType;
1437
+ readonly "200": NullType;
1438
+ readonly "300": NullType;
1439
+ readonly "400": NullType;
1440
+ readonly "500": NullType;
1441
+ readonly "600": NullType;
1442
+ readonly "700": NullType;
1443
+ readonly "800": NullType;
1444
+ readonly "900": NullType;
1445
+ }>;
1446
+ readonly yellow: VariantType<{
1447
+ readonly "50": NullType;
1448
+ readonly "100": NullType;
1449
+ readonly "200": NullType;
1450
+ readonly "300": NullType;
1451
+ readonly "400": NullType;
1452
+ readonly "500": NullType;
1453
+ readonly "600": NullType;
1454
+ readonly "700": NullType;
1455
+ readonly "800": NullType;
1456
+ readonly "900": NullType;
1457
+ }>;
1458
+ readonly green: VariantType<{
1459
+ readonly "50": NullType;
1460
+ readonly "100": NullType;
1461
+ readonly "200": NullType;
1462
+ readonly "300": NullType;
1463
+ readonly "400": NullType;
1464
+ readonly "500": NullType;
1465
+ readonly "600": NullType;
1466
+ readonly "700": NullType;
1467
+ readonly "800": NullType;
1468
+ readonly "900": NullType;
1469
+ }>;
1470
+ readonly teal: VariantType<{
1471
+ readonly "50": NullType;
1472
+ readonly "100": NullType;
1473
+ readonly "200": NullType;
1474
+ readonly "300": NullType;
1475
+ readonly "400": NullType;
1476
+ readonly "500": NullType;
1477
+ readonly "600": NullType;
1478
+ readonly "700": NullType;
1479
+ readonly "800": NullType;
1480
+ readonly "900": NullType;
1481
+ }>;
1482
+ readonly blue: VariantType<{
1483
+ readonly "50": NullType;
1484
+ readonly "100": NullType;
1485
+ readonly "200": NullType;
1486
+ readonly "300": NullType;
1487
+ readonly "400": NullType;
1488
+ readonly "500": NullType;
1489
+ readonly "600": NullType;
1490
+ readonly "700": NullType;
1491
+ readonly "800": NullType;
1492
+ readonly "900": NullType;
1493
+ }>;
1494
+ readonly cyan: VariantType<{
1495
+ readonly "50": NullType;
1496
+ readonly "100": NullType;
1497
+ readonly "200": NullType;
1498
+ readonly "300": NullType;
1499
+ readonly "400": NullType;
1500
+ readonly "500": NullType;
1501
+ readonly "600": NullType;
1502
+ readonly "700": NullType;
1503
+ readonly "800": NullType;
1504
+ readonly "900": NullType;
1505
+ }>;
1506
+ readonly purple: VariantType<{
1507
+ readonly "50": NullType;
1508
+ readonly "100": NullType;
1509
+ readonly "200": NullType;
1510
+ readonly "300": NullType;
1511
+ readonly "400": NullType;
1512
+ readonly "500": NullType;
1513
+ readonly "600": NullType;
1514
+ readonly "700": NullType;
1515
+ readonly "800": NullType;
1516
+ readonly "900": NullType;
1517
+ }>;
1518
+ readonly pink: VariantType<{
1519
+ readonly "50": NullType;
1520
+ readonly "100": NullType;
1521
+ readonly "200": NullType;
1522
+ readonly "300": NullType;
1523
+ readonly "400": NullType;
1524
+ readonly "500": NullType;
1525
+ readonly "600": NullType;
1526
+ readonly "700": NullType;
1527
+ readonly "800": NullType;
1528
+ readonly "900": NullType;
1529
+ }>;
1530
+ }>>;
845
1531
  }>>;
846
1532
  readonly positions: ArrayType<StructType<{
847
1533
  readonly key: StringType;
@@ -1314,4 +2000,230 @@ export declare const RosterFitResultType: StructType<{
1314
2000
  }>>;
1315
2001
  }>;
1316
2002
  export type RosterFitResultType = typeof RosterFitResultType;
2003
+ /**
2004
+ * One request to the app's optimiser (#1409, `Optimise Spec.md` §5.1): the
2005
+ * week in view and its duties, as drafted, for the optimiser to fill or
2006
+ * improve — the Elara eye's one call.
2007
+ *
2008
+ * @typeParam R - The app's duty row type
2009
+ * @param row - The app's duty row type
2010
+ * @returns The request type over it
2011
+ * @remarks `from` and `to` the week, half open; `run` the run's number, from 1 per Roster per browser; `duties` the week's duties by key, the app's own rows as the session holds them — the base with every unapplied draft in place, every row whatever the rail shows; `requirements` the week's targets by slot; `context` the complete staff and configuration — every person, shift, group, position and agency, and the rules.
2012
+ */
2013
+ export declare function RosterOptimiseRequestTypeFor<R extends EastType>(row: R): StructType<{
2014
+ readonly from: DateTimeType;
2015
+ readonly to: DateTimeType;
2016
+ readonly run: IntegerType;
2017
+ readonly duties: DictType<StringType, R>;
2018
+ readonly requirements: DictType<StructType<{
2019
+ readonly day: IntegerType;
2020
+ readonly group: StringType;
2021
+ readonly shift: StringType;
2022
+ }>, StructType<{
2023
+ readonly positions: IntegerType;
2024
+ readonly hours: DictType<StringType, FloatType>;
2025
+ }>>;
2026
+ readonly context: StructType<{
2027
+ readonly people: DictType<StringType, StructType<{
2028
+ readonly key: StringType;
2029
+ readonly name: StringType;
2030
+ readonly group: StringType;
2031
+ readonly position: StringType;
2032
+ readonly skills: SetType<StringType>;
2033
+ readonly contract: FloatType;
2034
+ readonly agency: BooleanType;
2035
+ readonly trainer: BooleanType;
2036
+ readonly trainee: BooleanType;
2037
+ readonly usual: OptionType<StringType>;
2038
+ }>>;
2039
+ readonly groups: ArrayType<StructType<{
2040
+ readonly key: StringType;
2041
+ readonly label: StringType;
2042
+ }>>;
2043
+ readonly activities: ArrayType<StructType<{
2044
+ readonly key: StringType;
2045
+ readonly label: StringType;
2046
+ readonly code: StringType;
2047
+ readonly group: OptionType<StringType>;
2048
+ }>>;
2049
+ readonly shifts: ArrayType<StructType<{
2050
+ readonly key: StringType;
2051
+ readonly label: StringType;
2052
+ readonly code: StringType;
2053
+ readonly start: StructType<{
2054
+ readonly hour: IntegerType;
2055
+ readonly minute: IntegerType;
2056
+ }>;
2057
+ readonly hours: FloatType;
2058
+ readonly color: OptionType<VariantType<{
2059
+ readonly brand: VariantType<{
2060
+ readonly "50": NullType;
2061
+ readonly "100": NullType;
2062
+ readonly "200": NullType;
2063
+ readonly "300": NullType;
2064
+ readonly "400": NullType;
2065
+ readonly "500": NullType;
2066
+ readonly "600": NullType;
2067
+ readonly "700": NullType;
2068
+ readonly "800": NullType;
2069
+ readonly "900": NullType;
2070
+ }>;
2071
+ readonly gray: VariantType<{
2072
+ readonly "50": NullType;
2073
+ readonly "100": NullType;
2074
+ readonly "200": NullType;
2075
+ readonly "300": NullType;
2076
+ readonly "400": NullType;
2077
+ readonly "500": NullType;
2078
+ readonly "600": NullType;
2079
+ readonly "700": NullType;
2080
+ readonly "800": NullType;
2081
+ readonly "900": NullType;
2082
+ }>;
2083
+ readonly red: VariantType<{
2084
+ readonly "50": NullType;
2085
+ readonly "100": NullType;
2086
+ readonly "200": NullType;
2087
+ readonly "300": NullType;
2088
+ readonly "400": NullType;
2089
+ readonly "500": NullType;
2090
+ readonly "600": NullType;
2091
+ readonly "700": NullType;
2092
+ readonly "800": NullType;
2093
+ readonly "900": NullType;
2094
+ }>;
2095
+ readonly orange: VariantType<{
2096
+ readonly "50": NullType;
2097
+ readonly "100": NullType;
2098
+ readonly "200": NullType;
2099
+ readonly "300": NullType;
2100
+ readonly "400": NullType;
2101
+ readonly "500": NullType;
2102
+ readonly "600": NullType;
2103
+ readonly "700": NullType;
2104
+ readonly "800": NullType;
2105
+ readonly "900": NullType;
2106
+ }>;
2107
+ readonly yellow: VariantType<{
2108
+ readonly "50": NullType;
2109
+ readonly "100": NullType;
2110
+ readonly "200": NullType;
2111
+ readonly "300": NullType;
2112
+ readonly "400": NullType;
2113
+ readonly "500": NullType;
2114
+ readonly "600": NullType;
2115
+ readonly "700": NullType;
2116
+ readonly "800": NullType;
2117
+ readonly "900": NullType;
2118
+ }>;
2119
+ readonly green: VariantType<{
2120
+ readonly "50": NullType;
2121
+ readonly "100": NullType;
2122
+ readonly "200": NullType;
2123
+ readonly "300": NullType;
2124
+ readonly "400": NullType;
2125
+ readonly "500": NullType;
2126
+ readonly "600": NullType;
2127
+ readonly "700": NullType;
2128
+ readonly "800": NullType;
2129
+ readonly "900": NullType;
2130
+ }>;
2131
+ readonly teal: VariantType<{
2132
+ readonly "50": NullType;
2133
+ readonly "100": NullType;
2134
+ readonly "200": NullType;
2135
+ readonly "300": NullType;
2136
+ readonly "400": NullType;
2137
+ readonly "500": NullType;
2138
+ readonly "600": NullType;
2139
+ readonly "700": NullType;
2140
+ readonly "800": NullType;
2141
+ readonly "900": NullType;
2142
+ }>;
2143
+ readonly blue: VariantType<{
2144
+ readonly "50": NullType;
2145
+ readonly "100": NullType;
2146
+ readonly "200": NullType;
2147
+ readonly "300": NullType;
2148
+ readonly "400": NullType;
2149
+ readonly "500": NullType;
2150
+ readonly "600": NullType;
2151
+ readonly "700": NullType;
2152
+ readonly "800": NullType;
2153
+ readonly "900": NullType;
2154
+ }>;
2155
+ readonly cyan: VariantType<{
2156
+ readonly "50": NullType;
2157
+ readonly "100": NullType;
2158
+ readonly "200": NullType;
2159
+ readonly "300": NullType;
2160
+ readonly "400": NullType;
2161
+ readonly "500": NullType;
2162
+ readonly "600": NullType;
2163
+ readonly "700": NullType;
2164
+ readonly "800": NullType;
2165
+ readonly "900": NullType;
2166
+ }>;
2167
+ readonly purple: VariantType<{
2168
+ readonly "50": NullType;
2169
+ readonly "100": NullType;
2170
+ readonly "200": NullType;
2171
+ readonly "300": NullType;
2172
+ readonly "400": NullType;
2173
+ readonly "500": NullType;
2174
+ readonly "600": NullType;
2175
+ readonly "700": NullType;
2176
+ readonly "800": NullType;
2177
+ readonly "900": NullType;
2178
+ }>;
2179
+ readonly pink: VariantType<{
2180
+ readonly "50": NullType;
2181
+ readonly "100": NullType;
2182
+ readonly "200": NullType;
2183
+ readonly "300": NullType;
2184
+ readonly "400": NullType;
2185
+ readonly "500": NullType;
2186
+ readonly "600": NullType;
2187
+ readonly "700": NullType;
2188
+ readonly "800": NullType;
2189
+ readonly "900": NullType;
2190
+ }>;
2191
+ }>>;
2192
+ }>>;
2193
+ readonly positions: ArrayType<StructType<{
2194
+ readonly key: StringType;
2195
+ readonly label: StringType;
2196
+ readonly code: StringType;
2197
+ readonly lead: BooleanType;
2198
+ }>>;
2199
+ readonly agencies: ArrayType<StructType<{
2200
+ readonly key: StringType;
2201
+ readonly name: StringType;
2202
+ }>>;
2203
+ readonly rules: StructType<{
2204
+ readonly rest: FloatType;
2205
+ readonly lead: BooleanType;
2206
+ readonly trainer: BooleanType;
2207
+ readonly skill: BooleanType;
2208
+ }>;
2209
+ }>;
2210
+ }>;
2211
+ /** Type representing {@link RosterOptimiseRequestTypeFor}. */
2212
+ export type RosterOptimiseRequestTypeFor<R extends EastType> = ReturnType<typeof RosterOptimiseRequestTypeFor<R>>;
2213
+ /**
2214
+ * The app's optimiser's answer (#1409): the week's duties, complete, by key.
2215
+ * The Roster diffs it against the request by key — a key the request did not
2216
+ * hold is a duty added, one it held with another row a duty changed, one
2217
+ * missing a duty removed — and records the diff as one step of its history.
2218
+ *
2219
+ * @typeParam R - The app's duty row type
2220
+ * @param row - The app's duty row type
2221
+ * @returns The result type over it
2222
+ * @remarks A new duty's key is the optimiser's own; a result equal to the request records nothing.
2223
+ */
2224
+ export declare function RosterOptimiseResultTypeFor<R extends EastType>(row: R): StructType<{
2225
+ readonly duties: DictType<StringType, R>;
2226
+ }>;
2227
+ /** Type representing {@link RosterOptimiseResultTypeFor}. */
2228
+ export type RosterOptimiseResultTypeFor<R extends EastType> = ReturnType<typeof RosterOptimiseResultTypeFor<R>>;
1317
2229
  //# sourceMappingURL=types.d.ts.map