samva 0.18.0 → 0.19.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 (47) hide show
  1. package/README.md +2 -0
  2. package/dist/client/sdk.gen.d.ts +39 -23
  3. package/dist/client/sdk.gen.js +83 -21
  4. package/dist/client/types.gen.d.ts +175 -44
  5. package/dist/effect/contact-groups.d.ts +39 -3
  6. package/dist/effect/contacts.d.ts +216 -13
  7. package/dist/effect/contacts.js +3 -1
  8. package/dist/effect/conversations.d.ts +11 -11
  9. package/dist/effect/extension-installations.d.ts +12 -12
  10. package/dist/effect/extensions.d.ts +3 -3
  11. package/dist/effect/generated/contact-groups.d.ts +33 -3
  12. package/dist/effect/generated/contacts.d.ts +477 -54
  13. package/dist/effect/generated/contacts.js +39 -9
  14. package/dist/effect/generated/conversations.d.ts +25 -25
  15. package/dist/effect/generated/conversations.js +1 -1
  16. package/dist/effect/generated/extension-installations.d.ts +44 -44
  17. package/dist/effect/generated/extension-installations.js +6 -0
  18. package/dist/effect/generated/extensions.d.ts +10 -10
  19. package/dist/effect/generated/extensions.js +2 -0
  20. package/dist/effect/generated/mailboxes.d.ts +310 -0
  21. package/dist/effect/generated/mailboxes.js +37 -4
  22. package/dist/effect/generated/messages.d.ts +31 -0
  23. package/dist/effect/generated/messages.js +7 -1
  24. package/dist/effect/generated/organizations.d.ts +13 -11
  25. package/dist/effect/generated/organizations.js +7 -3
  26. package/dist/effect/generated/shared.d.ts +70 -20
  27. package/dist/effect/generated/shared.js +27 -7
  28. package/dist/effect/generated/unsubscribe-groups.d.ts +173 -78
  29. package/dist/effect/generated/unsubscribe-groups.js +75 -58
  30. package/dist/effect/generated/webhooks.d.ts +19 -19
  31. package/dist/effect/generated/webhooks.js +8 -0
  32. package/dist/effect/generated-metadata.d.ts +7 -2
  33. package/dist/effect/generated-metadata.js +331 -325
  34. package/dist/effect/mailboxes.d.ts +133 -1
  35. package/dist/effect/messages.d.ts +5 -0
  36. package/dist/effect/organizations.d.ts +4 -4
  37. package/dist/effect/unsubscribe-groups.d.ts +29 -18
  38. package/dist/effect/unsubscribe-groups.js +5 -5
  39. package/dist/effect/webhooks.d.ts +8 -8
  40. package/dist/mailbox-events.d.ts +31 -4
  41. package/dist/mailbox-events.js +39 -11
  42. package/dist/package.js +1 -1
  43. package/dist/promises/index.d.ts +1 -1
  44. package/dist/promises/types.gen.d.ts +1 -1
  45. package/dist/service-map.d.ts +9 -4
  46. package/dist/service-map.js +10 -2
  47. package/package.json +2 -2
@@ -6,12 +6,12 @@ export type ContactCustomFields = {
6
6
  };
7
7
  export declare const ContactCustomFields: Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>;
8
8
  export type ContactIdentityInput = {
9
- readonly channel: "email";
9
+ readonly type: "email" | "phone";
10
10
  readonly identifier: string;
11
11
  readonly verified?: boolean | null;
12
12
  };
13
13
  export declare const ContactIdentityInput: Schema.Struct<{
14
- readonly channel: Schema.Literal<"email">;
14
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
15
15
  readonly identifier: Schema.String;
16
16
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
17
17
  }>;
@@ -211,6 +211,30 @@ export declare const ContactSummary: Schema.Struct<{
211
211
  readonly lastActiveAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
212
212
  readonly createdAt: Schema.String;
213
213
  }>;
