@adminiumjs/manifest 0.3.17 → 0.3.18

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 (90) hide show
  1. package/dist/adjust.d.ts +322 -0
  2. package/dist/adjust.d.ts.map +1 -0
  3. package/dist/adjust.js +512 -0
  4. package/dist/adjust.js.map +1 -0
  5. package/dist/automations.d.ts +2309 -0
  6. package/dist/automations.d.ts.map +1 -0
  7. package/dist/automations.js +384 -0
  8. package/dist/automations.js.map +1 -0
  9. package/dist/compose.d.ts.map +1 -1
  10. package/dist/compose.js +1 -0
  11. package/dist/compose.js.map +1 -1
  12. package/dist/documents.d.ts +82 -1
  13. package/dist/documents.d.ts.map +1 -1
  14. package/dist/documents.js +36 -6
  15. package/dist/documents.js.map +1 -1
  16. package/dist/index.d.ts +15 -6
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js +15 -6
  19. package/dist/index.js.map +1 -1
  20. package/dist/key-bytes.d.ts +27 -0
  21. package/dist/key-bytes.d.ts.map +1 -0
  22. package/dist/key-bytes.js +48 -0
  23. package/dist/key-bytes.js.map +1 -0
  24. package/dist/ledger-indexes.d.ts +19 -0
  25. package/dist/ledger-indexes.d.ts.map +1 -0
  26. package/dist/ledger-indexes.js +74 -0
  27. package/dist/ledger-indexes.js.map +1 -0
  28. package/dist/ledgers.d.ts +691 -0
  29. package/dist/ledgers.d.ts.map +1 -0
  30. package/dist/ledgers.js +778 -0
  31. package/dist/ledgers.js.map +1 -0
  32. package/dist/look-up.d.ts +73 -0
  33. package/dist/look-up.d.ts.map +1 -0
  34. package/dist/look-up.js +140 -0
  35. package/dist/look-up.js.map +1 -0
  36. package/dist/marketplace-wire.d.ts +2 -2
  37. package/dist/outbox.d.ts +29 -3
  38. package/dist/outbox.d.ts.map +1 -1
  39. package/dist/outbox.js +94 -15
  40. package/dist/outbox.js.map +1 -1
  41. package/dist/page-config.d.ts +99 -0
  42. package/dist/page-config.d.ts.map +1 -0
  43. package/dist/page-config.js +197 -0
  44. package/dist/page-config.js.map +1 -0
  45. package/dist/plan-context.d.ts +8 -18
  46. package/dist/plan-context.d.ts.map +1 -1
  47. package/dist/plan-context.js +53 -51
  48. package/dist/plan-context.js.map +1 -1
  49. package/dist/plan-model.d.ts +8 -1
  50. package/dist/plan-model.d.ts.map +1 -1
  51. package/dist/plan.d.ts +1 -1
  52. package/dist/plan.d.ts.map +1 -1
  53. package/dist/plan.js +6 -3
  54. package/dist/plan.js.map +1 -1
  55. package/dist/public-access.d.ts +33 -5
  56. package/dist/public-access.d.ts.map +1 -1
  57. package/dist/public-access.js +82 -4
  58. package/dist/public-access.js.map +1 -1
  59. package/dist/refs.d.ts +2 -0
  60. package/dist/refs.d.ts.map +1 -1
  61. package/dist/refs.js +5 -0
  62. package/dist/refs.js.map +1 -1
  63. package/dist/roles.d.ts +46 -0
  64. package/dist/roles.d.ts.map +1 -1
  65. package/dist/roles.js +50 -0
  66. package/dist/roles.js.map +1 -1
  67. package/dist/sample.d.ts +70 -1
  68. package/dist/sample.d.ts.map +1 -1
  69. package/dist/sample.js +208 -5
  70. package/dist/sample.js.map +1 -1
  71. package/dist/schema.d.ts +9657 -2440
  72. package/dist/schema.d.ts.map +1 -1
  73. package/dist/schema.js +751 -52
  74. package/dist/schema.js.map +1 -1
  75. package/dist/state-actions.d.ts +185 -0
  76. package/dist/state-actions.d.ts.map +1 -0
  77. package/dist/state-actions.js +223 -0
  78. package/dist/state-actions.js.map +1 -0
  79. package/dist/states.d.ts +66 -0
  80. package/dist/states.d.ts.map +1 -1
  81. package/dist/states.js +31 -0
  82. package/dist/states.js.map +1 -1
  83. package/dist/validate.d.ts.map +1 -1
  84. package/dist/validate.js +22 -6
  85. package/dist/validate.js.map +1 -1
  86. package/dist/words.d.ts +33 -0
  87. package/dist/words.d.ts.map +1 -0
  88. package/dist/words.js +208 -0
  89. package/dist/words.js.map +1 -0
  90. package/package.json +2 -2
