@peac/control 0.9.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.
@@ -0,0 +1,798 @@
1
+ /**
2
+ * PEAC Control Abstraction Layer (CAL) Validators
3
+ *
4
+ * Validation logic for control blocks and mandates.
5
+ */
6
+ import { z } from 'zod';
7
+ /**
8
+ * Temporal mandate schema (with validation)
9
+ */
10
+ export declare const TemporalConstraintSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
11
+ type: z.ZodLiteral<"temporal">;
12
+ valid_from: z.ZodOptional<z.ZodNumber>;
13
+ valid_until: z.ZodOptional<z.ZodNumber>;
14
+ duration: z.ZodOptional<z.ZodNumber>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ type: "temporal";
17
+ valid_from?: number | undefined;
18
+ valid_until?: number | undefined;
19
+ duration?: number | undefined;
20
+ }, {
21
+ type: "temporal";
22
+ valid_from?: number | undefined;
23
+ valid_until?: number | undefined;
24
+ duration?: number | undefined;
25
+ }>, {
26
+ type: "temporal";
27
+ valid_from?: number | undefined;
28
+ valid_until?: number | undefined;
29
+ duration?: number | undefined;
30
+ }, {
31
+ type: "temporal";
32
+ valid_from?: number | undefined;
33
+ valid_until?: number | undefined;
34
+ duration?: number | undefined;
35
+ }>, {
36
+ type: "temporal";
37
+ valid_from?: number | undefined;
38
+ valid_until?: number | undefined;
39
+ duration?: number | undefined;
40
+ }, {
41
+ type: "temporal";
42
+ valid_from?: number | undefined;
43
+ valid_until?: number | undefined;
44
+ duration?: number | undefined;
45
+ }>;
46
+ /**
47
+ * Usage mandate schema (with validation)
48
+ */
49
+ export declare const UsageConstraintSchema: z.ZodEffects<z.ZodObject<{
50
+ type: z.ZodLiteral<"usage">;
51
+ max_uses: z.ZodNumber;
52
+ current_uses: z.ZodOptional<z.ZodNumber>;
53
+ window: z.ZodOptional<z.ZodNumber>;
54
+ }, "strip", z.ZodTypeAny, {
55
+ type: "usage";
56
+ max_uses: number;
57
+ current_uses?: number | undefined;
58
+ window?: number | undefined;
59
+ }, {
60
+ type: "usage";
61
+ max_uses: number;
62
+ current_uses?: number | undefined;
63
+ window?: number | undefined;
64
+ }>, {
65
+ type: "usage";
66
+ max_uses: number;
67
+ current_uses?: number | undefined;
68
+ window?: number | undefined;
69
+ }, {
70
+ type: "usage";
71
+ max_uses: number;
72
+ current_uses?: number | undefined;
73
+ window?: number | undefined;
74
+ }>;
75
+ /**
76
+ * Budget mandate schema (with validation)
77
+ */
78
+ export declare const BudgetConstraintSchema: z.ZodEffects<z.ZodObject<{
79
+ type: z.ZodLiteral<"budget">;
80
+ max_amount: z.ZodNumber;
81
+ current_amount: z.ZodOptional<z.ZodNumber>;
82
+ window: z.ZodOptional<z.ZodNumber>;
83
+ currency: z.ZodString;
84
+ }, "strip", z.ZodTypeAny, {
85
+ currency: string;
86
+ type: "budget";
87
+ max_amount: number;
88
+ window?: number | undefined;
89
+ current_amount?: number | undefined;
90
+ }, {
91
+ currency: string;
92
+ type: "budget";
93
+ max_amount: number;
94
+ window?: number | undefined;
95
+ current_amount?: number | undefined;
96
+ }>, {
97
+ currency: string;
98
+ type: "budget";
99
+ max_amount: number;
100
+ window?: number | undefined;
101
+ current_amount?: number | undefined;
102
+ }, {
103
+ currency: string;
104
+ type: "budget";
105
+ max_amount: number;
106
+ window?: number | undefined;
107
+ current_amount?: number | undefined;
108
+ }>;
109
+ /**
110
+ * Combined mandate schema (with validation)
111
+ */
112
+ export declare const CombinedConstraintSchema: z.ZodEffects<z.ZodObject<{
113
+ type: z.ZodLiteral<"combined">;
114
+ temporal: z.ZodOptional<z.ZodObject<{
115
+ valid_from: z.ZodOptional<z.ZodNumber>;
116
+ valid_until: z.ZodOptional<z.ZodNumber>;
117
+ duration: z.ZodOptional<z.ZodNumber>;
118
+ }, "strip", z.ZodTypeAny, {
119
+ valid_from?: number | undefined;
120
+ valid_until?: number | undefined;
121
+ duration?: number | undefined;
122
+ }, {
123
+ valid_from?: number | undefined;
124
+ valid_until?: number | undefined;
125
+ duration?: number | undefined;
126
+ }>>;
127
+ usage: z.ZodOptional<z.ZodObject<{
128
+ max_uses: z.ZodNumber;
129
+ current_uses: z.ZodOptional<z.ZodNumber>;
130
+ window: z.ZodOptional<z.ZodNumber>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ max_uses: number;
133
+ current_uses?: number | undefined;
134
+ window?: number | undefined;
135
+ }, {
136
+ max_uses: number;
137
+ current_uses?: number | undefined;
138
+ window?: number | undefined;
139
+ }>>;
140
+ budget: z.ZodOptional<z.ZodObject<{
141
+ max_amount: z.ZodNumber;
142
+ current_amount: z.ZodOptional<z.ZodNumber>;
143
+ window: z.ZodOptional<z.ZodNumber>;
144
+ currency: z.ZodString;
145
+ }, "strip", z.ZodTypeAny, {
146
+ currency: string;
147
+ max_amount: number;
148
+ window?: number | undefined;
149
+ current_amount?: number | undefined;
150
+ }, {
151
+ currency: string;
152
+ max_amount: number;
153
+ window?: number | undefined;
154
+ current_amount?: number | undefined;
155
+ }>>;
156
+ }, "strip", z.ZodTypeAny, {
157
+ type: "combined";
158
+ temporal?: {
159
+ valid_from?: number | undefined;
160
+ valid_until?: number | undefined;
161
+ duration?: number | undefined;
162
+ } | undefined;
163
+ usage?: {
164
+ max_uses: number;
165
+ current_uses?: number | undefined;
166
+ window?: number | undefined;
167
+ } | undefined;
168
+ budget?: {
169
+ currency: string;
170
+ max_amount: number;
171
+ window?: number | undefined;
172
+ current_amount?: number | undefined;
173
+ } | undefined;
174
+ }, {
175
+ type: "combined";
176
+ temporal?: {
177
+ valid_from?: number | undefined;
178
+ valid_until?: number | undefined;
179
+ duration?: number | undefined;
180
+ } | undefined;
181
+ usage?: {
182
+ max_uses: number;
183
+ current_uses?: number | undefined;
184
+ window?: number | undefined;
185
+ } | undefined;
186
+ budget?: {
187
+ currency: string;
188
+ max_amount: number;
189
+ window?: number | undefined;
190
+ current_amount?: number | undefined;
191
+ } | undefined;
192
+ }>, {
193
+ type: "combined";
194
+ temporal?: {
195
+ valid_from?: number | undefined;
196
+ valid_until?: number | undefined;
197
+ duration?: number | undefined;
198
+ } | undefined;
199
+ usage?: {
200
+ max_uses: number;
201
+ current_uses?: number | undefined;
202
+ window?: number | undefined;
203
+ } | undefined;
204
+ budget?: {
205
+ currency: string;
206
+ max_amount: number;
207
+ window?: number | undefined;
208
+ current_amount?: number | undefined;
209
+ } | undefined;
210
+ }, {
211
+ type: "combined";
212
+ temporal?: {
213
+ valid_from?: number | undefined;
214
+ valid_until?: number | undefined;
215
+ duration?: number | undefined;
216
+ } | undefined;
217
+ usage?: {
218
+ max_uses: number;
219
+ current_uses?: number | undefined;
220
+ window?: number | undefined;
221
+ } | undefined;
222
+ budget?: {
223
+ currency: string;
224
+ max_amount: number;
225
+ window?: number | undefined;
226
+ current_amount?: number | undefined;
227
+ } | undefined;
228
+ }>;
229
+ /**
230
+ * Constraint schema (discriminated union using base schemas)
231
+ */
232
+ export declare const ConstraintSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
233
+ type: z.ZodLiteral<"temporal">;
234
+ valid_from: z.ZodOptional<z.ZodNumber>;
235
+ valid_until: z.ZodOptional<z.ZodNumber>;
236
+ duration: z.ZodOptional<z.ZodNumber>;
237
+ }, "strip", z.ZodTypeAny, {
238
+ type: "temporal";
239
+ valid_from?: number | undefined;
240
+ valid_until?: number | undefined;
241
+ duration?: number | undefined;
242
+ }, {
243
+ type: "temporal";
244
+ valid_from?: number | undefined;
245
+ valid_until?: number | undefined;
246
+ duration?: number | undefined;
247
+ }>, z.ZodObject<{
248
+ type: z.ZodLiteral<"usage">;
249
+ max_uses: z.ZodNumber;
250
+ current_uses: z.ZodOptional<z.ZodNumber>;
251
+ window: z.ZodOptional<z.ZodNumber>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ type: "usage";
254
+ max_uses: number;
255
+ current_uses?: number | undefined;
256
+ window?: number | undefined;
257
+ }, {
258
+ type: "usage";
259
+ max_uses: number;
260
+ current_uses?: number | undefined;
261
+ window?: number | undefined;
262
+ }>, z.ZodObject<{
263
+ type: z.ZodLiteral<"budget">;
264
+ max_amount: z.ZodNumber;
265
+ current_amount: z.ZodOptional<z.ZodNumber>;
266
+ window: z.ZodOptional<z.ZodNumber>;
267
+ currency: z.ZodString;
268
+ }, "strip", z.ZodTypeAny, {
269
+ currency: string;
270
+ type: "budget";
271
+ max_amount: number;
272
+ window?: number | undefined;
273
+ current_amount?: number | undefined;
274
+ }, {
275
+ currency: string;
276
+ type: "budget";
277
+ max_amount: number;
278
+ window?: number | undefined;
279
+ current_amount?: number | undefined;
280
+ }>, z.ZodObject<{
281
+ type: z.ZodLiteral<"combined">;
282
+ temporal: z.ZodOptional<z.ZodObject<{
283
+ valid_from: z.ZodOptional<z.ZodNumber>;
284
+ valid_until: z.ZodOptional<z.ZodNumber>;
285
+ duration: z.ZodOptional<z.ZodNumber>;
286
+ }, "strip", z.ZodTypeAny, {
287
+ valid_from?: number | undefined;
288
+ valid_until?: number | undefined;
289
+ duration?: number | undefined;
290
+ }, {
291
+ valid_from?: number | undefined;
292
+ valid_until?: number | undefined;
293
+ duration?: number | undefined;
294
+ }>>;
295
+ usage: z.ZodOptional<z.ZodObject<{
296
+ max_uses: z.ZodNumber;
297
+ current_uses: z.ZodOptional<z.ZodNumber>;
298
+ window: z.ZodOptional<z.ZodNumber>;
299
+ }, "strip", z.ZodTypeAny, {
300
+ max_uses: number;
301
+ current_uses?: number | undefined;
302
+ window?: number | undefined;
303
+ }, {
304
+ max_uses: number;
305
+ current_uses?: number | undefined;
306
+ window?: number | undefined;
307
+ }>>;
308
+ budget: z.ZodOptional<z.ZodObject<{
309
+ max_amount: z.ZodNumber;
310
+ current_amount: z.ZodOptional<z.ZodNumber>;
311
+ window: z.ZodOptional<z.ZodNumber>;
312
+ currency: z.ZodString;
313
+ }, "strip", z.ZodTypeAny, {
314
+ currency: string;
315
+ max_amount: number;
316
+ window?: number | undefined;
317
+ current_amount?: number | undefined;
318
+ }, {
319
+ currency: string;
320
+ max_amount: number;
321
+ window?: number | undefined;
322
+ current_amount?: number | undefined;
323
+ }>>;
324
+ }, "strip", z.ZodTypeAny, {
325
+ type: "combined";
326
+ temporal?: {
327
+ valid_from?: number | undefined;
328
+ valid_until?: number | undefined;
329
+ duration?: number | undefined;
330
+ } | undefined;
331
+ usage?: {
332
+ max_uses: number;
333
+ current_uses?: number | undefined;
334
+ window?: number | undefined;
335
+ } | undefined;
336
+ budget?: {
337
+ currency: string;
338
+ max_amount: number;
339
+ window?: number | undefined;
340
+ current_amount?: number | undefined;
341
+ } | undefined;
342
+ }, {
343
+ type: "combined";
344
+ temporal?: {
345
+ valid_from?: number | undefined;
346
+ valid_until?: number | undefined;
347
+ duration?: number | undefined;
348
+ } | undefined;
349
+ usage?: {
350
+ max_uses: number;
351
+ current_uses?: number | undefined;
352
+ window?: number | undefined;
353
+ } | undefined;
354
+ budget?: {
355
+ currency: string;
356
+ max_amount: number;
357
+ window?: number | undefined;
358
+ current_amount?: number | undefined;
359
+ } | undefined;
360
+ }>]>;
361
+ /**
362
+ * Control block schema
363
+ */
364
+ export declare const ControlBlockSchema: z.ZodObject<{
365
+ mandate: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
366
+ type: z.ZodLiteral<"temporal">;
367
+ valid_from: z.ZodOptional<z.ZodNumber>;
368
+ valid_until: z.ZodOptional<z.ZodNumber>;
369
+ duration: z.ZodOptional<z.ZodNumber>;
370
+ }, "strip", z.ZodTypeAny, {
371
+ type: "temporal";
372
+ valid_from?: number | undefined;
373
+ valid_until?: number | undefined;
374
+ duration?: number | undefined;
375
+ }, {
376
+ type: "temporal";
377
+ valid_from?: number | undefined;
378
+ valid_until?: number | undefined;
379
+ duration?: number | undefined;
380
+ }>, z.ZodObject<{
381
+ type: z.ZodLiteral<"usage">;
382
+ max_uses: z.ZodNumber;
383
+ current_uses: z.ZodOptional<z.ZodNumber>;
384
+ window: z.ZodOptional<z.ZodNumber>;
385
+ }, "strip", z.ZodTypeAny, {
386
+ type: "usage";
387
+ max_uses: number;
388
+ current_uses?: number | undefined;
389
+ window?: number | undefined;
390
+ }, {
391
+ type: "usage";
392
+ max_uses: number;
393
+ current_uses?: number | undefined;
394
+ window?: number | undefined;
395
+ }>, z.ZodObject<{
396
+ type: z.ZodLiteral<"budget">;
397
+ max_amount: z.ZodNumber;
398
+ current_amount: z.ZodOptional<z.ZodNumber>;
399
+ window: z.ZodOptional<z.ZodNumber>;
400
+ currency: z.ZodString;
401
+ }, "strip", z.ZodTypeAny, {
402
+ currency: string;
403
+ type: "budget";
404
+ max_amount: number;
405
+ window?: number | undefined;
406
+ current_amount?: number | undefined;
407
+ }, {
408
+ currency: string;
409
+ type: "budget";
410
+ max_amount: number;
411
+ window?: number | undefined;
412
+ current_amount?: number | undefined;
413
+ }>, z.ZodObject<{
414
+ type: z.ZodLiteral<"combined">;
415
+ temporal: z.ZodOptional<z.ZodObject<{
416
+ valid_from: z.ZodOptional<z.ZodNumber>;
417
+ valid_until: z.ZodOptional<z.ZodNumber>;
418
+ duration: z.ZodOptional<z.ZodNumber>;
419
+ }, "strip", z.ZodTypeAny, {
420
+ valid_from?: number | undefined;
421
+ valid_until?: number | undefined;
422
+ duration?: number | undefined;
423
+ }, {
424
+ valid_from?: number | undefined;
425
+ valid_until?: number | undefined;
426
+ duration?: number | undefined;
427
+ }>>;
428
+ usage: z.ZodOptional<z.ZodObject<{
429
+ max_uses: z.ZodNumber;
430
+ current_uses: z.ZodOptional<z.ZodNumber>;
431
+ window: z.ZodOptional<z.ZodNumber>;
432
+ }, "strip", z.ZodTypeAny, {
433
+ max_uses: number;
434
+ current_uses?: number | undefined;
435
+ window?: number | undefined;
436
+ }, {
437
+ max_uses: number;
438
+ current_uses?: number | undefined;
439
+ window?: number | undefined;
440
+ }>>;
441
+ budget: z.ZodOptional<z.ZodObject<{
442
+ max_amount: z.ZodNumber;
443
+ current_amount: z.ZodOptional<z.ZodNumber>;
444
+ window: z.ZodOptional<z.ZodNumber>;
445
+ currency: z.ZodString;
446
+ }, "strip", z.ZodTypeAny, {
447
+ currency: string;
448
+ max_amount: number;
449
+ window?: number | undefined;
450
+ current_amount?: number | undefined;
451
+ }, {
452
+ currency: string;
453
+ max_amount: number;
454
+ window?: number | undefined;
455
+ current_amount?: number | undefined;
456
+ }>>;
457
+ }, "strip", z.ZodTypeAny, {
458
+ type: "combined";
459
+ temporal?: {
460
+ valid_from?: number | undefined;
461
+ valid_until?: number | undefined;
462
+ duration?: number | undefined;
463
+ } | undefined;
464
+ usage?: {
465
+ max_uses: number;
466
+ current_uses?: number | undefined;
467
+ window?: number | undefined;
468
+ } | undefined;
469
+ budget?: {
470
+ currency: string;
471
+ max_amount: number;
472
+ window?: number | undefined;
473
+ current_amount?: number | undefined;
474
+ } | undefined;
475
+ }, {
476
+ type: "combined";
477
+ temporal?: {
478
+ valid_from?: number | undefined;
479
+ valid_until?: number | undefined;
480
+ duration?: number | undefined;
481
+ } | undefined;
482
+ usage?: {
483
+ max_uses: number;
484
+ current_uses?: number | undefined;
485
+ window?: number | undefined;
486
+ } | undefined;
487
+ budget?: {
488
+ currency: string;
489
+ max_amount: number;
490
+ window?: number | undefined;
491
+ current_amount?: number | undefined;
492
+ } | undefined;
493
+ }>]>;
494
+ scope: z.ZodOptional<z.ZodString>;
495
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
496
+ }, "strip", z.ZodTypeAny, {
497
+ mandate: {
498
+ type: "temporal";
499
+ valid_from?: number | undefined;
500
+ valid_until?: number | undefined;
501
+ duration?: number | undefined;
502
+ } | {
503
+ type: "usage";
504
+ max_uses: number;
505
+ current_uses?: number | undefined;
506
+ window?: number | undefined;
507
+ } | {
508
+ currency: string;
509
+ type: "budget";
510
+ max_amount: number;
511
+ window?: number | undefined;
512
+ current_amount?: number | undefined;
513
+ } | {
514
+ type: "combined";
515
+ temporal?: {
516
+ valid_from?: number | undefined;
517
+ valid_until?: number | undefined;
518
+ duration?: number | undefined;
519
+ } | undefined;
520
+ usage?: {
521
+ max_uses: number;
522
+ current_uses?: number | undefined;
523
+ window?: number | undefined;
524
+ } | undefined;
525
+ budget?: {
526
+ currency: string;
527
+ max_amount: number;
528
+ window?: number | undefined;
529
+ current_amount?: number | undefined;
530
+ } | undefined;
531
+ };
532
+ scope?: string | undefined;
533
+ metadata?: Record<string, unknown> | undefined;
534
+ }, {
535
+ mandate: {
536
+ type: "temporal";
537
+ valid_from?: number | undefined;
538
+ valid_until?: number | undefined;
539
+ duration?: number | undefined;
540
+ } | {
541
+ type: "usage";
542
+ max_uses: number;
543
+ current_uses?: number | undefined;
544
+ window?: number | undefined;
545
+ } | {
546
+ currency: string;
547
+ type: "budget";
548
+ max_amount: number;
549
+ window?: number | undefined;
550
+ current_amount?: number | undefined;
551
+ } | {
552
+ type: "combined";
553
+ temporal?: {
554
+ valid_from?: number | undefined;
555
+ valid_until?: number | undefined;
556
+ duration?: number | undefined;
557
+ } | undefined;
558
+ usage?: {
559
+ max_uses: number;
560
+ current_uses?: number | undefined;
561
+ window?: number | undefined;
562
+ } | undefined;
563
+ budget?: {
564
+ currency: string;
565
+ max_amount: number;
566
+ window?: number | undefined;
567
+ current_amount?: number | undefined;
568
+ } | undefined;
569
+ };
570
+ scope?: string | undefined;
571
+ metadata?: Record<string, unknown> | undefined;
572
+ }>;
573
+ /**
574
+ * Control state schema
575
+ */
576
+ export declare const ControlStateSchema: z.ZodObject<{
577
+ receipt_id: z.ZodString;
578
+ constraint: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
579
+ type: z.ZodLiteral<"temporal">;
580
+ valid_from: z.ZodOptional<z.ZodNumber>;
581
+ valid_until: z.ZodOptional<z.ZodNumber>;
582
+ duration: z.ZodOptional<z.ZodNumber>;
583
+ }, "strip", z.ZodTypeAny, {
584
+ type: "temporal";
585
+ valid_from?: number | undefined;
586
+ valid_until?: number | undefined;
587
+ duration?: number | undefined;
588
+ }, {
589
+ type: "temporal";
590
+ valid_from?: number | undefined;
591
+ valid_until?: number | undefined;
592
+ duration?: number | undefined;
593
+ }>, z.ZodObject<{
594
+ type: z.ZodLiteral<"usage">;
595
+ max_uses: z.ZodNumber;
596
+ current_uses: z.ZodOptional<z.ZodNumber>;
597
+ window: z.ZodOptional<z.ZodNumber>;
598
+ }, "strip", z.ZodTypeAny, {
599
+ type: "usage";
600
+ max_uses: number;
601
+ current_uses?: number | undefined;
602
+ window?: number | undefined;
603
+ }, {
604
+ type: "usage";
605
+ max_uses: number;
606
+ current_uses?: number | undefined;
607
+ window?: number | undefined;
608
+ }>, z.ZodObject<{
609
+ type: z.ZodLiteral<"budget">;
610
+ max_amount: z.ZodNumber;
611
+ current_amount: z.ZodOptional<z.ZodNumber>;
612
+ window: z.ZodOptional<z.ZodNumber>;
613
+ currency: z.ZodString;
614
+ }, "strip", z.ZodTypeAny, {
615
+ currency: string;
616
+ type: "budget";
617
+ max_amount: number;
618
+ window?: number | undefined;
619
+ current_amount?: number | undefined;
620
+ }, {
621
+ currency: string;
622
+ type: "budget";
623
+ max_amount: number;
624
+ window?: number | undefined;
625
+ current_amount?: number | undefined;
626
+ }>, z.ZodObject<{
627
+ type: z.ZodLiteral<"combined">;
628
+ temporal: z.ZodOptional<z.ZodObject<{
629
+ valid_from: z.ZodOptional<z.ZodNumber>;
630
+ valid_until: z.ZodOptional<z.ZodNumber>;
631
+ duration: z.ZodOptional<z.ZodNumber>;
632
+ }, "strip", z.ZodTypeAny, {
633
+ valid_from?: number | undefined;
634
+ valid_until?: number | undefined;
635
+ duration?: number | undefined;
636
+ }, {
637
+ valid_from?: number | undefined;
638
+ valid_until?: number | undefined;
639
+ duration?: number | undefined;
640
+ }>>;
641
+ usage: z.ZodOptional<z.ZodObject<{
642
+ max_uses: z.ZodNumber;
643
+ current_uses: z.ZodOptional<z.ZodNumber>;
644
+ window: z.ZodOptional<z.ZodNumber>;
645
+ }, "strip", z.ZodTypeAny, {
646
+ max_uses: number;
647
+ current_uses?: number | undefined;
648
+ window?: number | undefined;
649
+ }, {
650
+ max_uses: number;
651
+ current_uses?: number | undefined;
652
+ window?: number | undefined;
653
+ }>>;
654
+ budget: z.ZodOptional<z.ZodObject<{
655
+ max_amount: z.ZodNumber;
656
+ current_amount: z.ZodOptional<z.ZodNumber>;
657
+ window: z.ZodOptional<z.ZodNumber>;
658
+ currency: z.ZodString;
659
+ }, "strip", z.ZodTypeAny, {
660
+ currency: string;
661
+ max_amount: number;
662
+ window?: number | undefined;
663
+ current_amount?: number | undefined;
664
+ }, {
665
+ currency: string;
666
+ max_amount: number;
667
+ window?: number | undefined;
668
+ current_amount?: number | undefined;
669
+ }>>;
670
+ }, "strip", z.ZodTypeAny, {
671
+ type: "combined";
672
+ temporal?: {
673
+ valid_from?: number | undefined;
674
+ valid_until?: number | undefined;
675
+ duration?: number | undefined;
676
+ } | undefined;
677
+ usage?: {
678
+ max_uses: number;
679
+ current_uses?: number | undefined;
680
+ window?: number | undefined;
681
+ } | undefined;
682
+ budget?: {
683
+ currency: string;
684
+ max_amount: number;
685
+ window?: number | undefined;
686
+ current_amount?: number | undefined;
687
+ } | undefined;
688
+ }, {
689
+ type: "combined";
690
+ temporal?: {
691
+ valid_from?: number | undefined;
692
+ valid_until?: number | undefined;
693
+ duration?: number | undefined;
694
+ } | undefined;
695
+ usage?: {
696
+ max_uses: number;
697
+ current_uses?: number | undefined;
698
+ window?: number | undefined;
699
+ } | undefined;
700
+ budget?: {
701
+ currency: string;
702
+ max_amount: number;
703
+ window?: number | undefined;
704
+ current_amount?: number | undefined;
705
+ } | undefined;
706
+ }>]>;
707
+ usage_count: z.ZodOptional<z.ZodNumber>;
708
+ spent_amount: z.ZodOptional<z.ZodNumber>;
709
+ first_use: z.ZodOptional<z.ZodNumber>;
710
+ last_use: z.ZodOptional<z.ZodNumber>;
711
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
712
+ }, "strip", z.ZodTypeAny, {
713
+ receipt_id: string;
714
+ constraint: {
715
+ type: "temporal";
716
+ valid_from?: number | undefined;
717
+ valid_until?: number | undefined;
718
+ duration?: number | undefined;
719
+ } | {
720
+ type: "usage";
721
+ max_uses: number;
722
+ current_uses?: number | undefined;
723
+ window?: number | undefined;
724
+ } | {
725
+ currency: string;
726
+ type: "budget";
727
+ max_amount: number;
728
+ window?: number | undefined;
729
+ current_amount?: number | undefined;
730
+ } | {
731
+ type: "combined";
732
+ temporal?: {
733
+ valid_from?: number | undefined;
734
+ valid_until?: number | undefined;
735
+ duration?: number | undefined;
736
+ } | undefined;
737
+ usage?: {
738
+ max_uses: number;
739
+ current_uses?: number | undefined;
740
+ window?: number | undefined;
741
+ } | undefined;
742
+ budget?: {
743
+ currency: string;
744
+ max_amount: number;
745
+ window?: number | undefined;
746
+ current_amount?: number | undefined;
747
+ } | undefined;
748
+ };
749
+ first_use?: number | undefined;
750
+ metadata?: Record<string, unknown> | undefined;
751
+ usage_count?: number | undefined;
752
+ spent_amount?: number | undefined;
753
+ last_use?: number | undefined;
754
+ }, {
755
+ receipt_id: string;
756
+ constraint: {
757
+ type: "temporal";
758
+ valid_from?: number | undefined;
759
+ valid_until?: number | undefined;
760
+ duration?: number | undefined;
761
+ } | {
762
+ type: "usage";
763
+ max_uses: number;
764
+ current_uses?: number | undefined;
765
+ window?: number | undefined;
766
+ } | {
767
+ currency: string;
768
+ type: "budget";
769
+ max_amount: number;
770
+ window?: number | undefined;
771
+ current_amount?: number | undefined;
772
+ } | {
773
+ type: "combined";
774
+ temporal?: {
775
+ valid_from?: number | undefined;
776
+ valid_until?: number | undefined;
777
+ duration?: number | undefined;
778
+ } | undefined;
779
+ usage?: {
780
+ max_uses: number;
781
+ current_uses?: number | undefined;
782
+ window?: number | undefined;
783
+ } | undefined;
784
+ budget?: {
785
+ currency: string;
786
+ max_amount: number;
787
+ window?: number | undefined;
788
+ current_amount?: number | undefined;
789
+ } | undefined;
790
+ };
791
+ first_use?: number | undefined;
792
+ metadata?: Record<string, unknown> | undefined;
793
+ usage_count?: number | undefined;
794
+ spent_amount?: number | undefined;
795
+ last_use?: number | undefined;
796
+ }>;
797
+ export { ControlPurposeSchema, ControlLicensingModeSchema, ControlDecisionSchema, ControlStepSchema, ControlBlockSchema as ChainControlBlockSchema, } from '@peac/schema';
798
+ //# sourceMappingURL=validators.d.ts.map