214
+ export type ContactPage = {
215
+ readonly items: ReadonlyArray<ContactSummary>;
216
+ readonly nextCursor: string | null;
217
+ };
218
+ export declare const ContactPage: Schema.Struct<{
219
+ readonly items: Schema.$Array<Schema.Struct<{
220
+ readonly id: Schema.brand<Schema.String, "ContactId">;
221
+ readonly name: Schema.String;
222
+ readonly displayName: Schema.Union<readonly [Schema.String, Schema.Null]>;
223
+ readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>;
224
+ readonly email: Schema.Union<readonly [Schema.String, Schema.Null]>;
225
+ readonly channels: Schema.$Array<Schema.Literal<"email">>;
226
+ readonly tags: Schema.$Array<Schema.String>;
227
+ readonly lists: Schema.$Array<Schema.Struct<{
228
+ readonly id: Schema.brand<Schema.String, "ContactGroupId">;
229
+ readonly name: Schema.String;
230
+ readonly color: Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"clay">, Schema.Literal<"sand">, Schema.Literal<"moss">, Schema.Literal<"sky">, Schema.Literal<"plum">, Schema.Literal<"rose">]>, Schema.Null]>;
231
+ }>>;
232
+ readonly customFields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>, Schema.Null]>>;
233
+ readonly lastActiveAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
234
+ readonly createdAt: Schema.String;
235
+ }>>;
236
+ readonly nextCursor: Schema.Union<readonly [Schema.String, Schema.Null]>;
237
+ }>;
214
238
  export type Contact = {
215
239
  readonly id: ContactId;
216
240
  readonly name: string;
@@ -237,9 +261,19 @@ export declare const Contact: Schema.Struct<{
237
261
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
238
262
  readonly identities: Schema.$Array<Schema.Struct<{
239
263
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
240
- readonly channel: Schema.Literal<"email">;
264
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
241
265
  readonly identifier: Schema.String;
242
266
  readonly verified: Schema.Boolean;
267
+ readonly channels: Schema.$Array<Schema.Struct<{
268
+ readonly channel: Schema.Literal<"email">;
269
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
270
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
271
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
272
+ readonly source: Schema.String;
273
+ readonly capturedAt: Schema.String;
274
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
275
+ }>, Schema.Null]>;
276
+ }>>;
243
277
  }>>;
244
278
  readonly profile: Schema.Union<readonly [Schema.Struct<{
245
279
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -272,30 +306,6 @@ export declare const Contact: Schema.Struct<{
272
306
  readonly createdAt: Schema.String;
273
307
  readonly updatedAt: Schema.String;
274
308
  }>;
275
- export type ContactPage = {
276
- readonly items: ReadonlyArray<ContactSummary>;
277
- readonly nextCursor: string | null;
278
- };
279
- export declare const ContactPage: Schema.Struct<{
280
- readonly items: Schema.$Array<Schema.Struct<{
281
- readonly id: Schema.brand<Schema.String, "ContactId">;
282
- readonly name: Schema.String;
283
- readonly displayName: Schema.Union<readonly [Schema.String, Schema.Null]>;
284
- readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>;
285
- readonly email: Schema.Union<readonly [Schema.String, Schema.Null]>;
286
- readonly channels: Schema.$Array<Schema.Literal<"email">>;
287
- readonly tags: Schema.$Array<Schema.String>;
288
- readonly lists: Schema.$Array<Schema.Struct<{
289
- readonly id: Schema.brand<Schema.String, "ContactGroupId">;
290
- readonly name: Schema.String;
291
- readonly color: Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"clay">, Schema.Literal<"sand">, Schema.Literal<"moss">, Schema.Literal<"sky">, Schema.Literal<"plum">, Schema.Literal<"rose">]>, Schema.Null]>;
292
- }>>;
293
- readonly customFields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>, Schema.Null]>>;
294
- readonly lastActiveAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
295
- readonly createdAt: Schema.String;
296
- }>>;
297
- readonly nextCursor: Schema.Union<readonly [Schema.String, Schema.Null]>;
298
- }>;
299
309
  export type ContactsListQuery = {
300
310
  readonly limit?: string | null;
301
311
  readonly cursor?: Cursor | null;
@@ -367,7 +377,7 @@ export declare const ContactsCreateRequestJson: Schema.Struct<{
367
377
  readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
368
378
  readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
369
379
  readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
370
- readonly channel: Schema.Literal<"email">;
380
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
371
381
  readonly identifier: Schema.String;
372
382
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
373
383
  }>>, Schema.Null]>>;
@@ -414,9 +424,19 @@ export declare const ContactsCreate201: Schema.Struct<{
414
424
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
415
425
  readonly identities: Schema.$Array<Schema.Struct<{
416
426
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
417
- readonly channel: Schema.Literal<"email">;
427
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
418
428
  readonly identifier: Schema.String;
419
429
  readonly verified: Schema.Boolean;
430
+ readonly channels: Schema.$Array<Schema.Struct<{
431
+ readonly channel: Schema.Literal<"email">;
432
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
433
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
434
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
435
+ readonly source: Schema.String;
436
+ readonly capturedAt: Schema.String;
437
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
438
+ }>, Schema.Null]>;
439
+ }>>;
420
440
  }>>;
