@kernhq/module-hr 0.2.0 → 0.3.0

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 (56) hide show
  1. package/dist/contract/approvals.d.ts +281 -0
  2. package/dist/contract/approvals.d.ts.map +1 -0
  3. package/dist/contract/approvals.js +127 -0
  4. package/dist/contract/approvals.js.map +1 -0
  5. package/dist/contract/capabilities.d.ts +1 -1
  6. package/dist/contract/capabilities.d.ts.map +1 -1
  7. package/dist/contract/capabilities.js +44 -0
  8. package/dist/contract/capabilities.js.map +1 -1
  9. package/dist/contract/events.d.ts +42 -0
  10. package/dist/contract/events.d.ts.map +1 -1
  11. package/dist/contract/events.js +42 -0
  12. package/dist/contract/events.js.map +1 -1
  13. package/dist/contract/index.d.ts +2 -0
  14. package/dist/contract/index.d.ts.map +1 -1
  15. package/dist/contract/index.js +2 -0
  16. package/dist/contract/index.js.map +1 -1
  17. package/dist/contract/leave.d.ts +168 -0
  18. package/dist/contract/leave.d.ts.map +1 -0
  19. package/dist/contract/leave.js +150 -0
  20. package/dist/contract/leave.js.map +1 -0
  21. package/dist/contract/permissions.d.ts +57 -0
  22. package/dist/contract/permissions.d.ts.map +1 -1
  23. package/dist/contract/permissions.js +69 -0
  24. package/dist/contract/permissions.js.map +1 -1
  25. package/dist/contract/router.d.ts +1446 -0
  26. package/dist/contract/router.d.ts.map +1 -1
  27. package/dist/contract/router.js +235 -0
  28. package/dist/contract/router.js.map +1 -1
  29. package/dist/server/router.d.ts +1646 -58
  30. package/dist/server/router.d.ts.map +1 -1
  31. package/dist/server/router.js +812 -2
  32. package/dist/server/router.js.map +1 -1
  33. package/dist/server/schema.d.ts +2084 -1
  34. package/dist/server/schema.d.ts.map +1 -1
  35. package/dist/server/schema.js +209 -0
  36. package/dist/server/schema.js.map +1 -1
  37. package/dist/server/services/approvals.d.ts +163 -0
  38. package/dist/server/services/approvals.d.ts.map +1 -0
  39. package/dist/server/services/approvals.js +325 -0
  40. package/dist/server/services/approvals.js.map +1 -0
  41. package/dist/server/services/ledger.d.ts +135 -0
  42. package/dist/server/services/ledger.d.ts.map +1 -0
  43. package/dist/server/services/ledger.js +178 -0
  44. package/dist/server/services/ledger.js.map +1 -0
  45. package/dist/server/services/people.d.ts +3 -3
  46. package/migrations/0002_leave.sql +237 -0
  47. package/migrations/meta/0002_snapshot.json +3009 -0
  48. package/migrations/meta/_journal.json +7 -0
  49. package/package.json +1 -1
  50. package/src/contract/approvals.ts +149 -0
  51. package/src/contract/capabilities.ts +44 -0
  52. package/src/contract/events.ts +57 -0
  53. package/src/contract/index.ts +2 -0
  54. package/src/contract/leave.ts +171 -0
  55. package/src/contract/permissions.ts +71 -0
  56. package/src/contract/router.ts +285 -0
@@ -2492,6 +2492,1452 @@ export declare const hrContract: {
2492
2492
  };
2493
2493
  }>, Record<never, never>>;
2494
2494
  };