@@ -0,0 +1,2309 @@
1
+ /**
2
+ * RULES A MANIFEST SHIPS (`automations`).
3
+ *
4
+ * An app or an add-on may bring automation rules with it: "when a stock
5
+ * point falls to its reorder level, write a request and tell the managers".
6
+ * A rule is written here as the rules page stores one — a trigger, then a
7
+ * flow of steps — with three differences, because a manifest knows nothing of
8
+ * the install it will land on:
9
+ *
10
+ * - tables are the manifest's own, by their short names; no connection;
11
+ * - a notice goes to the manifest's own roles, an email to a column of the
12
+ * record through one of the manifest's own templates: never a fixed
13
+ * address, a user, a web address or a document profile's id;
14
+ * - a title or a notice's text may be given in several languages; the
15
+ * install keeps the one the instance speaks.
16
+ *
17
+ * Each rule has a `key`. It is how an update finds the rule it shipped
18
+ * before, and tells one the owner has edited from one it may replace.
19
+ *
20
+ * Pure, and nothing imported from the manifest's own schema file.
21
+ */
22
+ import { z } from 'zod';
23
+ import { type ReferenceIssue } from './refs.js';
24
+ /** The most rules one manifest ships, and the most steps one rule holds. */
25
+ export declare const MANIFEST_AUTOMATIONS_MAX = 12;
26
+ export declare const AUTOMATION_NODES_MAX = 40;
27
+ export declare const AUTOMATION_CONDITION_OPS: readonly ["is", "is_not", "contains", "gt", "lt", "is_empty", "not_empty", "within_next", "within_last", "more_than_ago", "more_than_ahead"];
28
+ export declare const manifestConditionSchema: z.ZodObject<{
29
+ left: z.ZodUnion<readonly [z.ZodObject<{
30
+ field: z.ZodString;
31
+ }, z.core.$strict>, z.ZodObject<{
32
+ count: z.ZodObject<{
33
+ table: z.ZodString;
34
+ matchColumn: z.ZodString;
35
+ equalsField: z.ZodString;
36
+ where: z.ZodOptional<z.ZodObject<{
37
+ left: z.ZodObject<{
38
+ field: z.ZodString;
39
+ }, z.core.$strict>;
40
+ op: z.ZodEnum<{
41
+ is: "is";
42
+ is_not: "is_not";
43
+ contains: "contains";
44
+ gt: "gt";
45
+ lt: "lt";
46
+ is_empty: "is_empty";
47
+ not_empty: "not_empty";
48
+ within_next: "within_next";
49
+ within_last: "within_last";
50
+ more_than_ago: "more_than_ago";
51
+ more_than_ahead: "more_than_ahead";
52
+ }>;
53
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
54
+ amount: z.ZodNumber;
55
+ unit: z.ZodEnum<{
56
+ minutes: "minutes";
57
+ hours: "hours";
58
+ days: "days";
59
+ }>;
60
+ }, z.core.$strict>]>>;
61
+ }, z.core.$strict>>;
62
+ }, z.core.$strict>;
63
+ }, z.core.$strict>]>;
64
+ op: z.ZodEnum<{
65
+ is: "is";
66
+ is_not: "is_not";
67
+ contains: "contains";
68
+ gt: "gt";
69
+ lt: "lt";
70
+ is_empty: "is_empty";
71
+ not_empty: "not_empty";
72
+ within_next: "within_next";
73
+ within_last: "within_last";
74
+ more_than_ago: "more_than_ago";
75
+ more_than_ahead: "more_than_ahead";
76
+ }>;
77
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
78
+ amount: z.ZodNumber;
79
+ unit: z.ZodEnum<{
80
+ minutes: "minutes";
81
+ hours: "hours";
82
+ days: "days";
83
+ }>;
84
+ }, z.core.$strict>]>>;
85
+ }, z.core.$strict>;
86
+ export type ManifestCondition = z.infer<typeof manifestConditionSchema>;
87
+ export declare const manifestTriggerSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
88
+ kind: z.ZodLiteral<"record">;
89
+ event: z.ZodEnum<{
90
+ created: "created";
91
+ updated: "updated";
92
+ deleted: "deleted";
93
+ }>;
94
+ table: z.ZodString;
95
+ changedColumn: z.ZodOptional<z.ZodString>;
96
+ when: z.ZodOptional<z.ZodArray<z.ZodObject<{
97
+ left: z.ZodUnion<readonly [z.ZodObject<{
98
+ field: z.ZodString;
99
+ }, z.core.$strict>, z.ZodObject<{
100
+ count: z.ZodObject<{
101
+ table: z.ZodString;
102
+ matchColumn: z.ZodString;
103
+ equalsField: z.ZodString;
104
+ where: z.ZodOptional<z.ZodObject<{
105
+ left: z.ZodObject<{
106
+ field: z.ZodString;
107
+ }, z.core.$strict>;
108
+ op: z.ZodEnum<{
109
+ is: "is";
110
+ is_not: "is_not";
111
+ contains: "contains";
112
+ gt: "gt";
113
+ lt: "lt";
114
+ is_empty: "is_empty";
115
+ not_empty: "not_empty";
116
+ within_next: "within_next";
117
+ within_last: "within_last";
118
+ more_than_ago: "more_than_ago";
119
+ more_than_ahead: "more_than_ahead";
120
+ }>;
121
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
122
+ amount: z.ZodNumber;
123
+ unit: z.ZodEnum<{
124
+ minutes: "minutes";
125
+ hours: "hours";
126
+ days: "days";
127
+ }>;
128
+ }, z.core.$strict>]>>;
129
+ }, z.core.$strict>>;
130
+ }, z.core.$strict>;
131
+ }, z.core.$strict>]>;
132
+ op: z.ZodEnum<{
133
+ is: "is";
134
+ is_not: "is_not";
135
+ contains: "contains";
136
+ gt: "gt";
137
+ lt: "lt";
138
+ is_empty: "is_empty";
139
+ not_empty: "not_empty";
140
+ within_next: "within_next";
141
+ within_last: "within_last";
142
+ more_than_ago: "more_than_ago";
143
+ more_than_ahead: "more_than_ahead";
144
+ }>;
145
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
146
+ amount: z.ZodNumber;
147
+ unit: z.ZodEnum<{
148
+ minutes: "minutes";
149
+ hours: "hours";
150
+ days: "days";
151
+ }>;
152
+ }, z.core.$strict>]>>;
153
+ }, z.core.$strict>>>;
154
+ }, z.core.$strict>, z.ZodObject<{
155
+ kind: z.ZodLiteral<"schedule">;
156
+ schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{
157
+ kind: z.ZodLiteral<"interval">;
158
+ everyMinutes: z.ZodEnum<{
159
+ 5: "5";
160
+ 10: "10";
161
+ 15: "15";
162
+ 30: "30";
163
+ 60: "60";
164
+ }>;
165
+ }, z.core.$strict>, z.ZodObject<{
166
+ kind: z.ZodEnum<{
167
+ daily: "daily";
168
+ weekly: "weekly";
169
+ monthly: "monthly";
170
+ }>;
171
+ time: z.ZodString;
172
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
173
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
174
+ }, z.core.$strict>], "kind">;
175
+ forEach: z.ZodOptional<z.ZodObject<{
176
+ table: z.ZodString;
177
+ where: z.ZodArray<z.ZodObject<{
178
+ left: z.ZodUnion<readonly [z.ZodObject<{
179
+ field: z.ZodString;
180
+ }, z.core.$strict>, z.ZodObject<{
181
+ count: z.ZodObject<{
182
+ table: z.ZodString;
183
+ matchColumn: z.ZodString;
184
+ equalsField: z.ZodString;
185
+ where: z.ZodOptional<z.ZodObject<{
186
+ left: z.ZodObject<{
187
+ field: z.ZodString;
188
+ }, z.core.$strict>;
189
+ op: z.ZodEnum<{
190
+ is: "is";
191
+ is_not: "is_not";
192
+ contains: "contains";
193
+ gt: "gt";
194
+ lt: "lt";
195
+ is_empty: "is_empty";
196
+ not_empty: "not_empty";
197
+ within_next: "within_next";
198
+ within_last: "within_last";
199
+ more_than_ago: "more_than_ago";
200
+ more_than_ahead: "more_than_ahead";
201
+ }>;
202
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
203
+ amount: z.ZodNumber;
204
+ unit: z.ZodEnum<{
205
+ minutes: "minutes";
206
+ hours: "hours";
207
+ days: "days";
208
+ }>;
209
+ }, z.core.$strict>]>>;
210
+ }, z.core.$strict>>;
211
+ }, z.core.$strict>;
212
+ }, z.core.$strict>]>;
213
+ op: z.ZodEnum<{
214
+ is: "is";
215
+ is_not: "is_not";
216
+ contains: "contains";
217
+ gt: "gt";
218
+ lt: "lt";
219
+ is_empty: "is_empty";
220
+ not_empty: "not_empty";
221
+ within_next: "within_next";
222
+ within_last: "within_last";
223
+ more_than_ago: "more_than_ago";
224
+ more_than_ahead: "more_than_ahead";
225
+ }>;
226
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
227
+ amount: z.ZodNumber;
228
+ unit: z.ZodEnum<{
229
+ minutes: "minutes";
230
+ hours: "hours";
231
+ days: "days";
232
+ }>;
233
+ }, z.core.$strict>]>>;
234
+ }, z.core.$strict>>;
235
+ once: z.ZodBoolean;
236
+ }, z.core.$strict>>;
237
+ }, z.core.$strict>], "kind">;
238
+ export type ManifestTrigger = z.infer<typeof manifestTriggerSchema>;
239
+ export declare const manifestActionSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
240
+ kind: z.ZodLiteral<"email">;
241
+ templateKey: z.ZodString;
242
+ to: z.ZodObject<{
243
+ kind: z.ZodLiteral<"field">;
244
+ column: z.ZodString;
245
+ }, z.core.$strict>;
246
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
247
+ }, z.core.$strict>, z.ZodObject<{
248
+ kind: z.ZodLiteral<"notification">;
249
+ to: z.ZodObject<{
250
+ roles: z.ZodArray<z.ZodString>;
251
+ }, z.core.$strict>;
252
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
253
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
254
+ }, z.core.$strict>, z.ZodObject<{
255
+ kind: z.ZodLiteral<"record.create">;
256
+ table: z.ZodString;
257
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
258
+ now: z.ZodLiteral<true>;
259
+ }, z.core.$strict>]>>;
260
+ }, z.core.$strict>, z.ZodObject<{
261
+ kind: z.ZodLiteral<"record.update">;
262
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
263
+ now: z.ZodLiteral<true>;
264
+ }, z.core.$strict>]>>;
265
+ }, z.core.$strict>], "kind">;
266
+ export type ManifestAction = z.infer<typeof manifestActionSchema>;
267
+ export declare const manifestNodeSchema: z.ZodUnion<readonly [z.ZodObject<{
268
+ kind: z.ZodLiteral<"trigger">;
269
+ id: z.ZodString;
270
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
271
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
272
+ }, z.core.$strict>, z.ZodObject<{
273
+ kind: z.ZodLiteral<"action">;
274
+ onError: z.ZodOptional<z.ZodBoolean>;
275
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
276
+ kind: z.ZodLiteral<"email">;
277
+ templateKey: z.ZodString;
278
+ to: z.ZodObject<{
279
+ kind: z.ZodLiteral<"field">;
280
+ column: z.ZodString;
281
+ }, z.core.$strict>;
282
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
283
+ }, z.core.$strict>, z.ZodObject<{
284
+ kind: z.ZodLiteral<"notification">;
285
+ to: z.ZodObject<{
286
+ roles: z.ZodArray<z.ZodString>;
287
+ }, z.core.$strict>;
288
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
289
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
290
+ }, z.core.$strict>, z.ZodObject<{
291
+ kind: z.ZodLiteral<"record.create">;
292
+ table: z.ZodString;
293
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
294
+ now: z.ZodLiteral<true>;
295
+ }, z.core.$strict>]>>;
296
+ }, z.core.$strict>, z.ZodObject<{
297
+ kind: z.ZodLiteral<"record.update">;
298
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
299
+ now: z.ZodLiteral<true>;
300
+ }, z.core.$strict>]>>;
301
+ }, z.core.$strict>], "kind">;
302
+ id: z.ZodString;
303
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
304
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
305
+ }, z.core.$strict>, z.ZodObject<{
306
+ kind: z.ZodLiteral<"condition">;
307
+ onError: z.ZodOptional<z.ZodBoolean>;
308
+ condition: z.ZodObject<{
309
+ left: z.ZodUnion<readonly [z.ZodObject<{
310
+ field: z.ZodString;
311
+ }, z.core.$strict>, z.ZodObject<{
312
+ count: z.ZodObject<{
313
+ table: z.ZodString;
314
+ matchColumn: z.ZodString;
315
+ equalsField: z.ZodString;
316
+ where: z.ZodOptional<z.ZodObject<{
317
+ left: z.ZodObject<{
318
+ field: z.ZodString;
319
+ }, z.core.$strict>;
320
+ op: z.ZodEnum<{
321
+ is: "is";
322
+ is_not: "is_not";
323
+ contains: "contains";
324
+ gt: "gt";
325
+ lt: "lt";
326
+ is_empty: "is_empty";
327
+ not_empty: "not_empty";
328
+ within_next: "within_next";
329
+ within_last: "within_last";
330
+ more_than_ago: "more_than_ago";
331
+ more_than_ahead: "more_than_ahead";
332
+ }>;
333
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
334
+ amount: z.ZodNumber;
335
+ unit: z.ZodEnum<{
336
+ minutes: "minutes";
337
+ hours: "hours";
338
+ days: "days";
339
+ }>;
340
+ }, z.core.$strict>]>>;
341
+ }, z.core.$strict>>;
342
+ }, z.core.$strict>;
343
+ }, z.core.$strict>]>;
344
+ op: z.ZodEnum<{
345
+ is: "is";
346
+ is_not: "is_not";
347
+ contains: "contains";
348
+ gt: "gt";
349
+ lt: "lt";
350
+ is_empty: "is_empty";
351
+ not_empty: "not_empty";
352
+ within_next: "within_next";
353
+ within_last: "within_last";
354
+ more_than_ago: "more_than_ago";
355
+ more_than_ahead: "more_than_ahead";
356
+ }>;
357
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
358
+ amount: z.ZodNumber;
359
+ unit: z.ZodEnum<{
360
+ minutes: "minutes";
361
+ hours: "hours";
362
+ days: "days";
363
+ }>;
364
+ }, z.core.$strict>]>>;
365
+ }, z.core.$strict>;
366
+ id: z.ZodString;
367
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
368
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
369
+ }, z.core.$strict>, z.ZodObject<{
370
+ kind: z.ZodLiteral<"stop">;
371
+ id: z.ZodString;
372
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
373
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
374
+ }, z.core.$strict>, z.ZodObject<{
375
+ kind: z.ZodLiteral<"wait">;
376
+ amount: z.ZodNumber;
377
+ unit: z.ZodEnum<{
378
+ minutes: "minutes";
379
+ hours: "hours";
380
+ days: "days";
381
+ }>;
382
+ id: z.ZodString;
383
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
384
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
385
+ }, z.core.$strict>, z.ZodObject<{
386
+ kind: z.ZodLiteral<"branch">;
387
+ condition: z.ZodObject<{
388
+ left: z.ZodUnion<readonly [z.ZodObject<{
389
+ field: z.ZodString;
390
+ }, z.core.$strict>, z.ZodObject<{
391
+ count: z.ZodObject<{
392
+ table: z.ZodString;
393
+ matchColumn: z.ZodString;
394
+ equalsField: z.ZodString;
395
+ where: z.ZodOptional<z.ZodObject<{
396
+ left: z.ZodObject<{
397
+ field: z.ZodString;
398
+ }, z.core.$strict>;
399
+ op: z.ZodEnum<{
400
+ is: "is";
401
+ is_not: "is_not";
402
+ contains: "contains";
403
+ gt: "gt";
404
+ lt: "lt";
405
+ is_empty: "is_empty";
406
+ not_empty: "not_empty";
407
+ within_next: "within_next";
408
+ within_last: "within_last";
409
+ more_than_ago: "more_than_ago";
410
+ more_than_ahead: "more_than_ahead";
411
+ }>;
412
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
413
+ amount: z.ZodNumber;
414
+ unit: z.ZodEnum<{
415
+ minutes: "minutes";
416
+ hours: "hours";
417
+ days: "days";
418
+ }>;
419
+ }, z.core.$strict>]>>;
420
+ }, z.core.$strict>>;
421
+ }, z.core.$strict>;
422
+ }, z.core.$strict>]>;
423
+ op: z.ZodEnum<{
424
+ is: "is";
425
+ is_not: "is_not";
426
+ contains: "contains";
427
+ gt: "gt";
428
+ lt: "lt";
429
+ is_empty: "is_empty";
430
+ not_empty: "not_empty";
431
+ within_next: "within_next";
432
+ within_last: "within_last";
433
+ more_than_ago: "more_than_ago";
434
+ more_than_ahead: "more_than_ahead";
435
+ }>;
436
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
437
+ amount: z.ZodNumber;
438
+ unit: z.ZodEnum<{
439
+ minutes: "minutes";
440
+ hours: "hours";
441
+ days: "days";
442
+ }>;
443
+ }, z.core.$strict>]>>;
444
+ }, z.core.$strict>;
445
+ branches: z.ZodTuple<[z.ZodObject<{
446
+ id: z.ZodString;
447
+ label: z.ZodString;
448
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
449
+ kind: z.ZodLiteral<"action">;
450
+ onError: z.ZodOptional<z.ZodBoolean>;
451
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
452
+ kind: z.ZodLiteral<"email">;
453
+ templateKey: z.ZodString;
454
+ to: z.ZodObject<{
455
+ kind: z.ZodLiteral<"field">;
456
+ column: z.ZodString;
457
+ }, z.core.$strict>;
458
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
459
+ }, z.core.$strict>, z.ZodObject<{
460
+ kind: z.ZodLiteral<"notification">;
461
+ to: z.ZodObject<{
462
+ roles: z.ZodArray<z.ZodString>;
463
+ }, z.core.$strict>;
464
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
465
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
466
+ }, z.core.$strict>, z.ZodObject<{
467
+ kind: z.ZodLiteral<"record.create">;
468
+ table: z.ZodString;
469
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
470
+ now: z.ZodLiteral<true>;
471
+ }, z.core.$strict>]>>;
472
+ }, z.core.$strict>, z.ZodObject<{
473
+ kind: z.ZodLiteral<"record.update">;
474
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
475
+ now: z.ZodLiteral<true>;
476
+ }, z.core.$strict>]>>;
477
+ }, z.core.$strict>], "kind">;
478
+ id: z.ZodString;
479
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
480
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
481
+ }, z.core.$strict>, z.ZodObject<{
482
+ kind: z.ZodLiteral<"condition">;
483
+ onError: z.ZodOptional<z.ZodBoolean>;
484
+ condition: z.ZodObject<{
485
+ left: z.ZodUnion<readonly [z.ZodObject<{
486
+ field: z.ZodString;
487
+ }, z.core.$strict>, z.ZodObject<{
488
+ count: z.ZodObject<{
489
+ table: z.ZodString;
490
+ matchColumn: z.ZodString;
491
+ equalsField: z.ZodString;
492
+ where: z.ZodOptional<z.ZodObject<{
493
+ left: z.ZodObject<{
494
+ field: z.ZodString;
495
+ }, z.core.$strict>;
496
+ op: z.ZodEnum<{
497
+ is: "is";
498
+ is_not: "is_not";
499
+ contains: "contains";
500
+ gt: "gt";
501
+ lt: "lt";
502
+ is_empty: "is_empty";
503
+ not_empty: "not_empty";
504
+ within_next: "within_next";
505
+ within_last: "within_last";
506
+ more_than_ago: "more_than_ago";
507
+ more_than_ahead: "more_than_ahead";
508
+ }>;
509
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
510
+ amount: z.ZodNumber;
511
+ unit: z.ZodEnum<{
512
+ minutes: "minutes";
513
+ hours: "hours";
514
+ days: "days";
515
+ }>;
516
+ }, z.core.$strict>]>>;
517
+ }, z.core.$strict>>;
518
+ }, z.core.$strict>;
519
+ }, z.core.$strict>]>;
520
+ op: z.ZodEnum<{
521
+ is: "is";
522
+ is_not: "is_not";
523
+ contains: "contains";
524
+ gt: "gt";
525
+ lt: "lt";
526
+ is_empty: "is_empty";
527
+ not_empty: "not_empty";
528
+ within_next: "within_next";
529
+ within_last: "within_last";
530
+ more_than_ago: "more_than_ago";
531
+ more_than_ahead: "more_than_ahead";
532
+ }>;
533
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
534
+ amount: z.ZodNumber;
535
+ unit: z.ZodEnum<{
536
+ minutes: "minutes";
537
+ hours: "hours";
538
+ days: "days";
539
+ }>;
540
+ }, z.core.$strict>]>>;
541
+ }, z.core.$strict>;
542
+ id: z.ZodString;
543
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
544
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
545
+ }, z.core.$strict>, z.ZodObject<{
546
+ kind: z.ZodLiteral<"stop">;
547
+ id: z.ZodString;
548
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
549
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
550
+ }, z.core.$strict>, z.ZodObject<{
551
+ kind: z.ZodLiteral<"wait">;
552
+ amount: z.ZodNumber;
553
+ unit: z.ZodEnum<{
554
+ minutes: "minutes";
555
+ hours: "hours";
556
+ days: "days";
557
+ }>;
558
+ id: z.ZodString;
559
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
560
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
561
+ }, z.core.$strict>]>>;
562
+ }, z.core.$strict>, z.ZodObject<{
563
+ id: z.ZodString;
564
+ label: z.ZodString;
565
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
566
+ kind: z.ZodLiteral<"action">;
567
+ onError: z.ZodOptional<z.ZodBoolean>;
568
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
569
+ kind: z.ZodLiteral<"email">;
570
+ templateKey: z.ZodString;
571
+ to: z.ZodObject<{
572
+ kind: z.ZodLiteral<"field">;
573
+ column: z.ZodString;
574
+ }, z.core.$strict>;
575
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
576
+ }, z.core.$strict>, z.ZodObject<{
577
+ kind: z.ZodLiteral<"notification">;
578
+ to: z.ZodObject<{
579
+ roles: z.ZodArray<z.ZodString>;
580
+ }, z.core.$strict>;
581
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
582
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
583
+ }, z.core.$strict>, z.ZodObject<{
584
+ kind: z.ZodLiteral<"record.create">;
585
+ table: z.ZodString;
586
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
587
+ now: z.ZodLiteral<true>;
588
+ }, z.core.$strict>]>>;
589
+ }, z.core.$strict>, z.ZodObject<{
590
+ kind: z.ZodLiteral<"record.update">;
591
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
592
+ now: z.ZodLiteral<true>;
593
+ }, z.core.$strict>]>>;
594
+ }, z.core.$strict>], "kind">;
595
+ id: z.ZodString;
596
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
597
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
598
+ }, z.core.$strict>, z.ZodObject<{
599
+ kind: z.ZodLiteral<"condition">;
600
+ onError: z.ZodOptional<z.ZodBoolean>;
601
+ condition: z.ZodObject<{
602
+ left: z.ZodUnion<readonly [z.ZodObject<{
603
+ field: z.ZodString;
604
+ }, z.core.$strict>, z.ZodObject<{
605
+ count: z.ZodObject<{
606
+ table: z.ZodString;
607
+ matchColumn: z.ZodString;
608
+ equalsField: z.ZodString;
609
+ where: z.ZodOptional<z.ZodObject<{
610
+ left: z.ZodObject<{
611
+ field: z.ZodString;
612
+ }, z.core.$strict>;
613
+ op: z.ZodEnum<{
614
+ is: "is";
615
+ is_not: "is_not";
616
+ contains: "contains";
617
+ gt: "gt";
618
+ lt: "lt";
619
+ is_empty: "is_empty";
620
+ not_empty: "not_empty";
621
+ within_next: "within_next";
622
+ within_last: "within_last";
623
+ more_than_ago: "more_than_ago";
624
+ more_than_ahead: "more_than_ahead";
625
+ }>;
626
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
627
+ amount: z.ZodNumber;
628
+ unit: z.ZodEnum<{
629
+ minutes: "minutes";
630
+ hours: "hours";
631
+ days: "days";
632
+ }>;
633
+ }, z.core.$strict>]>>;
634
+ }, z.core.$strict>>;
635
+ }, z.core.$strict>;
636
+ }, z.core.$strict>]>;
637
+ op: z.ZodEnum<{
638
+ is: "is";
639
+ is_not: "is_not";
640
+ contains: "contains";
641
+ gt: "gt";
642
+ lt: "lt";
643
+ is_empty: "is_empty";
644
+ not_empty: "not_empty";
645
+ within_next: "within_next";
646
+ within_last: "within_last";
647
+ more_than_ago: "more_than_ago";
648
+ more_than_ahead: "more_than_ahead";
649
+ }>;
650
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
651
+ amount: z.ZodNumber;
652
+ unit: z.ZodEnum<{
653
+ minutes: "minutes";
654
+ hours: "hours";
655
+ days: "days";
656
+ }>;
657
+ }, z.core.$strict>]>>;
658
+ }, z.core.$strict>;
659
+ id: z.ZodString;
660
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
661
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
662
+ }, z.core.$strict>, z.ZodObject<{
663
+ kind: z.ZodLiteral<"stop">;
664
+ id: z.ZodString;
665
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
666
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
667
+ }, z.core.$strict>, z.ZodObject<{
668
+ kind: z.ZodLiteral<"wait">;
669
+ amount: z.ZodNumber;
670
+ unit: z.ZodEnum<{
671
+ minutes: "minutes";
672
+ hours: "hours";
673
+ days: "days";
674
+ }>;
675
+ id: z.ZodString;
676
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
677
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
678
+ }, z.core.$strict>]>>;
679
+ }, z.core.$strict>], null>;
680
+ id: z.ZodString;
681
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
682
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
683
+ }, z.core.$strict>]>;
684
+ export type ManifestNode = z.infer<typeof manifestNodeSchema>;
685
+ export declare const manifestGraphSchema: z.ZodObject<{
686
+ version: z.ZodLiteral<1>;
687
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
688
+ kind: z.ZodLiteral<"trigger">;
689
+ id: z.ZodString;
690
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
691
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
692
+ }, z.core.$strict>, z.ZodObject<{
693
+ kind: z.ZodLiteral<"action">;
694
+ onError: z.ZodOptional<z.ZodBoolean>;
695
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
696
+ kind: z.ZodLiteral<"email">;
697
+ templateKey: z.ZodString;
698
+ to: z.ZodObject<{
699
+ kind: z.ZodLiteral<"field">;
700
+ column: z.ZodString;
701
+ }, z.core.$strict>;
702
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
703
+ }, z.core.$strict>, z.ZodObject<{
704
+ kind: z.ZodLiteral<"notification">;
705
+ to: z.ZodObject<{
706
+ roles: z.ZodArray<z.ZodString>;
707
+ }, z.core.$strict>;
708
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
709
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
710
+ }, z.core.$strict>, z.ZodObject<{
711
+ kind: z.ZodLiteral<"record.create">;
712
+ table: z.ZodString;
713
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
714
+ now: z.ZodLiteral<true>;
715
+ }, z.core.$strict>]>>;
716
+ }, z.core.$strict>, z.ZodObject<{
717
+ kind: z.ZodLiteral<"record.update">;
718
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
719
+ now: z.ZodLiteral<true>;
720
+ }, z.core.$strict>]>>;
721
+ }, z.core.$strict>], "kind">;
722
+ id: z.ZodString;
723
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
724
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
725
+ }, z.core.$strict>, z.ZodObject<{
726
+ kind: z.ZodLiteral<"condition">;
727
+ onError: z.ZodOptional<z.ZodBoolean>;
728
+ condition: z.ZodObject<{
729
+ left: z.ZodUnion<readonly [z.ZodObject<{
730
+ field: z.ZodString;
731
+ }, z.core.$strict>, z.ZodObject<{
732
+ count: z.ZodObject<{
733
+ table: z.ZodString;
734
+ matchColumn: z.ZodString;
735
+ equalsField: z.ZodString;
736
+ where: z.ZodOptional<z.ZodObject<{
737
+ left: z.ZodObject<{
738
+ field: z.ZodString;
739
+ }, z.core.$strict>;
740
+ op: z.ZodEnum<{
741
+ is: "is";
742
+ is_not: "is_not";
743
+ contains: "contains";
744
+ gt: "gt";
745
+ lt: "lt";
746
+ is_empty: "is_empty";
747
+ not_empty: "not_empty";
748
+ within_next: "within_next";
749
+ within_last: "within_last";
750
+ more_than_ago: "more_than_ago";
751
+ more_than_ahead: "more_than_ahead";
752
+ }>;
753
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
754
+ amount: z.ZodNumber;
755
+ unit: z.ZodEnum<{
756
+ minutes: "minutes";
757
+ hours: "hours";
758
+ days: "days";
759
+ }>;
760
+ }, z.core.$strict>]>>;
761
+ }, z.core.$strict>>;
762
+ }, z.core.$strict>;
763
+ }, z.core.$strict>]>;
764
+ op: z.ZodEnum<{
765
+ is: "is";
766
+ is_not: "is_not";
767
+ contains: "contains";
768
+ gt: "gt";
769
+ lt: "lt";
770
+ is_empty: "is_empty";
771
+ not_empty: "not_empty";
772
+ within_next: "within_next";
773
+ within_last: "within_last";
774
+ more_than_ago: "more_than_ago";
775
+ more_than_ahead: "more_than_ahead";
776
+ }>;
777
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
778
+ amount: z.ZodNumber;
779
+ unit: z.ZodEnum<{
780
+ minutes: "minutes";
781
+ hours: "hours";
782
+ days: "days";
783
+ }>;
784
+ }, z.core.$strict>]>>;
785
+ }, z.core.$strict>;
786
+ id: z.ZodString;
787
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
788
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
789
+ }, z.core.$strict>, z.ZodObject<{
790
+ kind: z.ZodLiteral<"stop">;
791
+ id: z.ZodString;
792
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
793
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
794
+ }, z.core.$strict>, z.ZodObject<{
795
+ kind: z.ZodLiteral<"wait">;
796
+ amount: z.ZodNumber;
797
+ unit: z.ZodEnum<{
798
+ minutes: "minutes";
799
+ hours: "hours";
800
+ days: "days";
801
+ }>;
802
+ id: z.ZodString;
803
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
804
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
805
+ }, z.core.$strict>, z.ZodObject<{
806
+ kind: z.ZodLiteral<"branch">;
807
+ condition: z.ZodObject<{
808
+ left: z.ZodUnion<readonly [z.ZodObject<{
809
+ field: z.ZodString;
810
+ }, z.core.$strict>, z.ZodObject<{
811
+ count: z.ZodObject<{
812
+ table: z.ZodString;
813
+ matchColumn: z.ZodString;
814
+ equalsField: z.ZodString;
815
+ where: z.ZodOptional<z.ZodObject<{
816
+ left: z.ZodObject<{
817
+ field: z.ZodString;
818
+ }, z.core.$strict>;
819
+ op: z.ZodEnum<{
820
+ is: "is";
821
+ is_not: "is_not";
822
+ contains: "contains";
823
+ gt: "gt";
824
+ lt: "lt";
825
+ is_empty: "is_empty";
826
+ not_empty: "not_empty";
827
+ within_next: "within_next";
828
+ within_last: "within_last";
829
+ more_than_ago: "more_than_ago";
830
+ more_than_ahead: "more_than_ahead";
831
+ }>;
832
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
833
+ amount: z.ZodNumber;
834
+ unit: z.ZodEnum<{
835
+ minutes: "minutes";
836
+ hours: "hours";
837
+ days: "days";
838
+ }>;
839
+ }, z.core.$strict>]>>;
840
+ }, z.core.$strict>>;
841
+ }, z.core.$strict>;
842
+ }, z.core.$strict>]>;
843
+ op: z.ZodEnum<{
844
+ is: "is";
845
+ is_not: "is_not";
846
+ contains: "contains";
847
+ gt: "gt";
848
+ lt: "lt";
849
+ is_empty: "is_empty";
850
+ not_empty: "not_empty";
851
+ within_next: "within_next";
852
+ within_last: "within_last";
853
+ more_than_ago: "more_than_ago";
854
+ more_than_ahead: "more_than_ahead";
855
+ }>;
856
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
857
+ amount: z.ZodNumber;
858
+ unit: z.ZodEnum<{
859
+ minutes: "minutes";
860
+ hours: "hours";
861
+ days: "days";
862
+ }>;
863
+ }, z.core.$strict>]>>;
864
+ }, z.core.$strict>;
865
+ branches: z.ZodTuple<[z.ZodObject<{
866
+ id: z.ZodString;
867
+ label: z.ZodString;
868
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
869
+ kind: z.ZodLiteral<"action">;
870
+ onError: z.ZodOptional<z.ZodBoolean>;
871
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
872
+ kind: z.ZodLiteral<"email">;
873
+ templateKey: z.ZodString;
874
+ to: z.ZodObject<{
875
+ kind: z.ZodLiteral<"field">;
876
+ column: z.ZodString;
877
+ }, z.core.$strict>;
878
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
879
+ }, z.core.$strict>, z.ZodObject<{
880
+ kind: z.ZodLiteral<"notification">;
881
+ to: z.ZodObject<{
882
+ roles: z.ZodArray<z.ZodString>;
883
+ }, z.core.$strict>;
884
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
885
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
886
+ }, z.core.$strict>, z.ZodObject<{
887
+ kind: z.ZodLiteral<"record.create">;
888
+ table: z.ZodString;
889
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
890
+ now: z.ZodLiteral<true>;
891
+ }, z.core.$strict>]>>;
892
+ }, z.core.$strict>, z.ZodObject<{
893
+ kind: z.ZodLiteral<"record.update">;
894
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
895
+ now: z.ZodLiteral<true>;
896
+ }, z.core.$strict>]>>;
897
+ }, z.core.$strict>], "kind">;
898
+ id: z.ZodString;
899
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
900
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
901
+ }, z.core.$strict>, z.ZodObject<{
902
+ kind: z.ZodLiteral<"condition">;
903
+ onError: z.ZodOptional<z.ZodBoolean>;
904
+ condition: z.ZodObject<{
905
+ left: z.ZodUnion<readonly [z.ZodObject<{
906
+ field: z.ZodString;
907
+ }, z.core.$strict>, z.ZodObject<{
908
+ count: z.ZodObject<{
909
+ table: z.ZodString;
910
+ matchColumn: z.ZodString;
911
+ equalsField: z.ZodString;
912
+ where: z.ZodOptional<z.ZodObject<{
913
+ left: z.ZodObject<{
914
+ field: z.ZodString;
915
+ }, z.core.$strict>;
916
+ op: z.ZodEnum<{
917
+ is: "is";
918
+ is_not: "is_not";
919
+ contains: "contains";
920
+ gt: "gt";
921
+ lt: "lt";
922
+ is_empty: "is_empty";
923
+ not_empty: "not_empty";
924
+ within_next: "within_next";
925
+ within_last: "within_last";
926
+ more_than_ago: "more_than_ago";
927
+ more_than_ahead: "more_than_ahead";
928
+ }>;
929
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
930
+ amount: z.ZodNumber;
931
+ unit: z.ZodEnum<{
932
+ minutes: "minutes";
933
+ hours: "hours";
934
+ days: "days";
935
+ }>;
936
+ }, z.core.$strict>]>>;
937
+ }, z.core.$strict>>;
938
+ }, z.core.$strict>;
939
+ }, z.core.$strict>]>;
940
+ op: z.ZodEnum<{
941
+ is: "is";
942
+ is_not: "is_not";
943
+ contains: "contains";
944
+ gt: "gt";
945
+ lt: "lt";
946
+ is_empty: "is_empty";
947
+ not_empty: "not_empty";
948
+ within_next: "within_next";
949
+ within_last: "within_last";
950
+ more_than_ago: "more_than_ago";
951
+ more_than_ahead: "more_than_ahead";
952
+ }>;
953
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
954
+ amount: z.ZodNumber;
955
+ unit: z.ZodEnum<{
956
+ minutes: "minutes";
957
+ hours: "hours";
958
+ days: "days";
959
+ }>;
960
+ }, z.core.$strict>]>>;
961
+ }, z.core.$strict>;
962
+ id: z.ZodString;
963
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
964
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
965
+ }, z.core.$strict>, z.ZodObject<{
966
+ kind: z.ZodLiteral<"stop">;
967
+ id: z.ZodString;
968
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
969
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
970
+ }, z.core.$strict>, z.ZodObject<{
971
+ kind: z.ZodLiteral<"wait">;
972
+ amount: z.ZodNumber;
973
+ unit: z.ZodEnum<{
974
+ minutes: "minutes";
975
+ hours: "hours";
976
+ days: "days";
977
+ }>;
978
+ id: z.ZodString;
979
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
980
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
981
+ }, z.core.$strict>]>>;
982
+ }, z.core.$strict>, z.ZodObject<{
983
+ id: z.ZodString;
984
+ label: z.ZodString;
985
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
986
+ kind: z.ZodLiteral<"action">;
987
+ onError: z.ZodOptional<z.ZodBoolean>;
988
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
989
+ kind: z.ZodLiteral<"email">;
990
+ templateKey: z.ZodString;
991
+ to: z.ZodObject<{
992
+ kind: z.ZodLiteral<"field">;
993
+ column: z.ZodString;
994
+ }, z.core.$strict>;
995
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
996
+ }, z.core.$strict>, z.ZodObject<{
997
+ kind: z.ZodLiteral<"notification">;
998
+ to: z.ZodObject<{
999
+ roles: z.ZodArray<z.ZodString>;
1000
+ }, z.core.$strict>;
1001
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1002
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1003
+ }, z.core.$strict>, z.ZodObject<{
1004
+ kind: z.ZodLiteral<"record.create">;
1005
+ table: z.ZodString;
1006
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1007
+ now: z.ZodLiteral<true>;
1008
+ }, z.core.$strict>]>>;
1009
+ }, z.core.$strict>, z.ZodObject<{
1010
+ kind: z.ZodLiteral<"record.update">;
1011
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1012
+ now: z.ZodLiteral<true>;
1013
+ }, z.core.$strict>]>>;
1014
+ }, z.core.$strict>], "kind">;
1015
+ id: z.ZodString;
1016
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1017
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1018
+ }, z.core.$strict>, z.ZodObject<{
1019
+ kind: z.ZodLiteral<"condition">;
1020
+ onError: z.ZodOptional<z.ZodBoolean>;
1021
+ condition: z.ZodObject<{
1022
+ left: z.ZodUnion<readonly [z.ZodObject<{
1023
+ field: z.ZodString;
1024
+ }, z.core.$strict>, z.ZodObject<{
1025
+ count: z.ZodObject<{
1026
+ table: z.ZodString;
1027
+ matchColumn: z.ZodString;
1028
+ equalsField: z.ZodString;
1029
+ where: z.ZodOptional<z.ZodObject<{
1030
+ left: z.ZodObject<{
1031
+ field: z.ZodString;
1032
+ }, z.core.$strict>;
1033
+ op: z.ZodEnum<{
1034
+ is: "is";
1035
+ is_not: "is_not";
1036
+ contains: "contains";
1037
+ gt: "gt";
1038
+ lt: "lt";
1039
+ is_empty: "is_empty";
1040
+ not_empty: "not_empty";
1041
+ within_next: "within_next";
1042
+ within_last: "within_last";
1043
+ more_than_ago: "more_than_ago";
1044
+ more_than_ahead: "more_than_ahead";
1045
+ }>;
1046
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1047
+ amount: z.ZodNumber;
1048
+ unit: z.ZodEnum<{
1049
+ minutes: "minutes";
1050
+ hours: "hours";
1051
+ days: "days";
1052
+ }>;
1053
+ }, z.core.$strict>]>>;
1054
+ }, z.core.$strict>>;
1055
+ }, z.core.$strict>;
1056
+ }, z.core.$strict>]>;
1057
+ op: z.ZodEnum<{
1058
+ is: "is";
1059
+ is_not: "is_not";
1060
+ contains: "contains";
1061
+ gt: "gt";
1062
+ lt: "lt";
1063
+ is_empty: "is_empty";
1064
+ not_empty: "not_empty";
1065
+ within_next: "within_next";
1066
+ within_last: "within_last";
1067
+ more_than_ago: "more_than_ago";
1068
+ more_than_ahead: "more_than_ahead";
1069
+ }>;
1070
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1071
+ amount: z.ZodNumber;
1072
+ unit: z.ZodEnum<{
1073
+ minutes: "minutes";
1074
+ hours: "hours";
1075
+ days: "days";
1076
+ }>;
1077
+ }, z.core.$strict>]>>;
1078
+ }, z.core.$strict>;
1079
+ id: z.ZodString;
1080
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1081
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1082
+ }, z.core.$strict>, z.ZodObject<{
1083
+ kind: z.ZodLiteral<"stop">;
1084
+ id: z.ZodString;
1085
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1086
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1087
+ }, z.core.$strict>, z.ZodObject<{
1088
+ kind: z.ZodLiteral<"wait">;
1089
+ amount: z.ZodNumber;
1090
+ unit: z.ZodEnum<{
1091
+ minutes: "minutes";
1092
+ hours: "hours";
1093
+ days: "days";
1094
+ }>;
1095
+ id: z.ZodString;
1096
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1097
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1098
+ }, z.core.$strict>]>>;
1099
+ }, z.core.$strict>], null>;
1100
+ id: z.ZodString;
1101
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1102
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1103
+ }, z.core.$strict>]>>;
1104
+ }, z.core.$strict>;
1105
+ export declare const manifestAutomationSchema: z.ZodObject<{
1106
+ key: z.ZodString;
1107
+ name: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1108
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1109
+ enabled: z.ZodBoolean;
1110
+ trigger: z.ZodDiscriminatedUnion<[z.ZodObject<{
1111
+ kind: z.ZodLiteral<"record">;
1112
+ event: z.ZodEnum<{
1113
+ created: "created";
1114
+ updated: "updated";
1115
+ deleted: "deleted";
1116
+ }>;
1117
+ table: z.ZodString;
1118
+ changedColumn: z.ZodOptional<z.ZodString>;
1119
+ when: z.ZodOptional<z.ZodArray<z.ZodObject<{
1120
+ left: z.ZodUnion<readonly [z.ZodObject<{
1121
+ field: z.ZodString;
1122
+ }, z.core.$strict>, z.ZodObject<{
1123
+ count: z.ZodObject<{
1124
+ table: z.ZodString;
1125
+ matchColumn: z.ZodString;
1126
+ equalsField: z.ZodString;
1127
+ where: z.ZodOptional<z.ZodObject<{
1128
+ left: z.ZodObject<{
1129
+ field: z.ZodString;
1130
+ }, z.core.$strict>;
1131
+ op: z.ZodEnum<{
1132
+ is: "is";
1133
+ is_not: "is_not";
1134
+ contains: "contains";
1135
+ gt: "gt";
1136
+ lt: "lt";
1137
+ is_empty: "is_empty";
1138
+ not_empty: "not_empty";
1139
+ within_next: "within_next";
1140
+ within_last: "within_last";
1141
+ more_than_ago: "more_than_ago";
1142
+ more_than_ahead: "more_than_ahead";
1143
+ }>;
1144
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1145
+ amount: z.ZodNumber;
1146
+ unit: z.ZodEnum<{
1147
+ minutes: "minutes";
1148
+ hours: "hours";
1149
+ days: "days";
1150
+ }>;
1151
+ }, z.core.$strict>]>>;
1152
+ }, z.core.$strict>>;
1153
+ }, z.core.$strict>;
1154
+ }, z.core.$strict>]>;
1155
+ op: z.ZodEnum<{
1156
+ is: "is";
1157
+ is_not: "is_not";
1158
+ contains: "contains";
1159
+ gt: "gt";
1160
+ lt: "lt";
1161
+ is_empty: "is_empty";
1162
+ not_empty: "not_empty";
1163
+ within_next: "within_next";
1164
+ within_last: "within_last";
1165
+ more_than_ago: "more_than_ago";
1166
+ more_than_ahead: "more_than_ahead";
1167
+ }>;
1168
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1169
+ amount: z.ZodNumber;
1170
+ unit: z.ZodEnum<{
1171
+ minutes: "minutes";
1172
+ hours: "hours";
1173
+ days: "days";
1174
+ }>;
1175
+ }, z.core.$strict>]>>;
1176
+ }, z.core.$strict>>>;
1177
+ }, z.core.$strict>, z.ZodObject<{
1178
+ kind: z.ZodLiteral<"schedule">;
1179
+ schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{
1180
+ kind: z.ZodLiteral<"interval">;
1181
+ everyMinutes: z.ZodEnum<{
1182
+ 5: "5";
1183
+ 10: "10";
1184
+ 15: "15";
1185
+ 30: "30";
1186
+ 60: "60";
1187
+ }>;
1188
+ }, z.core.$strict>, z.ZodObject<{
1189
+ kind: z.ZodEnum<{
1190
+ daily: "daily";
1191
+ weekly: "weekly";
1192
+ monthly: "monthly";
1193
+ }>;
1194
+ time: z.ZodString;
1195
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
1196
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
1197
+ }, z.core.$strict>], "kind">;
1198
+ forEach: z.ZodOptional<z.ZodObject<{
1199
+ table: z.ZodString;
1200
+ where: z.ZodArray<z.ZodObject<{
1201
+ left: z.ZodUnion<readonly [z.ZodObject<{
1202
+ field: z.ZodString;
1203
+ }, z.core.$strict>, z.ZodObject<{
1204
+ count: z.ZodObject<{
1205
+ table: z.ZodString;
1206
+ matchColumn: z.ZodString;
1207
+ equalsField: z.ZodString;
1208
+ where: z.ZodOptional<z.ZodObject<{
1209
+ left: z.ZodObject<{
1210
+ field: z.ZodString;
1211
+ }, z.core.$strict>;
1212
+ op: z.ZodEnum<{
1213
+ is: "is";
1214
+ is_not: "is_not";
1215
+ contains: "contains";
1216
+ gt: "gt";
1217
+ lt: "lt";
1218
+ is_empty: "is_empty";
1219
+ not_empty: "not_empty";
1220
+ within_next: "within_next";
1221
+ within_last: "within_last";
1222
+ more_than_ago: "more_than_ago";
1223
+ more_than_ahead: "more_than_ahead";
1224
+ }>;
1225
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1226
+ amount: z.ZodNumber;
1227
+ unit: z.ZodEnum<{
1228
+ minutes: "minutes";
1229
+ hours: "hours";
1230
+ days: "days";
1231
+ }>;
1232
+ }, z.core.$strict>]>>;
1233
+ }, z.core.$strict>>;
1234
+ }, z.core.$strict>;
1235
+ }, z.core.$strict>]>;
1236
+ op: z.ZodEnum<{
1237
+ is: "is";
1238
+ is_not: "is_not";
1239
+ contains: "contains";
1240
+ gt: "gt";
1241
+ lt: "lt";
1242
+ is_empty: "is_empty";
1243
+ not_empty: "not_empty";
1244
+ within_next: "within_next";
1245
+ within_last: "within_last";
1246
+ more_than_ago: "more_than_ago";
1247
+ more_than_ahead: "more_than_ahead";
1248
+ }>;
1249
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1250
+ amount: z.ZodNumber;
1251
+ unit: z.ZodEnum<{
1252
+ minutes: "minutes";
1253
+ hours: "hours";
1254
+ days: "days";
1255
+ }>;
1256
+ }, z.core.$strict>]>>;
1257
+ }, z.core.$strict>>;
1258
+ once: z.ZodBoolean;
1259
+ }, z.core.$strict>>;
1260
+ }, z.core.$strict>], "kind">;
1261
+ graph: z.ZodObject<{
1262
+ version: z.ZodLiteral<1>;
1263
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1264
+ kind: z.ZodLiteral<"trigger">;
1265
+ id: z.ZodString;
1266
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1267
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1268
+ }, z.core.$strict>, z.ZodObject<{
1269
+ kind: z.ZodLiteral<"action">;
1270
+ onError: z.ZodOptional<z.ZodBoolean>;
1271
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
1272
+ kind: z.ZodLiteral<"email">;
1273
+ templateKey: z.ZodString;
1274
+ to: z.ZodObject<{
1275
+ kind: z.ZodLiteral<"field">;
1276
+ column: z.ZodString;
1277
+ }, z.core.$strict>;
1278
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1279
+ }, z.core.$strict>, z.ZodObject<{
1280
+ kind: z.ZodLiteral<"notification">;
1281
+ to: z.ZodObject<{
1282
+ roles: z.ZodArray<z.ZodString>;
1283
+ }, z.core.$strict>;
1284
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1285
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1286
+ }, z.core.$strict>, z.ZodObject<{
1287
+ kind: z.ZodLiteral<"record.create">;
1288
+ table: z.ZodString;
1289
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1290
+ now: z.ZodLiteral<true>;
1291
+ }, z.core.$strict>]>>;
1292
+ }, z.core.$strict>, z.ZodObject<{
1293
+ kind: z.ZodLiteral<"record.update">;
1294
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1295
+ now: z.ZodLiteral<true>;
1296
+ }, z.core.$strict>]>>;
1297
+ }, z.core.$strict>], "kind">;
1298
+ id: z.ZodString;
1299
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1300
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1301
+ }, z.core.$strict>, z.ZodObject<{
1302
+ kind: z.ZodLiteral<"condition">;
1303
+ onError: z.ZodOptional<z.ZodBoolean>;
1304
+ condition: z.ZodObject<{
1305
+ left: z.ZodUnion<readonly [z.ZodObject<{
1306
+ field: z.ZodString;
1307
+ }, z.core.$strict>, z.ZodObject<{
1308
+ count: z.ZodObject<{
1309
+ table: z.ZodString;
1310
+ matchColumn: z.ZodString;
1311
+ equalsField: z.ZodString;
1312
+ where: z.ZodOptional<z.ZodObject<{
1313
+ left: z.ZodObject<{
1314
+ field: z.ZodString;
1315
+ }, z.core.$strict>;
1316
+ op: z.ZodEnum<{
1317
+ is: "is";
1318
+ is_not: "is_not";
1319
+ contains: "contains";
1320
+ gt: "gt";
1321
+ lt: "lt";
1322
+ is_empty: "is_empty";
1323
+ not_empty: "not_empty";
1324
+ within_next: "within_next";
1325
+ within_last: "within_last";
1326
+ more_than_ago: "more_than_ago";
1327
+ more_than_ahead: "more_than_ahead";
1328
+ }>;
1329
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1330
+ amount: z.ZodNumber;
1331
+ unit: z.ZodEnum<{
1332
+ minutes: "minutes";
1333
+ hours: "hours";
1334
+ days: "days";
1335
+ }>;
1336
+ }, z.core.$strict>]>>;
1337
+ }, z.core.$strict>>;
1338
+ }, z.core.$strict>;
1339
+ }, z.core.$strict>]>;
1340
+ op: z.ZodEnum<{
1341
+ is: "is";
1342
+ is_not: "is_not";
1343
+ contains: "contains";
1344
+ gt: "gt";
1345
+ lt: "lt";
1346
+ is_empty: "is_empty";
1347
+ not_empty: "not_empty";
1348
+ within_next: "within_next";
1349
+ within_last: "within_last";
1350
+ more_than_ago: "more_than_ago";
1351
+ more_than_ahead: "more_than_ahead";
1352
+ }>;
1353
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1354
+ amount: z.ZodNumber;
1355
+ unit: z.ZodEnum<{
1356
+ minutes: "minutes";
1357
+ hours: "hours";
1358
+ days: "days";
1359
+ }>;
1360
+ }, z.core.$strict>]>>;
1361
+ }, z.core.$strict>;
1362
+ id: z.ZodString;
1363
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1364
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1365
+ }, z.core.$strict>, z.ZodObject<{
1366
+ kind: z.ZodLiteral<"stop">;
1367
+ id: z.ZodString;
1368
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1369
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1370
+ }, z.core.$strict>, z.ZodObject<{
1371
+ kind: z.ZodLiteral<"wait">;
1372
+ amount: z.ZodNumber;
1373
+ unit: z.ZodEnum<{
1374
+ minutes: "minutes";
1375
+ hours: "hours";
1376
+ days: "days";
1377
+ }>;
1378
+ id: z.ZodString;
1379
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1380
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1381
+ }, z.core.$strict>, z.ZodObject<{
1382
+ kind: z.ZodLiteral<"branch">;
1383
+ condition: z.ZodObject<{
1384
+ left: z.ZodUnion<readonly [z.ZodObject<{
1385
+ field: z.ZodString;
1386
+ }, z.core.$strict>, z.ZodObject<{
1387
+ count: z.ZodObject<{
1388
+ table: z.ZodString;
1389
+ matchColumn: z.ZodString;
1390
+ equalsField: z.ZodString;
1391
+ where: z.ZodOptional<z.ZodObject<{
1392
+ left: z.ZodObject<{
1393
+ field: z.ZodString;
1394
+ }, z.core.$strict>;
1395
+ op: z.ZodEnum<{
1396
+ is: "is";
1397
+ is_not: "is_not";
1398
+ contains: "contains";
1399
+ gt: "gt";
1400
+ lt: "lt";
1401
+ is_empty: "is_empty";
1402
+ not_empty: "not_empty";
1403
+ within_next: "within_next";
1404
+ within_last: "within_last";
1405
+ more_than_ago: "more_than_ago";
1406
+ more_than_ahead: "more_than_ahead";
1407
+ }>;
1408
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1409
+ amount: z.ZodNumber;
1410
+ unit: z.ZodEnum<{
1411
+ minutes: "minutes";
1412
+ hours: "hours";
1413
+ days: "days";
1414
+ }>;
1415
+ }, z.core.$strict>]>>;
1416
+ }, z.core.$strict>>;
1417
+ }, z.core.$strict>;
1418
+ }, z.core.$strict>]>;
1419
+ op: z.ZodEnum<{
1420
+ is: "is";
1421
+ is_not: "is_not";
1422
+ contains: "contains";
1423
+ gt: "gt";
1424
+ lt: "lt";
1425
+ is_empty: "is_empty";
1426
+ not_empty: "not_empty";
1427
+ within_next: "within_next";
1428
+ within_last: "within_last";
1429
+ more_than_ago: "more_than_ago";
1430
+ more_than_ahead: "more_than_ahead";
1431
+ }>;
1432
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1433
+ amount: z.ZodNumber;
1434
+ unit: z.ZodEnum<{
1435
+ minutes: "minutes";
1436
+ hours: "hours";
1437
+ days: "days";
1438
+ }>;
1439
+ }, z.core.$strict>]>>;
1440
+ }, z.core.$strict>;
1441
+ branches: z.ZodTuple<[z.ZodObject<{
1442
+ id: z.ZodString;
1443
+ label: z.ZodString;
1444
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1445
+ kind: z.ZodLiteral<"action">;
1446
+ onError: z.ZodOptional<z.ZodBoolean>;
1447
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
1448
+ kind: z.ZodLiteral<"email">;
1449
+ templateKey: z.ZodString;
1450
+ to: z.ZodObject<{
1451
+ kind: z.ZodLiteral<"field">;
1452
+ column: z.ZodString;
1453
+ }, z.core.$strict>;
1454
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1455
+ }, z.core.$strict>, z.ZodObject<{
1456
+ kind: z.ZodLiteral<"notification">;
1457
+ to: z.ZodObject<{
1458
+ roles: z.ZodArray<z.ZodString>;
1459
+ }, z.core.$strict>;
1460
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1461
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1462
+ }, z.core.$strict>, z.ZodObject<{
1463
+ kind: z.ZodLiteral<"record.create">;
1464
+ table: z.ZodString;
1465
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1466
+ now: z.ZodLiteral<true>;
1467
+ }, z.core.$strict>]>>;
1468
+ }, z.core.$strict>, z.ZodObject<{
1469
+ kind: z.ZodLiteral<"record.update">;
1470
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1471
+ now: z.ZodLiteral<true>;
1472
+ }, z.core.$strict>]>>;
1473
+ }, z.core.$strict>], "kind">;
1474
+ id: z.ZodString;
1475
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1476
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1477
+ }, z.core.$strict>, z.ZodObject<{
1478
+ kind: z.ZodLiteral<"condition">;
1479
+ onError: z.ZodOptional<z.ZodBoolean>;
1480
+ condition: z.ZodObject<{
1481
+ left: z.ZodUnion<readonly [z.ZodObject<{
1482
+ field: z.ZodString;
1483
+ }, z.core.$strict>, z.ZodObject<{
1484
+ count: z.ZodObject<{
1485
+ table: z.ZodString;
1486
+ matchColumn: z.ZodString;
1487
+ equalsField: z.ZodString;
1488
+ where: z.ZodOptional<z.ZodObject<{
1489
+ left: z.ZodObject<{
1490
+ field: z.ZodString;
1491
+ }, z.core.$strict>;
1492
+ op: z.ZodEnum<{
1493
+ is: "is";
1494
+ is_not: "is_not";
1495
+ contains: "contains";
1496
+ gt: "gt";
1497
+ lt: "lt";
1498
+ is_empty: "is_empty";
1499
+ not_empty: "not_empty";
1500
+ within_next: "within_next";
1501
+ within_last: "within_last";
1502
+ more_than_ago: "more_than_ago";
1503
+ more_than_ahead: "more_than_ahead";
1504
+ }>;
1505
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1506
+ amount: z.ZodNumber;
1507
+ unit: z.ZodEnum<{
1508
+ minutes: "minutes";
1509
+ hours: "hours";
1510
+ days: "days";
1511
+ }>;
1512
+ }, z.core.$strict>]>>;
1513
+ }, z.core.$strict>>;
1514
+ }, z.core.$strict>;
1515
+ }, z.core.$strict>]>;
1516
+ op: z.ZodEnum<{
1517
+ is: "is";
1518
+ is_not: "is_not";
1519
+ contains: "contains";
1520
+ gt: "gt";
1521
+ lt: "lt";
1522
+ is_empty: "is_empty";
1523
+ not_empty: "not_empty";
1524
+ within_next: "within_next";
1525
+ within_last: "within_last";
1526
+ more_than_ago: "more_than_ago";
1527
+ more_than_ahead: "more_than_ahead";
1528
+ }>;
1529
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1530
+ amount: z.ZodNumber;
1531
+ unit: z.ZodEnum<{
1532
+ minutes: "minutes";
1533
+ hours: "hours";
1534
+ days: "days";
1535
+ }>;
1536
+ }, z.core.$strict>]>>;
1537
+ }, z.core.$strict>;
1538
+ id: z.ZodString;
1539
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1540
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1541
+ }, z.core.$strict>, z.ZodObject<{
1542
+ kind: z.ZodLiteral<"stop">;
1543
+ id: z.ZodString;
1544
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1545
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1546
+ }, z.core.$strict>, z.ZodObject<{
1547
+ kind: z.ZodLiteral<"wait">;
1548
+ amount: z.ZodNumber;
1549
+ unit: z.ZodEnum<{
1550
+ minutes: "minutes";
1551
+ hours: "hours";
1552
+ days: "days";
1553
+ }>;
1554
+ id: z.ZodString;
1555
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1556
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1557
+ }, z.core.$strict>]>>;
1558
+ }, z.core.$strict>, z.ZodObject<{
1559
+ id: z.ZodString;
1560
+ label: z.ZodString;
1561
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1562
+ kind: z.ZodLiteral<"action">;
1563
+ onError: z.ZodOptional<z.ZodBoolean>;
1564
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
1565
+ kind: z.ZodLiteral<"email">;
1566
+ templateKey: z.ZodString;
1567
+ to: z.ZodObject<{
1568
+ kind: z.ZodLiteral<"field">;
1569
+ column: z.ZodString;
1570
+ }, z.core.$strict>;
1571
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1572
+ }, z.core.$strict>, z.ZodObject<{
1573
+ kind: z.ZodLiteral<"notification">;
1574
+ to: z.ZodObject<{
1575
+ roles: z.ZodArray<z.ZodString>;
1576
+ }, z.core.$strict>;
1577
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1578
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1579
+ }, z.core.$strict>, z.ZodObject<{
1580
+ kind: z.ZodLiteral<"record.create">;
1581
+ table: z.ZodString;
1582
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1583
+ now: z.ZodLiteral<true>;
1584
+ }, z.core.$strict>]>>;
1585
+ }, z.core.$strict>, z.ZodObject<{
1586
+ kind: z.ZodLiteral<"record.update">;
1587
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1588
+ now: z.ZodLiteral<true>;
1589
+ }, z.core.$strict>]>>;
1590
+ }, z.core.$strict>], "kind">;
1591
+ id: z.ZodString;
1592
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1593
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1594
+ }, z.core.$strict>, z.ZodObject<{
1595
+ kind: z.ZodLiteral<"condition">;
1596
+ onError: z.ZodOptional<z.ZodBoolean>;
1597
+ condition: z.ZodObject<{
1598
+ left: z.ZodUnion<readonly [z.ZodObject<{
1599
+ field: z.ZodString;
1600
+ }, z.core.$strict>, z.ZodObject<{
1601
+ count: z.ZodObject<{
1602
+ table: z.ZodString;
1603
+ matchColumn: z.ZodString;
1604
+ equalsField: z.ZodString;
1605
+ where: z.ZodOptional<z.ZodObject<{
1606
+ left: z.ZodObject<{
1607
+ field: z.ZodString;
1608
+ }, z.core.$strict>;
1609
+ op: z.ZodEnum<{
1610
+ is: "is";
1611
+ is_not: "is_not";
1612
+ contains: "contains";
1613
+ gt: "gt";
1614
+ lt: "lt";
1615
+ is_empty: "is_empty";
1616
+ not_empty: "not_empty";
1617
+ within_next: "within_next";
1618
+ within_last: "within_last";
1619
+ more_than_ago: "more_than_ago";
1620
+ more_than_ahead: "more_than_ahead";
1621
+ }>;
1622
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1623
+ amount: z.ZodNumber;
1624
+ unit: z.ZodEnum<{
1625
+ minutes: "minutes";
1626
+ hours: "hours";
1627
+ days: "days";
1628
+ }>;
1629
+ }, z.core.$strict>]>>;
1630
+ }, z.core.$strict>>;
1631
+ }, z.core.$strict>;
1632
+ }, z.core.$strict>]>;
1633
+ op: z.ZodEnum<{
1634
+ is: "is";
1635
+ is_not: "is_not";
1636
+ contains: "contains";
1637
+ gt: "gt";
1638
+ lt: "lt";
1639
+ is_empty: "is_empty";
1640
+ not_empty: "not_empty";
1641
+ within_next: "within_next";
1642
+ within_last: "within_last";
1643
+ more_than_ago: "more_than_ago";
1644
+ more_than_ahead: "more_than_ahead";
1645
+ }>;
1646
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1647
+ amount: z.ZodNumber;
1648
+ unit: z.ZodEnum<{
1649
+ minutes: "minutes";
1650
+ hours: "hours";
1651
+ days: "days";
1652
+ }>;
1653
+ }, z.core.$strict>]>>;
1654
+ }, z.core.$strict>;
1655
+ id: z.ZodString;
1656
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1657
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1658
+ }, z.core.$strict>, z.ZodObject<{
1659
+ kind: z.ZodLiteral<"stop">;
1660
+ id: z.ZodString;
1661
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1662
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1663
+ }, z.core.$strict>, z.ZodObject<{
1664
+ kind: z.ZodLiteral<"wait">;
1665
+ amount: z.ZodNumber;
1666
+ unit: z.ZodEnum<{
1667
+ minutes: "minutes";
1668
+ hours: "hours";
1669
+ days: "days";
1670
+ }>;
1671
+ id: z.ZodString;
1672
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1673
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1674
+ }, z.core.$strict>]>>;
1675
+ }, z.core.$strict>], null>;
1676
+ id: z.ZodString;
1677
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1678
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1679
+ }, z.core.$strict>]>>;
1680
+ }, z.core.$strict>;
1681
+ }, z.core.$strict>;
1682
+ export type ManifestAutomation = z.infer<typeof manifestAutomationSchema>;
1683
+ export declare const manifestAutomationsSchema: z.ZodArray<z.ZodObject<{
1684
+ key: z.ZodString;
1685
+ name: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1686
+ description: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1687
+ enabled: z.ZodBoolean;
1688
+ trigger: z.ZodDiscriminatedUnion<[z.ZodObject<{
1689
+ kind: z.ZodLiteral<"record">;
1690
+ event: z.ZodEnum<{
1691
+ created: "created";
1692
+ updated: "updated";
1693
+ deleted: "deleted";
1694
+ }>;
1695
+ table: z.ZodString;
1696
+ changedColumn: z.ZodOptional<z.ZodString>;
1697
+ when: z.ZodOptional<z.ZodArray<z.ZodObject<{
1698
+ left: z.ZodUnion<readonly [z.ZodObject<{
1699
+ field: z.ZodString;
1700
+ }, z.core.$strict>, z.ZodObject<{
1701
+ count: z.ZodObject<{
1702
+ table: z.ZodString;
1703
+ matchColumn: z.ZodString;
1704
+ equalsField: z.ZodString;
1705
+ where: z.ZodOptional<z.ZodObject<{
1706
+ left: z.ZodObject<{
1707
+ field: z.ZodString;
1708
+ }, z.core.$strict>;
1709
+ op: z.ZodEnum<{
1710
+ is: "is";
1711
+ is_not: "is_not";
1712
+ contains: "contains";
1713
+ gt: "gt";
1714
+ lt: "lt";
1715
+ is_empty: "is_empty";
1716
+ not_empty: "not_empty";
1717
+ within_next: "within_next";
1718
+ within_last: "within_last";
1719
+ more_than_ago: "more_than_ago";
1720
+ more_than_ahead: "more_than_ahead";
1721
+ }>;
1722
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1723
+ amount: z.ZodNumber;
1724
+ unit: z.ZodEnum<{
1725
+ minutes: "minutes";
1726
+ hours: "hours";
1727
+ days: "days";
1728
+ }>;
1729
+ }, z.core.$strict>]>>;
1730
+ }, z.core.$strict>>;
1731
+ }, z.core.$strict>;
1732
+ }, z.core.$strict>]>;
1733
+ op: z.ZodEnum<{
1734
+ is: "is";
1735
+ is_not: "is_not";
1736
+ contains: "contains";
1737
+ gt: "gt";
1738
+ lt: "lt";
1739
+ is_empty: "is_empty";
1740
+ not_empty: "not_empty";
1741
+ within_next: "within_next";
1742
+ within_last: "within_last";
1743
+ more_than_ago: "more_than_ago";
1744
+ more_than_ahead: "more_than_ahead";
1745
+ }>;
1746
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1747
+ amount: z.ZodNumber;
1748
+ unit: z.ZodEnum<{
1749
+ minutes: "minutes";
1750
+ hours: "hours";
1751
+ days: "days";
1752
+ }>;
1753
+ }, z.core.$strict>]>>;
1754
+ }, z.core.$strict>>>;
1755
+ }, z.core.$strict>, z.ZodObject<{
1756
+ kind: z.ZodLiteral<"schedule">;
1757
+ schedule: z.ZodDiscriminatedUnion<[z.ZodObject<{
1758
+ kind: z.ZodLiteral<"interval">;
1759
+ everyMinutes: z.ZodEnum<{
1760
+ 5: "5";
1761
+ 10: "10";
1762
+ 15: "15";
1763
+ 30: "30";
1764
+ 60: "60";
1765
+ }>;
1766
+ }, z.core.$strict>, z.ZodObject<{
1767
+ kind: z.ZodEnum<{
1768
+ daily: "daily";
1769
+ weekly: "weekly";
1770
+ monthly: "monthly";
1771
+ }>;
1772
+ time: z.ZodString;
1773
+ dayOfWeek: z.ZodOptional<z.ZodNumber>;
1774
+ dayOfMonth: z.ZodOptional<z.ZodNumber>;
1775
+ }, z.core.$strict>], "kind">;
1776
+ forEach: z.ZodOptional<z.ZodObject<{
1777
+ table: z.ZodString;
1778
+ where: z.ZodArray<z.ZodObject<{
1779
+ left: z.ZodUnion<readonly [z.ZodObject<{
1780
+ field: z.ZodString;
1781
+ }, z.core.$strict>, z.ZodObject<{
1782
+ count: z.ZodObject<{
1783
+ table: z.ZodString;
1784
+ matchColumn: z.ZodString;
1785
+ equalsField: z.ZodString;
1786
+ where: z.ZodOptional<z.ZodObject<{
1787
+ left: z.ZodObject<{
1788
+ field: z.ZodString;
1789
+ }, z.core.$strict>;
1790
+ op: z.ZodEnum<{
1791
+ is: "is";
1792
+ is_not: "is_not";
1793
+ contains: "contains";
1794
+ gt: "gt";
1795
+ lt: "lt";
1796
+ is_empty: "is_empty";
1797
+ not_empty: "not_empty";
1798
+ within_next: "within_next";
1799
+ within_last: "within_last";
1800
+ more_than_ago: "more_than_ago";
1801
+ more_than_ahead: "more_than_ahead";
1802
+ }>;
1803
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1804
+ amount: z.ZodNumber;
1805
+ unit: z.ZodEnum<{
1806
+ minutes: "minutes";
1807
+ hours: "hours";
1808
+ days: "days";
1809
+ }>;
1810
+ }, z.core.$strict>]>>;
1811
+ }, z.core.$strict>>;
1812
+ }, z.core.$strict>;
1813
+ }, z.core.$strict>]>;
1814
+ op: z.ZodEnum<{
1815
+ is: "is";
1816
+ is_not: "is_not";
1817
+ contains: "contains";
1818
+ gt: "gt";
1819
+ lt: "lt";
1820
+ is_empty: "is_empty";
1821
+ not_empty: "not_empty";
1822
+ within_next: "within_next";
1823
+ within_last: "within_last";
1824
+ more_than_ago: "more_than_ago";
1825
+ more_than_ahead: "more_than_ahead";
1826
+ }>;
1827
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1828
+ amount: z.ZodNumber;
1829
+ unit: z.ZodEnum<{
1830
+ minutes: "minutes";
1831
+ hours: "hours";
1832
+ days: "days";
1833
+ }>;
1834
+ }, z.core.$strict>]>>;
1835
+ }, z.core.$strict>>;
1836
+ once: z.ZodBoolean;
1837
+ }, z.core.$strict>>;
1838
+ }, z.core.$strict>], "kind">;
1839
+ graph: z.ZodObject<{
1840
+ version: z.ZodLiteral<1>;
1841
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
1842
+ kind: z.ZodLiteral<"trigger">;
1843
+ id: z.ZodString;
1844
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1845
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1846
+ }, z.core.$strict>, z.ZodObject<{
1847
+ kind: z.ZodLiteral<"action">;
1848
+ onError: z.ZodOptional<z.ZodBoolean>;
1849
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
1850
+ kind: z.ZodLiteral<"email">;
1851
+ templateKey: z.ZodString;
1852
+ to: z.ZodObject<{
1853
+ kind: z.ZodLiteral<"field">;
1854
+ column: z.ZodString;
1855
+ }, z.core.$strict>;
1856
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
1857
+ }, z.core.$strict>, z.ZodObject<{
1858
+ kind: z.ZodLiteral<"notification">;
1859
+ to: z.ZodObject<{
1860
+ roles: z.ZodArray<z.ZodString>;
1861
+ }, z.core.$strict>;
1862
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1863
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1864
+ }, z.core.$strict>, z.ZodObject<{
1865
+ kind: z.ZodLiteral<"record.create">;
1866
+ table: z.ZodString;
1867
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1868
+ now: z.ZodLiteral<true>;
1869
+ }, z.core.$strict>]>>;
1870
+ }, z.core.$strict>, z.ZodObject<{
1871
+ kind: z.ZodLiteral<"record.update">;
1872
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
1873
+ now: z.ZodLiteral<true>;
1874
+ }, z.core.$strict>]>>;
1875
+ }, z.core.$strict>], "kind">;
1876
+ id: z.ZodString;
1877
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1878
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1879
+ }, z.core.$strict>, z.ZodObject<{
1880
+ kind: z.ZodLiteral<"condition">;
1881
+ onError: z.ZodOptional<z.ZodBoolean>;
1882
+ condition: z.ZodObject<{
1883
+ left: z.ZodUnion<readonly [z.ZodObject<{
1884
+ field: z.ZodString;
1885
+ }, z.core.$strict>, z.ZodObject<{
1886
+ count: z.ZodObject<{
1887
+ table: z.ZodString;
1888
+ matchColumn: z.ZodString;
1889
+ equalsField: z.ZodString;
1890
+ where: z.ZodOptional<z.ZodObject<{
1891
+ left: z.ZodObject<{
1892
+ field: z.ZodString;
1893
+ }, z.core.$strict>;
1894
+ op: z.ZodEnum<{
1895
+ is: "is";
1896
+ is_not: "is_not";
1897
+ contains: "contains";
1898
+ gt: "gt";
1899
+ lt: "lt";
1900
+ is_empty: "is_empty";
1901
+ not_empty: "not_empty";
1902
+ within_next: "within_next";
1903
+ within_last: "within_last";
1904
+ more_than_ago: "more_than_ago";
1905
+ more_than_ahead: "more_than_ahead";
1906
+ }>;
1907
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1908
+ amount: z.ZodNumber;
1909
+ unit: z.ZodEnum<{
1910
+ minutes: "minutes";
1911
+ hours: "hours";
1912
+ days: "days";
1913
+ }>;
1914
+ }, z.core.$strict>]>>;
1915
+ }, z.core.$strict>>;
1916
+ }, z.core.$strict>;
1917
+ }, z.core.$strict>]>;
1918
+ op: z.ZodEnum<{
1919
+ is: "is";
1920
+ is_not: "is_not";
1921
+ contains: "contains";
1922
+ gt: "gt";
1923
+ lt: "lt";
1924
+ is_empty: "is_empty";
1925
+ not_empty: "not_empty";
1926
+ within_next: "within_next";
1927
+ within_last: "within_last";
1928
+ more_than_ago: "more_than_ago";
1929
+ more_than_ahead: "more_than_ahead";
1930
+ }>;
1931
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1932
+ amount: z.ZodNumber;
1933
+ unit: z.ZodEnum<{
1934
+ minutes: "minutes";
1935
+ hours: "hours";
1936
+ days: "days";
1937
+ }>;
1938
+ }, z.core.$strict>]>>;
1939
+ }, z.core.$strict>;
1940
+ id: z.ZodString;
1941
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1942
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1943
+ }, z.core.$strict>, z.ZodObject<{
1944
+ kind: z.ZodLiteral<"stop">;
1945
+ id: z.ZodString;
1946
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1947
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1948
+ }, z.core.$strict>, z.ZodObject<{
1949
+ kind: z.ZodLiteral<"wait">;
1950
+ amount: z.ZodNumber;
1951
+ unit: z.ZodEnum<{
1952
+ minutes: "minutes";
1953
+ hours: "hours";
1954
+ days: "days";
1955
+ }>;
1956
+ id: z.ZodString;
1957
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
1958
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
1959
+ }, z.core.$strict>, z.ZodObject<{
1960
+ kind: z.ZodLiteral<"branch">;
1961
+ condition: z.ZodObject<{
1962
+ left: z.ZodUnion<readonly [z.ZodObject<{
1963
+ field: z.ZodString;
1964
+ }, z.core.$strict>, z.ZodObject<{
1965
+ count: z.ZodObject<{
1966
+ table: z.ZodString;
1967
+ matchColumn: z.ZodString;
1968
+ equalsField: z.ZodString;
1969
+ where: z.ZodOptional<z.ZodObject<{
1970
+ left: z.ZodObject<{
1971
+ field: z.ZodString;
1972
+ }, z.core.$strict>;
1973
+ op: z.ZodEnum<{
1974
+ is: "is";
1975
+ is_not: "is_not";
1976
+ contains: "contains";
1977
+ gt: "gt";
1978
+ lt: "lt";
1979
+ is_empty: "is_empty";
1980
+ not_empty: "not_empty";
1981
+ within_next: "within_next";
1982
+ within_last: "within_last";
1983
+ more_than_ago: "more_than_ago";
1984
+ more_than_ahead: "more_than_ahead";
1985
+ }>;
1986
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
1987
+ amount: z.ZodNumber;
1988
+ unit: z.ZodEnum<{
1989
+ minutes: "minutes";
1990
+ hours: "hours";
1991
+ days: "days";
1992
+ }>;
1993
+ }, z.core.$strict>]>>;
1994
+ }, z.core.$strict>>;
1995
+ }, z.core.$strict>;
1996
+ }, z.core.$strict>]>;
1997
+ op: z.ZodEnum<{
1998
+ is: "is";
1999
+ is_not: "is_not";
2000
+ contains: "contains";
2001
+ gt: "gt";
2002
+ lt: "lt";
2003
+ is_empty: "is_empty";
2004
+ not_empty: "not_empty";
2005
+ within_next: "within_next";
2006
+ within_last: "within_last";
2007
+ more_than_ago: "more_than_ago";
2008
+ more_than_ahead: "more_than_ahead";
2009
+ }>;
2010
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
2011
+ amount: z.ZodNumber;
2012
+ unit: z.ZodEnum<{
2013
+ minutes: "minutes";
2014
+ hours: "hours";
2015
+ days: "days";
2016
+ }>;
2017
+ }, z.core.$strict>]>>;
2018
+ }, z.core.$strict>;
2019
+ branches: z.ZodTuple<[z.ZodObject<{
2020
+ id: z.ZodString;
2021
+ label: z.ZodString;
2022
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
2023
+ kind: z.ZodLiteral<"action">;
2024
+ onError: z.ZodOptional<z.ZodBoolean>;
2025
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
2026
+ kind: z.ZodLiteral<"email">;
2027
+ templateKey: z.ZodString;
2028
+ to: z.ZodObject<{
2029
+ kind: z.ZodLiteral<"field">;
2030
+ column: z.ZodString;
2031
+ }, z.core.$strict>;
2032
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2033
+ }, z.core.$strict>, z.ZodObject<{
2034
+ kind: z.ZodLiteral<"notification">;
2035
+ to: z.ZodObject<{
2036
+ roles: z.ZodArray<z.ZodString>;
2037
+ }, z.core.$strict>;
2038
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2039
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2040
+ }, z.core.$strict>, z.ZodObject<{
2041
+ kind: z.ZodLiteral<"record.create">;
2042
+ table: z.ZodString;
2043
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2044
+ now: z.ZodLiteral<true>;
2045
+ }, z.core.$strict>]>>;
2046
+ }, z.core.$strict>, z.ZodObject<{
2047
+ kind: z.ZodLiteral<"record.update">;
2048
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2049
+ now: z.ZodLiteral<true>;
2050
+ }, z.core.$strict>]>>;
2051
+ }, z.core.$strict>], "kind">;
2052
+ id: z.ZodString;
2053
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2054
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2055
+ }, z.core.$strict>, z.ZodObject<{
2056
+ kind: z.ZodLiteral<"condition">;
2057
+ onError: z.ZodOptional<z.ZodBoolean>;
2058
+ condition: z.ZodObject<{
2059
+ left: z.ZodUnion<readonly [z.ZodObject<{
2060
+ field: z.ZodString;
2061
+ }, z.core.$strict>, z.ZodObject<{
2062
+ count: z.ZodObject<{
2063
+ table: z.ZodString;
2064
+ matchColumn: z.ZodString;
2065
+ equalsField: z.ZodString;
2066
+ where: z.ZodOptional<z.ZodObject<{
2067
+ left: z.ZodObject<{
2068
+ field: z.ZodString;
2069
+ }, z.core.$strict>;
2070
+ op: z.ZodEnum<{
2071
+ is: "is";
2072
+ is_not: "is_not";
2073
+ contains: "contains";
2074
+ gt: "gt";
2075
+ lt: "lt";
2076
+ is_empty: "is_empty";
2077
+ not_empty: "not_empty";
2078
+ within_next: "within_next";
2079
+ within_last: "within_last";
2080
+ more_than_ago: "more_than_ago";
2081
+ more_than_ahead: "more_than_ahead";
2082
+ }>;
2083
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
2084
+ amount: z.ZodNumber;
2085
+ unit: z.ZodEnum<{
2086
+ minutes: "minutes";
2087
+ hours: "hours";
2088
+ days: "days";
2089
+ }>;
2090
+ }, z.core.$strict>]>>;
2091
+ }, z.core.$strict>>;
2092
+ }, z.core.$strict>;
2093
+ }, z.core.$strict>]>;
2094
+ op: z.ZodEnum<{
2095
+ is: "is";
2096
+ is_not: "is_not";
2097
+ contains: "contains";
2098
+ gt: "gt";
2099
+ lt: "lt";
2100
+ is_empty: "is_empty";
2101
+ not_empty: "not_empty";
2102
+ within_next: "within_next";
2103
+ within_last: "within_last";
2104
+ more_than_ago: "more_than_ago";
2105
+ more_than_ahead: "more_than_ahead";
2106
+ }>;
2107
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
2108
+ amount: z.ZodNumber;
2109
+ unit: z.ZodEnum<{
2110
+ minutes: "minutes";
2111
+ hours: "hours";
2112
+ days: "days";
2113
+ }>;
2114
+ }, z.core.$strict>]>>;
2115
+ }, z.core.$strict>;
2116
+ id: z.ZodString;
2117
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2118
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2119
+ }, z.core.$strict>, z.ZodObject<{
2120
+ kind: z.ZodLiteral<"stop">;
2121
+ id: z.ZodString;
2122
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2123
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2124
+ }, z.core.$strict>, z.ZodObject<{
2125
+ kind: z.ZodLiteral<"wait">;
2126
+ amount: z.ZodNumber;
2127
+ unit: z.ZodEnum<{
2128
+ minutes: "minutes";
2129
+ hours: "hours";
2130
+ days: "days";
2131
+ }>;
2132
+ id: z.ZodString;
2133
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2134
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2135
+ }, z.core.$strict>]>>;
2136
+ }, z.core.$strict>, z.ZodObject<{
2137
+ id: z.ZodString;
2138
+ label: z.ZodString;
2139
+ nodes: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
2140
+ kind: z.ZodLiteral<"action">;
2141
+ onError: z.ZodOptional<z.ZodBoolean>;
2142
+ action: z.ZodDiscriminatedUnion<[z.ZodObject<{
2143
+ kind: z.ZodLiteral<"email">;
2144
+ templateKey: z.ZodString;
2145
+ to: z.ZodObject<{
2146
+ kind: z.ZodLiteral<"field">;
2147
+ column: z.ZodString;
2148
+ }, z.core.$strict>;
2149
+ vars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
2150
+ }, z.core.$strict>, z.ZodObject<{
2151
+ kind: z.ZodLiteral<"notification">;
2152
+ to: z.ZodObject<{
2153
+ roles: z.ZodArray<z.ZodString>;
2154
+ }, z.core.$strict>;
2155
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2156
+ body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2157
+ }, z.core.$strict>, z.ZodObject<{
2158
+ kind: z.ZodLiteral<"record.create">;
2159
+ table: z.ZodString;
2160
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2161
+ now: z.ZodLiteral<true>;
2162
+ }, z.core.$strict>]>>;
2163
+ }, z.core.$strict>, z.ZodObject<{
2164
+ kind: z.ZodLiteral<"record.update">;
2165
+ values: z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
2166
+ now: z.ZodLiteral<true>;
2167
+ }, z.core.$strict>]>>;
2168
+ }, z.core.$strict>], "kind">;
2169
+ id: z.ZodString;
2170
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2171
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2172
+ }, z.core.$strict>, z.ZodObject<{
2173
+ kind: z.ZodLiteral<"condition">;
2174
+ onError: z.ZodOptional<z.ZodBoolean>;
2175
+ condition: z.ZodObject<{
2176
+ left: z.ZodUnion<readonly [z.ZodObject<{
2177
+ field: z.ZodString;
2178
+ }, z.core.$strict>, z.ZodObject<{
2179
+ count: z.ZodObject<{
2180
+ table: z.ZodString;
2181
+ matchColumn: z.ZodString;
2182
+ equalsField: z.ZodString;
2183
+ where: z.ZodOptional<z.ZodObject<{
2184
+ left: z.ZodObject<{
2185
+ field: z.ZodString;
2186
+ }, z.core.$strict>;
2187
+ op: z.ZodEnum<{
2188
+ is: "is";
2189
+ is_not: "is_not";
2190
+ contains: "contains";
2191
+ gt: "gt";
2192
+ lt: "lt";
2193
+ is_empty: "is_empty";
2194
+ not_empty: "not_empty";
2195
+ within_next: "within_next";
2196
+ within_last: "within_last";
2197
+ more_than_ago: "more_than_ago";
2198
+ more_than_ahead: "more_than_ahead";
2199
+ }>;
2200
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
2201
+ amount: z.ZodNumber;
2202
+ unit: z.ZodEnum<{
2203
+ minutes: "minutes";
2204
+ hours: "hours";
2205
+ days: "days";
2206
+ }>;
2207
+ }, z.core.$strict>]>>;
2208
+ }, z.core.$strict>>;
2209
+ }, z.core.$strict>;
2210
+ }, z.core.$strict>]>;
2211
+ op: z.ZodEnum<{
2212
+ is: "is";
2213
+ is_not: "is_not";
2214
+ contains: "contains";
2215
+ gt: "gt";
2216
+ lt: "lt";
2217
+ is_empty: "is_empty";
2218
+ not_empty: "not_empty";
2219
+ within_next: "within_next";
2220
+ within_last: "within_last";
2221
+ more_than_ago: "more_than_ago";
2222
+ more_than_ahead: "more_than_ahead";
2223
+ }>;
2224
+ right: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber, z.ZodObject<{
2225
+ amount: z.ZodNumber;
2226
+ unit: z.ZodEnum<{
2227
+ minutes: "minutes";
2228
+ hours: "hours";
2229
+ days: "days";
2230
+ }>;
2231
+ }, z.core.$strict>]>>;
2232
+ }, z.core.$strict>;
2233
+ id: z.ZodString;
2234
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2235
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2236
+ }, z.core.$strict>, z.ZodObject<{
2237
+ kind: z.ZodLiteral<"stop">;
2238
+ id: z.ZodString;
2239
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2240
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2241
+ }, z.core.$strict>, z.ZodObject<{
2242
+ kind: z.ZodLiteral<"wait">;
2243
+ amount: z.ZodNumber;
2244
+ unit: z.ZodEnum<{
2245
+ minutes: "minutes";
2246
+ hours: "hours";
2247
+ days: "days";
2248
+ }>;
2249
+ id: z.ZodString;
2250
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2251
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2252
+ }, z.core.$strict>]>>;
2253
+ }, z.core.$strict>], null>;
2254
+ id: z.ZodString;
2255
+ title: z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
2256
+ sub: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
2257
+ }, z.core.$strict>]>>;
2258
+ }, z.core.$strict>;
2259
+ }, z.core.$strict>>;
2260
+ /** What the checks read of a table. */
2261
+ export interface AutomationTableShape {
2262
+ ref: string;
2263
+ columns: readonly {
2264
+ ref: string;
2265
+ type: string;
2266
+ rules?: Readonly<Record<string, unknown>> | undefined;
2267
+ }[];
2268
+ }
2269
+ /** What the checks read of an email template: its key and, per language, the text it is made of. */
2270
+ export interface AutomationTemplateShape {
2271
+ key: string;
2272
+ attach?: unknown;
2273
+ locales: Readonly<Record<string, {
2274
+ subject: string;
2275
+ preheader?: string | undefined;
2276
+ blocks: readonly {
2277
+ block: string;
2278
+ data?: Readonly<Record<string, unknown>> | undefined;
2279
+ }[];
2280
+ footer?: string | undefined;
2281
+ }>>;
2282
+ }
2283
+ /** What every rule's email can read whatever its record is. */
2284
+ export declare const RULE_EMAIL_VARS: readonly ["now", "ruleName", "recordLabel", "appName"];
2285
+ /**
2286
+ * Every placeholder a template reads in one language, in the order it reads
2287
+ * them. A `{{row.*}}` is left out: it belongs to the rows a list block draws.
2288
+ */
2289
+ export declare function templatePlaceholdersOf(content: {
2290
+ subject: string;
2291
+ preheader?: string | undefined;
2292
+ blocks: readonly unknown[];
2293
+ footer?: string | undefined;
2294
+ }): string[];
2295
+ /**
2296
+ * Everything wrong with a manifest's shipped rules that the manifest itself
2297
+ * can see: a table, a column, a role or a template that is not its own; a
2298
+ * comparison that could hold on no database; a rule that could never fire;
2299
+ * an email a rule cannot fill.
2300
+ */
2301
+ export declare function automationIssues(m: {
2302
+ automations?: readonly ManifestAutomation[] | undefined;
2303
+ tables: readonly AutomationTableShape[];
2304
+ roles: readonly string[];
2305
+ templates: readonly AutomationTemplateShape[];
2306
+ /** The columns Adminium decides beyond a column's own rule (a balance, what a posting fills), by table. */
2307
+ decided?: (table: string) => ReadonlySet<string>;
2308
+ }): ReferenceIssue[];
2309
+ //# sourceMappingURL=automations.d.ts.map