421
441
  readonly profile: Schema.Union<readonly [Schema.Struct<{
422
442
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -482,9 +502,19 @@ export declare const ContactsGet200: Schema.Struct<{
482
502
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
483
503
  readonly identities: Schema.$Array<Schema.Struct<{
484
504
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
485
- readonly channel: Schema.Literal<"email">;
505
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
486
506
  readonly identifier: Schema.String;
487
507
  readonly verified: Schema.Boolean;
508
+ readonly channels: Schema.$Array<Schema.Struct<{
509
+ readonly channel: Schema.Literal<"email">;
510
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
511
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
512
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
513
+ readonly source: Schema.String;
514
+ readonly capturedAt: Schema.String;
515
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
516
+ }>, Schema.Null]>;
517
+ }>>;
488
518
  }>>;
489
519
  readonly profile: Schema.Union<readonly [Schema.Struct<{
490
520
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -617,9 +647,19 @@ export declare const ContactsUpdate200: Schema.Struct<{
617
647
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
618
648
  readonly identities: Schema.$Array<Schema.Struct<{
619
649
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
620
- readonly channel: Schema.Literal<"email">;
650
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
621
651
  readonly identifier: Schema.String;
622
652
  readonly verified: Schema.Boolean;
653
+ readonly channels: Schema.$Array<Schema.Struct<{
654
+ readonly channel: Schema.Literal<"email">;
655
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
656
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
657
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
658
+ readonly source: Schema.String;
659
+ readonly capturedAt: Schema.String;
660
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
661
+ }>, Schema.Null]>;
662
+ }>>;
623
663
  }>>;
624
664
  readonly profile: Schema.Union<readonly [Schema.Struct<{
625
665
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -791,12 +831,12 @@ export declare const ContactsAddIdentityPathParams: Schema.Struct<{
791
831
  readonly id: Schema.brand<Schema.String, "ContactId">;
792
832
  }>;
793
833
  export type ContactsAddIdentityRequestJson = {
794
- readonly channel: "email";
834
+ readonly type: "email" | "phone";
795
835
  readonly identifier: string;
796
836
  readonly verified?: boolean | null;
797
837
  };
798
838
  export declare const ContactsAddIdentityRequestJson: Schema.Struct<{
799
- readonly channel: Schema.Literal<"email">;
839
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
800
840
  readonly identifier: Schema.String;
801
841
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
802
842
  }>;
@@ -811,9 +851,19 @@ export declare const ContactsAddIdentity200: Schema.Struct<{
811
851
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
812
852
  readonly identities: Schema.$Array<Schema.Struct<{
813
853
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
814
- readonly channel: Schema.Literal<"email">;
854
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
815
855
  readonly identifier: Schema.String;
816
856
  readonly verified: Schema.Boolean;
857
+ readonly channels: Schema.$Array<Schema.Struct<{
858
+ readonly channel: Schema.Literal<"email">;
859
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
860
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
861
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
862
+ readonly source: Schema.String;
863
+ readonly capturedAt: Schema.String;
864
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
865
+ }>, Schema.Null]>;
866
+ }>>;
817
867
  }>>;
818
868
  readonly profile: Schema.Union<readonly [Schema.Struct<{
819
869
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -879,9 +929,19 @@ export declare const ContactsRemoveIdentity200: Schema.Struct<{
879
929
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
880
930
  readonly identities: Schema.$Array<Schema.Struct<{
881
931
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
882
- readonly channel: Schema.Literal<"email">;
932
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
883
933
  readonly identifier: Schema.String;
884
934
  readonly verified: Schema.Boolean;
935
+ readonly channels: Schema.$Array<Schema.Struct<{
936
+ readonly channel: Schema.Literal<"email">;
937
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
938
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
939
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
940
+ readonly source: Schema.String;
941
+ readonly capturedAt: Schema.String;
942
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
943
+ }>, Schema.Null]>;
944
+ }>>;
885
945
  }>>;
886
946
  readonly profile: Schema.Union<readonly [Schema.Struct<{
887
947
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -926,6 +986,96 @@ export type ContactsRemoveIdentity500 = InternalError;
926
986
  export declare const ContactsRemoveIdentity500: typeof InternalError;
927
987
  export type ContactsRemoveIdentity504 = GatewayTimeoutError;
928
988
  export declare const ContactsRemoveIdentity504: typeof GatewayTimeoutError;
989
+ export type ContactsSetConsentPathParams = {
990
+ readonly id: ContactId;
991
+ readonly identityId: ContactIdentityId;
992
+ readonly channel: "email";
993
+ };
994
+ export declare const ContactsSetConsentPathParams: Schema.Struct<{
995
+ readonly id: Schema.brand<Schema.String, "ContactId">;
996
+ readonly identityId: Schema.brand<Schema.String, "ContactIdentityId">;
997
+ readonly channel: Schema.Literal<"email">;
998
+ }>;
999
+ export type ContactsSetConsentRequestJson = {
1000
+ readonly status: "opted_in" | "opted_out";
1001
+ readonly source: string;
1002
+ readonly capturedAt: string;
1003
+ readonly proof?: JsonObject | null;
1004
+ };
1005
+ export declare const ContactsSetConsentRequestJson: Schema.Struct<{
1006
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1007
+ readonly source: Schema.String;
1008
+ readonly capturedAt: Schema.String;
1009
+ readonly proof: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
1010
+ }>;
1011
+ export type ContactsSetConsent200 = Contact;
1012
+ export declare const ContactsSetConsent200: Schema.Struct<{
1013
+ readonly id: Schema.brand<Schema.String, "ContactId">;
1014
+ readonly name: Schema.String;
1015
+ readonly displayName: Schema.Union<readonly [Schema.String, Schema.Null]>;
1016
+ readonly avatar: Schema.Union<readonly [Schema.String, Schema.Null]>;
1017
+ readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>;
1018
+ readonly statusReason: Schema.Union<readonly [Schema.String, Schema.Null]>;
1019
+ readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
1020
+ readonly identities: Schema.$Array<Schema.Struct<{
1021
+ readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
1022
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1023
+ readonly identifier: Schema.String;
1024
+ readonly verified: Schema.Boolean;
1025
+ readonly channels: Schema.$Array<Schema.Struct<{
1026
+ readonly channel: Schema.Literal<"email">;
1027
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1028
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1029
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1030
+ readonly source: Schema.String;
1031
+ readonly capturedAt: Schema.String;
1032
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1033
+ }>, Schema.Null]>;
1034
+ }>>;
1035
+ }>>;
1036
+ readonly profile: Schema.Union<readonly [Schema.Struct<{
1037
+ readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1038
+ readonly lastName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1039
+ readonly company: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1040
+ readonly jobTitle: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1041
+ readonly location: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1042
+ readonly country: Schema.String;
1043
+ readonly state: Schema.String;
1044
+ readonly city: Schema.String;
1045
+ readonly timezone: Schema.String;
1046
+ }>, Schema.Null]>>;
1047
+ readonly customFields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>, Schema.Null]>>;
1048
+ readonly source: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"import">, Schema.Literal<"manual">, Schema.Literal<"form">]>, Schema.Null]>>;
1049
+ }>, Schema.Null]>;
1050
+ readonly preferences: Schema.Union<readonly [Schema.Struct<{
1051
+ readonly preferredChannels: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Literal<"email">>, Schema.Null]>>;
1052
+ readonly language: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1053
+ readonly timezone: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1054
+ readonly notifications: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1055
+ readonly email: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1056
+ readonly quiet_hours: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1057
+ readonly start: Schema.String;
1058
+ readonly end: Schema.String;
1059
+ }>, Schema.Null]>>;
1060
+ }>, Schema.Null]>>;
1061
+ }>, Schema.Null]>;
1062
+ readonly tags: Schema.$Array<Schema.String>;
1063
+ readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1064
+ readonly createdAt: Schema.String;
1065
+ readonly updatedAt: Schema.String;
1066
+ }>;
1067
+ export type ContactsSetConsent401 = UnauthorizedError;
1068
+ export declare const ContactsSetConsent401: typeof UnauthorizedError;
1069
+ export type ContactsSetConsent403 = ForbiddenError;
1070
+ export declare const ContactsSetConsent403: typeof ForbiddenError;
1071
+ export type ContactsSetConsent404 = ResourceNotFoundError;
1072
+ export declare const ContactsSetConsent404: typeof ResourceNotFoundError;
1073
+ export type ContactsSetConsent422 = ValidationError;
1074
+ export declare const ContactsSetConsent422: typeof ValidationError;
1075
+ export type ContactsSetConsent500 = InternalError;
1076
+ export declare const ContactsSetConsent500: typeof InternalError;
1077
+ export type ContactsSetConsent504 = GatewayTimeoutError;
1078
+ export declare const ContactsSetConsent504: typeof GatewayTimeoutError;
929
1079
  export type ContactsAddTagsPathParams = {
930
1080
  readonly id: ContactId;
931
1081
  };