2495
+ leave: {
2496
+ types: {
2497
+ list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2498
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2499
+ includeArchived: z.ZodDefault<z.ZodBoolean>;
2500
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
2501
+ key: z.ZodString;
2502
+ name: z.ZodString;
2503
+ paid: z.ZodBoolean;
2504
+ unit: z.ZodEnum<{
2505
+ half_day: "half_day";
2506
+ day: "day";
2507
+ hour: "hour";
2508
+ }>;
2509
+ color: z.ZodNullable<z.ZodString>;
2510
+ icon: z.ZodNullable<z.ZodString>;
2511
+ requiresDocumentAfterDays: z.ZodNullable<z.ZodNumber>;
2512
+ countsWorkingDaysOnly: z.ZodBoolean;
2513
+ allowNegative: z.ZodBoolean;
2514
+ maxNegativeMinutes: z.ZodNumber;
2515
+ order: z.ZodNumber;
2516
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
2517
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2518
+ id: z.ZodUUID;
2519
+ }, z.core.$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2520
+ BAD_REQUEST: {
2521
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2522
+ };
2523
+ UNAUTHORIZED: {};
2524
+ FORBIDDEN: {
2525
+ data: z.ZodOptional<z.ZodObject<{
2526
+ permission: z.ZodOptional<z.ZodString>;
2527
+ }, z.core.$strip>>;
2528
+ };
2529
+ NOT_FOUND: {};
2530
+ CONFLICT: {
2531
+ data: z.ZodOptional<z.ZodObject<{
2532
+ reason: z.ZodOptional<z.ZodString>;
2533
+ }, z.core.$strip>>;
2534
+ };
2535
+ RATE_LIMITED: {};
2536
+ MODULE_DISABLED: {
2537
+ data: z.ZodObject<{
2538
+ module: z.ZodString;
2539
+ }, z.core.$strip>;
2540
+ };
2541
+ }>, Record<never, never>>;
2542
+ create: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2543
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2544
+ key: z.ZodString;
2545
+ name: z.ZodString;
2546
+ paid: z.ZodDefault<z.ZodBoolean>;
2547
+ unit: z.ZodDefault<z.ZodEnum<{
2548
+ half_day: "half_day";
2549
+ day: "day";
2550
+ hour: "hour";
2551
+ }>>;
2552
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2553
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2554
+ requiresDocumentAfterDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2555
+ countsWorkingDaysOnly: z.ZodDefault<z.ZodBoolean>;
2556
+ allowNegative: z.ZodDefault<z.ZodBoolean>;
2557
+ maxNegativeMinutes: z.ZodDefault<z.ZodNumber>;
2558
+ }, z.core.$strip>, z.ZodObject<{
2559
+ key: z.ZodString;
2560
+ name: z.ZodString;
2561
+ paid: z.ZodBoolean;
2562
+ unit: z.ZodEnum<{
2563
+ half_day: "half_day";
2564
+ day: "day";
2565
+ hour: "hour";
2566
+ }>;
2567
+ color: z.ZodNullable<z.ZodString>;
2568
+ icon: z.ZodNullable<z.ZodString>;
2569
+ requiresDocumentAfterDays: z.ZodNullable<z.ZodNumber>;
2570
+ countsWorkingDaysOnly: z.ZodBoolean;
2571
+ allowNegative: z.ZodBoolean;
2572
+ maxNegativeMinutes: z.ZodNumber;
2573
+ order: z.ZodNumber;
2574
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
2575
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2576
+ id: z.ZodUUID;
2577
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2578
+ BAD_REQUEST: {
2579
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2580
+ };
2581
+ UNAUTHORIZED: {};
2582
+ FORBIDDEN: {
2583
+ data: z.ZodOptional<z.ZodObject<{
2584
+ permission: z.ZodOptional<z.ZodString>;
2585
+ }, z.core.$strip>>;
2586
+ };
2587
+ NOT_FOUND: {};
2588
+ CONFLICT: {
2589
+ data: z.ZodOptional<z.ZodObject<{
2590
+ reason: z.ZodOptional<z.ZodString>;
2591
+ }, z.core.$strip>>;
2592
+ };
2593
+ RATE_LIMITED: {};
2594
+ MODULE_DISABLED: {
2595
+ data: z.ZodObject<{
2596
+ module: z.ZodString;
2597
+ }, z.core.$strip>;
2598
+ };
2599
+ }>, Record<never, never>>;
2600
+ update: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2601
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2602
+ leaveTypeId: z.ZodUUID;
2603
+ name: z.ZodOptional<z.ZodString>;
2604
+ paid: z.ZodOptional<z.ZodBoolean>;
2605
+ color: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2606
+ icon: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2607
+ requiresDocumentAfterDays: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
2608
+ countsWorkingDaysOnly: z.ZodOptional<z.ZodBoolean>;
2609
+ allowNegative: z.ZodOptional<z.ZodBoolean>;
2610
+ maxNegativeMinutes: z.ZodOptional<z.ZodNumber>;
2611
+ order: z.ZodOptional<z.ZodNumber>;
2612
+ }, z.core.$strip>, z.ZodObject<{
2613
+ key: z.ZodString;
2614
+ name: z.ZodString;
2615
+ paid: z.ZodBoolean;
2616
+ unit: z.ZodEnum<{
2617
+ half_day: "half_day";
2618
+ day: "day";
2619
+ hour: "hour";
2620
+ }>;
2621
+ color: z.ZodNullable<z.ZodString>;
2622
+ icon: z.ZodNullable<z.ZodString>;
2623
+ requiresDocumentAfterDays: z.ZodNullable<z.ZodNumber>;
2624
+ countsWorkingDaysOnly: z.ZodBoolean;
2625
+ allowNegative: z.ZodBoolean;
2626
+ maxNegativeMinutes: z.ZodNumber;
2627
+ order: z.ZodNumber;
2628
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
2629
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2630
+ id: z.ZodUUID;
2631
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2632
+ BAD_REQUEST: {
2633
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2634
+ };
2635
+ UNAUTHORIZED: {};
2636
+ FORBIDDEN: {
2637
+ data: z.ZodOptional<z.ZodObject<{
2638
+ permission: z.ZodOptional<z.ZodString>;
2639
+ }, z.core.$strip>>;
2640
+ };
2641
+ NOT_FOUND: {};
2642
+ CONFLICT: {
2643
+ data: z.ZodOptional<z.ZodObject<{
2644
+ reason: z.ZodOptional<z.ZodString>;
2645
+ }, z.core.$strip>>;
2646
+ };
2647
+ RATE_LIMITED: {};
2648
+ MODULE_DISABLED: {
2649
+ data: z.ZodObject<{
2650
+ module: z.ZodString;
2651
+ }, z.core.$strip>;
2652
+ };
2653
+ }>, Record<never, never>>;
2654
+ archive: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2655
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2656
+ leaveTypeId: z.ZodUUID;
2657
+ }, z.core.$strip>, z.ZodObject<{
2658
+ ok: z.ZodLiteral<true>;
2659
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2660
+ BAD_REQUEST: {
2661
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2662
+ };
2663
+ UNAUTHORIZED: {};
2664
+ FORBIDDEN: {
2665
+ data: z.ZodOptional<z.ZodObject<{
2666
+ permission: z.ZodOptional<z.ZodString>;
2667
+ }, z.core.$strip>>;
2668
+ };
2669
+ NOT_FOUND: {};
2670
+ CONFLICT: {
2671
+ data: z.ZodOptional<z.ZodObject<{
2672
+ reason: z.ZodOptional<z.ZodString>;
2673
+ }, z.core.$strip>>;
2674
+ };
2675
+ RATE_LIMITED: {};
2676
+ MODULE_DISABLED: {
2677
+ data: z.ZodObject<{
2678
+ module: z.ZodString;
2679
+ }, z.core.$strip>;
2680
+ };
2681
+ }>, Record<never, never>>;
2682
+ };
2683
+ /** Everything a person has, per type. Defaults to the caller when `personId` is omitted. */
2684
+ balance: {
2685
+ get: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2686
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2687
+ personId: z.ZodOptional<z.ZodUUID>;
2688
+ periodYear: z.ZodOptional<z.ZodNumber>;
2689
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
2690
+ personId: z.ZodUUID;
2691
+ leaveTypeId: z.ZodUUID;
2692
+ leaveTypeName: z.ZodString;
2693
+ unit: z.ZodEnum<{
2694
+ half_day: "half_day";
2695
+ day: "day";
2696
+ hour: "hour";
2697
+ }>;
2698
+ periodYear: z.ZodNumber;
2699
+ balanceMinutes: z.ZodNumber;
2700
+ bookedMinutes: z.ZodNumber;
2701
+ pendingMinutes: z.ZodNumber;
2702
+ availableMinutes: z.ZodNumber;
2703
+ balance: z.ZodNumber;
2704
+ available: z.ZodNumber;
2705
+ }, z.core.$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2706
+ BAD_REQUEST: {
2707
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2708
+ };
2709
+ UNAUTHORIZED: {};
2710
+ FORBIDDEN: {
2711
+ data: z.ZodOptional<z.ZodObject<{
2712
+ permission: z.ZodOptional<z.ZodString>;
2713
+ }, z.core.$strip>>;
2714
+ };
2715
+ NOT_FOUND: {};
2716
+ CONFLICT: {
2717
+ data: z.ZodOptional<z.ZodObject<{
2718
+ reason: z.ZodOptional<z.ZodString>;
2719
+ }, z.core.$strip>>;
2720
+ };
2721
+ RATE_LIMITED: {};
2722
+ MODULE_DISABLED: {
2723
+ data: z.ZodObject<{
2724
+ module: z.ZodString;
2725
+ }, z.core.$strip>;
2726
+ };
2727
+ }>, Record<never, never>>;
2728
+ };
2729
+ /**
2730
+ * The movements behind a balance.
2731
+ *
2732
+ * The reason the ledger is append-only: when somebody disputes a number, this is the answer —
2733
+ * a list of what happened, in order, that nobody edited.
2734
+ */
2735
+ ledger: {
2736
+ list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2737
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2738
+ cursor: z.ZodOptional<z.ZodString>;
2739
+ limit: z.ZodDefault<z.ZodNumber>;
2740
+ personId: z.ZodUUID;
2741
+ leaveTypeId: z.ZodOptional<z.ZodUUID>;
2742
+ periodYear: z.ZodOptional<z.ZodNumber>;
2743
+ }, z.core.$strip>, z.ZodObject<{
2744
+ items: z.ZodArray<z.ZodObject<{
2745
+ personId: z.ZodUUID;
2746
+ leaveTypeId: z.ZodUUID;
2747
+ kind: z.ZodEnum<{
2748
+ grant: "grant";
2749
+ accrual: "accrual";
2750
+ consumption: "consumption";
2751
+ reversal: "reversal";
2752
+ expiry: "expiry";
2753
+ adjustment: "adjustment";
2754
+ carry_in: "carry_in";
2755
+ carry_out: "carry_out";
2756
+ encashment: "encashment";
2757
+ }>;
2758
+ amountMinutes: z.ZodNumber;
2759
+ effectiveOn: z.ZodISODate;
2760
+ periodYear: z.ZodNumber;
2761
+ requestId: z.ZodNullable<z.ZodUUID>;
2762
+ reversesEntryId: z.ZodNullable<z.ZodUUID>;
2763
+ policyHash: z.ZodNullable<z.ZodString>;
2764
+ reason: z.ZodNullable<z.ZodString>;
2765
+ createdBy: z.ZodNullable<z.ZodUUID>;
2766
+ createdAt: z.ZodISODateTime;
2767
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2768
+ id: z.ZodUUID;
2769
+ }, z.core.$strip>>;
2770
+ nextCursor: z.ZodNullable<z.ZodString>;
2771
+ total: z.ZodOptional<z.ZodNumber>;
2772
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2773
+ BAD_REQUEST: {
2774
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2775
+ };
2776
+ UNAUTHORIZED: {};
2777
+ FORBIDDEN: {
2778
+ data: z.ZodOptional<z.ZodObject<{
2779
+ permission: z.ZodOptional<z.ZodString>;
2780
+ }, z.core.$strip>>;
2781
+ };
2782
+ NOT_FOUND: {};
2783
+ CONFLICT: {
2784
+ data: z.ZodOptional<z.ZodObject<{
2785
+ reason: z.ZodOptional<z.ZodString>;
2786
+ }, z.core.$strip>>;
2787
+ };
2788
+ RATE_LIMITED: {};
2789
+ MODULE_DISABLED: {
2790
+ data: z.ZodObject<{
2791
+ module: z.ZodString;
2792
+ }, z.core.$strip>;
2793
+ };
2794
+ }>, Record<never, never>>;
2795
+ };
2796
+ /** A manual movement. Always carries a reason — an unexplained balance change is the thing HR gets asked about. */
2797
+ adjust: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2798
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2799
+ personId: z.ZodUUID;
2800
+ leaveTypeId: z.ZodUUID;
2801
+ kind: z.ZodDefault<z.ZodEnum<{
2802
+ grant: "grant";
2803
+ accrual: "accrual";
2804
+ consumption: "consumption";
2805
+ reversal: "reversal";
2806
+ expiry: "expiry";
2807
+ adjustment: "adjustment";
2808
+ carry_in: "carry_in";
2809
+ carry_out: "carry_out";
2810
+ encashment: "encashment";
2811
+ }>>;
2812
+ amountMinutes: z.ZodNumber;
2813
+ effectiveOn: z.ZodISODate;
2814
+ reason: z.ZodString;
2815
+ }, z.core.$strip>, z.ZodObject<{
2816
+ personId: z.ZodUUID;
2817
+ leaveTypeId: z.ZodUUID;
2818
+ kind: z.ZodEnum<{
2819
+ grant: "grant";
2820
+ accrual: "accrual";
2821
+ consumption: "consumption";
2822
+ reversal: "reversal";
2823
+ expiry: "expiry";
2824
+ adjustment: "adjustment";
2825
+ carry_in: "carry_in";
2826
+ carry_out: "carry_out";
2827
+ encashment: "encashment";
2828
+ }>;
2829
+ amountMinutes: z.ZodNumber;
2830
+ effectiveOn: z.ZodISODate;
2831
+ periodYear: z.ZodNumber;
2832
+ requestId: z.ZodNullable<z.ZodUUID>;
2833
+ reversesEntryId: z.ZodNullable<z.ZodUUID>;
2834
+ policyHash: z.ZodNullable<z.ZodString>;
2835
+ reason: z.ZodNullable<z.ZodString>;
2836
+ createdBy: z.ZodNullable<z.ZodUUID>;
2837
+ createdAt: z.ZodISODateTime;
2838
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2839
+ id: z.ZodUUID;
2840
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2841
+ BAD_REQUEST: {
2842
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2843
+ };
2844
+ UNAUTHORIZED: {};
2845
+ FORBIDDEN: {
2846
+ data: z.ZodOptional<z.ZodObject<{
2847
+ permission: z.ZodOptional<z.ZodString>;
2848
+ }, z.core.$strip>>;
2849
+ };
2850
+ NOT_FOUND: {};
2851
+ CONFLICT: {
2852
+ data: z.ZodOptional<z.ZodObject<{
2853
+ reason: z.ZodOptional<z.ZodString>;
2854
+ }, z.core.$strip>>;
2855
+ };
2856
+ RATE_LIMITED: {};
2857
+ MODULE_DISABLED: {
2858
+ data: z.ZodObject<{
2859
+ module: z.ZodString;
2860
+ }, z.core.$strip>;
2861
+ };
2862
+ }>, Record<never, never>>;
2863
+ requests: {
2864
+ list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2865
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2866
+ personId: z.ZodOptional<z.ZodUUID>;
2867
+ officeId: z.ZodOptional<z.ZodUUID>;
2868
+ status: z.ZodOptional<z.ZodArray<z.ZodEnum<{
2869
+ pending: "pending";
2870
+ approved: "approved";
2871
+ rejected: "rejected";
2872
+ cancelled: "cancelled";
2873
+ draft: "draft";
2874
+ withdrawn: "withdrawn";
2875
+ }>>>;
2876
+ from: z.ZodOptional<z.ZodISODate>;
2877
+ to: z.ZodOptional<z.ZodISODate>;
2878
+ cursor: z.ZodOptional<z.ZodString>;
2879
+ limit: z.ZodDefault<z.ZodNumber>;
2880
+ }, z.core.$strip>, z.ZodObject<{
2881
+ items: z.ZodArray<z.ZodObject<{
2882
+ personId: z.ZodUUID;
2883
+ leaveTypeId: z.ZodUUID;
2884
+ startsOn: z.ZodISODate;
2885
+ endsOn: z.ZodISODate;
2886
+ startPart: z.ZodEnum<{
2887
+ full: "full";
2888
+ morning: "morning";
2889
+ afternoon: "afternoon";
2890
+ }>;
2891
+ endPart: z.ZodEnum<{
2892
+ full: "full";
2893
+ morning: "morning";
2894
+ afternoon: "afternoon";
2895
+ }>;
2896
+ hours: z.ZodNullable<z.ZodNumber>;
2897
+ workingDays: z.ZodNumber;
2898
+ minutes: z.ZodNumber;
2899
+ status: z.ZodEnum<{
2900
+ pending: "pending";
2901
+ approved: "approved";
2902
+ rejected: "rejected";
2903
+ cancelled: "cancelled";
2904
+ draft: "draft";
2905
+ withdrawn: "withdrawn";
2906
+ }>;
2907
+ reason: z.ZodNullable<z.ZodString>;
2908
+ documentFileId: z.ZodNullable<z.ZodUUID>;
2909
+ approvalRequestId: z.ZodNullable<z.ZodUUID>;
2910
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
2911
+ createdAt: z.ZodISODateTime;
2912
+ updatedAt: z.ZodISODateTime;
2913
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2914
+ id: z.ZodUUID;
2915
+ }, z.core.$strip>>;
2916
+ nextCursor: z.ZodNullable<z.ZodString>;
2917
+ total: z.ZodOptional<z.ZodNumber>;
2918
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2919
+ BAD_REQUEST: {
2920
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2921
+ };
2922
+ UNAUTHORIZED: {};
2923
+ FORBIDDEN: {
2924
+ data: z.ZodOptional<z.ZodObject<{
2925
+ permission: z.ZodOptional<z.ZodString>;
2926
+ }, z.core.$strip>>;
2927
+ };
2928
+ NOT_FOUND: {};
2929
+ CONFLICT: {
2930
+ data: z.ZodOptional<z.ZodObject<{
2931
+ reason: z.ZodOptional<z.ZodString>;
2932
+ }, z.core.$strip>>;
2933
+ };
2934
+ RATE_LIMITED: {};
2935
+ MODULE_DISABLED: {
2936
+ data: z.ZodObject<{
2937
+ module: z.ZodString;
2938
+ }, z.core.$strip>;
2939
+ };
2940
+ }>, Record<never, never>>;
2941
+ get: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2942
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2943
+ requestId: z.ZodUUID;
2944
+ }, z.core.$strip>, z.ZodObject<{
2945
+ personId: z.ZodUUID;
2946
+ leaveTypeId: z.ZodUUID;
2947
+ startsOn: z.ZodISODate;
2948
+ endsOn: z.ZodISODate;
2949
+ startPart: z.ZodEnum<{
2950
+ full: "full";
2951
+ morning: "morning";
2952
+ afternoon: "afternoon";
2953
+ }>;
2954
+ endPart: z.ZodEnum<{
2955
+ full: "full";
2956
+ morning: "morning";
2957
+ afternoon: "afternoon";
2958
+ }>;
2959
+ hours: z.ZodNullable<z.ZodNumber>;
2960
+ workingDays: z.ZodNumber;
2961
+ minutes: z.ZodNumber;
2962
+ status: z.ZodEnum<{
2963
+ pending: "pending";
2964
+ approved: "approved";
2965
+ rejected: "rejected";
2966
+ cancelled: "cancelled";
2967
+ draft: "draft";
2968
+ withdrawn: "withdrawn";
2969
+ }>;
2970
+ reason: z.ZodNullable<z.ZodString>;
2971
+ documentFileId: z.ZodNullable<z.ZodUUID>;
2972
+ approvalRequestId: z.ZodNullable<z.ZodUUID>;
2973
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
2974
+ createdAt: z.ZodISODateTime;
2975
+ updatedAt: z.ZodISODateTime;
2976
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
2977
+ id: z.ZodUUID;
2978
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
2979
+ BAD_REQUEST: {
2980
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
2981
+ };
2982
+ UNAUTHORIZED: {};
2983
+ FORBIDDEN: {
2984
+ data: z.ZodOptional<z.ZodObject<{
2985
+ permission: z.ZodOptional<z.ZodString>;
2986
+ }, z.core.$strip>>;
2987
+ };
2988
+ NOT_FOUND: {};
2989
+ CONFLICT: {
2990
+ data: z.ZodOptional<z.ZodObject<{
2991
+ reason: z.ZodOptional<z.ZodString>;
2992
+ }, z.core.$strip>>;
2993
+ };
2994
+ RATE_LIMITED: {};
2995
+ MODULE_DISABLED: {
2996
+ data: z.ZodObject<{
2997
+ module: z.ZodString;
2998
+ }, z.core.$strip>;
2999
+ };
3000
+ }>, Record<never, never>>;
3001
+ /** What it would cost and whether it would be refused — before anybody submits. */
3002
+ simulate: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3003
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3004
+ personId: z.ZodOptional<z.ZodUUID>;
3005
+ leaveTypeId: z.ZodUUID;
3006
+ startsOn: z.ZodISODate;
3007
+ endsOn: z.ZodISODate;
3008
+ startPart: z.ZodDefault<z.ZodEnum<{
3009
+ full: "full";
3010
+ morning: "morning";
3011
+ afternoon: "afternoon";
3012
+ }>>;
3013
+ endPart: z.ZodDefault<z.ZodEnum<{
3014
+ full: "full";
3015
+ morning: "morning";
3016
+ afternoon: "afternoon";
3017
+ }>>;
3018
+ hours: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3019
+ }, z.core.$strip>, z.ZodObject<{
3020
+ workingDays: z.ZodNumber;
3021
+ minutes: z.ZodNumber;
3022
+ days: z.ZodArray<z.ZodObject<{
3023
+ date: z.ZodISODate;
3024
+ fraction: z.ZodNumber;
3025
+ counted: z.ZodBoolean;
3026
+ reason: z.ZodNullable<z.ZodString>;
3027
+ }, z.core.$strip>>;
3028
+ balanceBeforeMinutes: z.ZodNumber;
3029
+ balanceAfterMinutes: z.ZodNumber;
3030
+ blockers: z.ZodArray<z.ZodObject<{
3031
+ code: z.ZodString;
3032
+ message: z.ZodString;
3033
+ }, z.core.$strip>>;
3034
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3035
+ BAD_REQUEST: {
3036
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3037
+ };
3038
+ UNAUTHORIZED: {};
3039
+ FORBIDDEN: {
3040
+ data: z.ZodOptional<z.ZodObject<{
3041
+ permission: z.ZodOptional<z.ZodString>;
3042
+ }, z.core.$strip>>;
3043
+ };
3044
+ NOT_FOUND: {};
3045
+ CONFLICT: {
3046
+ data: z.ZodOptional<z.ZodObject<{
3047
+ reason: z.ZodOptional<z.ZodString>;
3048
+ }, z.core.$strip>>;
3049
+ };
3050
+ RATE_LIMITED: {};
3051
+ MODULE_DISABLED: {
3052
+ data: z.ZodObject<{
3053
+ module: z.ZodString;
3054
+ }, z.core.$strip>;
3055
+ };
3056
+ }>, Record<never, never>>;
3057
+ create: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3058
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3059
+ personId: z.ZodOptional<z.ZodUUID>;
3060
+ leaveTypeId: z.ZodUUID;
3061
+ startsOn: z.ZodISODate;
3062
+ endsOn: z.ZodISODate;
3063
+ startPart: z.ZodDefault<z.ZodEnum<{
3064
+ full: "full";
3065
+ morning: "morning";
3066
+ afternoon: "afternoon";
3067
+ }>>;
3068
+ endPart: z.ZodDefault<z.ZodEnum<{
3069
+ full: "full";
3070
+ morning: "morning";
3071
+ afternoon: "afternoon";
3072
+ }>>;
3073
+ hours: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
3074
+ reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3075
+ documentFileId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
3076
+ idempotencyKey: z.ZodOptional<z.ZodString>;
3077
+ }, z.core.$strip>, z.ZodObject<{
3078
+ personId: z.ZodUUID;
3079
+ leaveTypeId: z.ZodUUID;
3080
+ startsOn: z.ZodISODate;
3081
+ endsOn: z.ZodISODate;
3082
+ startPart: z.ZodEnum<{
3083
+ full: "full";
3084
+ morning: "morning";
3085
+ afternoon: "afternoon";
3086
+ }>;
3087
+ endPart: z.ZodEnum<{
3088
+ full: "full";
3089
+ morning: "morning";
3090
+ afternoon: "afternoon";
3091
+ }>;
3092
+ hours: z.ZodNullable<z.ZodNumber>;
3093
+ workingDays: z.ZodNumber;
3094
+ minutes: z.ZodNumber;
3095
+ status: z.ZodEnum<{
3096
+ pending: "pending";
3097
+ approved: "approved";
3098
+ rejected: "rejected";
3099
+ cancelled: "cancelled";
3100
+ draft: "draft";
3101
+ withdrawn: "withdrawn";
3102
+ }>;
3103
+ reason: z.ZodNullable<z.ZodString>;
3104
+ documentFileId: z.ZodNullable<z.ZodUUID>;
3105
+ approvalRequestId: z.ZodNullable<z.ZodUUID>;
3106
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
3107
+ createdAt: z.ZodISODateTime;
3108
+ updatedAt: z.ZodISODateTime;
3109
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3110
+ id: z.ZodUUID;
3111
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3112
+ BAD_REQUEST: {
3113
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3114
+ };
3115
+ UNAUTHORIZED: {};
3116
+ FORBIDDEN: {
3117
+ data: z.ZodOptional<z.ZodObject<{
3118
+ permission: z.ZodOptional<z.ZodString>;
3119
+ }, z.core.$strip>>;
3120
+ };
3121
+ NOT_FOUND: {};
3122
+ CONFLICT: {
3123
+ data: z.ZodOptional<z.ZodObject<{
3124
+ reason: z.ZodOptional<z.ZodString>;
3125
+ }, z.core.$strip>>;
3126
+ };
3127
+ RATE_LIMITED: {};
3128
+ MODULE_DISABLED: {
3129
+ data: z.ZodObject<{
3130
+ module: z.ZodString;
3131
+ }, z.core.$strip>;
3132
+ };
3133
+ }>, Record<never, never>>;
3134
+ /**
3135
+ * Cancels a request. An approved one is reversed in the ledger rather than deleted, so the
3136
+ * balance goes back up and the history still says what happened.
3137
+ */
3138
+ cancel: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3139
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3140
+ requestId: z.ZodUUID;
3141
+ reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3142
+ }, z.core.$strip>, z.ZodObject<{
3143
+ personId: z.ZodUUID;
3144
+ leaveTypeId: z.ZodUUID;
3145
+ startsOn: z.ZodISODate;
3146
+ endsOn: z.ZodISODate;
3147
+ startPart: z.ZodEnum<{
3148
+ full: "full";
3149
+ morning: "morning";
3150
+ afternoon: "afternoon";
3151
+ }>;
3152
+ endPart: z.ZodEnum<{
3153
+ full: "full";
3154
+ morning: "morning";
3155
+ afternoon: "afternoon";
3156
+ }>;
3157
+ hours: z.ZodNullable<z.ZodNumber>;
3158
+ workingDays: z.ZodNumber;
3159
+ minutes: z.ZodNumber;
3160
+ status: z.ZodEnum<{
3161
+ pending: "pending";
3162
+ approved: "approved";
3163
+ rejected: "rejected";
3164
+ cancelled: "cancelled";
3165
+ draft: "draft";
3166
+ withdrawn: "withdrawn";
3167
+ }>;
3168
+ reason: z.ZodNullable<z.ZodString>;
3169
+ documentFileId: z.ZodNullable<z.ZodUUID>;
3170
+ approvalRequestId: z.ZodNullable<z.ZodUUID>;
3171
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
3172
+ createdAt: z.ZodISODateTime;
3173
+ updatedAt: z.ZodISODateTime;
3174
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3175
+ id: z.ZodUUID;
3176
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3177
+ BAD_REQUEST: {
3178
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3179
+ };
3180
+ UNAUTHORIZED: {};
3181
+ FORBIDDEN: {
3182
+ data: z.ZodOptional<z.ZodObject<{
3183
+ permission: z.ZodOptional<z.ZodString>;
3184
+ }, z.core.$strip>>;
3185
+ };
3186
+ NOT_FOUND: {};
3187
+ CONFLICT: {
3188
+ data: z.ZodOptional<z.ZodObject<{
3189
+ reason: z.ZodOptional<z.ZodString>;
3190
+ }, z.core.$strip>>;
3191
+ };
3192
+ RATE_LIMITED: {};
3193
+ MODULE_DISABLED: {
3194
+ data: z.ZodObject<{
3195
+ module: z.ZodString;
3196
+ }, z.core.$strip>;
3197
+ };
3198
+ }>, Record<never, never>>;
3199
+ };
3200
+ /** Who is off, over a range — the answer a team actually looks at. */
3201
+ team: {
3202
+ calendar: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3203
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3204
+ from: z.ZodISODate;
3205
+ to: z.ZodISODate;
3206
+ officeId: z.ZodOptional<z.ZodUUID>;
3207
+ orgUnitId: z.ZodOptional<z.ZodUUID>;
3208
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
3209
+ personId: z.ZodUUID;
3210
+ displayName: z.ZodString;
3211
+ requestId: z.ZodUUID;
3212
+ startsOn: z.ZodISODate;
3213
+ endsOn: z.ZodISODate;
3214
+ status: z.ZodEnum<{
3215
+ pending: "pending";
3216
+ approved: "approved";
3217
+ rejected: "rejected";
3218
+ cancelled: "cancelled";
3219
+ draft: "draft";
3220
+ withdrawn: "withdrawn";
3221
+ }>;
3222
+ leaveTypeName: z.ZodNullable<z.ZodString>;
3223
+ color: z.ZodNullable<z.ZodString>;
3224
+ }, z.core.$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3225
+ BAD_REQUEST: {
3226
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3227
+ };
3228
+ UNAUTHORIZED: {};
3229
+ FORBIDDEN: {
3230
+ data: z.ZodOptional<z.ZodObject<{
3231
+ permission: z.ZodOptional<z.ZodString>;
3232
+ }, z.core.$strip>>;
3233
+ };
3234
+ NOT_FOUND: {};
3235
+ CONFLICT: {
3236
+ data: z.ZodOptional<z.ZodObject<{
3237
+ reason: z.ZodOptional<z.ZodString>;
3238
+ }, z.core.$strip>>;
3239
+ };
3240
+ RATE_LIMITED: {};
3241
+ MODULE_DISABLED: {
3242
+ data: z.ZodObject<{
3243
+ module: z.ZodString;
3244
+ }, z.core.$strip>;
3245
+ };
3246
+ }>, Record<never, never>>;
3247
+ };
3248
+ };
3249
+ approvals: {
3250
+ /** Everything waiting on the caller, across every subject type. */
3251
+ inbox: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3252
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3253
+ includeDecided: z.ZodDefault<z.ZodBoolean>;
3254
+ cursor: z.ZodOptional<z.ZodString>;
3255
+ limit: z.ZodDefault<z.ZodNumber>;
3256
+ }, z.core.$strip>, z.ZodObject<{
3257
+ items: z.ZodArray<z.ZodObject<{
3258
+ subjectType: z.ZodEnum<{
3259
+ leave: "leave";
3260
+ regularization: "regularization";
3261
+ overtime: "overtime";
3262
+ timesheet: "timesheet";
3263
+ shift_swap: "shift_swap";
3264
+ }>;
3265
+ subjectId: z.ZodUUID;
3266
+ summary: z.ZodString;
3267
+ status: z.ZodEnum<{
3268
+ pending: "pending";
3269
+ approved: "approved";
3270
+ rejected: "rejected";
3271
+ cancelled: "cancelled";
3272
+ }>;
3273
+ currentStep: z.ZodNumber;
3274
+ requestedBy: z.ZodNullable<z.ZodUUID>;
3275
+ requestedAt: z.ZodISODateTime;
3276
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
3277
+ steps: z.ZodArray<z.ZodObject<{
3278
+ id: z.ZodUUID;
3279
+ requestId: z.ZodUUID;
3280
+ stepIndex: z.ZodNumber;
3281
+ name: z.ZodString;
3282
+ mode: z.ZodEnum<{
3283
+ any: "any";
3284
+ all: "all";
3285
+ quorum: "quorum";
3286
+ }>;
3287
+ minApprovals: z.ZodNumber;
3288
+ approverIds: z.ZodArray<z.ZodUUID>;
3289
+ status: z.ZodEnum<{
3290
+ pending: "pending";
3291
+ approved: "approved";
3292
+ rejected: "rejected";
3293
+ cancelled: "cancelled";
3294
+ }>;
3295
+ dueAt: z.ZodNullable<z.ZodISODateTime>;
3296
+ escalatedAt: z.ZodNullable<z.ZodISODateTime>;
3297
+ decisions: z.ZodArray<z.ZodObject<{
3298
+ id: z.ZodUUID;
3299
+ stepId: z.ZodUUID;
3300
+ approverId: z.ZodUUID;
3301
+ onBehalfOfId: z.ZodNullable<z.ZodUUID>;
3302
+ decision: z.ZodEnum<{
3303
+ approve: "approve";
3304
+ reject: "reject";
3305
+ }>;
3306
+ comment: z.ZodNullable<z.ZodString>;
3307
+ at: z.ZodISODateTime;
3308
+ }, z.core.$strip>>;
3309
+ }, z.core.$strip>>;
3310
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3311
+ id: z.ZodUUID;
3312
+ }, z.core.$strip>>;
3313
+ nextCursor: z.ZodNullable<z.ZodString>;
3314
+ total: z.ZodOptional<z.ZodNumber>;
3315
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3316
+ BAD_REQUEST: {
3317
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3318
+ };
3319
+ UNAUTHORIZED: {};
3320
+ FORBIDDEN: {
3321
+ data: z.ZodOptional<z.ZodObject<{
3322
+ permission: z.ZodOptional<z.ZodString>;
3323
+ }, z.core.$strip>>;
3324
+ };
3325
+ NOT_FOUND: {};
3326
+ CONFLICT: {
3327
+ data: z.ZodOptional<z.ZodObject<{
3328
+ reason: z.ZodOptional<z.ZodString>;
3329
+ }, z.core.$strip>>;
3330
+ };
3331
+ RATE_LIMITED: {};
3332
+ MODULE_DISABLED: {
3333
+ data: z.ZodObject<{
3334
+ module: z.ZodString;
3335
+ }, z.core.$strip>;
3336
+ };
3337
+ }>, Record<never, never>>;
3338
+ get: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3339
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3340
+ requestId: z.ZodUUID;
3341
+ }, z.core.$strip>, z.ZodObject<{
3342
+ subjectType: z.ZodEnum<{
3343
+ leave: "leave";
3344
+ regularization: "regularization";
3345
+ overtime: "overtime";
3346
+ timesheet: "timesheet";
3347
+ shift_swap: "shift_swap";
3348
+ }>;
3349
+ subjectId: z.ZodUUID;
3350
+ summary: z.ZodString;
3351
+ status: z.ZodEnum<{
3352
+ pending: "pending";
3353
+ approved: "approved";
3354
+ rejected: "rejected";
3355
+ cancelled: "cancelled";
3356
+ }>;
3357
+ currentStep: z.ZodNumber;
3358
+ requestedBy: z.ZodNullable<z.ZodUUID>;
3359
+ requestedAt: z.ZodISODateTime;
3360
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
3361
+ steps: z.ZodArray<z.ZodObject<{
3362
+ id: z.ZodUUID;
3363
+ requestId: z.ZodUUID;
3364
+ stepIndex: z.ZodNumber;
3365
+ name: z.ZodString;
3366
+ mode: z.ZodEnum<{
3367
+ any: "any";
3368
+ all: "all";
3369
+ quorum: "quorum";
3370
+ }>;
3371
+ minApprovals: z.ZodNumber;
3372
+ approverIds: z.ZodArray<z.ZodUUID>;
3373
+ status: z.ZodEnum<{
3374
+ pending: "pending";
3375
+ approved: "approved";
3376
+ rejected: "rejected";
3377
+ cancelled: "cancelled";
3378
+ }>;
3379
+ dueAt: z.ZodNullable<z.ZodISODateTime>;
3380
+ escalatedAt: z.ZodNullable<z.ZodISODateTime>;
3381
+ decisions: z.ZodArray<z.ZodObject<{
3382
+ id: z.ZodUUID;
3383
+ stepId: z.ZodUUID;
3384
+ approverId: z.ZodUUID;
3385
+ onBehalfOfId: z.ZodNullable<z.ZodUUID>;
3386
+ decision: z.ZodEnum<{
3387
+ approve: "approve";
3388
+ reject: "reject";
3389
+ }>;
3390
+ comment: z.ZodNullable<z.ZodString>;
3391
+ at: z.ZodISODateTime;
3392
+ }, z.core.$strip>>;
3393
+ }, z.core.$strip>>;
3394
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3395
+ id: z.ZodUUID;
3396
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3397
+ BAD_REQUEST: {
3398
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3399
+ };
3400
+ UNAUTHORIZED: {};
3401
+ FORBIDDEN: {
3402
+ data: z.ZodOptional<z.ZodObject<{
3403
+ permission: z.ZodOptional<z.ZodString>;
3404
+ }, z.core.$strip>>;
3405
+ };
3406
+ NOT_FOUND: {};
3407
+ CONFLICT: {
3408
+ data: z.ZodOptional<z.ZodObject<{
3409
+ reason: z.ZodOptional<z.ZodString>;
3410
+ }, z.core.$strip>>;
3411
+ };
3412
+ RATE_LIMITED: {};
3413
+ MODULE_DISABLED: {
3414
+ data: z.ZodObject<{
3415
+ module: z.ZodString;
3416
+ }, z.core.$strip>;
3417
+ };
3418
+ }>, Record<never, never>>;
3419
+ /**
3420
+ * Approve or reject. Idempotent per approver per step — a double click is one decision, and the
3421
+ * database refuses the second rather than counting it twice.
3422
+ */
3423
+ decide: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3424
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3425
+ requestId: z.ZodUUID;
3426
+ decision: z.ZodEnum<{
3427
+ approve: "approve";
3428
+ reject: "reject";
3429
+ }>;
3430
+ comment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3431
+ onBehalfOfId: z.ZodOptional<z.ZodNullable<z.ZodUUID>>;
3432
+ }, z.core.$strip>, z.ZodObject<{
3433
+ subjectType: z.ZodEnum<{
3434
+ leave: "leave";
3435
+ regularization: "regularization";
3436
+ overtime: "overtime";
3437
+ timesheet: "timesheet";
3438
+ shift_swap: "shift_swap";
3439
+ }>;
3440
+ subjectId: z.ZodUUID;
3441
+ summary: z.ZodString;
3442
+ status: z.ZodEnum<{
3443
+ pending: "pending";
3444
+ approved: "approved";
3445
+ rejected: "rejected";
3446
+ cancelled: "cancelled";
3447
+ }>;
3448
+ currentStep: z.ZodNumber;
3449
+ requestedBy: z.ZodNullable<z.ZodUUID>;
3450
+ requestedAt: z.ZodISODateTime;
3451
+ decidedAt: z.ZodNullable<z.ZodISODateTime>;
3452
+ steps: z.ZodArray<z.ZodObject<{
3453
+ id: z.ZodUUID;
3454
+ requestId: z.ZodUUID;
3455
+ stepIndex: z.ZodNumber;
3456
+ name: z.ZodString;
3457
+ mode: z.ZodEnum<{
3458
+ any: "any";
3459
+ all: "all";
3460
+ quorum: "quorum";
3461
+ }>;
3462
+ minApprovals: z.ZodNumber;
3463
+ approverIds: z.ZodArray<z.ZodUUID>;
3464
+ status: z.ZodEnum<{
3465
+ pending: "pending";
3466
+ approved: "approved";
3467
+ rejected: "rejected";
3468
+ cancelled: "cancelled";
3469
+ }>;
3470
+ dueAt: z.ZodNullable<z.ZodISODateTime>;
3471
+ escalatedAt: z.ZodNullable<z.ZodISODateTime>;
3472
+ decisions: z.ZodArray<z.ZodObject<{
3473
+ id: z.ZodUUID;
3474
+ stepId: z.ZodUUID;
3475
+ approverId: z.ZodUUID;
3476
+ onBehalfOfId: z.ZodNullable<z.ZodUUID>;
3477
+ decision: z.ZodEnum<{
3478
+ approve: "approve";
3479
+ reject: "reject";
3480
+ }>;
3481
+ comment: z.ZodNullable<z.ZodString>;
3482
+ at: z.ZodISODateTime;
3483
+ }, z.core.$strip>>;
3484
+ }, z.core.$strip>>;
3485
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3486
+ id: z.ZodUUID;
3487
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3488
+ BAD_REQUEST: {
3489
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3490
+ };
3491
+ UNAUTHORIZED: {};
3492
+ FORBIDDEN: {
3493
+ data: z.ZodOptional<z.ZodObject<{
3494
+ permission: z.ZodOptional<z.ZodString>;
3495
+ }, z.core.$strip>>;
3496
+ };
3497
+ NOT_FOUND: {};
3498
+ CONFLICT: {
3499
+ data: z.ZodOptional<z.ZodObject<{
3500
+ reason: z.ZodOptional<z.ZodString>;
3501
+ }, z.core.$strip>>;
3502
+ };
3503
+ RATE_LIMITED: {};
3504
+ MODULE_DISABLED: {
3505
+ data: z.ZodObject<{
3506
+ module: z.ZodString;
3507
+ }, z.core.$strip>;
3508
+ };
3509
+ }>, Record<never, never>>;
3510
+ chains: {
3511
+ list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3512
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3513
+ subjectType: z.ZodOptional<z.ZodEnum<{
3514
+ leave: "leave";
3515
+ regularization: "regularization";
3516
+ overtime: "overtime";
3517
+ timesheet: "timesheet";
3518
+ shift_swap: "shift_swap";
3519
+ }>>;
3520
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
3521
+ name: z.ZodString;
3522
+ subjectType: z.ZodEnum<{
3523
+ leave: "leave";
3524
+ regularization: "regularization";
3525
+ overtime: "overtime";
3526
+ timesheet: "timesheet";
3527
+ shift_swap: "shift_swap";
3528
+ }>;
3529
+ spec: z.ZodObject<{
3530
+ steps: z.ZodArray<z.ZodObject<{
3531
+ name: z.ZodString;
3532
+ approvers: z.ZodArray<z.ZodObject<{
3533
+ kind: z.ZodEnum<{
3534
+ person: "person";
3535
+ manager: "manager";
3536
+ manager_of_manager: "manager_of_manager";
3537
+ org_unit_head: "org_unit_head";
3538
+ office_head: "office_head";
3539
+ permission: "permission";
3540
+ group: "group";
3541
+ }>;
3542
+ id: z.ZodOptional<z.ZodString>;
3543
+ }, z.core.$strip>>;
3544
+ mode: z.ZodEnum<{
3545
+ any: "any";
3546
+ all: "all";
3547
+ quorum: "quorum";
3548
+ }>;
3549
+ minApprovals: z.ZodNumber;
3550
+ slaHours: z.ZodNullable<z.ZodNumber>;
3551
+ onTimeout: z.ZodEnum<{
3552
+ remind: "remind";
3553
+ escalate: "escalate";
3554
+ auto_approve: "auto_approve";
3555
+ }>;
3556
+ }, z.core.$strip>>;
3557
+ }, z.core.$strip>;
3558
+ isDefault: z.ZodBoolean;
3559
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
3560
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3561
+ id: z.ZodUUID;
3562
+ }, z.core.$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3563
+ BAD_REQUEST: {
3564
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3565
+ };
3566
+ UNAUTHORIZED: {};
3567
+ FORBIDDEN: {
3568
+ data: z.ZodOptional<z.ZodObject<{
3569
+ permission: z.ZodOptional<z.ZodString>;
3570
+ }, z.core.$strip>>;
3571
+ };
3572
+ NOT_FOUND: {};
3573
+ CONFLICT: {
3574
+ data: z.ZodOptional<z.ZodObject<{
3575
+ reason: z.ZodOptional<z.ZodString>;
3576
+ }, z.core.$strip>>;
3577
+ };
3578
+ RATE_LIMITED: {};
3579
+ MODULE_DISABLED: {
3580
+ data: z.ZodObject<{
3581
+ module: z.ZodString;
3582
+ }, z.core.$strip>;
3583
+ };
3584
+ }>, Record<never, never>>;
3585
+ create: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3586
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3587
+ name: z.ZodString;
3588
+ subjectType: z.ZodEnum<{
3589
+ leave: "leave";
3590
+ regularization: "regularization";
3591
+ overtime: "overtime";
3592
+ timesheet: "timesheet";
3593
+ shift_swap: "shift_swap";
3594
+ }>;
3595
+ spec: z.ZodObject<{
3596
+ steps: z.ZodArray<z.ZodObject<{
3597
+ name: z.ZodString;
3598
+ approvers: z.ZodArray<z.ZodObject<{
3599
+ kind: z.ZodEnum<{
3600
+ person: "person";
3601
+ manager: "manager";
3602
+ manager_of_manager: "manager_of_manager";
3603
+ org_unit_head: "org_unit_head";
3604
+ office_head: "office_head";
3605
+ permission: "permission";
3606
+ group: "group";
3607
+ }>;
3608
+ id: z.ZodOptional<z.ZodString>;
3609
+ }, z.core.$strip>>;
3610
+ mode: z.ZodEnum<{
3611
+ any: "any";
3612
+ all: "all";
3613
+ quorum: "quorum";
3614
+ }>;
3615
+ minApprovals: z.ZodNumber;
3616
+ slaHours: z.ZodNullable<z.ZodNumber>;
3617
+ onTimeout: z.ZodEnum<{
3618
+ remind: "remind";
3619
+ escalate: "escalate";
3620
+ auto_approve: "auto_approve";
3621
+ }>;
3622
+ }, z.core.$strip>>;
3623
+ }, z.core.$strip>;
3624
+ isDefault: z.ZodDefault<z.ZodBoolean>;
3625
+ }, z.core.$strip>, z.ZodObject<{
3626
+ name: z.ZodString;
3627
+ subjectType: z.ZodEnum<{
3628
+ leave: "leave";
3629
+ regularization: "regularization";
3630
+ overtime: "overtime";
3631
+ timesheet: "timesheet";
3632
+ shift_swap: "shift_swap";
3633
+ }>;
3634
+ spec: z.ZodObject<{
3635
+ steps: z.ZodArray<z.ZodObject<{
3636
+ name: z.ZodString;
3637
+ approvers: z.ZodArray<z.ZodObject<{
3638
+ kind: z.ZodEnum<{
3639
+ person: "person";
3640
+ manager: "manager";
3641
+ manager_of_manager: "manager_of_manager";
3642
+ org_unit_head: "org_unit_head";
3643
+ office_head: "office_head";
3644
+ permission: "permission";
3645
+ group: "group";
3646
+ }>;
3647
+ id: z.ZodOptional<z.ZodString>;
3648
+ }, z.core.$strip>>;
3649
+ mode: z.ZodEnum<{
3650
+ any: "any";
3651
+ all: "all";
3652
+ quorum: "quorum";
3653
+ }>;
3654
+ minApprovals: z.ZodNumber;
3655
+ slaHours: z.ZodNullable<z.ZodNumber>;
3656
+ onTimeout: z.ZodEnum<{
3657
+ remind: "remind";
3658
+ escalate: "escalate";
3659
+ auto_approve: "auto_approve";
3660
+ }>;
3661
+ }, z.core.$strip>>;
3662
+ }, z.core.$strip>;
3663
+ isDefault: z.ZodBoolean;
3664
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
3665
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3666
+ id: z.ZodUUID;
3667
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3668
+ BAD_REQUEST: {
3669
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3670
+ };
3671
+ UNAUTHORIZED: {};
3672
+ FORBIDDEN: {
3673
+ data: z.ZodOptional<z.ZodObject<{
3674
+ permission: z.ZodOptional<z.ZodString>;
3675
+ }, z.core.$strip>>;
3676
+ };
3677
+ NOT_FOUND: {};
3678
+ CONFLICT: {
3679
+ data: z.ZodOptional<z.ZodObject<{
3680
+ reason: z.ZodOptional<z.ZodString>;
3681
+ }, z.core.$strip>>;
3682
+ };
3683
+ RATE_LIMITED: {};
3684
+ MODULE_DISABLED: {
3685
+ data: z.ZodObject<{
3686
+ module: z.ZodString;
3687
+ }, z.core.$strip>;
3688
+ };
3689
+ }>, Record<never, never>>;
3690
+ update: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3691
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3692
+ chainId: z.ZodUUID;
3693
+ name: z.ZodOptional<z.ZodString>;
3694
+ spec: z.ZodOptional<z.ZodObject<{
3695
+ steps: z.ZodArray<z.ZodObject<{
3696
+ name: z.ZodString;
3697
+ approvers: z.ZodArray<z.ZodObject<{
3698
+ kind: z.ZodEnum<{
3699
+ person: "person";
3700
+ manager: "manager";
3701
+ manager_of_manager: "manager_of_manager";
3702
+ org_unit_head: "org_unit_head";
3703
+ office_head: "office_head";
3704
+ permission: "permission";
3705
+ group: "group";
3706
+ }>;
3707
+ id: z.ZodOptional<z.ZodString>;
3708
+ }, z.core.$strip>>;
3709
+ mode: z.ZodEnum<{
3710
+ any: "any";
3711
+ all: "all";
3712
+ quorum: "quorum";
3713
+ }>;
3714
+ minApprovals: z.ZodNumber;
3715
+ slaHours: z.ZodNullable<z.ZodNumber>;
3716
+ onTimeout: z.ZodEnum<{
3717
+ remind: "remind";
3718
+ escalate: "escalate";
3719
+ auto_approve: "auto_approve";
3720
+ }>;
3721
+ }, z.core.$strip>>;
3722
+ }, z.core.$strip>>;
3723
+ isDefault: z.ZodOptional<z.ZodBoolean>;
3724
+ }, z.core.$strip>, z.ZodObject<{
3725
+ name: z.ZodString;
3726
+ subjectType: z.ZodEnum<{
3727
+ leave: "leave";
3728
+ regularization: "regularization";
3729
+ overtime: "overtime";
3730
+ timesheet: "timesheet";
3731
+ shift_swap: "shift_swap";
3732
+ }>;
3733
+ spec: z.ZodObject<{
3734
+ steps: z.ZodArray<z.ZodObject<{
3735
+ name: z.ZodString;
3736
+ approvers: z.ZodArray<z.ZodObject<{
3737
+ kind: z.ZodEnum<{
3738
+ person: "person";
3739
+ manager: "manager";
3740
+ manager_of_manager: "manager_of_manager";
3741
+ org_unit_head: "org_unit_head";
3742
+ office_head: "office_head";
3743
+ permission: "permission";
3744
+ group: "group";
3745
+ }>;
3746
+ id: z.ZodOptional<z.ZodString>;
3747
+ }, z.core.$strip>>;
3748
+ mode: z.ZodEnum<{
3749
+ any: "any";
3750
+ all: "all";
3751
+ quorum: "quorum";
3752
+ }>;
3753
+ minApprovals: z.ZodNumber;
3754
+ slaHours: z.ZodNullable<z.ZodNumber>;
3755
+ onTimeout: z.ZodEnum<{
3756
+ remind: "remind";
3757
+ escalate: "escalate";
3758
+ auto_approve: "auto_approve";
3759
+ }>;
3760
+ }, z.core.$strip>>;
3761
+ }, z.core.$strip>;
3762
+ isDefault: z.ZodBoolean;
3763
+ archivedAt: z.ZodNullable<z.ZodISODateTime>;
3764
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3765
+ id: z.ZodUUID;
3766
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3767
+ BAD_REQUEST: {
3768
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3769
+ };
3770
+ UNAUTHORIZED: {};
3771
+ FORBIDDEN: {
3772
+ data: z.ZodOptional<z.ZodObject<{
3773
+ permission: z.ZodOptional<z.ZodString>;
3774
+ }, z.core.$strip>>;
3775
+ };
3776
+ NOT_FOUND: {};
3777
+ CONFLICT: {
3778
+ data: z.ZodOptional<z.ZodObject<{
3779
+ reason: z.ZodOptional<z.ZodString>;
3780
+ }, z.core.$strip>>;
3781
+ };
3782
+ RATE_LIMITED: {};
3783
+ MODULE_DISABLED: {
3784
+ data: z.ZodObject<{
3785
+ module: z.ZodString;
3786
+ }, z.core.$strip>;
3787
+ };
3788
+ }>, Record<never, never>>;
3789
+ archive: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3790
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3791
+ chainId: z.ZodUUID;
3792
+ }, z.core.$strip>, z.ZodObject<{
3793
+ ok: z.ZodLiteral<true>;
3794
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3795
+ BAD_REQUEST: {
3796
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3797
+ };
3798
+ UNAUTHORIZED: {};
3799
+ FORBIDDEN: {
3800
+ data: z.ZodOptional<z.ZodObject<{
3801
+ permission: z.ZodOptional<z.ZodString>;
3802
+ }, z.core.$strip>>;
3803
+ };
3804
+ NOT_FOUND: {};
3805
+ CONFLICT: {
3806
+ data: z.ZodOptional<z.ZodObject<{
3807
+ reason: z.ZodOptional<z.ZodString>;
3808
+ }, z.core.$strip>>;
3809
+ };
3810
+ RATE_LIMITED: {};
3811
+ MODULE_DISABLED: {
3812
+ data: z.ZodObject<{
3813
+ module: z.ZodString;
3814
+ }, z.core.$strip>;
3815
+ };
3816
+ }>, Record<never, never>>;
3817
+ };
3818
+ delegations: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3819
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3820
+ personId: z.ZodOptional<z.ZodUUID>;
3821
+ }, z.core.$strip>, z.ZodArray<z.ZodObject<{
3822
+ fromPersonId: z.ZodUUID;
3823
+ toPersonId: z.ZodUUID;
3824
+ subjectType: z.ZodNullable<z.ZodEnum<{
3825
+ leave: "leave";
3826
+ regularization: "regularization";
3827
+ overtime: "overtime";
3828
+ timesheet: "timesheet";
3829
+ shift_swap: "shift_swap";
3830
+ }>>;
3831
+ startsOn: z.ZodISODate;
3832
+ endsOn: z.ZodISODate;
3833
+ reason: z.ZodNullable<z.ZodString>;
3834
+ createdAt: z.ZodISODateTime;
3835
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3836
+ id: z.ZodUUID;
3837
+ }, z.core.$strip>>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3838
+ BAD_REQUEST: {
3839
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3840
+ };
3841
+ UNAUTHORIZED: {};
3842
+ FORBIDDEN: {
3843
+ data: z.ZodOptional<z.ZodObject<{
3844
+ permission: z.ZodOptional<z.ZodString>;
3845
+ }, z.core.$strip>>;
3846
+ };
3847
+ NOT_FOUND: {};
3848
+ CONFLICT: {
3849
+ data: z.ZodOptional<z.ZodObject<{
3850
+ reason: z.ZodOptional<z.ZodString>;
3851
+ }, z.core.$strip>>;
3852
+ };
3853
+ RATE_LIMITED: {};
3854
+ MODULE_DISABLED: {
3855
+ data: z.ZodObject<{
3856
+ module: z.ZodString;
3857
+ }, z.core.$strip>;
3858
+ };
3859
+ }>, Record<never, never>>;
3860
+ delegate: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3861
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3862
+ toPersonId: z.ZodUUID;
3863
+ subjectType: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
3864
+ leave: "leave";
3865
+ regularization: "regularization";
3866
+ overtime: "overtime";
3867
+ timesheet: "timesheet";
3868
+ shift_swap: "shift_swap";
3869
+ }>>>;
3870
+ startsOn: z.ZodISODate;
3871
+ endsOn: z.ZodISODate;
3872
+ reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
3873
+ }, z.core.$strip>, z.ZodObject<{
3874
+ fromPersonId: z.ZodUUID;
3875
+ toPersonId: z.ZodUUID;
3876
+ subjectType: z.ZodNullable<z.ZodEnum<{
3877
+ leave: "leave";
3878
+ regularization: "regularization";
3879
+ overtime: "overtime";
3880
+ timesheet: "timesheet";
3881
+ shift_swap: "shift_swap";
3882
+ }>>;
3883
+ startsOn: z.ZodISODate;
3884
+ endsOn: z.ZodISODate;
3885
+ reason: z.ZodNullable<z.ZodString>;
3886
+ createdAt: z.ZodISODateTime;
3887
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3888
+ id: z.ZodUUID;
3889
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3890
+ BAD_REQUEST: {
3891
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3892
+ };
3893
+ UNAUTHORIZED: {};
3894
+ FORBIDDEN: {
3895
+ data: z.ZodOptional<z.ZodObject<{
3896
+ permission: z.ZodOptional<z.ZodString>;
3897
+ }, z.core.$strip>>;
3898
+ };
3899
+ NOT_FOUND: {};
3900
+ CONFLICT: {
3901
+ data: z.ZodOptional<z.ZodObject<{
3902
+ reason: z.ZodOptional<z.ZodString>;
3903
+ }, z.core.$strip>>;
3904
+ };
3905
+ RATE_LIMITED: {};
3906
+ MODULE_DISABLED: {
3907
+ data: z.ZodObject<{
3908
+ module: z.ZodString;
3909
+ }, z.core.$strip>;
3910
+ };
3911
+ }>, Record<never, never>>;
3912
+ revokeDelegation: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
3913
+ workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;
3914
+ delegationId: z.ZodUUID;
3915
+ }, z.core.$strip>, z.ZodObject<{
3916
+ ok: z.ZodLiteral<true>;
3917
+ }, z.core.$strip>, import("@orpc/contract").MergedErrorMap<Record<never, never>, {
3918
+ BAD_REQUEST: {
3919
+ data: z.ZodOptional<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
3920
+ };
3921
+ UNAUTHORIZED: {};
3922
+ FORBIDDEN: {
3923
+ data: z.ZodOptional<z.ZodObject<{
3924
+ permission: z.ZodOptional<z.ZodString>;
3925
+ }, z.core.$strip>>;
3926
+ };
3927
+ NOT_FOUND: {};
3928
+ CONFLICT: {
3929
+ data: z.ZodOptional<z.ZodObject<{
3930
+ reason: z.ZodOptional<z.ZodString>;
3931
+ }, z.core.$strip>>;
3932
+ };
3933
+ RATE_LIMITED: {};
3934
+ MODULE_DISABLED: {
3935
+ data: z.ZodObject<{
3936
+ module: z.ZodString;
3937
+ }, z.core.$strip>;
3938
+ };
3939
+ }>, Record<never, never>>;
3940
+ };
2495
3941
  fields: {
2496
3942
  list: import("@orpc/contract").ContractProcedureBuilderWithInputOutput<z.ZodObject<{
2497
3943
  workspaceId: z.core.$ZodBranded<z.ZodUUID, "WorkspaceId", "out">;