@photon-ai/dashboard-api 1.2.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 (3) hide show
  1. package/README.md +44 -0
  2. package/dist/index.d.ts +3097 -0
  3. package/package.json +44 -0
@@ -0,0 +1,3097 @@
1
+ /**
2
+ * @photon-ai/dashboard-api
3
+ *
4
+ * Bundled type definitions for the Photon Dashboard public API.
5
+ * Auto-generated — do not edit by hand.
6
+ */
7
+ import { Elysia } from 'elysia';
8
+
9
+ type AccountType = "developer" | "organization";
10
+
11
+ interface BillingPrice {
12
+ currency: string;
13
+ id: string;
14
+ recurring: {
15
+ interval: "day" | "week" | "month" | "year";
16
+ interval_count: number;
17
+ } | null;
18
+ type: "one_time" | "recurring";
19
+ unit_amount: number | null;
20
+ }
21
+ interface BillingProduct {
22
+ description: string | null;
23
+ id: string;
24
+ metadata: Record<string, string>;
25
+ name: string;
26
+ prices: BillingPrice[];
27
+ }
28
+
29
+ interface SpectrumProfile {
30
+ avatarUrl: string | null;
31
+ firstName: string | null;
32
+ lastName: string | null;
33
+ projectId: string;
34
+ }
35
+ interface SpectrumUser {
36
+ assignedPhoneNumber: string;
37
+ createdAt: string;
38
+ email: string | null;
39
+ firstName: string | null;
40
+ id: string;
41
+ lastName: string | null;
42
+ meta: Record<string, unknown> | null;
43
+ phoneNumber: string;
44
+ projectId: string;
45
+ type: "shared" | "dedicated";
46
+ }
47
+ interface WhatsAppPhoneNumber {
48
+ accountId: string;
49
+ createdAt: string;
50
+ displayPhoneNumber: string | null;
51
+ id: string;
52
+ phoneNumberId: string;
53
+ qualityRating: string | null;
54
+ verifiedName: string | null;
55
+ }
56
+ type IMessageLineStatus = "available" | "unavailable" | "unknown";
57
+ interface IMessageLine {
58
+ createdAt: string;
59
+ id: string;
60
+ phoneNumber: string;
61
+ platform: "imessage";
62
+ status: IMessageLineStatus;
63
+ }
64
+ interface WhatsAppBusinessLine {
65
+ accountId?: string | null;
66
+ businessName: string | null;
67
+ createdAt: string;
68
+ displayPhoneNumber: string | null;
69
+ id: string;
70
+ phoneNumberId: string;
71
+ platform: "whatsapp_business";
72
+ qualityRating: string | null;
73
+ verifiedName: string | null;
74
+ wabaId: string;
75
+ }
76
+ type SpectrumLine = IMessageLine | WhatsAppBusinessLine;
77
+ type SpectrumPlatformId = "imessage" | "whatsapp_business" | "voice" | "slack";
78
+ type SpectrumSlackFeature = "channel-history" | "read-tracking" | "dms" | "files" | "reactions" | "pins";
79
+ interface SpectrumSlackConfig {
80
+ appConfigId: string;
81
+ appId: string | null;
82
+ clientId: string | null;
83
+ clientSecret: string | null;
84
+ createdAt: string;
85
+ enabledFeatures: SpectrumSlackFeature[];
86
+ installationCount: number;
87
+ projectId: string;
88
+ signingSecret: string | null;
89
+ updatedAt: string;
90
+ }
91
+ interface SpectrumSlackInstallation {
92
+ appConfigId: string;
93
+ appId: string;
94
+ botToken: string;
95
+ botUserId: string;
96
+ grantedScopes: string[];
97
+ installationId: string;
98
+ installedAt: string;
99
+ projectId: string;
100
+ teamId: string;
101
+ teamName: string;
102
+ updatedAt: string;
103
+ }
104
+ interface SpectrumSipInboundConfig {
105
+ configId: string;
106
+ createdAt: string;
107
+ hasPassword: boolean;
108
+ projectId: string;
109
+ sipUri: string;
110
+ updatedAt: string;
111
+ username: string | null;
112
+ }
113
+ interface SpectrumSubscription {
114
+ customer_id: string | null;
115
+ status: "active" | "canceled" | "past_due" | null;
116
+ subscription_id: string | null;
117
+ tier: string;
118
+ }
119
+ interface SpectrumWebhook {
120
+ createdAt: string;
121
+ id: string;
122
+ updatedAt: string;
123
+ webhookUrl: string;
124
+ }
125
+ interface SpectrumWebhookCreated extends SpectrumWebhook {
126
+ signingSecret: string;
127
+ }
128
+ type WhatsAppTemplateStatus = "APPROVED" | "PENDING" | "REJECTED" | "PAUSED" | "IN_APPEAL" | "PENDING_DELETION" | "DELETED" | "DISABLED" | "LIMIT_EXCEEDED";
129
+ type WhatsAppTemplateCategory = "MARKETING" | "UTILITY" | "AUTHENTICATION";
130
+ type WhatsAppTemplateParameterFormat = "POSITIONAL" | "NAMED";
131
+ interface WhatsAppTemplateComponent {
132
+ type: string;
133
+ [key: string]: unknown;
134
+ }
135
+ interface WhatsAppTemplate {
136
+ category: WhatsAppTemplateCategory;
137
+ components: WhatsAppTemplateComponent[];
138
+ id: string;
139
+ language: string;
140
+ name: string;
141
+ parameterFormat?: WhatsAppTemplateParameterFormat;
142
+ qualityScore?: {
143
+ score?: string;
144
+ [key: string]: unknown;
145
+ };
146
+ rejectedReason?: string;
147
+ status: WhatsAppTemplateStatus;
148
+ }
149
+ interface WhatsAppTemplatePaging {
150
+ nextCursor: string | null;
151
+ prevCursor: string | null;
152
+ }
153
+ /**
154
+ * Outcome of attempting to add the project owner as a Spectrum shared user
155
+ * after a Spectrum project is provisioned. Returned alongside the regular
156
+ * create/toggle response so the frontend can surface the result to the user.
157
+ *
158
+ * - `added`: shared user was created, tagged as project_owner, and an
159
+ * invitation email was dispatched (fire-and-forget — a delivery failure
160
+ * does not downgrade the status, since the owner can re-invite from the
161
+ * Users tab and the upstream rate-limits to one invite per 24 hours).
162
+ * - `skipped_no_phone`: owner has no phone number on their account; nothing
163
+ * was attempted.
164
+ * - `skipped_pool_exhausted`: the Cosmos shared-number pool is exhausted for
165
+ * this owner phone (per-user cap reached). No shared user created.
166
+ * - `failed`: an unexpected error occurred. The Spectrum project itself was
167
+ * created — the owner just wasn't enrolled.
168
+ */
169
+ type SpectrumOwnerStatus = "added" | "skipped_no_phone" | "skipped_pool_exhausted" | "failed";
170
+
171
+ /**
172
+ * Subscription tier exposed to the dashboard. Spectrum returns its own
173
+ * `tier` string; the API normalizes it to this set, falling back to
174
+ * `"free"` on any unrecognized value.
175
+ */
176
+ type PlanTier = "free" | "pro" | "business" | "enterprise";
177
+
178
+ interface SpectrumUsersPage {
179
+ total: number;
180
+ users: SpectrumUser[];
181
+ }
182
+
183
+ declare const publicApp: Elysia<"", {
184
+ decorator: {};
185
+ store: {};
186
+ derive: {};
187
+ resolve: {};
188
+ }, {
189
+ typebox: {};
190
+ error: {};
191
+ } & {
192
+ typebox: {};
193
+ error: {};
194
+ } & {
195
+ typebox: {};
196
+ error: {};
197
+ } & {
198
+ typebox: {};
199
+ error: {};
200
+ }, {
201
+ schema: {};
202
+ standaloneSchema: {};
203
+ macro: {};
204
+ macroFn: {};
205
+ parser: {};
206
+ response: {};
207
+ } & {
208
+ schema: {};
209
+ standaloneSchema: {};
210
+ macro: {};
211
+ macroFn: {};
212
+ parser: {};
213
+ response: {};
214
+ } & {
215
+ schema: {};
216
+ standaloneSchema: {};
217
+ macro: {};
218
+ macroFn: {};
219
+ parser: {};
220
+ response: {};
221
+ } & {
222
+ schema: {};
223
+ standaloneSchema: {};
224
+ macro: {};
225
+ macroFn: {};
226
+ parser: {};
227
+ response: {};
228
+ }, {
229
+ ".well-known": {
230
+ "oauth-authorization-server": {
231
+ api: {
232
+ auth: {
233
+ get: {
234
+ body: unknown;
235
+ params: {};
236
+ query: unknown;
237
+ headers: unknown;
238
+ response: {
239
+ 200: Response | {
240
+ error: string;
241
+ };
242
+ };
243
+ };
244
+ };
245
+ };
246
+ };
247
+ };
248
+ } & {
249
+ ".well-known": {
250
+ "openid-configuration": {
251
+ api: {
252
+ auth: {
253
+ get: {
254
+ body: unknown;
255
+ params: {};
256
+ query: unknown;
257
+ headers: unknown;
258
+ response: {
259
+ 200: Response | {
260
+ error: string;
261
+ };
262
+ };
263
+ };
264
+ };
265
+ };
266
+ };
267
+ };
268
+ } & {
269
+ api: {
270
+ projects: {
271
+ get: {
272
+ body: unknown;
273
+ params: {};
274
+ query: unknown;
275
+ headers: unknown;
276
+ response: {
277
+ 200: {
278
+ avatarUrl: string | null;
279
+ plan: PlanTier;
280
+ platforms: SpectrumPlatformId[];
281
+ userCount: number;
282
+ messages30d: number;
283
+ hourly: never[];
284
+ name: string;
285
+ status: string;
286
+ id: string;
287
+ createdAt: Date;
288
+ updatedAt: Date;
289
+ location: string;
290
+ projectSecret: string | null;
291
+ template: boolean;
292
+ observability: boolean;
293
+ slackChannelId: string | null;
294
+ slackTeamId: string | null;
295
+ }[];
296
+ };
297
+ };
298
+ };
299
+ };
300
+ } & {
301
+ api: {
302
+ projects: {
303
+ "check-availability": {
304
+ get: {
305
+ body: unknown;
306
+ params: {};
307
+ query: {
308
+ phoneNumber: string;
309
+ };
310
+ headers: unknown;
311
+ response: {
312
+ 200: {
313
+ available: boolean;
314
+ };
315
+ 422: {
316
+ type: "validation";
317
+ on: string;
318
+ summary?: string;
319
+ message?: string;
320
+ found?: unknown;
321
+ property?: string;
322
+ expected?: string;
323
+ };
324
+ };
325
+ };
326
+ };
327
+ };
328
+ };
329
+ } & {
330
+ api: {
331
+ projects: {
332
+ ":id": {
333
+ get: {
334
+ body: unknown;
335
+ params: {
336
+ id: string;
337
+ } & {};
338
+ query: unknown;
339
+ headers: unknown;
340
+ response: {
341
+ 200: {
342
+ isOwner: boolean;
343
+ name: string;
344
+ status: string;
345
+ id: string;
346
+ createdAt: Date;
347
+ updatedAt: Date;
348
+ location: string;
349
+ projectSecret: string | null;
350
+ template: boolean;
351
+ observability: boolean;
352
+ slackChannelId: string | null;
353
+ slackTeamId: string | null;
354
+ } | null;
355
+ 422: {
356
+ type: "validation";
357
+ on: string;
358
+ summary?: string;
359
+ message?: string;
360
+ found?: unknown;
361
+ property?: string;
362
+ expected?: string;
363
+ };
364
+ };
365
+ };
366
+ };
367
+ };
368
+ };
369
+ } & {
370
+ api: {
371
+ projects: {
372
+ post: {
373
+ body: {
374
+ platforms?: ("imessage" | "whatsapp_business" | "voice")[] | undefined;
375
+ location?: string | undefined;
376
+ template?: boolean | undefined;
377
+ observability?: boolean | undefined;
378
+ name: string;
379
+ };
380
+ params: {};
381
+ query: unknown;
382
+ headers: unknown;
383
+ response: {
384
+ 200: {
385
+ error: string;
386
+ success?: undefined;
387
+ id?: undefined;
388
+ ownerStatus?: undefined;
389
+ } | {
390
+ success: true;
391
+ id: string;
392
+ ownerStatus: SpectrumOwnerStatus | undefined;
393
+ error?: undefined;
394
+ };
395
+ 422: {
396
+ type: "validation";
397
+ on: string;
398
+ summary?: string;
399
+ message?: string;
400
+ found?: unknown;
401
+ property?: string;
402
+ expected?: string;
403
+ };
404
+ };
405
+ };
406
+ };
407
+ };
408
+ } & {
409
+ api: {
410
+ projects: {
411
+ ":id": {
412
+ patch: {
413
+ body: {
414
+ name: string;
415
+ };
416
+ params: {
417
+ id: string;
418
+ } & {};
419
+ query: unknown;
420
+ headers: unknown;
421
+ response: {
422
+ 200: {
423
+ error: string;
424
+ success?: undefined;
425
+ } | {
426
+ success: true;
427
+ error?: undefined;
428
+ };
429
+ 422: {
430
+ type: "validation";
431
+ on: string;
432
+ summary?: string;
433
+ message?: string;
434
+ found?: unknown;
435
+ property?: string;
436
+ expected?: string;
437
+ };
438
+ };
439
+ };
440
+ };
441
+ };
442
+ };
443
+ } & {
444
+ api: {
445
+ projects: {
446
+ ":id": {
447
+ delete: {
448
+ body: unknown;
449
+ params: {
450
+ id: string;
451
+ } & {};
452
+ query: unknown;
453
+ headers: unknown;
454
+ response: {
455
+ 200: {
456
+ error: string;
457
+ success?: undefined;
458
+ } | {
459
+ success: true;
460
+ error?: undefined;
461
+ };
462
+ 422: {
463
+ type: "validation";
464
+ on: string;
465
+ summary?: string;
466
+ message?: string;
467
+ found?: unknown;
468
+ property?: string;
469
+ expected?: string;
470
+ };
471
+ };
472
+ };
473
+ };
474
+ };
475
+ };
476
+ } & {
477
+ api: {
478
+ projects: {
479
+ ":id": {
480
+ "regenerate-secret": {
481
+ post: {
482
+ body: unknown;
483
+ params: {
484
+ id: string;
485
+ } & {};
486
+ query: unknown;
487
+ headers: unknown;
488
+ response: {
489
+ 200: {
490
+ error: string;
491
+ success?: undefined;
492
+ projectSecret?: undefined;
493
+ } | {
494
+ success: boolean;
495
+ projectSecret: string;
496
+ error?: undefined;
497
+ };
498
+ 422: {
499
+ type: "validation";
500
+ on: string;
501
+ summary?: string;
502
+ message?: string;
503
+ found?: unknown;
504
+ property?: string;
505
+ expected?: string;
506
+ };
507
+ };
508
+ };
509
+ };
510
+ };
511
+ };
512
+ };
513
+ } & {
514
+ api: {
515
+ projects: {
516
+ ":id": {
517
+ spectrum: {
518
+ profile: {
519
+ get: {
520
+ body: unknown;
521
+ params: {
522
+ id: string;
523
+ } & {};
524
+ query: unknown;
525
+ headers: unknown;
526
+ response: {
527
+ 200: SpectrumProfile | null;
528
+ 422: {
529
+ type: "validation";
530
+ on: string;
531
+ summary?: string;
532
+ message?: string;
533
+ found?: unknown;
534
+ property?: string;
535
+ expected?: string;
536
+ };
537
+ };
538
+ };
539
+ };
540
+ };
541
+ };
542
+ };
543
+ };
544
+ } & {
545
+ api: {
546
+ projects: {
547
+ ":id": {
548
+ spectrum: {
549
+ profile: {
550
+ patch: {
551
+ body: {
552
+ firstName?: string | undefined;
553
+ lastName?: string | undefined;
554
+ avatarUrl?: string | undefined;
555
+ };
556
+ params: {
557
+ id: string;
558
+ } & {};
559
+ query: unknown;
560
+ headers: unknown;
561
+ response: {
562
+ 200: {
563
+ error: string;
564
+ success?: undefined;
565
+ profile?: undefined;
566
+ } | {
567
+ success: boolean;
568
+ profile: SpectrumProfile;
569
+ error?: undefined;
570
+ };
571
+ 422: {
572
+ type: "validation";
573
+ on: string;
574
+ summary?: string;
575
+ message?: string;
576
+ found?: unknown;
577
+ property?: string;
578
+ expected?: string;
579
+ };
580
+ };
581
+ };
582
+ };
583
+ };
584
+ };
585
+ };
586
+ };
587
+ } & {
588
+ api: {
589
+ projects: {
590
+ ":id": {
591
+ spectrum: {
592
+ avatar: {
593
+ upload: {
594
+ post: {
595
+ body: {
596
+ contentType: string;
597
+ };
598
+ params: {
599
+ id: string;
600
+ } & {};
601
+ query: unknown;
602
+ headers: unknown;
603
+ response: {
604
+ 200: {
605
+ uploadUrl: string;
606
+ key: string;
607
+ } | {
608
+ error: string;
609
+ };
610
+ 422: {
611
+ type: "validation";
612
+ on: string;
613
+ summary?: string;
614
+ message?: string;
615
+ found?: unknown;
616
+ property?: string;
617
+ expected?: string;
618
+ };
619
+ };
620
+ };
621
+ };
622
+ };
623
+ };
624
+ };
625
+ };
626
+ };
627
+ } & {
628
+ api: {
629
+ projects: {
630
+ ":id": {
631
+ spectrum: {
632
+ avatar: {
633
+ commit: {
634
+ post: {
635
+ body: {
636
+ key: string;
637
+ };
638
+ params: {
639
+ id: string;
640
+ } & {};
641
+ query: unknown;
642
+ headers: unknown;
643
+ response: {
644
+ 200: {
645
+ error: string;
646
+ } | {
647
+ avatarUrl: string;
648
+ success: true;
649
+ error?: undefined;
650
+ };
651
+ 422: {
652
+ type: "validation";
653
+ on: string;
654
+ summary?: string;
655
+ message?: string;
656
+ found?: unknown;
657
+ property?: string;
658
+ expected?: string;
659
+ };
660
+ };
661
+ };
662
+ };
663
+ };
664
+ };
665
+ };
666
+ };
667
+ };
668
+ } & {
669
+ api: {
670
+ projects: {
671
+ ":id": {
672
+ spectrum: {
673
+ avatar: {
674
+ delete: {
675
+ body: unknown;
676
+ params: {
677
+ id: string;
678
+ } & {};
679
+ query: unknown;
680
+ headers: unknown;
681
+ response: {
682
+ 200: {
683
+ error: string;
684
+ success?: undefined;
685
+ } | {
686
+ success: true;
687
+ error?: undefined;
688
+ };
689
+ 422: {
690
+ type: "validation";
691
+ on: string;
692
+ summary?: string;
693
+ message?: string;
694
+ found?: unknown;
695
+ property?: string;
696
+ expected?: string;
697
+ };
698
+ };
699
+ };
700
+ };
701
+ };
702
+ };
703
+ };
704
+ };
705
+ } & {
706
+ api: {
707
+ projects: {
708
+ ":id": {
709
+ spectrum: {
710
+ users: {
711
+ get: {
712
+ body: unknown;
713
+ params: {
714
+ id: string;
715
+ } & {};
716
+ query: {
717
+ search?: string | undefined;
718
+ limit?: number | undefined;
719
+ offset?: number | undefined;
720
+ };
721
+ headers: unknown;
722
+ response: {
723
+ 200: SpectrumUsersPage;
724
+ 422: {
725
+ type: "validation";
726
+ on: string;
727
+ summary?: string;
728
+ message?: string;
729
+ found?: unknown;
730
+ property?: string;
731
+ expected?: string;
732
+ };
733
+ };
734
+ };
735
+ };
736
+ };
737
+ };
738
+ };
739
+ };
740
+ } & {
741
+ api: {
742
+ projects: {
743
+ ":id": {
744
+ spectrum: {
745
+ users: {
746
+ post: {
747
+ body: {
748
+ type?: "shared" | undefined;
749
+ sendInvite?: boolean | undefined;
750
+ email: string;
751
+ phoneNumber: string;
752
+ firstName: string;
753
+ lastName: string;
754
+ } | {
755
+ email: string;
756
+ phoneNumber: string;
757
+ type: "dedicated";
758
+ firstName: string;
759
+ lastName: string;
760
+ assignedPhoneNumber: string;
761
+ };
762
+ params: {
763
+ id: string;
764
+ } & {};
765
+ query: unknown;
766
+ headers: unknown;
767
+ response: {
768
+ 200: {
769
+ error: string;
770
+ success?: undefined;
771
+ user?: undefined;
772
+ } | {
773
+ success: true;
774
+ user: SpectrumUser;
775
+ error?: undefined;
776
+ };
777
+ 422: {
778
+ type: "validation";
779
+ on: string;
780
+ summary?: string;
781
+ message?: string;
782
+ found?: unknown;
783
+ property?: string;
784
+ expected?: string;
785
+ };
786
+ };
787
+ };
788
+ };
789
+ };
790
+ };
791
+ };
792
+ };
793
+ } & {
794
+ api: {
795
+ projects: {
796
+ ":id": {
797
+ spectrum: {
798
+ users: {
799
+ ":userId": {
800
+ delete: {
801
+ body: unknown;
802
+ params: {
803
+ id: string;
804
+ userId: string;
805
+ } & {};
806
+ query: unknown;
807
+ headers: unknown;
808
+ response: {
809
+ 200: {
810
+ error: string;
811
+ success?: undefined;
812
+ } | {
813
+ success: true;
814
+ error?: undefined;
815
+ };
816
+ 422: {
817
+ type: "validation";
818
+ on: string;
819
+ summary?: string;
820
+ message?: string;
821
+ found?: unknown;
822
+ property?: string;
823
+ expected?: string;
824
+ };
825
+ };
826
+ };
827
+ };
828
+ };
829
+ };
830
+ };
831
+ };
832
+ };
833
+ } & {
834
+ api: {
835
+ projects: {
836
+ ":id": {
837
+ spectrum: {
838
+ users: {
839
+ invite: {
840
+ post: {
841
+ body: {
842
+ userId: string;
843
+ };
844
+ params: {
845
+ id: string;
846
+ } & {};
847
+ query: unknown;
848
+ headers: unknown;
849
+ response: {
850
+ 200: {
851
+ error: string;
852
+ } | {
853
+ emailId: string;
854
+ sentTo: string;
855
+ success: boolean;
856
+ error?: undefined;
857
+ };
858
+ 422: {
859
+ type: "validation";
860
+ on: string;
861
+ summary?: string;
862
+ message?: string;
863
+ found?: unknown;
864
+ property?: string;
865
+ expected?: string;
866
+ };
867
+ };
868
+ };
869
+ };
870
+ };
871
+ };
872
+ };
873
+ };
874
+ };
875
+ } & {
876
+ api: {
877
+ projects: {
878
+ ":id": {
879
+ whatsapp: {
880
+ connect: {
881
+ post: {
882
+ body: {
883
+ phoneNumberId?: string | undefined;
884
+ authorizationCode: string;
885
+ wabaId: string;
886
+ };
887
+ params: {
888
+ id: string;
889
+ } & {};
890
+ query: unknown;
891
+ headers: unknown;
892
+ response: {
893
+ 200: {
894
+ error: string;
895
+ success?: undefined;
896
+ } | {
897
+ success: true;
898
+ error?: undefined;
899
+ };
900
+ 422: {
901
+ type: "validation";
902
+ on: string;
903
+ summary?: string;
904
+ message?: string;
905
+ found?: unknown;
906
+ property?: string;
907
+ expected?: string;
908
+ };
909
+ };
910
+ };
911
+ };
912
+ };
913
+ };
914
+ };
915
+ };
916
+ } & {
917
+ api: {
918
+ projects: {
919
+ ":id": {
920
+ whatsapp: {
921
+ phone: {
922
+ post: {
923
+ body: {
924
+ accountId: string;
925
+ phoneNumberId: string;
926
+ };
927
+ params: {
928
+ id: string;
929
+ } & {};
930
+ query: unknown;
931
+ headers: unknown;
932
+ response: {
933
+ 200: {
934
+ error: string;
935
+ success?: undefined;
936
+ phone?: undefined;
937
+ } | {
938
+ success: boolean;
939
+ phone: WhatsAppPhoneNumber;
940
+ error?: undefined;
941
+ };
942
+ 422: {
943
+ type: "validation";
944
+ on: string;
945
+ summary?: string;
946
+ message?: string;
947
+ found?: unknown;
948
+ property?: string;
949
+ expected?: string;
950
+ };
951
+ };
952
+ };
953
+ };
954
+ };
955
+ };
956
+ };
957
+ };
958
+ } & {
959
+ api: {
960
+ projects: {
961
+ ":id": {
962
+ whatsapp: {
963
+ templates: {
964
+ get: {
965
+ body: unknown;
966
+ params: {
967
+ id: string;
968
+ } & {};
969
+ query: {
970
+ name?: string | undefined;
971
+ status?: "APPROVED" | "PENDING" | "REJECTED" | "PAUSED" | "IN_APPEAL" | "PENDING_DELETION" | "DELETED" | "DISABLED" | "LIMIT_EXCEEDED" | undefined;
972
+ limit?: number | undefined;
973
+ after?: string | undefined;
974
+ before?: string | undefined;
975
+ category?: "MARKETING" | "UTILITY" | "AUTHENTICATION" | undefined;
976
+ language?: string | undefined;
977
+ nameOrContent?: string | undefined;
978
+ };
979
+ headers: unknown;
980
+ response: {
981
+ 200: {
982
+ error: string;
983
+ } | {
984
+ paging: WhatsAppTemplatePaging;
985
+ templates: WhatsAppTemplate[];
986
+ success: true;
987
+ accountId: string;
988
+ error?: undefined;
989
+ };
990
+ 422: {
991
+ type: "validation";
992
+ on: string;
993
+ summary?: string;
994
+ message?: string;
995
+ found?: unknown;
996
+ property?: string;
997
+ expected?: string;
998
+ };
999
+ };
1000
+ };
1001
+ };
1002
+ };
1003
+ };
1004
+ };
1005
+ };
1006
+ } & {
1007
+ api: {
1008
+ projects: {
1009
+ ":id": {
1010
+ whatsapp: {
1011
+ templates: {
1012
+ post: {
1013
+ body: {
1014
+ allowCategoryChange?: boolean | undefined;
1015
+ parameterFormat?: "POSITIONAL" | "NAMED" | undefined;
1016
+ components: {
1017
+ type: string;
1018
+ }[];
1019
+ name: string;
1020
+ category: "MARKETING" | "UTILITY" | "AUTHENTICATION";
1021
+ language: string;
1022
+ };
1023
+ params: {
1024
+ id: string;
1025
+ } & {};
1026
+ query: unknown;
1027
+ headers: unknown;
1028
+ response: {
1029
+ 200: {
1030
+ error: string;
1031
+ success?: undefined;
1032
+ template?: undefined;
1033
+ } | {
1034
+ success: true;
1035
+ template: Pick<WhatsAppTemplate, "status" | "id" | "category">;
1036
+ error?: undefined;
1037
+ };
1038
+ 422: {
1039
+ type: "validation";
1040
+ on: string;
1041
+ summary?: string;
1042
+ message?: string;
1043
+ found?: unknown;
1044
+ property?: string;
1045
+ expected?: string;
1046
+ };
1047
+ };
1048
+ };
1049
+ };
1050
+ };
1051
+ };
1052
+ };
1053
+ };
1054
+ } & {
1055
+ api: {
1056
+ projects: {
1057
+ ":id": {
1058
+ whatsapp: {
1059
+ templates: {
1060
+ ":templateId": {
1061
+ patch: {
1062
+ body: {
1063
+ components?: {
1064
+ type: string;
1065
+ }[] | undefined;
1066
+ category?: "MARKETING" | "UTILITY" | "AUTHENTICATION" | undefined;
1067
+ messageSendTtlSeconds?: number | undefined;
1068
+ };
1069
+ params: {
1070
+ id: string;
1071
+ templateId: string;
1072
+ } & {};
1073
+ query: unknown;
1074
+ headers: unknown;
1075
+ response: {
1076
+ 200: {
1077
+ success: true;
1078
+ templateId: string;
1079
+ } | {
1080
+ error: string;
1081
+ };
1082
+ 422: {
1083
+ type: "validation";
1084
+ on: string;
1085
+ summary?: string;
1086
+ message?: string;
1087
+ found?: unknown;
1088
+ property?: string;
1089
+ expected?: string;
1090
+ };
1091
+ };
1092
+ };
1093
+ };
1094
+ };
1095
+ };
1096
+ };
1097
+ };
1098
+ };
1099
+ } & {
1100
+ api: {
1101
+ projects: {
1102
+ ":id": {
1103
+ whatsapp: {
1104
+ templates: {
1105
+ ":templateId": {
1106
+ delete: {
1107
+ body: unknown;
1108
+ params: {
1109
+ id: string;
1110
+ templateId: string;
1111
+ } & {};
1112
+ query: {
1113
+ name: string;
1114
+ };
1115
+ headers: unknown;
1116
+ response: {
1117
+ 200: {
1118
+ error: string;
1119
+ success?: undefined;
1120
+ templateId?: undefined;
1121
+ } | {
1122
+ success: true;
1123
+ templateId: string;
1124
+ error?: undefined;
1125
+ };
1126
+ 422: {
1127
+ type: "validation";
1128
+ on: string;
1129
+ summary?: string;
1130
+ message?: string;
1131
+ found?: unknown;
1132
+ property?: string;
1133
+ expected?: string;
1134
+ };
1135
+ };
1136
+ };
1137
+ };
1138
+ };
1139
+ };
1140
+ };
1141
+ };
1142
+ };
1143
+ } & {
1144
+ api: {
1145
+ projects: {
1146
+ ":id": {
1147
+ platforms: {
1148
+ get: {
1149
+ body: unknown;
1150
+ params: {
1151
+ id: string;
1152
+ } & {};
1153
+ query: unknown;
1154
+ headers: unknown;
1155
+ response: {
1156
+ 200: Record<string, boolean>;
1157
+ 422: {
1158
+ type: "validation";
1159
+ on: string;
1160
+ summary?: string;
1161
+ message?: string;
1162
+ found?: unknown;
1163
+ property?: string;
1164
+ expected?: string;
1165
+ };
1166
+ };
1167
+ };
1168
+ };
1169
+ };
1170
+ };
1171
+ };
1172
+ } & {
1173
+ api: {
1174
+ projects: {
1175
+ ":id": {
1176
+ platforms: {
1177
+ toggle: {
1178
+ post: {
1179
+ body: {
1180
+ enabled: boolean;
1181
+ platformId: string;
1182
+ };
1183
+ params: {
1184
+ id: string;
1185
+ } & {};
1186
+ query: unknown;
1187
+ headers: unknown;
1188
+ response: {
1189
+ 200: {
1190
+ error: string;
1191
+ success?: undefined;
1192
+ platforms?: undefined;
1193
+ } | {
1194
+ success: true;
1195
+ platforms: Record<string, boolean>;
1196
+ error?: undefined;
1197
+ };
1198
+ 422: {
1199
+ type: "validation";
1200
+ on: string;
1201
+ summary?: string;
1202
+ message?: string;
1203
+ found?: unknown;
1204
+ property?: string;
1205
+ expected?: string;
1206
+ };
1207
+ };
1208
+ };
1209
+ };
1210
+ };
1211
+ };
1212
+ };
1213
+ };
1214
+ } & {
1215
+ api: {
1216
+ projects: {
1217
+ ":id": {
1218
+ lines: {
1219
+ get: {
1220
+ body: unknown;
1221
+ params: {
1222
+ id: string;
1223
+ } & {};
1224
+ query: unknown;
1225
+ headers: unknown;
1226
+ response: {
1227
+ 200: SpectrumLine[];
1228
+ 422: {
1229
+ type: "validation";
1230
+ on: string;
1231
+ summary?: string;
1232
+ message?: string;
1233
+ found?: unknown;
1234
+ property?: string;
1235
+ expected?: string;
1236
+ };
1237
+ };
1238
+ };
1239
+ };
1240
+ };
1241
+ };
1242
+ };
1243
+ } & {
1244
+ api: {
1245
+ projects: {
1246
+ ":id": {
1247
+ lines: {
1248
+ post: {
1249
+ body: {
1250
+ platform: "imessage";
1251
+ };
1252
+ params: {
1253
+ id: string;
1254
+ } & {};
1255
+ query: unknown;
1256
+ headers: unknown;
1257
+ response: {
1258
+ 200: {
1259
+ error: string;
1260
+ success?: undefined;
1261
+ line?: undefined;
1262
+ } | {
1263
+ success: true;
1264
+ line: SpectrumLine;
1265
+ error?: undefined;
1266
+ };
1267
+ 422: {
1268
+ type: "validation";
1269
+ on: string;
1270
+ summary?: string;
1271
+ message?: string;
1272
+ found?: unknown;
1273
+ property?: string;
1274
+ expected?: string;
1275
+ };
1276
+ };
1277
+ };
1278
+ };
1279
+ };
1280
+ };
1281
+ };
1282
+ } & {
1283
+ api: {
1284
+ projects: {
1285
+ ":id": {
1286
+ lines: {
1287
+ ":lineId": {
1288
+ delete: {
1289
+ body: unknown;
1290
+ params: {
1291
+ id: string;
1292
+ lineId: string;
1293
+ } & {};
1294
+ query: unknown;
1295
+ headers: unknown;
1296
+ response: {
1297
+ 200: {
1298
+ error: string;
1299
+ success?: undefined;
1300
+ } | {
1301
+ success: true;
1302
+ error?: undefined;
1303
+ };
1304
+ 422: {
1305
+ type: "validation";
1306
+ on: string;
1307
+ summary?: string;
1308
+ message?: string;
1309
+ found?: unknown;
1310
+ property?: string;
1311
+ expected?: string;
1312
+ };
1313
+ };
1314
+ };
1315
+ };
1316
+ };
1317
+ };
1318
+ };
1319
+ };
1320
+ } & {
1321
+ api: {
1322
+ projects: {
1323
+ ":id": {
1324
+ voice: {
1325
+ settings: {
1326
+ get: {
1327
+ body: unknown;
1328
+ params: {
1329
+ id: string;
1330
+ } & {};
1331
+ query: unknown;
1332
+ headers: unknown;
1333
+ response: {
1334
+ 200: {
1335
+ imessageEnabled: boolean;
1336
+ sipInbound: SpectrumSipInboundConfig | null;
1337
+ };
1338
+ 422: {
1339
+ type: "validation";
1340
+ on: string;
1341
+ summary?: string;
1342
+ message?: string;
1343
+ found?: unknown;
1344
+ property?: string;
1345
+ expected?: string;
1346
+ };
1347
+ };
1348
+ };
1349
+ };
1350
+ };
1351
+ };
1352
+ };
1353
+ };
1354
+ } & {
1355
+ api: {
1356
+ projects: {
1357
+ ":id": {
1358
+ voice: {
1359
+ "imessage-enabled": {
1360
+ patch: {
1361
+ body: {
1362
+ enabled: boolean;
1363
+ };
1364
+ params: {
1365
+ id: string;
1366
+ } & {};
1367
+ query: unknown;
1368
+ headers: unknown;
1369
+ response: {
1370
+ 200: {
1371
+ error: string;
1372
+ success?: undefined;
1373
+ imessageEnabled?: undefined;
1374
+ voiceEnabled?: undefined;
1375
+ } | {
1376
+ success: true;
1377
+ imessageEnabled: boolean;
1378
+ voiceEnabled: boolean;
1379
+ error?: undefined;
1380
+ };
1381
+ 422: {
1382
+ type: "validation";
1383
+ on: string;
1384
+ summary?: string;
1385
+ message?: string;
1386
+ found?: unknown;
1387
+ property?: string;
1388
+ expected?: string;
1389
+ };
1390
+ };
1391
+ };
1392
+ };
1393
+ };
1394
+ };
1395
+ };
1396
+ };
1397
+ } & {
1398
+ api: {
1399
+ projects: {
1400
+ ":id": {
1401
+ imessage: {
1402
+ settings: {
1403
+ get: {
1404
+ body: unknown;
1405
+ params: {
1406
+ id: string;
1407
+ } & {};
1408
+ query: unknown;
1409
+ headers: unknown;
1410
+ response: {
1411
+ 200: {
1412
+ autoScale: boolean;
1413
+ };
1414
+ 422: {
1415
+ type: "validation";
1416
+ on: string;
1417
+ summary?: string;
1418
+ message?: string;
1419
+ found?: unknown;
1420
+ property?: string;
1421
+ expected?: string;
1422
+ };
1423
+ };
1424
+ };
1425
+ };
1426
+ };
1427
+ };
1428
+ };
1429
+ };
1430
+ } & {
1431
+ api: {
1432
+ projects: {
1433
+ ":id": {
1434
+ imessage: {
1435
+ "auto-scale": {
1436
+ patch: {
1437
+ body: {
1438
+ autoScale: boolean;
1439
+ };
1440
+ params: {
1441
+ id: string;
1442
+ } & {};
1443
+ query: unknown;
1444
+ headers: unknown;
1445
+ response: {
1446
+ 200: {
1447
+ error: string;
1448
+ success?: undefined;
1449
+ autoScale?: undefined;
1450
+ } | {
1451
+ success: true;
1452
+ autoScale: boolean;
1453
+ error?: undefined;
1454
+ };
1455
+ 422: {
1456
+ type: "validation";
1457
+ on: string;
1458
+ summary?: string;
1459
+ message?: string;
1460
+ found?: unknown;
1461
+ property?: string;
1462
+ expected?: string;
1463
+ };
1464
+ };
1465
+ };
1466
+ };
1467
+ };
1468
+ };
1469
+ };
1470
+ };
1471
+ } & {
1472
+ api: {
1473
+ projects: {
1474
+ ":id": {
1475
+ voice: {
1476
+ "sip-inbound": {
1477
+ patch: {
1478
+ body: {
1479
+ password?: string | null | undefined;
1480
+ sipUri?: string | undefined;
1481
+ username?: string | null | undefined;
1482
+ };
1483
+ params: {
1484
+ id: string;
1485
+ } & {};
1486
+ query: unknown;
1487
+ headers: unknown;
1488
+ response: {
1489
+ 200: {
1490
+ error: string;
1491
+ success?: undefined;
1492
+ sipInbound?: undefined;
1493
+ } | {
1494
+ success: true;
1495
+ sipInbound: SpectrumSipInboundConfig;
1496
+ error?: undefined;
1497
+ };
1498
+ 422: {
1499
+ type: "validation";
1500
+ on: string;
1501
+ summary?: string;
1502
+ message?: string;
1503
+ found?: unknown;
1504
+ property?: string;
1505
+ expected?: string;
1506
+ };
1507
+ };
1508
+ };
1509
+ };
1510
+ };
1511
+ };
1512
+ };
1513
+ };
1514
+ } & {
1515
+ api: {
1516
+ projects: {
1517
+ ":id": {
1518
+ voice: {
1519
+ "sip-inbound": {
1520
+ delete: {
1521
+ body: unknown;
1522
+ params: {
1523
+ id: string;
1524
+ } & {};
1525
+ query: unknown;
1526
+ headers: unknown;
1527
+ response: {
1528
+ 200: {
1529
+ error: string;
1530
+ success?: undefined;
1531
+ } | {
1532
+ success: true;
1533
+ error?: undefined;
1534
+ };
1535
+ 422: {
1536
+ type: "validation";
1537
+ on: string;
1538
+ summary?: string;
1539
+ message?: string;
1540
+ found?: unknown;
1541
+ property?: string;
1542
+ expected?: string;
1543
+ };
1544
+ };
1545
+ };
1546
+ };
1547
+ };
1548
+ };
1549
+ };
1550
+ };
1551
+ } & {
1552
+ api: {
1553
+ projects: {
1554
+ ":id": {
1555
+ slack: {
1556
+ get: {
1557
+ body: unknown;
1558
+ params: {
1559
+ id: string;
1560
+ } & {};
1561
+ query: unknown;
1562
+ headers: unknown;
1563
+ response: {
1564
+ 200: {
1565
+ installUrl: string | null;
1566
+ appConfigId: string;
1567
+ appId: string | null;
1568
+ clientId: string | null;
1569
+ clientSecret: string | null;
1570
+ createdAt: string;
1571
+ enabledFeatures: SpectrumSlackFeature[];
1572
+ installationCount: number;
1573
+ projectId: string;
1574
+ signingSecret: string | null;
1575
+ updatedAt: string;
1576
+ } | null;
1577
+ 422: {
1578
+ type: "validation";
1579
+ on: string;
1580
+ summary?: string;
1581
+ message?: string;
1582
+ found?: unknown;
1583
+ property?: string;
1584
+ expected?: string;
1585
+ };
1586
+ };
1587
+ };
1588
+ };
1589
+ };
1590
+ };
1591
+ };
1592
+ } & {
1593
+ api: {
1594
+ projects: {
1595
+ ":id": {
1596
+ slack: {
1597
+ put: {
1598
+ body: {
1599
+ clientId?: string | undefined;
1600
+ clientSecret?: string | undefined;
1601
+ enabledFeatures?: ("channel-history" | "read-tracking" | "dms" | "files" | "reactions" | "pins")[] | undefined;
1602
+ signingSecret?: string | undefined;
1603
+ appId?: string | undefined;
1604
+ };
1605
+ params: {
1606
+ id: string;
1607
+ } & {};
1608
+ query: unknown;
1609
+ headers: unknown;
1610
+ response: {
1611
+ 200: {
1612
+ error: string;
1613
+ success?: undefined;
1614
+ config?: undefined;
1615
+ } | {
1616
+ success: true;
1617
+ config: SpectrumSlackConfig;
1618
+ error?: undefined;
1619
+ };
1620
+ 422: {
1621
+ type: "validation";
1622
+ on: string;
1623
+ summary?: string;
1624
+ message?: string;
1625
+ found?: unknown;
1626
+ property?: string;
1627
+ expected?: string;
1628
+ };
1629
+ };
1630
+ };
1631
+ };
1632
+ };
1633
+ };
1634
+ };
1635
+ } & {
1636
+ api: {
1637
+ projects: {
1638
+ ":id": {
1639
+ slack: {
1640
+ delete: {
1641
+ body: unknown;
1642
+ params: {
1643
+ id: string;
1644
+ } & {};
1645
+ query: unknown;
1646
+ headers: unknown;
1647
+ response: {
1648
+ 200: {
1649
+ error: string;
1650
+ success?: undefined;
1651
+ } | {
1652
+ success: true;
1653
+ error?: undefined;
1654
+ };
1655
+ 422: {
1656
+ type: "validation";
1657
+ on: string;
1658
+ summary?: string;
1659
+ message?: string;
1660
+ found?: unknown;
1661
+ property?: string;
1662
+ expected?: string;
1663
+ };
1664
+ };
1665
+ };
1666
+ };
1667
+ };
1668
+ };
1669
+ };
1670
+ } & {
1671
+ api: {
1672
+ projects: {
1673
+ ":id": {
1674
+ slack: {
1675
+ installations: {
1676
+ get: {
1677
+ body: unknown;
1678
+ params: {
1679
+ id: string;
1680
+ } & {};
1681
+ query: unknown;
1682
+ headers: unknown;
1683
+ response: {
1684
+ 200: SpectrumSlackInstallation[];
1685
+ 422: {
1686
+ type: "validation";
1687
+ on: string;
1688
+ summary?: string;
1689
+ message?: string;
1690
+ found?: unknown;
1691
+ property?: string;
1692
+ expected?: string;
1693
+ };
1694
+ };
1695
+ };
1696
+ };
1697
+ };
1698
+ };
1699
+ };
1700
+ };
1701
+ } & {
1702
+ api: {
1703
+ projects: {
1704
+ ":id": {
1705
+ slack: {
1706
+ installations: {
1707
+ ":teamId": {
1708
+ delete: {
1709
+ body: unknown;
1710
+ params: {
1711
+ id: string;
1712
+ teamId: string;
1713
+ } & {};
1714
+ query: unknown;
1715
+ headers: unknown;
1716
+ response: {
1717
+ 200: {
1718
+ error: string;
1719
+ success?: undefined;
1720
+ } | {
1721
+ success: true;
1722
+ error?: undefined;
1723
+ };
1724
+ 422: {
1725
+ type: "validation";
1726
+ on: string;
1727
+ summary?: string;
1728
+ message?: string;
1729
+ found?: unknown;
1730
+ property?: string;
1731
+ expected?: string;
1732
+ };
1733
+ };
1734
+ };
1735
+ };
1736
+ };
1737
+ };
1738
+ };
1739
+ };
1740
+ };
1741
+ } & {
1742
+ api: {
1743
+ projects: {
1744
+ ":id": {
1745
+ slack: {
1746
+ setup: {
1747
+ post: {
1748
+ body: {
1749
+ refreshToken?: string | undefined;
1750
+ configToken?: string | undefined;
1751
+ appName: string;
1752
+ enabledFeatures: ("channel-history" | "read-tracking" | "dms" | "files" | "reactions" | "pins")[];
1753
+ };
1754
+ params: {
1755
+ id: string;
1756
+ } & {};
1757
+ query: unknown;
1758
+ headers: unknown;
1759
+ response: {
1760
+ 200: {
1761
+ error: string;
1762
+ success?: undefined;
1763
+ appId?: undefined;
1764
+ startUrl?: undefined;
1765
+ } | {
1766
+ success: true;
1767
+ appId: string | null;
1768
+ startUrl: string;
1769
+ error?: undefined;
1770
+ };
1771
+ 422: {
1772
+ type: "validation";
1773
+ on: string;
1774
+ summary?: string;
1775
+ message?: string;
1776
+ found?: unknown;
1777
+ property?: string;
1778
+ expected?: string;
1779
+ };
1780
+ };
1781
+ };
1782
+ };
1783
+ };
1784
+ };
1785
+ };
1786
+ };
1787
+ } & {
1788
+ api: {
1789
+ projects: {
1790
+ ":id": {
1791
+ webhooks: {
1792
+ get: {
1793
+ body: unknown;
1794
+ params: {
1795
+ id: string;
1796
+ } & {};
1797
+ query: unknown;
1798
+ headers: unknown;
1799
+ response: {
1800
+ 200: SpectrumWebhook[];
1801
+ 422: {
1802
+ type: "validation";
1803
+ on: string;
1804
+ summary?: string;
1805
+ message?: string;
1806
+ found?: unknown;
1807
+ property?: string;
1808
+ expected?: string;
1809
+ };
1810
+ };
1811
+ };
1812
+ };
1813
+ };
1814
+ };
1815
+ };
1816
+ } & {
1817
+ api: {
1818
+ projects: {
1819
+ ":id": {
1820
+ webhooks: {
1821
+ post: {
1822
+ body: {
1823
+ webhookUrl: string;
1824
+ };
1825
+ params: {
1826
+ id: string;
1827
+ } & {};
1828
+ query: unknown;
1829
+ headers: unknown;
1830
+ response: {
1831
+ 200: {
1832
+ error: string;
1833
+ success?: undefined;
1834
+ webhook?: undefined;
1835
+ } | {
1836
+ success: true;
1837
+ webhook: SpectrumWebhookCreated;
1838
+ error?: undefined;
1839
+ };
1840
+ 422: {
1841
+ type: "validation";
1842
+ on: string;
1843
+ summary?: string;
1844
+ message?: string;
1845
+ found?: unknown;
1846
+ property?: string;
1847
+ expected?: string;
1848
+ };
1849
+ };
1850
+ };
1851
+ };
1852
+ };
1853
+ };
1854
+ };
1855
+ } & {
1856
+ api: {
1857
+ projects: {
1858
+ ":id": {
1859
+ webhooks: {
1860
+ ":webhookId": {
1861
+ delete: {
1862
+ body: unknown;
1863
+ params: {
1864
+ id: string;
1865
+ webhookId: string;
1866
+ } & {};
1867
+ query: unknown;
1868
+ headers: unknown;
1869
+ response: {
1870
+ 200: {
1871
+ error: string;
1872
+ success?: undefined;
1873
+ } | {
1874
+ success: true;
1875
+ error?: undefined;
1876
+ };
1877
+ 422: {
1878
+ type: "validation";
1879
+ on: string;
1880
+ summary?: string;
1881
+ message?: string;
1882
+ found?: unknown;
1883
+ property?: string;
1884
+ expected?: string;
1885
+ };
1886
+ };
1887
+ };
1888
+ };
1889
+ };
1890
+ };
1891
+ };
1892
+ };
1893
+ } & {
1894
+ api: {
1895
+ projects: {
1896
+ ":id": {
1897
+ members: {
1898
+ get: {
1899
+ body: unknown;
1900
+ params: {
1901
+ id: string;
1902
+ } & {};
1903
+ query: unknown;
1904
+ headers: unknown;
1905
+ response: {
1906
+ 200: {
1907
+ readonly error: "Project not found";
1908
+ members?: undefined;
1909
+ } | {
1910
+ members: {
1911
+ id: string;
1912
+ projectId: string;
1913
+ userId: string;
1914
+ invitedByUserId: string | null;
1915
+ createdAt: Date;
1916
+ role: "owner" | "admin";
1917
+ user: {
1918
+ name: string;
1919
+ id: string;
1920
+ email: string;
1921
+ image: string | null;
1922
+ };
1923
+ }[];
1924
+ error?: undefined;
1925
+ };
1926
+ 422: {
1927
+ type: "validation";
1928
+ on: string;
1929
+ summary?: string;
1930
+ message?: string;
1931
+ found?: unknown;
1932
+ property?: string;
1933
+ expected?: string;
1934
+ };
1935
+ };
1936
+ };
1937
+ };
1938
+ };
1939
+ };
1940
+ };
1941
+ } & {
1942
+ api: {
1943
+ projects: {
1944
+ ":id": {
1945
+ members: {
1946
+ post: {
1947
+ body: {
1948
+ email: string;
1949
+ };
1950
+ params: {
1951
+ id: string;
1952
+ } & {};
1953
+ query: unknown;
1954
+ headers: unknown;
1955
+ response: {
1956
+ 200: {
1957
+ error: string;
1958
+ alreadyPending?: undefined;
1959
+ invitationId?: undefined;
1960
+ success?: undefined;
1961
+ invited?: undefined;
1962
+ } | {
1963
+ alreadyPending: true;
1964
+ invitationId: string;
1965
+ error?: undefined;
1966
+ success?: undefined;
1967
+ invited?: undefined;
1968
+ } | {
1969
+ success: true;
1970
+ invited: string;
1971
+ error?: undefined;
1972
+ alreadyPending?: undefined;
1973
+ invitationId?: undefined;
1974
+ };
1975
+ 422: {
1976
+ type: "validation";
1977
+ on: string;
1978
+ summary?: string;
1979
+ message?: string;
1980
+ found?: unknown;
1981
+ property?: string;
1982
+ expected?: string;
1983
+ };
1984
+ };
1985
+ };
1986
+ };
1987
+ };
1988
+ };
1989
+ };
1990
+ } & {
1991
+ api: {
1992
+ projects: {
1993
+ ":id": {
1994
+ members: {
1995
+ ":memberUserId": {
1996
+ delete: {
1997
+ body: unknown;
1998
+ params: {
1999
+ id: string;
2000
+ memberUserId: string;
2001
+ } & {};
2002
+ query: unknown;
2003
+ headers: unknown;
2004
+ response: {
2005
+ 200: {
2006
+ readonly error: "Project not found";
2007
+ success?: undefined;
2008
+ } | {
2009
+ readonly error: "The project owner cannot be removed";
2010
+ success?: undefined;
2011
+ } | {
2012
+ success: true;
2013
+ error?: undefined;
2014
+ };
2015
+ 422: {
2016
+ type: "validation";
2017
+ on: string;
2018
+ summary?: string;
2019
+ message?: string;
2020
+ found?: unknown;
2021
+ property?: string;
2022
+ expected?: string;
2023
+ };
2024
+ };
2025
+ };
2026
+ };
2027
+ };
2028
+ };
2029
+ };
2030
+ };
2031
+ } & {
2032
+ api: {
2033
+ projects: {
2034
+ ":id": {
2035
+ invitations: {
2036
+ get: {
2037
+ body: unknown;
2038
+ params: {
2039
+ id: string;
2040
+ } & {};
2041
+ query: unknown;
2042
+ headers: unknown;
2043
+ response: {
2044
+ 200: {
2045
+ readonly error: "Project not found";
2046
+ invitations?: undefined;
2047
+ } | {
2048
+ invitations: {
2049
+ id: string;
2050
+ email: string;
2051
+ invitedBy: {
2052
+ name: string;
2053
+ id: string;
2054
+ email: string;
2055
+ } | null;
2056
+ createdAt: Date;
2057
+ expiresAt: Date;
2058
+ }[];
2059
+ error?: undefined;
2060
+ };
2061
+ 422: {
2062
+ type: "validation";
2063
+ on: string;
2064
+ summary?: string;
2065
+ message?: string;
2066
+ found?: unknown;
2067
+ property?: string;
2068
+ expected?: string;
2069
+ };
2070
+ };
2071
+ };
2072
+ };
2073
+ };
2074
+ };
2075
+ };
2076
+ } & {
2077
+ api: {
2078
+ projects: {
2079
+ ":id": {
2080
+ invitations: {
2081
+ ":invitationId": {
2082
+ delete: {
2083
+ body: unknown;
2084
+ params: {
2085
+ id: string;
2086
+ invitationId: string;
2087
+ } & {};
2088
+ query: unknown;
2089
+ headers: unknown;
2090
+ response: {
2091
+ 200: {
2092
+ readonly error: "Project not found";
2093
+ success?: undefined;
2094
+ } | {
2095
+ success: true;
2096
+ error?: undefined;
2097
+ };
2098
+ 422: {
2099
+ type: "validation";
2100
+ on: string;
2101
+ summary?: string;
2102
+ message?: string;
2103
+ found?: unknown;
2104
+ property?: string;
2105
+ expected?: string;
2106
+ };
2107
+ };
2108
+ };
2109
+ };
2110
+ };
2111
+ };
2112
+ };
2113
+ };
2114
+ } & {
2115
+ api: {
2116
+ projects: {
2117
+ ":id": {
2118
+ invitations: {
2119
+ ":invitationId": {
2120
+ link: {
2121
+ post: {
2122
+ body: unknown;
2123
+ params: {
2124
+ id: string;
2125
+ invitationId: string;
2126
+ } & {};
2127
+ query: unknown;
2128
+ headers: unknown;
2129
+ response: {
2130
+ 200: {
2131
+ readonly error: "Project not found";
2132
+ readonly shareUrl?: undefined;
2133
+ } | {
2134
+ readonly error: "This invitation is no longer valid";
2135
+ readonly shareUrl?: undefined;
2136
+ } | {
2137
+ readonly shareUrl: string;
2138
+ error?: undefined;
2139
+ };
2140
+ 422: {
2141
+ type: "validation";
2142
+ on: string;
2143
+ summary?: string;
2144
+ message?: string;
2145
+ found?: unknown;
2146
+ property?: string;
2147
+ expected?: string;
2148
+ };
2149
+ };
2150
+ };
2151
+ };
2152
+ };
2153
+ };
2154
+ };
2155
+ };
2156
+ };
2157
+ } & {
2158
+ api: {
2159
+ invitations: {
2160
+ ":token": {
2161
+ get: {
2162
+ body: unknown;
2163
+ params: {
2164
+ token: string;
2165
+ } & {};
2166
+ query: unknown;
2167
+ headers: unknown;
2168
+ response: {
2169
+ 200: {
2170
+ valid: false;
2171
+ email?: undefined;
2172
+ projectId?: undefined;
2173
+ projectName?: undefined;
2174
+ invitedByName?: undefined;
2175
+ } | {
2176
+ valid: true;
2177
+ email: string;
2178
+ projectId: string;
2179
+ projectName: string;
2180
+ invitedByName: string | null;
2181
+ };
2182
+ 422: {
2183
+ type: "validation";
2184
+ on: string;
2185
+ summary?: string;
2186
+ message?: string;
2187
+ found?: unknown;
2188
+ property?: string;
2189
+ expected?: string;
2190
+ };
2191
+ };
2192
+ };
2193
+ };
2194
+ };
2195
+ };
2196
+ } & {
2197
+ api: {
2198
+ invitations: {
2199
+ ":token": {
2200
+ accept: {
2201
+ post: {
2202
+ body: unknown;
2203
+ params: {
2204
+ token: string;
2205
+ } & {};
2206
+ query: unknown;
2207
+ headers: unknown;
2208
+ response: {
2209
+ 200: {
2210
+ readonly error: "This invitation is no longer valid";
2211
+ invitedEmail?: undefined;
2212
+ success?: undefined;
2213
+ projectId?: undefined;
2214
+ } | {
2215
+ error: "email_mismatch";
2216
+ invitedEmail: string;
2217
+ success?: undefined;
2218
+ projectId?: undefined;
2219
+ } | {
2220
+ error: "email_unverified";
2221
+ invitedEmail?: undefined;
2222
+ success?: undefined;
2223
+ projectId?: undefined;
2224
+ } | {
2225
+ success: true;
2226
+ projectId: string;
2227
+ error?: undefined;
2228
+ invitedEmail?: undefined;
2229
+ };
2230
+ 422: {
2231
+ type: "validation";
2232
+ on: string;
2233
+ summary?: string;
2234
+ message?: string;
2235
+ found?: unknown;
2236
+ property?: string;
2237
+ expected?: string;
2238
+ };
2239
+ };
2240
+ };
2241
+ };
2242
+ };
2243
+ };
2244
+ };
2245
+ } & {
2246
+ api: {
2247
+ billing: {
2248
+ plans: {
2249
+ get: {
2250
+ body: unknown;
2251
+ params: {};
2252
+ query: unknown;
2253
+ headers: unknown;
2254
+ response: {
2255
+ 200: BillingProduct[];
2256
+ };
2257
+ };
2258
+ };
2259
+ };
2260
+ };
2261
+ } & {
2262
+ api: {
2263
+ billing: {
2264
+ checkout: {
2265
+ post: {
2266
+ body: {
2267
+ quantity?: number | undefined;
2268
+ projectId: string;
2269
+ priceId: string;
2270
+ };
2271
+ params: {};
2272
+ query: unknown;
2273
+ headers: unknown;
2274
+ response: {
2275
+ 200: {
2276
+ error: string;
2277
+ success?: undefined;
2278
+ url?: undefined;
2279
+ } | {
2280
+ success: true;
2281
+ url: string;
2282
+ error?: undefined;
2283
+ };
2284
+ 422: {
2285
+ type: "validation";
2286
+ on: string;
2287
+ summary?: string;
2288
+ message?: string;
2289
+ found?: unknown;
2290
+ property?: string;
2291
+ expected?: string;
2292
+ };
2293
+ };
2294
+ };
2295
+ };
2296
+ };
2297
+ };
2298
+ } & {
2299
+ api: {
2300
+ billing: {
2301
+ "max-plan": {
2302
+ get: {
2303
+ body: unknown;
2304
+ params: {};
2305
+ query: unknown;
2306
+ headers: unknown;
2307
+ response: {
2308
+ 200: {
2309
+ tier: PlanTier;
2310
+ };
2311
+ };
2312
+ };
2313
+ };
2314
+ };
2315
+ };
2316
+ } & {
2317
+ api: {
2318
+ projects: {
2319
+ ":id": {
2320
+ subscription: {
2321
+ get: {
2322
+ body: unknown;
2323
+ params: {
2324
+ id: string;
2325
+ } & {};
2326
+ query: unknown;
2327
+ headers: unknown;
2328
+ response: {
2329
+ 200: SpectrumSubscription;
2330
+ 422: {
2331
+ type: "validation";
2332
+ on: string;
2333
+ summary?: string;
2334
+ message?: string;
2335
+ found?: unknown;
2336
+ property?: string;
2337
+ expected?: string;
2338
+ };
2339
+ };
2340
+ };
2341
+ };
2342
+ };
2343
+ };
2344
+ };
2345
+ } & {
2346
+ api: {
2347
+ projects: {
2348
+ ":id": {
2349
+ subscription: {
2350
+ poll: {
2351
+ get: {
2352
+ body: unknown;
2353
+ params: {
2354
+ id: string;
2355
+ } & {};
2356
+ query: unknown;
2357
+ headers: unknown;
2358
+ response: {
2359
+ 200: {
2360
+ customer_id: string | null;
2361
+ status: "active" | "canceled" | "past_due" | null;
2362
+ subscription_id: string | null;
2363
+ tier: string;
2364
+ active: boolean;
2365
+ };
2366
+ 422: {
2367
+ type: "validation";
2368
+ on: string;
2369
+ summary?: string;
2370
+ message?: string;
2371
+ found?: unknown;
2372
+ property?: string;
2373
+ expected?: string;
2374
+ };
2375
+ };
2376
+ };
2377
+ };
2378
+ };
2379
+ };
2380
+ };
2381
+ };
2382
+ } & {
2383
+ api: {
2384
+ projects: {
2385
+ ":id": {
2386
+ subscription: {
2387
+ manage: {
2388
+ post: {
2389
+ body: unknown;
2390
+ params: {
2391
+ id: string;
2392
+ } & {};
2393
+ query: unknown;
2394
+ headers: unknown;
2395
+ response: {
2396
+ 200: {
2397
+ error: string;
2398
+ success?: undefined;
2399
+ url?: undefined;
2400
+ } | {
2401
+ success: true;
2402
+ url: string;
2403
+ error?: undefined;
2404
+ };
2405
+ 422: {
2406
+ type: "validation";
2407
+ on: string;
2408
+ summary?: string;
2409
+ message?: string;
2410
+ found?: unknown;
2411
+ property?: string;
2412
+ expected?: string;
2413
+ };
2414
+ };
2415
+ };
2416
+ };
2417
+ };
2418
+ };
2419
+ };
2420
+ };
2421
+ } & {
2422
+ api: {
2423
+ profile: {
2424
+ get: {
2425
+ body: unknown;
2426
+ params: {};
2427
+ query: unknown;
2428
+ headers: unknown;
2429
+ response: {
2430
+ 200: {
2431
+ id: string;
2432
+ userId: string;
2433
+ type: string;
2434
+ referralSource: string | null;
2435
+ platforms: string[] | null;
2436
+ background: string | null;
2437
+ companyName: string | null;
2438
+ } | null;
2439
+ };
2440
+ };
2441
+ };
2442
+ };
2443
+ } & {
2444
+ api: {
2445
+ profile: {
2446
+ "spectrum-updates": {
2447
+ patch: {
2448
+ body: {
2449
+ enabled: boolean;
2450
+ };
2451
+ params: {};
2452
+ query: unknown;
2453
+ headers: unknown;
2454
+ response: {
2455
+ 200: {
2456
+ success: true;
2457
+ receiveSpectrumUpdates: boolean;
2458
+ };
2459
+ 422: {
2460
+ type: "validation";
2461
+ on: string;
2462
+ summary?: string;
2463
+ message?: string;
2464
+ found?: unknown;
2465
+ property?: string;
2466
+ expected?: string;
2467
+ };
2468
+ };
2469
+ };
2470
+ };
2471
+ };
2472
+ };
2473
+ } & {
2474
+ api: {
2475
+ posthog: {
2476
+ "identity-snapshot": {
2477
+ get: {
2478
+ body: unknown;
2479
+ params: {};
2480
+ query: unknown;
2481
+ headers: unknown;
2482
+ response: {
2483
+ 200: {
2484
+ id: string;
2485
+ email: string;
2486
+ name: string;
2487
+ phoneNumber: string | null;
2488
+ receiveSpectrumUpdates: boolean;
2489
+ createdAt: string;
2490
+ onboardedAt: string | null;
2491
+ profile: {
2492
+ type: string;
2493
+ referralSource: string | null;
2494
+ platforms: string[] | null;
2495
+ background: string | null;
2496
+ companyName: string | null;
2497
+ } | null;
2498
+ } | null;
2499
+ };
2500
+ };
2501
+ };
2502
+ };
2503
+ };
2504
+ } & {
2505
+ api: {
2506
+ onboarding: {
2507
+ state: {
2508
+ get: {
2509
+ body: unknown;
2510
+ params: {};
2511
+ query: unknown;
2512
+ headers: unknown;
2513
+ response: {
2514
+ 200: {
2515
+ onboarded: boolean;
2516
+ phoneVerified: boolean;
2517
+ name: string;
2518
+ email: string;
2519
+ inferredType: AccountType;
2520
+ profile: {
2521
+ type: string;
2522
+ referralSource: string | null;
2523
+ platforms: string[] | null;
2524
+ background: string | null;
2525
+ companyName: string | null;
2526
+ } | null;
2527
+ };
2528
+ };
2529
+ };
2530
+ };
2531
+ };
2532
+ };
2533
+ } & {
2534
+ api: {
2535
+ onboarding: {
2536
+ name: {
2537
+ post: {
2538
+ body: {
2539
+ name: string;
2540
+ };
2541
+ params: {};
2542
+ query: unknown;
2543
+ headers: unknown;
2544
+ response: {
2545
+ 200: {
2546
+ success: boolean;
2547
+ };
2548
+ 422: {
2549
+ type: "validation";
2550
+ on: string;
2551
+ summary?: string;
2552
+ message?: string;
2553
+ found?: unknown;
2554
+ property?: string;
2555
+ expected?: string;
2556
+ };
2557
+ };
2558
+ };
2559
+ };
2560
+ };
2561
+ };
2562
+ } & {
2563
+ api: {
2564
+ onboarding: {
2565
+ referral: {
2566
+ post: {
2567
+ body: {
2568
+ referralSource: string;
2569
+ };
2570
+ params: {};
2571
+ query: unknown;
2572
+ headers: unknown;
2573
+ response: {
2574
+ 200: {
2575
+ success: boolean;
2576
+ };
2577
+ 422: {
2578
+ type: "validation";
2579
+ on: string;
2580
+ summary?: string;
2581
+ message?: string;
2582
+ found?: unknown;
2583
+ property?: string;
2584
+ expected?: string;
2585
+ };
2586
+ };
2587
+ };
2588
+ };
2589
+ };
2590
+ };
2591
+ } & {
2592
+ api: {
2593
+ onboarding: {
2594
+ details: {
2595
+ post: {
2596
+ body: {
2597
+ type?: "developer" | "organization" | undefined;
2598
+ platforms?: string[] | undefined;
2599
+ background?: string | undefined;
2600
+ companyName?: string | undefined;
2601
+ };
2602
+ params: {};
2603
+ query: unknown;
2604
+ headers: unknown;
2605
+ response: {
2606
+ 200: {
2607
+ success: boolean;
2608
+ };
2609
+ 422: {
2610
+ type: "validation";
2611
+ on: string;
2612
+ summary?: string;
2613
+ message?: string;
2614
+ found?: unknown;
2615
+ property?: string;
2616
+ expected?: string;
2617
+ };
2618
+ };
2619
+ };
2620
+ };
2621
+ };
2622
+ };
2623
+ } & {
2624
+ api: {
2625
+ slack: {
2626
+ features: {
2627
+ get: {
2628
+ body: unknown;
2629
+ params: {};
2630
+ query: unknown;
2631
+ headers: unknown;
2632
+ response: {
2633
+ 200: {
2634
+ requiredScopes: string[];
2635
+ features: Record<string, {
2636
+ label: string;
2637
+ description: string;
2638
+ scopes: string[];
2639
+ }>;
2640
+ } | null;
2641
+ };
2642
+ };
2643
+ };
2644
+ };
2645
+ };
2646
+ } & {
2647
+ api: {
2648
+ projects: {
2649
+ ":id": {
2650
+ slack: {
2651
+ "support-channel": {
2652
+ get: {
2653
+ body: unknown;
2654
+ params: {
2655
+ id: string;
2656
+ } & {};
2657
+ query: unknown;
2658
+ headers: unknown;
2659
+ response: {
2660
+ 200: {
2661
+ hasJoined: boolean;
2662
+ openUrl: null;
2663
+ } | {
2664
+ hasJoined: boolean;
2665
+ openUrl: string;
2666
+ };
2667
+ 422: {
2668
+ type: "validation";
2669
+ on: string;
2670
+ summary?: string;
2671
+ message?: string;
2672
+ found?: unknown;
2673
+ property?: string;
2674
+ expected?: string;
2675
+ };
2676
+ };
2677
+ };
2678
+ };
2679
+ };
2680
+ };
2681
+ };
2682
+ };
2683
+ } & {
2684
+ api: {
2685
+ projects: {
2686
+ ":id": {
2687
+ slack: {
2688
+ "support-channel": {
2689
+ open: {
2690
+ get: {
2691
+ body: unknown;
2692
+ params: {
2693
+ id: string;
2694
+ } & {};
2695
+ query: unknown;
2696
+ headers: unknown;
2697
+ response: {
2698
+ 200: Response;
2699
+ 422: {
2700
+ type: "validation";
2701
+ on: string;
2702
+ summary?: string;
2703
+ message?: string;
2704
+ found?: unknown;
2705
+ property?: string;
2706
+ expected?: string;
2707
+ };
2708
+ };
2709
+ };
2710
+ };
2711
+ };
2712
+ };
2713
+ };
2714
+ };
2715
+ };
2716
+ } & {
2717
+ api: {
2718
+ slack: {
2719
+ oidc: {
2720
+ callback: {
2721
+ get: {
2722
+ body: unknown;
2723
+ params: {};
2724
+ query: unknown;
2725
+ headers: unknown;
2726
+ response: {
2727
+ 200: Response;
2728
+ };
2729
+ };
2730
+ };
2731
+ };
2732
+ };
2733
+ };
2734
+ } & {
2735
+ api: {
2736
+ otp: {
2737
+ phone: {
2738
+ send: {
2739
+ post: {
2740
+ body: {
2741
+ phone: string;
2742
+ };
2743
+ params: {};
2744
+ query: unknown;
2745
+ headers: unknown;
2746
+ response: {
2747
+ 200: {
2748
+ error: string;
2749
+ skipped?: undefined;
2750
+ success?: undefined;
2751
+ } | {
2752
+ skipped: true;
2753
+ error?: undefined;
2754
+ success?: undefined;
2755
+ } | {
2756
+ success: boolean;
2757
+ error?: undefined;
2758
+ skipped?: undefined;
2759
+ };
2760
+ 422: {
2761
+ type: "validation";
2762
+ on: string;
2763
+ summary?: string;
2764
+ message?: string;
2765
+ found?: unknown;
2766
+ property?: string;
2767
+ expected?: string;
2768
+ };
2769
+ };
2770
+ };
2771
+ };
2772
+ };
2773
+ };
2774
+ };
2775
+ } & {
2776
+ api: {
2777
+ otp: {
2778
+ phone: {
2779
+ verify: {
2780
+ post: {
2781
+ body: {
2782
+ code: string;
2783
+ phone: string;
2784
+ };
2785
+ params: {};
2786
+ query: unknown;
2787
+ headers: unknown;
2788
+ response: {
2789
+ 200: {
2790
+ error: string;
2791
+ success?: undefined;
2792
+ } | {
2793
+ success: boolean;
2794
+ error?: undefined;
2795
+ };
2796
+ 422: {
2797
+ type: "validation";
2798
+ on: string;
2799
+ summary?: string;
2800
+ message?: string;
2801
+ found?: unknown;
2802
+ property?: string;
2803
+ expected?: string;
2804
+ };
2805
+ };
2806
+ };
2807
+ };
2808
+ };
2809
+ };
2810
+ };
2811
+ } & {
2812
+ api: {
2813
+ account: {
2814
+ "set-password": {
2815
+ post: {
2816
+ body: {
2817
+ newPassword: string;
2818
+ };
2819
+ params: {};
2820
+ query: unknown;
2821
+ headers: unknown;
2822
+ response: {
2823
+ 200: {
2824
+ success: true;
2825
+ error?: undefined;
2826
+ } | {
2827
+ error: string;
2828
+ success?: undefined;
2829
+ };
2830
+ 422: {
2831
+ type: "validation";
2832
+ on: string;
2833
+ summary?: string;
2834
+ message?: string;
2835
+ found?: unknown;
2836
+ property?: string;
2837
+ expected?: string;
2838
+ };
2839
+ };
2840
+ };
2841
+ };
2842
+ };
2843
+ };
2844
+ } & {
2845
+ api: {
2846
+ signup: {
2847
+ abandon: {
2848
+ post: {
2849
+ body: {
2850
+ email: string;
2851
+ };
2852
+ params: {};
2853
+ query: unknown;
2854
+ headers: unknown;
2855
+ response: {
2856
+ 200: {
2857
+ deleted: false;
2858
+ existingVerified: true;
2859
+ } | {
2860
+ deleted: boolean;
2861
+ existingVerified: false;
2862
+ };
2863
+ 422: {
2864
+ type: "validation";
2865
+ on: string;
2866
+ summary?: string;
2867
+ message?: string;
2868
+ found?: unknown;
2869
+ property?: string;
2870
+ expected?: string;
2871
+ };
2872
+ };
2873
+ };
2874
+ };
2875
+ };
2876
+ };
2877
+ } & {
2878
+ api: {
2879
+ "privacy-requests": {
2880
+ post: {
2881
+ body: {
2882
+ email: string;
2883
+ };
2884
+ params: {};
2885
+ query: unknown;
2886
+ headers: unknown;
2887
+ response: {
2888
+ 200: {
2889
+ error: string;
2890
+ } | {
2891
+ success: boolean;
2892
+ };
2893
+ 422: {
2894
+ type: "validation";
2895
+ on: string;
2896
+ summary?: string;
2897
+ message?: string;
2898
+ found?: unknown;
2899
+ property?: string;
2900
+ expected?: string;
2901
+ };
2902
+ };
2903
+ };
2904
+ };
2905
+ };
2906
+ } & {
2907
+ api: {
2908
+ "oauth-clients": {
2909
+ ":clientId": {
2910
+ "scope-tiers": {
2911
+ get: {
2912
+ body: unknown;
2913
+ params: {
2914
+ clientId: string;
2915
+ };
2916
+ query: unknown;
2917
+ headers: unknown;
2918
+ response: {
2919
+ 200: {
2920
+ error: string;
2921
+ hasMetadata?: undefined;
2922
+ required?: undefined;
2923
+ } | {
2924
+ hasMetadata: false;
2925
+ required: string[];
2926
+ error?: undefined;
2927
+ } | {
2928
+ hasMetadata: true;
2929
+ required: string[];
2930
+ error?: undefined;
2931
+ };
2932
+ 422: {
2933
+ type: "validation";
2934
+ on: string;
2935
+ summary?: string;
2936
+ message?: string;
2937
+ found?: unknown;
2938
+ property?: string;
2939
+ expected?: string;
2940
+ };
2941
+ };
2942
+ };
2943
+ };
2944
+ };
2945
+ };
2946
+ };
2947
+ } & {
2948
+ api: {
2949
+ "oauth-clients": {
2950
+ ":clientId": {
2951
+ metadata: {
2952
+ patch: {
2953
+ body: {
2954
+ requiredScopes: string[];
2955
+ };
2956
+ params: {
2957
+ clientId: string;
2958
+ };
2959
+ query: unknown;
2960
+ headers: unknown;
2961
+ response: {
2962
+ 200: {
2963
+ error: string;
2964
+ required?: undefined;
2965
+ } | {
2966
+ required: string[];
2967
+ error?: undefined;
2968
+ };
2969
+ 422: {
2970
+ type: "validation";
2971
+ on: string;
2972
+ summary?: string;
2973
+ message?: string;
2974
+ found?: unknown;
2975
+ property?: string;
2976
+ expected?: string;
2977
+ };
2978
+ };
2979
+ };
2980
+ };
2981
+ };
2982
+ };
2983
+ };
2984
+ } & {
2985
+ api: {
2986
+ "oauth-clients": {
2987
+ authorized: {
2988
+ get: {
2989
+ body: unknown;
2990
+ params: {};
2991
+ query: unknown;
2992
+ headers: unknown;
2993
+ response: {
2994
+ 200: {
2995
+ client_id: string;
2996
+ client_name: string | null;
2997
+ client_uri: string | null;
2998
+ logo_uri: string | null;
2999
+ scopes: string[];
3000
+ granted_at: Date;
3001
+ }[];
3002
+ };
3003
+ };
3004
+ };
3005
+ };
3006
+ };
3007
+ } & {
3008
+ api: {
3009
+ "oauth-clients": {
3010
+ authorized: {
3011
+ ":clientId": {
3012
+ delete: {
3013
+ body: unknown;
3014
+ params: {
3015
+ clientId: string;
3016
+ };
3017
+ query: unknown;
3018
+ headers: unknown;
3019
+ response: {
3020
+ 200: {
3021
+ error: string;
3022
+ success?: undefined;
3023
+ } | {
3024
+ success: boolean;
3025
+ error?: undefined;
3026
+ };
3027
+ 422: {
3028
+ type: "validation";
3029
+ on: string;
3030
+ summary?: string;
3031
+ message?: string;
3032
+ found?: unknown;
3033
+ property?: string;
3034
+ expected?: string;
3035
+ };
3036
+ };
3037
+ };
3038
+ };
3039
+ };
3040
+ };
3041
+ };
3042
+ } & {
3043
+ api: {
3044
+ health: {
3045
+ get: {
3046
+ body: unknown;
3047
+ params: {};
3048
+ query: unknown;
3049
+ headers: unknown;
3050
+ response: {
3051
+ 200: Response | {
3052
+ status: string;
3053
+ };
3054
+ };
3055
+ };
3056
+ };
3057
+ };
3058
+ } & {
3059
+ api: {
3060
+ info: {
3061
+ get: {
3062
+ body: unknown;
3063
+ params: {};
3064
+ query: unknown;
3065
+ headers: unknown;
3066
+ response: {
3067
+ 200: Response | {
3068
+ environment: string;
3069
+ };
3070
+ };
3071
+ };
3072
+ };
3073
+ };
3074
+ }, {
3075
+ derive: {};
3076
+ resolve: {};
3077
+ schema: {};
3078
+ standaloneSchema: {};
3079
+ response: {};
3080
+ }, {
3081
+ derive: {};
3082
+ resolve: {};
3083
+ schema: {};
3084
+ standaloneSchema: {};
3085
+ response: {
3086
+ 200: Response;
3087
+ };
3088
+ } & {
3089
+ derive: {};
3090
+ resolve: {};
3091
+ schema: {};
3092
+ standaloneSchema: {};
3093
+ response: {};
3094
+ }>;
3095
+ type PublicApp = typeof publicApp;
3096
+
3097
+ export type { PublicApp };