@@ -949,9 +1099,19 @@ export declare const ContactsAddTags200: Schema.Struct<{
949
1099
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
950
1100
  readonly identities: Schema.$Array<Schema.Struct<{
951
1101
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
952
- readonly channel: Schema.Literal<"email">;
1102
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
953
1103
  readonly identifier: Schema.String;
954
1104
  readonly verified: Schema.Boolean;
1105
+ readonly channels: Schema.$Array<Schema.Struct<{
1106
+ readonly channel: Schema.Literal<"email">;
1107
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1108
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1109
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1110
+ readonly source: Schema.String;
1111
+ readonly capturedAt: Schema.String;
1112
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1113
+ }>, Schema.Null]>;
1114
+ }>>;
955
1115
  }>>;
956
1116
  readonly profile: Schema.Union<readonly [Schema.Struct<{
957
1117
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -1019,9 +1179,19 @@ export declare const ContactsRemoveTags200: Schema.Struct<{
1019
1179
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
1020
1180
  readonly identities: Schema.$Array<Schema.Struct<{
1021
1181
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
1022
- readonly channel: Schema.Literal<"email">;
1182
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1023
1183
  readonly identifier: Schema.String;
1024
1184
  readonly verified: Schema.Boolean;
1185
+ readonly channels: Schema.$Array<Schema.Struct<{
1186
+ readonly channel: Schema.Literal<"email">;
1187
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1188
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1189
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1190
+ readonly source: Schema.String;
1191
+ readonly capturedAt: Schema.String;
1192
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1193
+ }>, Schema.Null]>;
1194
+ }>>;
1025
1195
  }>>;
1026
1196
  readonly profile: Schema.Union<readonly [Schema.Struct<{
1027
1197
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -1114,7 +1284,7 @@ export declare const ContactsBulkImportRequestJson: Schema.Struct<{
1114
1284
  readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1115
1285
  readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1116
1286
  readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
1117
- readonly channel: Schema.Literal<"email">;
1287
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1118
1288
  readonly identifier: Schema.String;
1119
1289
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1120
1290
  }>>, Schema.Null]>>;
@@ -1303,9 +1473,19 @@ export declare const ContactsFind200: Schema.Union<readonly [Schema.Struct<{
1303
1473
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
1304
1474
  readonly identities: Schema.$Array<Schema.Struct<{
1305
1475
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
1306
- readonly channel: Schema.Literal<"email">;
1476
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1307
1477
  readonly identifier: Schema.String;
1308
1478
  readonly verified: Schema.Boolean;
1479
+ readonly channels: Schema.$Array<Schema.Struct<{
1480
+ readonly channel: Schema.Literal<"email">;
1481
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1482
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1483
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1484
+ readonly source: Schema.String;
1485
+ readonly capturedAt: Schema.String;
1486
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1487
+ }>, Schema.Null]>;
1488
+ }>>;
1309
1489
  }>>;
1310
1490
  readonly profile: Schema.Union<readonly [Schema.Struct<{
1311
1491
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -1377,7 +1557,7 @@ export declare const ContactsFindOrCreateRequestJson: Schema.Struct<{
1377
1557
  readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1378
1558
  readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1379
1559
  readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
1380
- readonly channel: Schema.Literal<"email">;
1560
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1381
1561
  readonly identifier: Schema.String;
1382
1562
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1383
1563
  }>>, Schema.Null]>>;
@@ -1413,9 +1593,19 @@ export declare const ContactsFindOrCreate200: Schema.Struct<{
1413
1593
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
1414
1594
  readonly identities: Schema.$Array<Schema.Struct<{
1415
1595
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
1416
- readonly channel: Schema.Literal<"email">;
1596
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1417
1597
  readonly identifier: Schema.String;
1418
1598
  readonly verified: Schema.Boolean;
1599
+ readonly channels: Schema.$Array<Schema.Struct<{
1600
+ readonly channel: Schema.Literal<"email">;
1601
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1602
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1603
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1604
+ readonly source: Schema.String;
1605
+ readonly capturedAt: Schema.String;
1606
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1607
+ }>, Schema.Null]>;
1608
+ }>>;
1419
1609
  }>>;
1420
1610
  readonly profile: Schema.Union<readonly [Schema.Struct<{
1421
1611
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -1469,7 +1659,7 @@ export declare const ContactsFindOrCreate504: typeof GatewayTimeoutError;
1469
1659
  declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiEndpoint.HttpApiEndpoint<"contactsAddIdentity", "POST", "/v1/contacts/:id/identities", Schema.toCodecStringTree<Schema.Struct<{
1470
1660
  readonly id: Schema.brand<Schema.String, "ContactId">;
1471
1661
  }>>, never, Schema.toCodecJson<Schema.Struct<{
1472
- readonly channel: Schema.Literal<"email">;
1662
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1473
1663
  readonly identifier: Schema.String;
1474
1664
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1475
1665
  }>>, never, Schema.toCodecJson<Schema.Struct<{
@@ -1482,9 +1672,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
1482
1672
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
1483
1673
  readonly identities: Schema.$Array<Schema.Struct<{
1484
1674
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
1485
- readonly channel: Schema.Literal<"email">;
1675
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1486
1676
  readonly identifier: Schema.String;
1487
1677
  readonly verified: Schema.Boolean;
1678
+ readonly channels: Schema.$Array<Schema.Struct<{
1679
+ readonly channel: Schema.Literal<"email">;
1680
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1681
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1682
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1683
+ readonly source: Schema.String;
1684
+ readonly capturedAt: Schema.String;
1685
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1686
+ }>, Schema.Null]>;
1687
+ }>>;
1488
1688
  }>>;
1489
1689
  readonly profile: Schema.Union<readonly [Schema.Struct<{
1490
1690
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -1630,9 +1830,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
1630
1830
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
1631
1831
  readonly identities: Schema.$Array<Schema.Struct<{
1632
1832
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
1633
- readonly channel: Schema.Literal<"email">;
1833
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1634
1834
  readonly identifier: Schema.String;
1635
1835
  readonly verified: Schema.Boolean;
1836
+ readonly channels: Schema.$Array<Schema.Struct<{
1837
+ readonly channel: Schema.Literal<"email">;
1838
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
1839
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
1840
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
1841
+ readonly source: Schema.String;
1842
+ readonly capturedAt: Schema.String;
1843
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1844
+ }>, Schema.Null]>;
1845
+ }>>;
1636
1846
  }>>;
1637
1847
  readonly profile: Schema.Union<readonly [Schema.Struct<{
1638
1848
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -1827,7 +2037,7 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
1827
2037
  readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1828
2038
  readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1829
2039
  readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
1830
- readonly channel: Schema.Literal<"email">;
2040
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1831
2041
  readonly identifier: Schema.String;
1832
2042
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1833
2043
  }>>, Schema.Null]>>;
@@ -2146,7 +2356,7 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2146
2356
  readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2147
2357
  readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2148
2358
  readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
2149
- readonly channel: Schema.Literal<"email">;
2359
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2150
2360
  readonly identifier: Schema.String;
2151
2361
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2152
2362
  }>>, Schema.Null]>>;
@@ -2191,9 +2401,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2191
2401
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
2192
2402
  readonly identities: Schema.$Array<Schema.Struct<{
2193
2403
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
2194
- readonly channel: Schema.Literal<"email">;
2404
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2195
2405
  readonly identifier: Schema.String;
2196
2406
  readonly verified: Schema.Boolean;
2407
+ readonly channels: Schema.$Array<Schema.Struct<{
2408
+ readonly channel: Schema.Literal<"email">;
2409
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
2410
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
2411
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
2412
+ readonly source: Schema.String;
2413
+ readonly capturedAt: Schema.String;
2414
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2415
+ }>, Schema.Null]>;
2416
+ }>>;
2197
2417
  }>>;
2198
2418
  readonly profile: Schema.Union<readonly [Schema.Struct<{
2199
2419
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -2427,9 +2647,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2427
2647
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
2428
2648
  readonly identities: Schema.$Array<Schema.Struct<{
2429
2649
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
2430
- readonly channel: Schema.Literal<"email">;
2650
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2431
2651
  readonly identifier: Schema.String;
2432
2652
  readonly verified: Schema.Boolean;
2653
+ readonly channels: Schema.$Array<Schema.Struct<{
2654
+ readonly channel: Schema.Literal<"email">;
2655
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
2656
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
2657
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
2658
+ readonly source: Schema.String;
2659
+ readonly capturedAt: Schema.String;
2660
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2661
+ }>, Schema.Null]>;
2662
+ }>>;
2433
2663
  }>>;
2434
2664
  readonly profile: Schema.Union<readonly [Schema.Struct<{
2435
2665
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -2557,7 +2787,7 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2557
2787
  readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2558
2788
  readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2559
2789
  readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
2560
- readonly channel: Schema.Literal<"email">;
2790
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2561
2791
  readonly identifier: Schema.String;
2562
2792
  readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2563
2793
  }>>, Schema.Null]>>;
@@ -2588,9 +2818,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2588
2818
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
2589
2819
  readonly identities: Schema.$Array<Schema.Struct<{
2590
2820
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
2591
- readonly channel: Schema.Literal<"email">;
2821
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2592
2822
  readonly identifier: Schema.String;
2593
2823
  readonly verified: Schema.Boolean;
2824
+ readonly channels: Schema.$Array<Schema.Struct<{
2825
+ readonly channel: Schema.Literal<"email">;
2826
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
2827
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
2828
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
2829
+ readonly source: Schema.String;
2830
+ readonly capturedAt: Schema.String;
2831
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2832
+ }>, Schema.Null]>;
2833
+ }>>;
2594
2834
  }>>;
2595
2835
  readonly profile: Schema.Union<readonly [Schema.Struct<{
2596
2836
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -2752,9 +2992,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2752
2992
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
2753
2993
  readonly identities: Schema.$Array<Schema.Struct<{
2754
2994
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
2755
- readonly channel: Schema.Literal<"email">;
2995
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2756
2996
  readonly identifier: Schema.String;
2757
2997
  readonly verified: Schema.Boolean;
2998
+ readonly channels: Schema.$Array<Schema.Struct<{
2999
+ readonly channel: Schema.Literal<"email">;
3000
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
3001
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
3002
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
3003
+ readonly source: Schema.String;
3004
+ readonly capturedAt: Schema.String;
3005
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3006
+ }>, Schema.Null]>;
3007
+ }>>;
2758
3008
  }>>;
2759
3009
  readonly profile: Schema.Union<readonly [Schema.Struct<{
2760
3010
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -3346,9 +3596,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3346
3596
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
3347
3597
  readonly identities: Schema.$Array<Schema.Struct<{
3348
3598
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
3349
- readonly channel: Schema.Literal<"email">;
3599
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
3350
3600
  readonly identifier: Schema.String;
3351
3601
  readonly verified: Schema.Boolean;
3602
+ readonly channels: Schema.$Array<Schema.Struct<{
3603
+ readonly channel: Schema.Literal<"email">;
3604
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
3605
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
3606
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
3607
+ readonly source: Schema.String;
3608
+ readonly capturedAt: Schema.String;
3609
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3610
+ }>, Schema.Null]>;
3611
+ }>>;
3352
3612
  }>>;
3353
3613
  readonly profile: Schema.Union<readonly [Schema.Struct<{
3354
3614
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -3474,9 +3734,162 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3474
3734
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
3475
3735
  readonly identities: Schema.$Array<Schema.Struct<{
3476
3736
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
3477
- readonly channel: Schema.Literal<"email">;
3737
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
3738
+ readonly identifier: Schema.String;
3739
+ readonly verified: Schema.Boolean;
3740
+ readonly channels: Schema.$Array<Schema.Struct<{
3741
+ readonly channel: Schema.Literal<"email">;
3742
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
3743
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
3744
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
3745
+ readonly source: Schema.String;
3746
+ readonly capturedAt: Schema.String;
3747
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3748
+ }>, Schema.Null]>;
3749
+ }>>;
3750
+ }>>;
3751
+ readonly profile: Schema.Union<readonly [Schema.Struct<{
3752
+ readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3753
+ readonly lastName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3754
+ readonly company: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3755
+ readonly jobTitle: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3756
+ readonly location: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3757
+ readonly country: Schema.String;
3758
+ readonly state: Schema.String;
3759
+ readonly city: Schema.String;
3760
+ readonly timezone: Schema.String;
3761
+ }>, Schema.Null]>>;
3762
+ readonly customFields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>, Schema.Null]>>;
3763
+ readonly source: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"import">, Schema.Literal<"manual">, Schema.Literal<"form">]>, Schema.Null]>>;
3764
+ }>, Schema.Null]>;
3765
+ readonly preferences: Schema.Union<readonly [Schema.Struct<{
3766
+ readonly preferredChannels: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Literal<"email">>, Schema.Null]>>;
3767
+ readonly language: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3768
+ readonly timezone: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3769
+ readonly notifications: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3770
+ readonly email: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
3771
+ readonly quiet_hours: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3772
+ readonly start: Schema.String;
3773
+ readonly end: Schema.String;
3774
+ }>, Schema.Null]>>;
3775
+ }>, Schema.Null]>>;
3776
+ }>, Schema.Null]>;
3777
+ readonly tags: Schema.$Array<Schema.String>;
3778
+ readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3779
+ readonly createdAt: Schema.String;
3780
+ readonly updatedAt: Schema.String;
3781
+ }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
3782
+ readonly _tag: "ForbiddenError";
3783
+ readonly message: string;
3784
+ }, readonly [Schema.Struct<{
3785
+ readonly _tag: Schema.tag<"ForbiddenError">;
3786
+ readonly message: Schema.String;
3787
+ }>], {
3788
+ readonly _tag: "ForbiddenError";
3789
+ readonly message: string;
3790
+ }>, Schema.Struct<{
3791
+ readonly _tag: Schema.tag<"ForbiddenError">;
3792
+ readonly message: Schema.String;
3793
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
3794
+ readonly _tag: "GatewayTimeoutError";
3795
+ readonly message: string;
3796
+ readonly retryAfterSeconds: number;
3797
+ }, readonly [Schema.Struct<{
3798
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
3799
+ readonly message: Schema.String;
3800
+ readonly retryAfterSeconds: Schema.Finite;
3801
+ }>], {
3802
+ readonly _tag: "GatewayTimeoutError";
3803
+ readonly message: string;
3804
+ readonly retryAfterSeconds: number;
3805
+ }>, Schema.Struct<{
3806
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
3807
+ readonly message: Schema.String;
3808
+ readonly retryAfterSeconds: Schema.Finite;
3809
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
3810
+ readonly _tag: "ResourceNotFoundError";
3811
+ readonly resource: string;
3812
+ readonly id: string;
3813
+ readonly message: string;
3814
+ }, readonly [Schema.Struct<{
3815
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
3816
+ readonly resource: Schema.String;
3817
+ readonly id: Schema.String;
3818
+ readonly message: Schema.String;
3819
+ }>], {
3820
+ readonly _tag: "ResourceNotFoundError";
3821
+ readonly resource: string;
3822
+ readonly id: string;
3823
+ readonly message: string;
3824
+ }>, Schema.Struct<{
3825
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
3826
+ readonly resource: Schema.String;
3827
+ readonly id: Schema.String;
3828
+ readonly message: Schema.String;
3829
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
3830
+ readonly _tag: "UnauthorizedError";
3831
+ readonly message: string;
3832
+ }, readonly [Schema.Struct<{
3833
+ readonly _tag: Schema.tag<"UnauthorizedError">;
3834
+ readonly message: Schema.String;
3835
+ }>], {
3836
+ readonly _tag: "UnauthorizedError";
3837
+ readonly message: string;
3838
+ }>, Schema.Struct<{
3839
+ readonly _tag: Schema.tag<"UnauthorizedError">;
3840
+ readonly message: Schema.String;
3841
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
3842
+ readonly _tag: "ValidationError";
3843
+ readonly message: string;
3844
+ readonly fields?: {
3845
+ readonly [x: string]: readonly string[];
3846
+ } | null;
3847
+ }, readonly [Schema.Struct<{
3848
+ readonly _tag: Schema.tag<"ValidationError">;
3849
+ readonly message: Schema.String;
3850
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
3851
+ }>], {
3852
+ readonly _tag: "ValidationError";
3853
+ readonly message: string;
3854
+ readonly fields?: {
3855
+ readonly [x: string]: readonly string[];
3856
+ } | null;
3857
+ }>, Schema.Struct<{
3858
+ readonly _tag: Schema.tag<"ValidationError">;
3859
+ readonly message: Schema.String;
3860
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
3861
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsSetConsent", "PUT", "/v1/contacts/:id/identities/:identityId/consent/:channel", Schema.toCodecStringTree<Schema.Struct<{
3862
+ readonly id: Schema.brand<Schema.String, "ContactId">;
3863
+ readonly identityId: Schema.brand<Schema.String, "ContactIdentityId">;
3864
+ readonly channel: Schema.Literal<"email">;
3865
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
3866
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
3867
+ readonly source: Schema.String;
3868
+ readonly capturedAt: Schema.String;
3869
+ readonly proof: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>>;
3870
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
3871
+ readonly id: Schema.brand<Schema.String, "ContactId">;
3872
+ readonly name: Schema.String;
3873
+ readonly displayName: Schema.Union<readonly [Schema.String, Schema.Null]>;
3874
+ readonly avatar: Schema.Union<readonly [Schema.String, Schema.Null]>;
3875
+ readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>;
3876
+ readonly statusReason: Schema.Union<readonly [Schema.String, Schema.Null]>;
3877
+ readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
3878
+ readonly identities: Schema.$Array<Schema.Struct<{
3879
+ readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
3880
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
3478
3881
  readonly identifier: Schema.String;
3479
3882
  readonly verified: Schema.Boolean;
3883
+ readonly channels: Schema.$Array<Schema.Struct<{
3884
+ readonly channel: Schema.Literal<"email">;
3885
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
3886
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
3887
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
3888
+ readonly source: Schema.String;
3889
+ readonly capturedAt: Schema.String;
3890
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3891
+ }>, Schema.Null]>;
3892
+ }>>;
3480
3893
  }>>;
3481
3894
  readonly profile: Schema.Union<readonly [Schema.Struct<{
3482
3895
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -3633,9 +4046,19 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3633
4046
  readonly externalId: Schema.Union<readonly [Schema.String, Schema.Null]>;
3634
4047
  readonly identities: Schema.$Array<Schema.Struct<{
3635
4048
  readonly id: Schema.brand<Schema.String, "ContactIdentityId">;
3636
- readonly channel: Schema.Literal<"email">;
4049
+ readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
3637
4050
  readonly identifier: Schema.String;
3638
4051
  readonly verified: Schema.Boolean;
4052
+ readonly channels: Schema.$Array<Schema.Struct<{
4053
+ readonly channel: Schema.Literal<"email">;
4054
+ readonly reachability: Schema.Union<readonly [Schema.Literal<"unknown">, Schema.Literal<"reachable">, Schema.Literal<"unreachable">]>;
4055
+ readonly consent: Schema.Union<readonly [Schema.Struct<{
4056
+ readonly status: Schema.Union<readonly [Schema.Literal<"opted_in">, Schema.Literal<"opted_out">]>;
4057
+ readonly source: Schema.String;
4058
+ readonly capturedAt: Schema.String;
4059
+ readonly proof: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
4060
+ }>, Schema.Null]>;
4061
+ }>>;
3639
4062
  }>>;
3640
4063
  readonly profile: Schema.Union<readonly [Schema.Struct<{
3641
4064
  readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;