samva 0.26.0 → 0.28.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 (107) hide show
  1. package/AGENTS.md +7 -0
  2. package/README.md +14 -7
  3. package/dist/client/sdk.gen.d.ts +322 -143
  4. package/dist/client/sdk.gen.js +1085 -332
  5. package/dist/client/types.gen.d.ts +1342 -479
  6. package/dist/effect/agents.d.ts +119 -0
  7. package/dist/effect/agents.js +29 -0
  8. package/dist/effect/analytics.d.ts +1 -1
  9. package/dist/effect/analytics.js +1 -1
  10. package/dist/effect/api-keys.d.ts +6 -6
  11. package/dist/effect/attachments.d.ts +1 -1
  12. package/dist/effect/brands.d.ts +2 -0
  13. package/dist/effect/campaigns.d.ts +275 -25
  14. package/dist/effect/campaigns.js +7 -1
  15. package/dist/effect/contact-groups.d.ts +9 -9
  16. package/dist/effect/contacts.d.ts +74 -81
  17. package/dist/effect/contacts.js +7 -3
  18. package/dist/effect/conversations.d.ts +14 -6
  19. package/dist/effect/email.d.ts +34 -34
  20. package/dist/effect/errors.d.ts +1 -1
  21. package/dist/effect/errors.js +2 -2
  22. package/dist/effect/extension-installations.d.ts +3 -3
  23. package/dist/effect/extensions.d.ts +6 -6
  24. package/dist/effect/generated/agents.d.ts +6 -28
  25. package/dist/effect/generated/agents.js +270 -0
  26. package/dist/effect/generated/analytics.d.ts +3 -3
  27. package/dist/effect/generated/analytics.js +1 -1
  28. package/dist/effect/generated/api-keys.d.ts +6 -6
  29. package/dist/effect/generated/api-keys.js +2 -2
  30. package/dist/effect/generated/attachments.d.ts +3 -3
  31. package/dist/effect/generated/attachments.js +1 -1
  32. package/dist/effect/generated/brands.d.ts +16 -0
  33. package/dist/effect/generated/campaigns.d.ts +1181 -302
  34. package/dist/effect/generated/campaigns.js +169 -36
  35. package/dist/effect/generated/contact-events.d.ts +3 -3
  36. package/dist/effect/generated/contact-events.js +1 -1
  37. package/dist/effect/generated/contact-groups.d.ts +9 -9
  38. package/dist/effect/generated/contact-groups.js +7 -7
  39. package/dist/effect/generated/contacts.d.ts +2063 -290
  40. package/dist/effect/generated/contacts.js +343 -75
  41. package/dist/effect/generated/conversations.d.ts +14 -6
  42. package/dist/effect/generated/conversations.js +6 -6
  43. package/dist/effect/generated/email.d.ts +55 -70
  44. package/dist/effect/generated/email.js +18 -21
  45. package/dist/effect/generated/extension-installations.d.ts +3 -3
  46. package/dist/effect/generated/extension-installations.js +1 -1
  47. package/dist/effect/generated/extensions.d.ts +6 -6
  48. package/dist/effect/generated/extensions.js +2 -2
  49. package/dist/effect/generated/index.d.ts +5 -3
  50. package/dist/effect/generated/journeys.d.ts +9 -9
  51. package/dist/effect/generated/journeys.js +3 -3
  52. package/dist/effect/generated/mailboxes.d.ts +466 -712
  53. package/dist/effect/generated/mailboxes.js +22 -14
  54. package/dist/effect/generated/messages.d.ts +53 -29
  55. package/dist/effect/generated/messages.js +9 -5
  56. package/dist/effect/generated/namespaces.d.ts +3 -3
  57. package/dist/effect/generated/namespaces.js +1 -1
  58. package/dist/effect/generated/operations.d.ts +3 -3
  59. package/dist/effect/generated/operations.js +1 -1
  60. package/dist/effect/generated/organizations.d.ts +0 -9
  61. package/dist/effect/generated/organizations.js +1 -4
  62. package/dist/effect/generated/scheduled-messages.d.ts +69 -20
  63. package/dist/effect/generated/scheduled-messages.js +22 -3
  64. package/dist/effect/generated/shared.d.ts +431 -177
  65. package/dist/effect/generated/shared.js +216 -108
  66. package/dist/effect/generated/subscriptions.d.ts +4 -7
  67. package/dist/effect/generated/subscriptions.js +3 -4
  68. package/dist/effect/generated/templates.d.ts +71 -407
  69. package/dist/effect/generated/templates.js +23 -23
  70. package/dist/effect/generated/topic-forms.d.ts +656 -0
  71. package/dist/effect/generated/topic-forms.js +145 -0
  72. package/dist/effect/generated/{unsubscribe-groups.d.ts → topics.d.ts} +640 -435
  73. package/dist/effect/generated/topics.js +267 -0
  74. package/dist/effect/generated/webhooks.d.ts +6 -6
  75. package/dist/effect/generated/webhooks.js +2 -2
  76. package/dist/effect/generated-metadata.d.ts +78 -24
  77. package/dist/effect/generated-metadata.js +61 -27
  78. package/dist/effect/index.d.ts +3 -1
  79. package/dist/effect/index.js +5 -3
  80. package/dist/effect/internal/operation.js +4 -3
  81. package/dist/effect/internal/send.d.ts +4 -4
  82. package/dist/effect/journeys.d.ts +119 -119
  83. package/dist/effect/mailboxes.d.ts +137 -121
  84. package/dist/effect/messages.d.ts +19 -11
  85. package/dist/effect/namespaces.d.ts +3 -3
  86. package/dist/effect/operations.d.ts +3 -3
  87. package/dist/effect/scheduled-messages.d.ts +6 -6
  88. package/dist/effect/subscriptions.d.ts +1 -2
  89. package/dist/effect/templates.d.ts +13 -13
  90. package/dist/effect/topic-forms.d.ts +30 -0
  91. package/dist/effect/topic-forms.js +21 -0
  92. package/dist/effect/topics.d.ts +94 -0
  93. package/dist/effect/topics.js +29 -0
  94. package/dist/effect/webhooks.d.ts +6 -6
  95. package/dist/index.js +2 -2
  96. package/dist/package.js +1 -1
  97. package/dist/promises/errors.gen.d.ts +65 -8
  98. package/dist/promises/errors.gen.js +139 -7
  99. package/dist/promises/index.d.ts +7 -3
  100. package/dist/promises/index.js +9 -5
  101. package/dist/promises/types.gen.d.ts +1 -1
  102. package/dist/service-map.d.ts +117 -23
  103. package/dist/service-map.js +71 -10
  104. package/package.json +17 -9
  105. package/dist/effect/generated/unsubscribe-groups.js +0 -284
  106. package/dist/effect/unsubscribe-groups.d.ts +0 -74
  107. package/dist/effect/unsubscribe-groups.js +0 -29
@@ -1,6 +1,7 @@
1
+ import type * as EffectBrand from "effect/Brand";
1
2
  import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
2
3
  import * as Schema from "effect/Schema";
3
- import { ApiKeySecurityMiddleware, BillingProviderError, ConflictError, ContactGroupId, ContactId, ContactIdentity, ContactIdentityId, ConversationId, Cursor, ForbiddenError, GatewayTimeoutError, InternalError, JsonObject, MessageId, NamespaceId, PaymentRequiredError, ResourceNotFoundError, UnauthorizedError, ValidationError } from "./shared";
4
+ import { ApiKeySecurityMiddleware, BillingProviderError, ConflictError, ContactGroupId, ContactId, ContactIdentity, ContactIdentityId, ConversationId, Cursor, FlagDisabledError, ForbiddenError, GatewayTimeoutError, InternalError, JsonObject, MessageId, NamespaceId, PaymentRequiredError, ResourceNotFoundError, TopicId, UnauthorizedError, ValidationError } from "./shared";
4
5
  export type ContactCustomFields = {
5
6
  readonly [x: string]: string | number | boolean | null;
6
7
  };
@@ -51,6 +52,8 @@ export declare const ContactPreferences: Schema.Struct<{
51
52
  }>, Schema.Null]>>;
52
53
  }>, Schema.Null]>>;
53
54
  }>;
55
+ export type ContactImportJobId = string & EffectBrand.Brand<"ContactImportJobId">;
56
+ export declare const ContactImportJobId: Schema.brand<Schema.String, "ContactImportJobId">;
54
57
  export type BulkUpdateResult = {
55
58
  readonly updated: number;
56
59
  readonly failed: number;
@@ -252,6 +255,64 @@ export type Contact = {
252
255
  readonly preferences: ContactPreferences | null;
253
256
  readonly tags: ReadonlyArray<string>;
254
257
  readonly metadata: JsonObject | null;
258
+ readonly importProvenance: {
259
+ readonly first: {
260
+ readonly jobId: ContactImportJobId;
261
+ readonly topicId: TopicId;
262
+ readonly preset: "beehiiv" | "substack" | "kit" | "mailchimp";
263
+ readonly importedAt: string;
264
+ readonly summary?: {
265
+ readonly signupAt: {
266
+ readonly value: string;
267
+ readonly kind: "time" | "text";
268
+ } | null;
269
+ readonly sources: ReadonlyArray<string>;
270
+ readonly omittedSources: number;
271
+ } | null;
272
+ readonly evidence: ReadonlyArray<{
273
+ readonly file: string;
274
+ readonly row: number;
275
+ readonly declared: {
276
+ readonly kind: "status_column";
277
+ } | {
278
+ readonly kind: "export_scope";
279
+ readonly scope: "subscribed" | "unsubscribed" | "suppressed" | "cleaned/bounced";
280
+ };
281
+ readonly suppressionFree: boolean;
282
+ readonly sourceStatus: string | null;
283
+ readonly signupAt: string | null;
284
+ readonly source: string | null;
285
+ }>;
286
+ };
287
+ readonly latest: {
288
+ readonly jobId: ContactImportJobId;
289
+ readonly topicId: TopicId;
290
+ readonly preset: "beehiiv" | "substack" | "kit" | "mailchimp";
291
+ readonly importedAt: string;
292
+ readonly summary?: {
293
+ readonly signupAt: {
294
+ readonly value: string;
295
+ readonly kind: "time" | "text";
296
+ } | null;
297
+ readonly sources: ReadonlyArray<string>;
298
+ readonly omittedSources: number;
299
+ } | null;
300
+ readonly evidence: ReadonlyArray<{
301
+ readonly file: string;
302
+ readonly row: number;
303
+ readonly declared: {
304
+ readonly kind: "status_column";
305
+ } | {
306
+ readonly kind: "export_scope";
307
+ readonly scope: "subscribed" | "unsubscribed" | "suppressed" | "cleaned/bounced";
308
+ };
309
+ readonly suppressionFree: boolean;
310
+ readonly sourceStatus: string | null;
311
+ readonly signupAt: string | null;
312
+ readonly source: string | null;
313
+ }>;
314
+ };
315
+ } | null;
255
316
  readonly createdAt: string;
256
317
  readonly updatedAt: string;
257
318
  };
@@ -308,11 +369,69 @@ export declare const Contact: Schema.Struct<{
308
369
  }>, Schema.Null]>;
309
370
  readonly tags: Schema.$Array<Schema.String>;
310
371
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
372
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
373
+ readonly first: Schema.Struct<{
374
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
375
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
376
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
377
+ readonly importedAt: Schema.String;
378
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
379
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
380
+ readonly value: Schema.String;
381
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
382
+ }>, Schema.Null]>;
383
+ readonly sources: Schema.$Array<Schema.String>;
384
+ readonly omittedSources: Schema.Finite;
385
+ }>, Schema.Null]>>;
386
+ readonly evidence: Schema.$Array<Schema.Struct<{
387
+ readonly file: Schema.String;
388
+ readonly row: Schema.Finite;
389
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
390
+ readonly kind: Schema.Literal<"status_column">;
391
+ }>, Schema.Struct<{
392
+ readonly kind: Schema.Literal<"export_scope">;
393
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
394
+ }>]>;
395
+ readonly suppressionFree: Schema.Boolean;
396
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
397
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
398
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
399
+ }>>;
400
+ }>;
401
+ readonly latest: Schema.Struct<{
402
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
403
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
404
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
405
+ readonly importedAt: Schema.String;
406
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
407
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
408
+ readonly value: Schema.String;
409
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
410
+ }>, Schema.Null]>;
411
+ readonly sources: Schema.$Array<Schema.String>;
412
+ readonly omittedSources: Schema.Finite;
413
+ }>, Schema.Null]>>;
414
+ readonly evidence: Schema.$Array<Schema.Struct<{
415
+ readonly file: Schema.String;
416
+ readonly row: Schema.Finite;
417
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
418
+ readonly kind: Schema.Literal<"status_column">;
419
+ }>, Schema.Struct<{
420
+ readonly kind: Schema.Literal<"export_scope">;
421
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
422
+ }>]>;
423
+ readonly suppressionFree: Schema.Boolean;
424
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
425
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
426
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
427
+ }>>;
428
+ }>;
429
+ }>, Schema.Null]>;
311
430
  readonly createdAt: Schema.String;
312
431
  readonly updatedAt: Schema.String;
313
432
  }>;
314
433
  export type ContactsListQuery = {
315
- readonly limit?: string | null;
434
+ readonly limit?: number | null;
316
435
  readonly cursor?: Cursor | null;
317
436
  readonly namespaceId?: NamespaceId | null;
318
437
  readonly search?: string | null;
@@ -324,7 +443,7 @@ export type ContactsListQuery = {
324
443
  readonly before?: string | null;
325
444
  };
326
445
  export declare const ContactsListQuery: Schema.Struct<{
327
- readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
446
+ readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.Finite, Schema.Null]>>;
328
447
  readonly cursor: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
329
448
  readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
330
449
  readonly search: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -477,6 +596,64 @@ export declare const ContactsCreate201: Schema.Struct<{
477
596
  }>, Schema.Null]>;
478
597
  readonly tags: Schema.$Array<Schema.String>;
479
598
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
599
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
600
+ readonly first: Schema.Struct<{
601
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
602
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
603
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
604
+ readonly importedAt: Schema.String;
605
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
606
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
607
+ readonly value: Schema.String;
608
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
609
+ }>, Schema.Null]>;
610
+ readonly sources: Schema.$Array<Schema.String>;
611
+ readonly omittedSources: Schema.Finite;
612
+ }>, Schema.Null]>>;
613
+ readonly evidence: Schema.$Array<Schema.Struct<{
614
+ readonly file: Schema.String;
615
+ readonly row: Schema.Finite;
616
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
617
+ readonly kind: Schema.Literal<"status_column">;
618
+ }>, Schema.Struct<{
619
+ readonly kind: Schema.Literal<"export_scope">;
620
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
621
+ }>]>;
622
+ readonly suppressionFree: Schema.Boolean;
623
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
624
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
625
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
626
+ }>>;
627
+ }>;
628
+ readonly latest: Schema.Struct<{
629
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
630
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
631
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
632
+ readonly importedAt: Schema.String;
633
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
634
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
635
+ readonly value: Schema.String;
636
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
637
+ }>, Schema.Null]>;
638
+ readonly sources: Schema.$Array<Schema.String>;
639
+ readonly omittedSources: Schema.Finite;
640
+ }>, Schema.Null]>>;
641
+ readonly evidence: Schema.$Array<Schema.Struct<{
642
+ readonly file: Schema.String;
643
+ readonly row: Schema.Finite;
644
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
645
+ readonly kind: Schema.Literal<"status_column">;
646
+ }>, Schema.Struct<{
647
+ readonly kind: Schema.Literal<"export_scope">;
648
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
649
+ }>]>;
650
+ readonly suppressionFree: Schema.Boolean;
651
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
652
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
653
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
654
+ }>>;
655
+ }>;
656
+ }>, Schema.Null]>;
480
657
  readonly createdAt: Schema.String;
481
658
  readonly updatedAt: Schema.String;
482
659
  }>;
@@ -558,6 +735,64 @@ export declare const ContactsGet200: Schema.Struct<{
558
735
  }>, Schema.Null]>;
559
736
  readonly tags: Schema.$Array<Schema.String>;
560
737
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
738
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
739
+ readonly first: Schema.Struct<{
740
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
741
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
742
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
743
+ readonly importedAt: Schema.String;
744
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
745
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
746
+ readonly value: Schema.String;
747
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
748
+ }>, Schema.Null]>;
749
+ readonly sources: Schema.$Array<Schema.String>;
750
+ readonly omittedSources: Schema.Finite;
751
+ }>, Schema.Null]>>;
752
+ readonly evidence: Schema.$Array<Schema.Struct<{
753
+ readonly file: Schema.String;
754
+ readonly row: Schema.Finite;
755
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
756
+ readonly kind: Schema.Literal<"status_column">;
757
+ }>, Schema.Struct<{
758
+ readonly kind: Schema.Literal<"export_scope">;
759
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
760
+ }>]>;
761
+ readonly suppressionFree: Schema.Boolean;
762
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
763
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
764
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
765
+ }>>;
766
+ }>;
767
+ readonly latest: Schema.Struct<{
768
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
769
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
770
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
771
+ readonly importedAt: Schema.String;
772
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
773
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
774
+ readonly value: Schema.String;
775
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
776
+ }>, Schema.Null]>;
777
+ readonly sources: Schema.$Array<Schema.String>;
778
+ readonly omittedSources: Schema.Finite;
779
+ }>, Schema.Null]>>;
780
+ readonly evidence: Schema.$Array<Schema.Struct<{
781
+ readonly file: Schema.String;
782
+ readonly row: Schema.Finite;
783
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
784
+ readonly kind: Schema.Literal<"status_column">;
785
+ }>, Schema.Struct<{
786
+ readonly kind: Schema.Literal<"export_scope">;
787
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
788
+ }>]>;
789
+ readonly suppressionFree: Schema.Boolean;
790
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
791
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
792
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
793
+ }>>;
794
+ }>;
795
+ }>, Schema.Null]>;
561
796
  readonly createdAt: Schema.String;
562
797
  readonly updatedAt: Schema.String;
563
798
  }>;
@@ -704,6 +939,64 @@ export declare const ContactsUpdate200: Schema.Struct<{
704
939
  }>, Schema.Null]>;
705
940
  readonly tags: Schema.$Array<Schema.String>;
706
941
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
942
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
943
+ readonly first: Schema.Struct<{
944
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
945
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
946
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
947
+ readonly importedAt: Schema.String;
948
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
949
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
950
+ readonly value: Schema.String;
951
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
952
+ }>, Schema.Null]>;
953
+ readonly sources: Schema.$Array<Schema.String>;
954
+ readonly omittedSources: Schema.Finite;
955
+ }>, Schema.Null]>>;
956
+ readonly evidence: Schema.$Array<Schema.Struct<{
957
+ readonly file: Schema.String;
958
+ readonly row: Schema.Finite;
959
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
960
+ readonly kind: Schema.Literal<"status_column">;
961
+ }>, Schema.Struct<{
962
+ readonly kind: Schema.Literal<"export_scope">;
963
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
964
+ }>]>;
965
+ readonly suppressionFree: Schema.Boolean;
966
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
967
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
968
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
969
+ }>>;
970
+ }>;
971
+ readonly latest: Schema.Struct<{
972
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
973
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
974
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
975
+ readonly importedAt: Schema.String;
976
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
977
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
978
+ readonly value: Schema.String;
979
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
980
+ }>, Schema.Null]>;
981
+ readonly sources: Schema.$Array<Schema.String>;
982
+ readonly omittedSources: Schema.Finite;
983
+ }>, Schema.Null]>>;
984
+ readonly evidence: Schema.$Array<Schema.Struct<{
985
+ readonly file: Schema.String;
986
+ readonly row: Schema.Finite;
987
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
988
+ readonly kind: Schema.Literal<"status_column">;
989
+ }>, Schema.Struct<{
990
+ readonly kind: Schema.Literal<"export_scope">;
991
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
992
+ }>]>;
993
+ readonly suppressionFree: Schema.Boolean;
994
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
995
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
996
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
997
+ }>>;
998
+ }>;
999
+ }>, Schema.Null]>;
707
1000
  readonly createdAt: Schema.String;
708
1001
  readonly updatedAt: Schema.String;
709
1002
  }>;
@@ -730,12 +1023,12 @@ export declare const ContactsGetActivityTimelinePathParams: Schema.Struct<{
730
1023
  readonly id: Schema.brand<Schema.String, "ContactId">;
731
1024
  }>;
732
1025
  export type ContactsGetActivityTimelineQuery = {
733
- readonly limit?: string | null;
1026
+ readonly limit?: number | null;
734
1027
  readonly cursor?: Cursor | null;
735
1028
  readonly channel?: "email" | null;
736
1029
  };
737
1030
  export declare const ContactsGetActivityTimelineQuery: Schema.Struct<{
738
- readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1031
+ readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.Finite, Schema.Null]>>;
739
1032
  readonly cursor: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
740
1033
  readonly channel: Schema.optionalKey<Schema.Union<readonly [Schema.Literal<"email">, Schema.Null]>>;
741
1034
  }>;
@@ -808,11 +1101,11 @@ export declare const ContactsGetGroupMembershipsPathParams: Schema.Struct<{
808
1101
  readonly id: Schema.brand<Schema.String, "ContactId">;
809
1102
  }>;
810
1103
  export type ContactsGetGroupMembershipsQuery = {
811
- readonly limit?: string | null;
1104
+ readonly limit?: number | null;
812
1105
  readonly cursor?: Cursor | null;
813
1106
  };
814
1107
  export declare const ContactsGetGroupMembershipsQuery: Schema.Struct<{
815
- readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1108
+ readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.Finite, Schema.Null]>>;
816
1109
  readonly cursor: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
817
1110
  }>;
818
1111
  export type ContactsGetGroupMemberships200 = ContactGroupMembershipPage;
@@ -909,6 +1202,64 @@ export declare const ContactsAddIdentity200: Schema.Struct<{
909
1202
  }>, Schema.Null]>;
910
1203
  readonly tags: Schema.$Array<Schema.String>;
911
1204
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1205
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
1206
+ readonly first: Schema.Struct<{
1207
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1208
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1209
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1210
+ readonly importedAt: Schema.String;
1211
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1212
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1213
+ readonly value: Schema.String;
1214
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1215
+ }>, Schema.Null]>;
1216
+ readonly sources: Schema.$Array<Schema.String>;
1217
+ readonly omittedSources: Schema.Finite;
1218
+ }>, Schema.Null]>>;
1219
+ readonly evidence: Schema.$Array<Schema.Struct<{
1220
+ readonly file: Schema.String;
1221
+ readonly row: Schema.Finite;
1222
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1223
+ readonly kind: Schema.Literal<"status_column">;
1224
+ }>, Schema.Struct<{
1225
+ readonly kind: Schema.Literal<"export_scope">;
1226
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1227
+ }>]>;
1228
+ readonly suppressionFree: Schema.Boolean;
1229
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1230
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1231
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1232
+ }>>;
1233
+ }>;
1234
+ readonly latest: Schema.Struct<{
1235
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1236
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1237
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1238
+ readonly importedAt: Schema.String;
1239
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1240
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1241
+ readonly value: Schema.String;
1242
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1243
+ }>, Schema.Null]>;
1244
+ readonly sources: Schema.$Array<Schema.String>;
1245
+ readonly omittedSources: Schema.Finite;
1246
+ }>, Schema.Null]>>;
1247
+ readonly evidence: Schema.$Array<Schema.Struct<{
1248
+ readonly file: Schema.String;
1249
+ readonly row: Schema.Finite;
1250
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1251
+ readonly kind: Schema.Literal<"status_column">;
1252
+ }>, Schema.Struct<{
1253
+ readonly kind: Schema.Literal<"export_scope">;
1254
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1255
+ }>]>;
1256
+ readonly suppressionFree: Schema.Boolean;
1257
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1258
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1259
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1260
+ }>>;
1261
+ }>;
1262
+ }>, Schema.Null]>;
912
1263
  readonly createdAt: Schema.String;
913
1264
  readonly updatedAt: Schema.String;
914
1265
  }>;
@@ -988,6 +1339,64 @@ export declare const ContactsRemoveIdentity200: Schema.Struct<{
988
1339
  }>, Schema.Null]>;
989
1340
  readonly tags: Schema.$Array<Schema.String>;
990
1341
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1342
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
1343
+ readonly first: Schema.Struct<{
1344
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1345
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1346
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1347
+ readonly importedAt: Schema.String;
1348
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1349
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1350
+ readonly value: Schema.String;
1351
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1352
+ }>, Schema.Null]>;
1353
+ readonly sources: Schema.$Array<Schema.String>;
1354
+ readonly omittedSources: Schema.Finite;
1355
+ }>, Schema.Null]>>;
1356
+ readonly evidence: Schema.$Array<Schema.Struct<{
1357
+ readonly file: Schema.String;
1358
+ readonly row: Schema.Finite;
1359
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1360
+ readonly kind: Schema.Literal<"status_column">;
1361
+ }>, Schema.Struct<{
1362
+ readonly kind: Schema.Literal<"export_scope">;
1363
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1364
+ }>]>;
1365
+ readonly suppressionFree: Schema.Boolean;
1366
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1367
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1368
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1369
+ }>>;
1370
+ }>;
1371
+ readonly latest: Schema.Struct<{
1372
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1373
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1374
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1375
+ readonly importedAt: Schema.String;
1376
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1377
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1378
+ readonly value: Schema.String;
1379
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1380
+ }>, Schema.Null]>;
1381
+ readonly sources: Schema.$Array<Schema.String>;
1382
+ readonly omittedSources: Schema.Finite;
1383
+ }>, Schema.Null]>>;
1384
+ readonly evidence: Schema.$Array<Schema.Struct<{
1385
+ readonly file: Schema.String;
1386
+ readonly row: Schema.Finite;
1387
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1388
+ readonly kind: Schema.Literal<"status_column">;
1389
+ }>, Schema.Struct<{
1390
+ readonly kind: Schema.Literal<"export_scope">;
1391
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1392
+ }>]>;
1393
+ readonly suppressionFree: Schema.Boolean;
1394
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1395
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1396
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1397
+ }>>;
1398
+ }>;
1399
+ }>, Schema.Null]>;
991
1400
  readonly createdAt: Schema.String;
992
1401
  readonly updatedAt: Schema.String;
993
1402
  }>;
@@ -1079,6 +1488,64 @@ export declare const ContactsSetConsent200: Schema.Struct<{
1079
1488
  }>, Schema.Null]>;
1080
1489
  readonly tags: Schema.$Array<Schema.String>;
1081
1490
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1491
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
1492
+ readonly first: Schema.Struct<{
1493
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1494
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1495
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1496
+ readonly importedAt: Schema.String;
1497
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1498
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1499
+ readonly value: Schema.String;
1500
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1501
+ }>, Schema.Null]>;
1502
+ readonly sources: Schema.$Array<Schema.String>;
1503
+ readonly omittedSources: Schema.Finite;
1504
+ }>, Schema.Null]>>;
1505
+ readonly evidence: Schema.$Array<Schema.Struct<{
1506
+ readonly file: Schema.String;
1507
+ readonly row: Schema.Finite;
1508
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1509
+ readonly kind: Schema.Literal<"status_column">;
1510
+ }>, Schema.Struct<{
1511
+ readonly kind: Schema.Literal<"export_scope">;
1512
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1513
+ }>]>;
1514
+ readonly suppressionFree: Schema.Boolean;
1515
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1516
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1517
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1518
+ }>>;
1519
+ }>;
1520
+ readonly latest: Schema.Struct<{
1521
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1522
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1523
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1524
+ readonly importedAt: Schema.String;
1525
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1526
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1527
+ readonly value: Schema.String;
1528
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1529
+ }>, Schema.Null]>;
1530
+ readonly sources: Schema.$Array<Schema.String>;
1531
+ readonly omittedSources: Schema.Finite;
1532
+ }>, Schema.Null]>>;
1533
+ readonly evidence: Schema.$Array<Schema.Struct<{
1534
+ readonly file: Schema.String;
1535
+ readonly row: Schema.Finite;
1536
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1537
+ readonly kind: Schema.Literal<"status_column">;
1538
+ }>, Schema.Struct<{
1539
+ readonly kind: Schema.Literal<"export_scope">;
1540
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1541
+ }>]>;
1542
+ readonly suppressionFree: Schema.Boolean;
1543
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1544
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1545
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1546
+ }>>;
1547
+ }>;
1548
+ }>, Schema.Null]>;
1082
1549
  readonly createdAt: Schema.String;
1083
1550
  readonly updatedAt: Schema.String;
1084
1551
  }>;
@@ -1160,6 +1627,64 @@ export declare const ContactsAddTags200: Schema.Struct<{
1160
1627
  }>, Schema.Null]>;
1161
1628
  readonly tags: Schema.$Array<Schema.String>;
1162
1629
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1630
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
1631
+ readonly first: Schema.Struct<{
1632
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1633
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1634
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1635
+ readonly importedAt: Schema.String;
1636
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1637
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1638
+ readonly value: Schema.String;
1639
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1640
+ }>, Schema.Null]>;
1641
+ readonly sources: Schema.$Array<Schema.String>;
1642
+ readonly omittedSources: Schema.Finite;
1643
+ }>, Schema.Null]>>;
1644
+ readonly evidence: Schema.$Array<Schema.Struct<{
1645
+ readonly file: Schema.String;
1646
+ readonly row: Schema.Finite;
1647
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1648
+ readonly kind: Schema.Literal<"status_column">;
1649
+ }>, Schema.Struct<{
1650
+ readonly kind: Schema.Literal<"export_scope">;
1651
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1652
+ }>]>;
1653
+ readonly suppressionFree: Schema.Boolean;
1654
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1655
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1656
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1657
+ }>>;
1658
+ }>;
1659
+ readonly latest: Schema.Struct<{
1660
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1661
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1662
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1663
+ readonly importedAt: Schema.String;
1664
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1665
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1666
+ readonly value: Schema.String;
1667
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1668
+ }>, Schema.Null]>;
1669
+ readonly sources: Schema.$Array<Schema.String>;
1670
+ readonly omittedSources: Schema.Finite;
1671
+ }>, Schema.Null]>>;
1672
+ readonly evidence: Schema.$Array<Schema.Struct<{
1673
+ readonly file: Schema.String;
1674
+ readonly row: Schema.Finite;
1675
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1676
+ readonly kind: Schema.Literal<"status_column">;
1677
+ }>, Schema.Struct<{
1678
+ readonly kind: Schema.Literal<"export_scope">;
1679
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1680
+ }>]>;
1681
+ readonly suppressionFree: Schema.Boolean;
1682
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1683
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1684
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1685
+ }>>;
1686
+ }>;
1687
+ }>, Schema.Null]>;
1163
1688
  readonly createdAt: Schema.String;
1164
1689
  readonly updatedAt: Schema.String;
1165
1690
  }>;
@@ -1241,6 +1766,64 @@ export declare const ContactsRemoveTags200: Schema.Struct<{
1241
1766
  }>, Schema.Null]>;
1242
1767
  readonly tags: Schema.$Array<Schema.String>;
1243
1768
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
1769
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
1770
+ readonly first: Schema.Struct<{
1771
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1772
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1773
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1774
+ readonly importedAt: Schema.String;
1775
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1776
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1777
+ readonly value: Schema.String;
1778
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1779
+ }>, Schema.Null]>;
1780
+ readonly sources: Schema.$Array<Schema.String>;
1781
+ readonly omittedSources: Schema.Finite;
1782
+ }>, Schema.Null]>>;
1783
+ readonly evidence: Schema.$Array<Schema.Struct<{
1784
+ readonly file: Schema.String;
1785
+ readonly row: Schema.Finite;
1786
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1787
+ readonly kind: Schema.Literal<"status_column">;
1788
+ }>, Schema.Struct<{
1789
+ readonly kind: Schema.Literal<"export_scope">;
1790
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1791
+ }>]>;
1792
+ readonly suppressionFree: Schema.Boolean;
1793
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1794
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1795
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1796
+ }>>;
1797
+ }>;
1798
+ readonly latest: Schema.Struct<{
1799
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
1800
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
1801
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
1802
+ readonly importedAt: Schema.String;
1803
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1804
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
1805
+ readonly value: Schema.String;
1806
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
1807
+ }>, Schema.Null]>;
1808
+ readonly sources: Schema.$Array<Schema.String>;
1809
+ readonly omittedSources: Schema.Finite;
1810
+ }>, Schema.Null]>>;
1811
+ readonly evidence: Schema.$Array<Schema.Struct<{
1812
+ readonly file: Schema.String;
1813
+ readonly row: Schema.Finite;
1814
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
1815
+ readonly kind: Schema.Literal<"status_column">;
1816
+ }>, Schema.Struct<{
1817
+ readonly kind: Schema.Literal<"export_scope">;
1818
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
1819
+ }>]>;
1820
+ readonly suppressionFree: Schema.Boolean;
1821
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
1822
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
1823
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
1824
+ }>>;
1825
+ }>;
1826
+ }>, Schema.Null]>;
1244
1827
  readonly createdAt: Schema.String;
1245
1828
  readonly updatedAt: Schema.String;
1246
1829
  }>;
@@ -1282,110 +1865,6 @@ export type ContactsBulkDelete502 = BillingProviderError;
1282
1865
  export declare const ContactsBulkDelete502: typeof BillingProviderError;
1283
1866
  export type ContactsBulkDelete504 = GatewayTimeoutError;
1284
1867
  export declare const ContactsBulkDelete504: typeof GatewayTimeoutError;
1285
- export type ContactsBulkImportRequestJson = {
1286
- readonly namespaceId?: NamespaceId | null;
1287
- readonly contacts: ReadonlyArray<{
1288
- readonly name: string;
1289
- readonly displayName?: string | null | null;
1290
- readonly avatar?: string | null | null;
1291
- readonly identities?: ReadonlyArray<ContactIdentityInput> | null;
1292
- readonly profile?: ContactProfile | null | null;
1293
- readonly preferences?: ContactPreferences | null | null;
1294
- readonly tags?: ReadonlyArray<string> | null;
1295
- readonly status?: "active" | "paused" | "blocked" | "archived" | null;
1296
- readonly statusReason?: string | null | null;
1297
- readonly externalId?: string | null | null;
1298
- readonly metadata?: JsonObject | null | null;
1299
- }>;
1300
- readonly onConflict?: "skip" | "update" | null;
1301
- };
1302
- export declare const ContactsBulkImportRequestJson: Schema.Struct<{
1303
- readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
1304
- readonly contacts: Schema.$Array<Schema.Struct<{
1305
- readonly name: Schema.String;
1306
- readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1307
- readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1308
- readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
1309
- readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
1310
- readonly identifier: Schema.String;
1311
- readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1312
- }>>, Schema.Null]>>;
1313
- readonly profile: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
1314
- readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1315
- readonly lastName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1316
- readonly company: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1317
- readonly jobTitle: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1318
- readonly location: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1319
- readonly country: Schema.String;
1320
- readonly state: Schema.String;
1321
- readonly city: Schema.String;
1322
- readonly timezone: Schema.String;
1323
- }>, Schema.Null]>>;
1324
- readonly customFields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>, Schema.Null]>>;
1325
- readonly source: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"import">, Schema.Literal<"manual">, Schema.Literal<"form">]>, Schema.Null]>>;
1326
- }>, Schema.Null]>, Schema.Null]>>;
1327
- readonly preferences: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
1328
- readonly preferredChannels: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Literal<"email">>, Schema.Null]>>;
1329
- readonly language: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1330
- readonly timezone: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1331
- readonly notifications: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1332
- readonly email: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
1333
- readonly quiet_hours: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
1334
- readonly start: Schema.String;
1335
- readonly end: Schema.String;
1336
- }>, Schema.Null]>>;
1337
- }>, Schema.Null]>>;
1338
- }>, Schema.Null]>, Schema.Null]>>;
1339
- readonly tags: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.String>, Schema.Null]>>;
1340
- readonly status: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>, Schema.Null]>>;
1341
- readonly statusReason: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1342
- readonly externalId: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
1343
- readonly metadata: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>, Schema.Null]>>;
1344
- }>>;
1345
- readonly onConflict: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"skip">, Schema.Literal<"update">]>, Schema.Null]>>;
1346
- }>;
1347
- export type ContactsBulkImport200 = {
1348
- readonly total: number;
1349
- readonly created: number;
1350
- readonly updated: number;
1351
- readonly skipped: number;
1352
- readonly errors: number;
1353
- readonly results: ReadonlyArray<{
1354
- readonly index: number;
1355
- readonly status: "created" | "updated" | "skipped" | "error";
1356
- readonly contactId?: ContactId | null;
1357
- readonly error?: string | null;
1358
- }>;
1359
- };
1360
- export declare const ContactsBulkImport200: Schema.Struct<{
1361
- readonly total: Schema.Finite;
1362
- readonly created: Schema.Finite;
1363
- readonly updated: Schema.Finite;
1364
- readonly skipped: Schema.Finite;
1365
- readonly errors: Schema.Finite;
1366
- readonly results: Schema.$Array<Schema.Struct<{
1367
- readonly index: Schema.Finite;
1368
- readonly status: Schema.Union<readonly [Schema.Literal<"created">, Schema.Literal<"updated">, Schema.Literal<"skipped">, Schema.Literal<"error">]>;
1369
- readonly contactId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "ContactId">, Schema.Null]>>;
1370
- readonly error: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
1371
- }>>;
1372
- }>;
1373
- export type ContactsBulkImport401 = UnauthorizedError;
1374
- export declare const ContactsBulkImport401: typeof UnauthorizedError;
1375
- export type ContactsBulkImport402 = PaymentRequiredError;
1376
- export declare const ContactsBulkImport402: typeof PaymentRequiredError;
1377
- export type ContactsBulkImport403 = ForbiddenError;
1378
- export declare const ContactsBulkImport403: typeof ForbiddenError;
1379
- export type ContactsBulkImport404 = ResourceNotFoundError;
1380
- export declare const ContactsBulkImport404: typeof ResourceNotFoundError;
1381
- export type ContactsBulkImport422 = ValidationError;
1382
- export declare const ContactsBulkImport422: typeof ValidationError;
1383
- export type ContactsBulkImport500 = InternalError;
1384
- export declare const ContactsBulkImport500: typeof InternalError;
1385
- export type ContactsBulkImport502 = BillingProviderError;
1386
- export declare const ContactsBulkImport502: typeof BillingProviderError;
1387
- export type ContactsBulkImport504 = GatewayTimeoutError;
1388
- export declare const ContactsBulkImport504: typeof GatewayTimeoutError;
1389
1868
  export type ContactsBulkUpdateStatusRequestJson = {
1390
1869
  readonly ids: readonly [ContactId, ...Array<ContactId>];
1391
1870
  readonly status: "active" | "paused" | "blocked" | "archived";
@@ -1542,6 +2021,64 @@ export declare const ContactsFind200: Schema.Union<readonly [Schema.Struct<{
1542
2021
  }>, Schema.Null]>;
1543
2022
  readonly tags: Schema.$Array<Schema.String>;
1544
2023
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2024
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
2025
+ readonly first: Schema.Struct<{
2026
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2027
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2028
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2029
+ readonly importedAt: Schema.String;
2030
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2031
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2032
+ readonly value: Schema.String;
2033
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2034
+ }>, Schema.Null]>;
2035
+ readonly sources: Schema.$Array<Schema.String>;
2036
+ readonly omittedSources: Schema.Finite;
2037
+ }>, Schema.Null]>>;
2038
+ readonly evidence: Schema.$Array<Schema.Struct<{
2039
+ readonly file: Schema.String;
2040
+ readonly row: Schema.Finite;
2041
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2042
+ readonly kind: Schema.Literal<"status_column">;
2043
+ }>, Schema.Struct<{
2044
+ readonly kind: Schema.Literal<"export_scope">;
2045
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2046
+ }>]>;
2047
+ readonly suppressionFree: Schema.Boolean;
2048
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2049
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2050
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2051
+ }>>;
2052
+ }>;
2053
+ readonly latest: Schema.Struct<{
2054
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2055
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2056
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2057
+ readonly importedAt: Schema.String;
2058
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2059
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2060
+ readonly value: Schema.String;
2061
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2062
+ }>, Schema.Null]>;
2063
+ readonly sources: Schema.$Array<Schema.String>;
2064
+ readonly omittedSources: Schema.Finite;
2065
+ }>, Schema.Null]>>;
2066
+ readonly evidence: Schema.$Array<Schema.Struct<{
2067
+ readonly file: Schema.String;
2068
+ readonly row: Schema.Finite;
2069
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2070
+ readonly kind: Schema.Literal<"status_column">;
2071
+ }>, Schema.Struct<{
2072
+ readonly kind: Schema.Literal<"export_scope">;
2073
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2074
+ }>]>;
2075
+ readonly suppressionFree: Schema.Boolean;
2076
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2077
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2078
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2079
+ }>>;
2080
+ }>;
2081
+ }>, Schema.Null]>;
1545
2082
  readonly createdAt: Schema.String;
1546
2083
  readonly updatedAt: Schema.String;
1547
2084
  }>, Schema.Null]>;
@@ -1667,6 +2204,64 @@ export declare const ContactsFindOrCreate200: Schema.Struct<{
1667
2204
  }>, Schema.Null]>;
1668
2205
  readonly tags: Schema.$Array<Schema.String>;
1669
2206
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2207
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
2208
+ readonly first: Schema.Struct<{
2209
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2210
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2211
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2212
+ readonly importedAt: Schema.String;
2213
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2214
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2215
+ readonly value: Schema.String;
2216
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2217
+ }>, Schema.Null]>;
2218
+ readonly sources: Schema.$Array<Schema.String>;
2219
+ readonly omittedSources: Schema.Finite;
2220
+ }>, Schema.Null]>>;
2221
+ readonly evidence: Schema.$Array<Schema.Struct<{
2222
+ readonly file: Schema.String;
2223
+ readonly row: Schema.Finite;
2224
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2225
+ readonly kind: Schema.Literal<"status_column">;
2226
+ }>, Schema.Struct<{
2227
+ readonly kind: Schema.Literal<"export_scope">;
2228
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2229
+ }>]>;
2230
+ readonly suppressionFree: Schema.Boolean;
2231
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2232
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2233
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2234
+ }>>;
2235
+ }>;
2236
+ readonly latest: Schema.Struct<{
2237
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2238
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2239
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2240
+ readonly importedAt: Schema.String;
2241
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2242
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2243
+ readonly value: Schema.String;
2244
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2245
+ }>, Schema.Null]>;
2246
+ readonly sources: Schema.$Array<Schema.String>;
2247
+ readonly omittedSources: Schema.Finite;
2248
+ }>, Schema.Null]>>;
2249
+ readonly evidence: Schema.$Array<Schema.Struct<{
2250
+ readonly file: Schema.String;
2251
+ readonly row: Schema.Finite;
2252
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2253
+ readonly kind: Schema.Literal<"status_column">;
2254
+ }>, Schema.Struct<{
2255
+ readonly kind: Schema.Literal<"export_scope">;
2256
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2257
+ }>]>;
2258
+ readonly suppressionFree: Schema.Boolean;
2259
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2260
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2261
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2262
+ }>>;
2263
+ }>;
2264
+ }>, Schema.Null]>;
1670
2265
  readonly createdAt: Schema.String;
1671
2266
  readonly updatedAt: Schema.String;
1672
2267
  }>;
@@ -1690,6 +2285,358 @@ export type ContactsFindOrCreate502 = BillingProviderError;
1690
2285
  export declare const ContactsFindOrCreate502: typeof BillingProviderError;
1691
2286
  export type ContactsFindOrCreate504 = GatewayTimeoutError;
1692
2287
  export declare const ContactsFindOrCreate504: typeof GatewayTimeoutError;
2288
+ export type ContactsStartImportRequestJson = {
2289
+ readonly mode: "new";
2290
+ readonly input: {
2291
+ readonly preset: "beehiiv" | "substack" | "kit" | "mailchimp";
2292
+ readonly topicId: TopicId;
2293
+ readonly namespaceId?: NamespaceId | null;
2294
+ readonly files: readonly [
2295
+ {
2296
+ readonly name: string;
2297
+ readonly csv: string;
2298
+ readonly evidence: {
2299
+ readonly kind: "status_column";
2300
+ } | {
2301
+ readonly kind: "export_scope";
2302
+ readonly scope: "subscribed" | "unsubscribed" | "suppressed" | "cleaned/bounced";
2303
+ };
2304
+ readonly suppressionFree?: boolean | null;
2305
+ },
2306
+ ...Array<{
2307
+ readonly name: string;
2308
+ readonly csv: string;
2309
+ readonly evidence: {
2310
+ readonly kind: "status_column";
2311
+ } | {
2312
+ readonly kind: "export_scope";
2313
+ readonly scope: "subscribed" | "unsubscribed" | "suppressed" | "cleaned/bounced";
2314
+ };
2315
+ readonly suppressionFree?: boolean | null;
2316
+ }>
2317
+ ];
2318
+ };
2319
+ readonly planHash: string;
2320
+ readonly idempotencyKey: string;
2321
+ } | {
2322
+ readonly mode: "resume";
2323
+ readonly jobId: ContactImportJobId;
2324
+ readonly expectedGeneration: number;
2325
+ };
2326
+ export declare const ContactsStartImportRequestJson: Schema.Union<readonly [Schema.Struct<{
2327
+ readonly mode: Schema.Literal<"new">;
2328
+ readonly input: Schema.Struct<{
2329
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2330
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2331
+ readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
2332
+ readonly files: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.Struct<{
2333
+ readonly name: Schema.String;
2334
+ readonly csv: Schema.String;
2335
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
2336
+ readonly kind: Schema.Literal<"status_column">;
2337
+ }>, Schema.Struct<{
2338
+ readonly kind: Schema.Literal<"export_scope">;
2339
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2340
+ }>]>;
2341
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2342
+ }>]>, readonly [Schema.Struct<{
2343
+ readonly name: Schema.String;
2344
+ readonly csv: Schema.String;
2345
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
2346
+ readonly kind: Schema.Literal<"status_column">;
2347
+ }>, Schema.Struct<{
2348
+ readonly kind: Schema.Literal<"export_scope">;
2349
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2350
+ }>]>;
2351
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2352
+ }>]>;
2353
+ }>;
2354
+ readonly planHash: Schema.String;
2355
+ readonly idempotencyKey: Schema.String;
2356
+ }>, Schema.Struct<{
2357
+ readonly mode: Schema.Literal<"resume">;
2358
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2359
+ readonly expectedGeneration: Schema.Finite;
2360
+ }>]>;
2361
+ export type ContactsStartImport202 = {
2362
+ readonly id: ContactImportJobId;
2363
+ readonly namespaceId: NamespaceId | null;
2364
+ readonly topicId: TopicId;
2365
+ readonly preset: "beehiiv" | "substack" | "kit" | "mailchimp";
2366
+ readonly status: "queued" | "running" | "finalizing" | "completed" | "failed";
2367
+ readonly generation: number;
2368
+ readonly counts: {
2369
+ readonly totalRows: number;
2370
+ readonly uniqueAddresses: number;
2371
+ readonly subscribed: number;
2372
+ readonly unsubscribed: number;
2373
+ readonly suppressed: number;
2374
+ readonly skipped: number;
2375
+ readonly conflicts: number;
2376
+ readonly created: number;
2377
+ readonly existing: number;
2378
+ };
2379
+ readonly processedRows: number;
2380
+ readonly totalRows: number;
2381
+ readonly createdAt: string;
2382
+ readonly startedAt: string | null;
2383
+ readonly updatedAt: string;
2384
+ readonly completedAt: string | null;
2385
+ readonly failure: {
2386
+ readonly code: string;
2387
+ readonly message: string;
2388
+ readonly retryable: boolean;
2389
+ } | null;
2390
+ readonly resumable: boolean;
2391
+ };
2392
+ export declare const ContactsStartImport202: Schema.Struct<{
2393
+ readonly id: Schema.brand<Schema.String, "ContactImportJobId">;
2394
+ readonly namespaceId: Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>;
2395
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2396
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2397
+ readonly status: Schema.Union<readonly [Schema.Literal<"queued">, Schema.Literal<"running">, Schema.Literal<"finalizing">, Schema.Literal<"completed">, Schema.Literal<"failed">]>;
2398
+ readonly generation: Schema.Finite;
2399
+ readonly counts: Schema.Struct<{
2400
+ readonly totalRows: Schema.Finite;
2401
+ readonly uniqueAddresses: Schema.Finite;
2402
+ readonly subscribed: Schema.Finite;
2403
+ readonly unsubscribed: Schema.Finite;
2404
+ readonly suppressed: Schema.Finite;
2405
+ readonly skipped: Schema.Finite;
2406
+ readonly conflicts: Schema.Finite;
2407
+ readonly created: Schema.Finite;
2408
+ readonly existing: Schema.Finite;
2409
+ }>;
2410
+ readonly processedRows: Schema.Finite;
2411
+ readonly totalRows: Schema.Finite;
2412
+ readonly createdAt: Schema.String;
2413
+ readonly startedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2414
+ readonly updatedAt: Schema.String;
2415
+ readonly completedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2416
+ readonly failure: Schema.Union<readonly [Schema.Struct<{
2417
+ readonly code: Schema.String;
2418
+ readonly message: Schema.String;
2419
+ readonly retryable: Schema.Boolean;
2420
+ }>, Schema.Null]>;
2421
+ readonly resumable: Schema.Boolean;
2422
+ }>;
2423
+ export type ContactsStartImport401 = UnauthorizedError;
2424
+ export declare const ContactsStartImport401: typeof UnauthorizedError;
2425
+ export type ContactsStartImport402 = PaymentRequiredError;
2426
+ export declare const ContactsStartImport402: typeof PaymentRequiredError;
2427
+ export type ContactsStartImport403 = ForbiddenError | FlagDisabledError;
2428
+ export declare const ContactsStartImport403: Schema.Union<readonly [typeof ForbiddenError, typeof FlagDisabledError]>;
2429
+ export type ContactsStartImport404 = ResourceNotFoundError;
2430
+ export declare const ContactsStartImport404: typeof ResourceNotFoundError;
2431
+ export type ContactsStartImport409 = ConflictError;
2432
+ export declare const ContactsStartImport409: typeof ConflictError;
2433
+ export type ContactsStartImport422 = ValidationError;
2434
+ export declare const ContactsStartImport422: typeof ValidationError;
2435
+ export type ContactsStartImport500 = InternalError;
2436
+ export declare const ContactsStartImport500: typeof InternalError;
2437
+ export type ContactsStartImport502 = BillingProviderError;
2438
+ export declare const ContactsStartImport502: typeof BillingProviderError;
2439
+ export type ContactsStartImport504 = GatewayTimeoutError;
2440
+ export declare const ContactsStartImport504: typeof GatewayTimeoutError;
2441
+ export type ContactsGetImportJobPathParams = {
2442
+ readonly id: ContactImportJobId;
2443
+ };
2444
+ export declare const ContactsGetImportJobPathParams: Schema.Struct<{
2445
+ readonly id: Schema.brand<Schema.String, "ContactImportJobId">;
2446
+ }>;
2447
+ export type ContactsGetImportJob200 = {
2448
+ readonly id: ContactImportJobId;
2449
+ readonly namespaceId: NamespaceId | null;
2450
+ readonly topicId: TopicId;
2451
+ readonly preset: "beehiiv" | "substack" | "kit" | "mailchimp";
2452
+ readonly status: "queued" | "running" | "finalizing" | "completed" | "failed";
2453
+ readonly generation: number;
2454
+ readonly counts: {
2455
+ readonly totalRows: number;
2456
+ readonly uniqueAddresses: number;
2457
+ readonly subscribed: number;
2458
+ readonly unsubscribed: number;
2459
+ readonly suppressed: number;
2460
+ readonly skipped: number;
2461
+ readonly conflicts: number;
2462
+ readonly created: number;
2463
+ readonly existing: number;
2464
+ };
2465
+ readonly processedRows: number;
2466
+ readonly totalRows: number;
2467
+ readonly createdAt: string;
2468
+ readonly startedAt: string | null;
2469
+ readonly updatedAt: string;
2470
+ readonly completedAt: string | null;
2471
+ readonly failure: {
2472
+ readonly code: string;
2473
+ readonly message: string;
2474
+ readonly retryable: boolean;
2475
+ } | null;
2476
+ readonly resumable: boolean;
2477
+ };
2478
+ export declare const ContactsGetImportJob200: Schema.Struct<{
2479
+ readonly id: Schema.brand<Schema.String, "ContactImportJobId">;
2480
+ readonly namespaceId: Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>;
2481
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2482
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2483
+ readonly status: Schema.Union<readonly [Schema.Literal<"queued">, Schema.Literal<"running">, Schema.Literal<"finalizing">, Schema.Literal<"completed">, Schema.Literal<"failed">]>;
2484
+ readonly generation: Schema.Finite;
2485
+ readonly counts: Schema.Struct<{
2486
+ readonly totalRows: Schema.Finite;
2487
+ readonly uniqueAddresses: Schema.Finite;
2488
+ readonly subscribed: Schema.Finite;
2489
+ readonly unsubscribed: Schema.Finite;
2490
+ readonly suppressed: Schema.Finite;
2491
+ readonly skipped: Schema.Finite;
2492
+ readonly conflicts: Schema.Finite;
2493
+ readonly created: Schema.Finite;
2494
+ readonly existing: Schema.Finite;
2495
+ }>;
2496
+ readonly processedRows: Schema.Finite;
2497
+ readonly totalRows: Schema.Finite;
2498
+ readonly createdAt: Schema.String;
2499
+ readonly startedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2500
+ readonly updatedAt: Schema.String;
2501
+ readonly completedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2502
+ readonly failure: Schema.Union<readonly [Schema.Struct<{
2503
+ readonly code: Schema.String;
2504
+ readonly message: Schema.String;
2505
+ readonly retryable: Schema.Boolean;
2506
+ }>, Schema.Null]>;
2507
+ readonly resumable: Schema.Boolean;
2508
+ }>;
2509
+ export type ContactsGetImportJob401 = UnauthorizedError;
2510
+ export declare const ContactsGetImportJob401: typeof UnauthorizedError;
2511
+ export type ContactsGetImportJob403 = ForbiddenError;
2512
+ export declare const ContactsGetImportJob403: typeof ForbiddenError;
2513
+ export type ContactsGetImportJob404 = ResourceNotFoundError;
2514
+ export declare const ContactsGetImportJob404: typeof ResourceNotFoundError;
2515
+ export type ContactsGetImportJob422 = ValidationError;
2516
+ export declare const ContactsGetImportJob422: typeof ValidationError;
2517
+ export type ContactsGetImportJob500 = InternalError;
2518
+ export declare const ContactsGetImportJob500: typeof InternalError;
2519
+ export type ContactsGetImportJob504 = GatewayTimeoutError;
2520
+ export declare const ContactsGetImportJob504: typeof GatewayTimeoutError;
2521
+ export type ContactsPlanImportRequestJson = {
2522
+ readonly preset: "beehiiv" | "substack" | "kit" | "mailchimp";
2523
+ readonly topicId: TopicId;
2524
+ readonly namespaceId?: NamespaceId | null;
2525
+ readonly files: readonly [
2526
+ {
2527
+ readonly name: string;
2528
+ readonly csv: string;
2529
+ readonly evidence: {
2530
+ readonly kind: "status_column";
2531
+ } | {
2532
+ readonly kind: "export_scope";
2533
+ readonly scope: "subscribed" | "unsubscribed" | "suppressed" | "cleaned/bounced";
2534
+ };
2535
+ readonly suppressionFree?: boolean | null;
2536
+ },
2537
+ ...Array<{
2538
+ readonly name: string;
2539
+ readonly csv: string;
2540
+ readonly evidence: {
2541
+ readonly kind: "status_column";
2542
+ } | {
2543
+ readonly kind: "export_scope";
2544
+ readonly scope: "subscribed" | "unsubscribed" | "suppressed" | "cleaned/bounced";
2545
+ };
2546
+ readonly suppressionFree?: boolean | null;
2547
+ }>
2548
+ ];
2549
+ };
2550
+ export declare const ContactsPlanImportRequestJson: Schema.Struct<{
2551
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2552
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2553
+ readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
2554
+ readonly files: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.Struct<{
2555
+ readonly name: Schema.String;
2556
+ readonly csv: Schema.String;
2557
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
2558
+ readonly kind: Schema.Literal<"status_column">;
2559
+ }>, Schema.Struct<{
2560
+ readonly kind: Schema.Literal<"export_scope">;
2561
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2562
+ }>]>;
2563
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2564
+ }>]>, readonly [Schema.Struct<{
2565
+ readonly name: Schema.String;
2566
+ readonly csv: Schema.String;
2567
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
2568
+ readonly kind: Schema.Literal<"status_column">;
2569
+ }>, Schema.Struct<{
2570
+ readonly kind: Schema.Literal<"export_scope">;
2571
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2572
+ }>]>;
2573
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2574
+ }>]>;
2575
+ }>;
2576
+ export type ContactsPlanImport200 = {
2577
+ readonly planHash: string;
2578
+ readonly presetVersion: string;
2579
+ readonly namespaceId: NamespaceId | null;
2580
+ readonly topicId: TopicId;
2581
+ readonly canStart: boolean;
2582
+ readonly counts: {
2583
+ readonly totalRows: number;
2584
+ readonly uniqueAddresses: number;
2585
+ readonly subscribed: number;
2586
+ readonly unsubscribed: number;
2587
+ readonly suppressed: number;
2588
+ readonly skipped: number;
2589
+ readonly conflicts: number;
2590
+ readonly created: number;
2591
+ readonly existing: number;
2592
+ };
2593
+ readonly diagnostics: ReadonlyArray<{
2594
+ readonly file: string;
2595
+ readonly row: number;
2596
+ readonly code: string;
2597
+ readonly message: string;
2598
+ readonly email?: string | null;
2599
+ }>;
2600
+ readonly diagnosticsTruncated: boolean;
2601
+ };
2602
+ export declare const ContactsPlanImport200: Schema.Struct<{
2603
+ readonly planHash: Schema.String;
2604
+ readonly presetVersion: Schema.String;
2605
+ readonly namespaceId: Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>;
2606
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2607
+ readonly canStart: Schema.Boolean;
2608
+ readonly counts: Schema.Struct<{
2609
+ readonly totalRows: Schema.Finite;
2610
+ readonly uniqueAddresses: Schema.Finite;
2611
+ readonly subscribed: Schema.Finite;
2612
+ readonly unsubscribed: Schema.Finite;
2613
+ readonly suppressed: Schema.Finite;
2614
+ readonly skipped: Schema.Finite;
2615
+ readonly conflicts: Schema.Finite;
2616
+ readonly created: Schema.Finite;
2617
+ readonly existing: Schema.Finite;
2618
+ }>;
2619
+ readonly diagnostics: Schema.$Array<Schema.Struct<{
2620
+ readonly file: Schema.String;
2621
+ readonly row: Schema.Finite;
2622
+ readonly code: Schema.String;
2623
+ readonly message: Schema.String;
2624
+ readonly email: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2625
+ }>>;
2626
+ readonly diagnosticsTruncated: Schema.Boolean;
2627
+ }>;
2628
+ export type ContactsPlanImport401 = UnauthorizedError;
2629
+ export declare const ContactsPlanImport401: typeof UnauthorizedError;
2630
+ export type ContactsPlanImport403 = ForbiddenError | FlagDisabledError;
2631
+ export declare const ContactsPlanImport403: Schema.Union<readonly [typeof ForbiddenError, typeof FlagDisabledError]>;
2632
+ export type ContactsPlanImport404 = ResourceNotFoundError;
2633
+ export declare const ContactsPlanImport404: typeof ResourceNotFoundError;
2634
+ export type ContactsPlanImport422 = ValidationError;
2635
+ export declare const ContactsPlanImport422: typeof ValidationError;
2636
+ export type ContactsPlanImport500 = InternalError;
2637
+ export declare const ContactsPlanImport500: typeof InternalError;
2638
+ export type ContactsPlanImport504 = GatewayTimeoutError;
2639
+ export declare const ContactsPlanImport504: typeof GatewayTimeoutError;
1693
2640
  declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiEndpoint.HttpApiEndpoint<"contactsAddIdentity", "POST", "/v1/contacts/:id/identities", Schema.toCodecStringTree<Schema.Struct<{
1694
2641
  readonly id: Schema.brand<Schema.String, "ContactId">;
1695
2642
  }>>, never, Schema.toCodecJson<Schema.Struct<{
@@ -1749,6 +2696,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
1749
2696
  }>, Schema.Null]>;
1750
2697
  readonly tags: Schema.$Array<Schema.String>;
1751
2698
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2699
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
2700
+ readonly first: Schema.Struct<{
2701
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2702
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2703
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2704
+ readonly importedAt: Schema.String;
2705
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2706
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2707
+ readonly value: Schema.String;
2708
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2709
+ }>, Schema.Null]>;
2710
+ readonly sources: Schema.$Array<Schema.String>;
2711
+ readonly omittedSources: Schema.Finite;
2712
+ }>, Schema.Null]>>;
2713
+ readonly evidence: Schema.$Array<Schema.Struct<{
2714
+ readonly file: Schema.String;
2715
+ readonly row: Schema.Finite;
2716
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2717
+ readonly kind: Schema.Literal<"status_column">;
2718
+ }>, Schema.Struct<{
2719
+ readonly kind: Schema.Literal<"export_scope">;
2720
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2721
+ }>]>;
2722
+ readonly suppressionFree: Schema.Boolean;
2723
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2724
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2725
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2726
+ }>>;
2727
+ }>;
2728
+ readonly latest: Schema.Struct<{
2729
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2730
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2731
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2732
+ readonly importedAt: Schema.String;
2733
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2734
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2735
+ readonly value: Schema.String;
2736
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2737
+ }>, Schema.Null]>;
2738
+ readonly sources: Schema.$Array<Schema.String>;
2739
+ readonly omittedSources: Schema.Finite;
2740
+ }>, Schema.Null]>>;
2741
+ readonly evidence: Schema.$Array<Schema.Struct<{
2742
+ readonly file: Schema.String;
2743
+ readonly row: Schema.Finite;
2744
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2745
+ readonly kind: Schema.Literal<"status_column">;
2746
+ }>, Schema.Struct<{
2747
+ readonly kind: Schema.Literal<"export_scope">;
2748
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2749
+ }>]>;
2750
+ readonly suppressionFree: Schema.Boolean;
2751
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2752
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2753
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2754
+ }>>;
2755
+ }>;
2756
+ }>, Schema.Null]>;
1752
2757
  readonly createdAt: Schema.String;
1753
2758
  readonly updatedAt: Schema.String;
1754
2759
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ConflictError, {
@@ -1908,6 +2913,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
1908
2913
  }>, Schema.Null]>;
1909
2914
  readonly tags: Schema.$Array<Schema.String>;
1910
2915
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
2916
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
2917
+ readonly first: Schema.Struct<{
2918
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2919
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2920
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2921
+ readonly importedAt: Schema.String;
2922
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2923
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2924
+ readonly value: Schema.String;
2925
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2926
+ }>, Schema.Null]>;
2927
+ readonly sources: Schema.$Array<Schema.String>;
2928
+ readonly omittedSources: Schema.Finite;
2929
+ }>, Schema.Null]>>;
2930
+ readonly evidence: Schema.$Array<Schema.Struct<{
2931
+ readonly file: Schema.String;
2932
+ readonly row: Schema.Finite;
2933
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2934
+ readonly kind: Schema.Literal<"status_column">;
2935
+ }>, Schema.Struct<{
2936
+ readonly kind: Schema.Literal<"export_scope">;
2937
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2938
+ }>]>;
2939
+ readonly suppressionFree: Schema.Boolean;
2940
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2941
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2942
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2943
+ }>>;
2944
+ }>;
2945
+ readonly latest: Schema.Struct<{
2946
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
2947
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
2948
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
2949
+ readonly importedAt: Schema.String;
2950
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2951
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
2952
+ readonly value: Schema.String;
2953
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
2954
+ }>, Schema.Null]>;
2955
+ readonly sources: Schema.$Array<Schema.String>;
2956
+ readonly omittedSources: Schema.Finite;
2957
+ }>, Schema.Null]>>;
2958
+ readonly evidence: Schema.$Array<Schema.Struct<{
2959
+ readonly file: Schema.String;
2960
+ readonly row: Schema.Finite;
2961
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
2962
+ readonly kind: Schema.Literal<"status_column">;
2963
+ }>, Schema.Struct<{
2964
+ readonly kind: Schema.Literal<"export_scope">;
2965
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
2966
+ }>]>;
2967
+ readonly suppressionFree: Schema.Boolean;
2968
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
2969
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
2970
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
2971
+ }>>;
2972
+ }>;
2973
+ }>, Schema.Null]>;
1911
2974
  readonly createdAt: Schema.String;
1912
2975
  readonly updatedAt: Schema.String;
1913
2976
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
@@ -2067,184 +3130,12 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2067
3130
  readonly _tag: Schema.tag<"ValidationError">;
2068
3131
  readonly message: Schema.String;
2069
3132
  readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
2070
- }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsBulkImport", "POST", "/v1/contacts/bulk-import", never, never, Schema.toCodecJson<Schema.Struct<{
2071
- readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
2072
- readonly contacts: Schema.$Array<Schema.Struct<{
2073
- readonly name: Schema.String;
2074
- readonly displayName: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2075
- readonly avatar: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2076
- readonly identities: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Struct<{
2077
- readonly type: Schema.Union<readonly [Schema.Literal<"email">, Schema.Literal<"phone">]>;
2078
- readonly identifier: Schema.String;
2079
- readonly verified: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2080
- }>>, Schema.Null]>>;
2081
- readonly profile: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
2082
- readonly firstName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2083
- readonly lastName: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2084
- readonly company: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2085
- readonly jobTitle: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2086
- readonly location: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2087
- readonly country: Schema.String;
2088
- readonly state: Schema.String;
2089
- readonly city: Schema.String;
2090
- readonly timezone: Schema.String;
2091
- }>, Schema.Null]>>;
2092
- readonly customFields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.Finite, Schema.Boolean, Schema.Null]>>, Schema.Null]>>;
2093
- readonly source: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"api">, Schema.Literal<"import">, Schema.Literal<"manual">, Schema.Literal<"form">]>, Schema.Null]>>;
2094
- }>, Schema.Null]>, Schema.Null]>>;
2095
- readonly preferences: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Struct<{
2096
- readonly preferredChannels: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.Literal<"email">>, Schema.Null]>>;
2097
- readonly language: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2098
- readonly timezone: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2099
- readonly notifications: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2100
- readonly email: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
2101
- readonly quiet_hours: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
2102
- readonly start: Schema.String;
2103
- readonly end: Schema.String;
2104
- }>, Schema.Null]>>;
2105
- }>, Schema.Null]>>;
2106
- }>, Schema.Null]>, Schema.Null]>>;
2107
- readonly tags: Schema.optionalKey<Schema.Union<readonly [Schema.$Array<Schema.String>, Schema.Null]>>;
2108
- readonly status: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>, Schema.Null]>>;
2109
- readonly statusReason: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2110
- readonly externalId: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.String, Schema.Null]>, Schema.Null]>>;
2111
- readonly metadata: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>, Schema.Null]>>;
2112
- }>>;
2113
- readonly onConflict: Schema.optionalKey<Schema.Union<readonly [Schema.Union<readonly [Schema.Literal<"skip">, Schema.Literal<"update">]>, Schema.Null]>>;
3133
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsBulkUpdateStatus", "POST", "/v1/contacts/bulk-update-status", never, never, Schema.toCodecJson<Schema.Struct<{
3134
+ readonly ids: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.brand<Schema.String, "ContactId">]>, readonly [Schema.brand<Schema.String, "ContactId">]>;
3135
+ readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>;
2114
3136
  }>>, never, Schema.toCodecJson<Schema.Struct<{
2115
- readonly total: Schema.Finite;
2116
- readonly created: Schema.Finite;
2117
3137
  readonly updated: Schema.Finite;
2118
- readonly skipped: Schema.Finite;
2119
- readonly errors: Schema.Finite;
2120
- readonly results: Schema.$Array<Schema.Struct<{
2121
- readonly index: Schema.Finite;
2122
- readonly status: Schema.Union<readonly [Schema.Literal<"created">, Schema.Literal<"updated">, Schema.Literal<"skipped">, Schema.Literal<"error">]>;
2123
- readonly contactId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "ContactId">, Schema.Null]>>;
2124
- readonly error: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
2125
- }>>;
2126
- }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<BillingProviderError, {
2127
- readonly _tag: "BillingProviderError";
2128
- readonly message: string;
2129
- }, readonly [Schema.Struct<{
2130
- readonly _tag: Schema.tag<"BillingProviderError">;
2131
- readonly message: Schema.String;
2132
- }>], {
2133
- readonly _tag: "BillingProviderError";
2134
- readonly message: string;
2135
- }>, Schema.Struct<{
2136
- readonly _tag: Schema.tag<"BillingProviderError">;
2137
- readonly message: Schema.String;
2138
- }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
2139
- readonly _tag: "ForbiddenError";
2140
- readonly message: string;
2141
- }, readonly [Schema.Struct<{
2142
- readonly _tag: Schema.tag<"ForbiddenError">;
2143
- readonly message: Schema.String;
2144
- }>], {
2145
- readonly _tag: "ForbiddenError";
2146
- readonly message: string;
2147
- }>, Schema.Struct<{
2148
- readonly _tag: Schema.tag<"ForbiddenError">;
2149
- readonly message: Schema.String;
2150
- }>, never, never> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
2151
- readonly _tag: "GatewayTimeoutError";
2152
- readonly message: string;
2153
- readonly retryAfterSeconds: number;
2154
- }, readonly [Schema.Struct<{
2155
- readonly _tag: Schema.tag<"GatewayTimeoutError">;
2156
- readonly message: Schema.String;
2157
- readonly retryAfterSeconds: Schema.Finite;
2158
- }>], {
2159
- readonly _tag: "GatewayTimeoutError";
2160
- readonly message: string;
2161
- readonly retryAfterSeconds: number;
2162
- }>, Schema.Struct<{
2163
- readonly _tag: Schema.tag<"GatewayTimeoutError">;
2164
- readonly message: Schema.String;
2165
- readonly retryAfterSeconds: Schema.Finite;
2166
- }>, never, never> | Schema.decodeTo<Schema.declareConstructor<PaymentRequiredError, {
2167
- readonly _tag: "PaymentRequiredError";
2168
- readonly message: string;
2169
- readonly resource: string;
2170
- readonly currentUsage: number;
2171
- readonly limit: number;
2172
- }, readonly [Schema.Struct<{
2173
- readonly _tag: Schema.tag<"PaymentRequiredError">;
2174
- readonly message: Schema.String;
2175
- readonly resource: Schema.String;
2176
- readonly currentUsage: Schema.Finite;
2177
- readonly limit: Schema.Finite;
2178
- }>], {
2179
- readonly _tag: "PaymentRequiredError";
2180
- readonly message: string;
2181
- readonly resource: string;
2182
- readonly currentUsage: number;
2183
- readonly limit: number;
2184
- }>, Schema.Struct<{
2185
- readonly _tag: Schema.tag<"PaymentRequiredError">;
2186
- readonly message: Schema.String;
2187
- readonly resource: Schema.String;
2188
- readonly currentUsage: Schema.Finite;
2189
- readonly limit: Schema.Finite;
2190
- }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
2191
- readonly _tag: "ResourceNotFoundError";
2192
- readonly resource: string;
2193
- readonly id: string;
2194
- readonly message: string;
2195
- }, readonly [Schema.Struct<{
2196
- readonly _tag: Schema.tag<"ResourceNotFoundError">;
2197
- readonly resource: Schema.String;
2198
- readonly id: Schema.String;
2199
- readonly message: Schema.String;
2200
- }>], {
2201
- readonly _tag: "ResourceNotFoundError";
2202
- readonly resource: string;
2203
- readonly id: string;
2204
- readonly message: string;
2205
- }>, Schema.Struct<{
2206
- readonly _tag: Schema.tag<"ResourceNotFoundError">;
2207
- readonly resource: Schema.String;
2208
- readonly id: Schema.String;
2209
- readonly message: Schema.String;
2210
- }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
2211
- readonly _tag: "UnauthorizedError";
2212
- readonly message: string;
2213
- }, readonly [Schema.Struct<{
2214
- readonly _tag: Schema.tag<"UnauthorizedError">;
2215
- readonly message: Schema.String;
2216
- }>], {
2217
- readonly _tag: "UnauthorizedError";
2218
- readonly message: string;
2219
- }>, Schema.Struct<{
2220
- readonly _tag: Schema.tag<"UnauthorizedError">;
2221
- readonly message: Schema.String;
2222
- }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
2223
- readonly _tag: "ValidationError";
2224
- readonly message: string;
2225
- readonly fields?: {
2226
- readonly [x: string]: readonly string[];
2227
- } | null;
2228
- }, readonly [Schema.Struct<{
2229
- readonly _tag: Schema.tag<"ValidationError">;
2230
- readonly message: Schema.String;
2231
- readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
2232
- }>], {
2233
- readonly _tag: "ValidationError";
2234
- readonly message: string;
2235
- readonly fields?: {
2236
- readonly [x: string]: readonly string[];
2237
- } | null;
2238
- }>, Schema.Struct<{
2239
- readonly _tag: Schema.tag<"ValidationError">;
2240
- readonly message: Schema.String;
2241
- readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
2242
- }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsBulkUpdateStatus", "POST", "/v1/contacts/bulk-update-status", never, never, Schema.toCodecJson<Schema.Struct<{
2243
- readonly ids: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.brand<Schema.String, "ContactId">]>, readonly [Schema.brand<Schema.String, "ContactId">]>;
2244
- readonly status: Schema.Union<readonly [Schema.Literal<"active">, Schema.Literal<"paused">, Schema.Literal<"blocked">, Schema.Literal<"archived">]>;
2245
- }>>, never, Schema.toCodecJson<Schema.Struct<{
2246
- readonly updated: Schema.Finite;
2247
- readonly failed: Schema.Finite;
3138
+ readonly failed: Schema.Finite;
2248
3139
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<BillingProviderError, {
2249
3140
  readonly _tag: "BillingProviderError";
2250
3141
  readonly message: string;
@@ -2502,6 +3393,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2502
3393
  }>, Schema.Null]>;
2503
3394
  readonly tags: Schema.$Array<Schema.String>;
2504
3395
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3396
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
3397
+ readonly first: Schema.Struct<{
3398
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
3399
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
3400
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
3401
+ readonly importedAt: Schema.String;
3402
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3403
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
3404
+ readonly value: Schema.String;
3405
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
3406
+ }>, Schema.Null]>;
3407
+ readonly sources: Schema.$Array<Schema.String>;
3408
+ readonly omittedSources: Schema.Finite;
3409
+ }>, Schema.Null]>>;
3410
+ readonly evidence: Schema.$Array<Schema.Struct<{
3411
+ readonly file: Schema.String;
3412
+ readonly row: Schema.Finite;
3413
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
3414
+ readonly kind: Schema.Literal<"status_column">;
3415
+ }>, Schema.Struct<{
3416
+ readonly kind: Schema.Literal<"export_scope">;
3417
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
3418
+ }>]>;
3419
+ readonly suppressionFree: Schema.Boolean;
3420
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
3421
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
3422
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
3423
+ }>>;
3424
+ }>;
3425
+ readonly latest: Schema.Struct<{
3426
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
3427
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
3428
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
3429
+ readonly importedAt: Schema.String;
3430
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3431
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
3432
+ readonly value: Schema.String;
3433
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
3434
+ }>, Schema.Null]>;
3435
+ readonly sources: Schema.$Array<Schema.String>;
3436
+ readonly omittedSources: Schema.Finite;
3437
+ }>, Schema.Null]>>;
3438
+ readonly evidence: Schema.$Array<Schema.Struct<{
3439
+ readonly file: Schema.String;
3440
+ readonly row: Schema.Finite;
3441
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
3442
+ readonly kind: Schema.Literal<"status_column">;
3443
+ }>, Schema.Struct<{
3444
+ readonly kind: Schema.Literal<"export_scope">;
3445
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
3446
+ }>]>;
3447
+ readonly suppressionFree: Schema.Boolean;
3448
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
3449
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
3450
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
3451
+ }>>;
3452
+ }>;
3453
+ }>, Schema.Null]>;
2505
3454
  readonly createdAt: Schema.String;
2506
3455
  readonly updatedAt: Schema.String;
2507
3456
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<BillingProviderError, {
@@ -2770,6 +3719,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2770
3719
  }>, Schema.Null]>;
2771
3720
  readonly tags: Schema.$Array<Schema.String>;
2772
3721
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3722
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
3723
+ readonly first: Schema.Struct<{
3724
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
3725
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
3726
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
3727
+ readonly importedAt: Schema.String;
3728
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3729
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
3730
+ readonly value: Schema.String;
3731
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
3732
+ }>, Schema.Null]>;
3733
+ readonly sources: Schema.$Array<Schema.String>;
3734
+ readonly omittedSources: Schema.Finite;
3735
+ }>, Schema.Null]>>;
3736
+ readonly evidence: Schema.$Array<Schema.Struct<{
3737
+ readonly file: Schema.String;
3738
+ readonly row: Schema.Finite;
3739
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
3740
+ readonly kind: Schema.Literal<"status_column">;
3741
+ }>, Schema.Struct<{
3742
+ readonly kind: Schema.Literal<"export_scope">;
3743
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
3744
+ }>]>;
3745
+ readonly suppressionFree: Schema.Boolean;
3746
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
3747
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
3748
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
3749
+ }>>;
3750
+ }>;
3751
+ readonly latest: Schema.Struct<{
3752
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
3753
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
3754
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
3755
+ readonly importedAt: Schema.String;
3756
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3757
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
3758
+ readonly value: Schema.String;
3759
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
3760
+ }>, Schema.Null]>;
3761
+ readonly sources: Schema.$Array<Schema.String>;
3762
+ readonly omittedSources: Schema.Finite;
3763
+ }>, Schema.Null]>>;
3764
+ readonly evidence: Schema.$Array<Schema.Struct<{
3765
+ readonly file: Schema.String;
3766
+ readonly row: Schema.Finite;
3767
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
3768
+ readonly kind: Schema.Literal<"status_column">;
3769
+ }>, Schema.Struct<{
3770
+ readonly kind: Schema.Literal<"export_scope">;
3771
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
3772
+ }>]>;
3773
+ readonly suppressionFree: Schema.Boolean;
3774
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
3775
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
3776
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
3777
+ }>>;
3778
+ }>;
3779
+ }>, Schema.Null]>;
2773
3780
  readonly createdAt: Schema.String;
2774
3781
  readonly updatedAt: Schema.String;
2775
3782
  }>, Schema.Null]>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ConflictError, {
@@ -2963,6 +3970,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
2963
3970
  }>, Schema.Null]>;
2964
3971
  readonly tags: Schema.$Array<Schema.String>;
2965
3972
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
3973
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
3974
+ readonly first: Schema.Struct<{
3975
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
3976
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
3977
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
3978
+ readonly importedAt: Schema.String;
3979
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
3980
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
3981
+ readonly value: Schema.String;
3982
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
3983
+ }>, Schema.Null]>;
3984
+ readonly sources: Schema.$Array<Schema.String>;
3985
+ readonly omittedSources: Schema.Finite;
3986
+ }>, Schema.Null]>>;
3987
+ readonly evidence: Schema.$Array<Schema.Struct<{
3988
+ readonly file: Schema.String;
3989
+ readonly row: Schema.Finite;
3990
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
3991
+ readonly kind: Schema.Literal<"status_column">;
3992
+ }>, Schema.Struct<{
3993
+ readonly kind: Schema.Literal<"export_scope">;
3994
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
3995
+ }>]>;
3996
+ readonly suppressionFree: Schema.Boolean;
3997
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
3998
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
3999
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
4000
+ }>>;
4001
+ }>;
4002
+ readonly latest: Schema.Struct<{
4003
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
4004
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
4005
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
4006
+ readonly importedAt: Schema.String;
4007
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
4008
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
4009
+ readonly value: Schema.String;
4010
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
4011
+ }>, Schema.Null]>;
4012
+ readonly sources: Schema.$Array<Schema.String>;
4013
+ readonly omittedSources: Schema.Finite;
4014
+ }>, Schema.Null]>>;
4015
+ readonly evidence: Schema.$Array<Schema.Struct<{
4016
+ readonly file: Schema.String;
4017
+ readonly row: Schema.Finite;
4018
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
4019
+ readonly kind: Schema.Literal<"status_column">;
4020
+ }>, Schema.Struct<{
4021
+ readonly kind: Schema.Literal<"export_scope">;
4022
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
4023
+ }>]>;
4024
+ readonly suppressionFree: Schema.Boolean;
4025
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
4026
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
4027
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
4028
+ }>>;
4029
+ }>;
4030
+ }>, Schema.Null]>;
2966
4031
  readonly createdAt: Schema.String;
2967
4032
  readonly updatedAt: Schema.String;
2968
4033
  }>;
@@ -3158,6 +4223,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3158
4223
  }>, Schema.Null]>;
3159
4224
  readonly tags: Schema.$Array<Schema.String>;
3160
4225
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
4226
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
4227
+ readonly first: Schema.Struct<{
4228
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
4229
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
4230
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
4231
+ readonly importedAt: Schema.String;
4232
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
4233
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
4234
+ readonly value: Schema.String;
4235
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
4236
+ }>, Schema.Null]>;
4237
+ readonly sources: Schema.$Array<Schema.String>;
4238
+ readonly omittedSources: Schema.Finite;
4239
+ }>, Schema.Null]>>;
4240
+ readonly evidence: Schema.$Array<Schema.Struct<{
4241
+ readonly file: Schema.String;
4242
+ readonly row: Schema.Finite;
4243
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
4244
+ readonly kind: Schema.Literal<"status_column">;
4245
+ }>, Schema.Struct<{
4246
+ readonly kind: Schema.Literal<"export_scope">;
4247
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
4248
+ }>]>;
4249
+ readonly suppressionFree: Schema.Boolean;
4250
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
4251
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
4252
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
4253
+ }>>;
4254
+ }>;
4255
+ readonly latest: Schema.Struct<{
4256
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
4257
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
4258
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
4259
+ readonly importedAt: Schema.String;
4260
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
4261
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
4262
+ readonly value: Schema.String;
4263
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
4264
+ }>, Schema.Null]>;
4265
+ readonly sources: Schema.$Array<Schema.String>;
4266
+ readonly omittedSources: Schema.Finite;
4267
+ }>, Schema.Null]>>;
4268
+ readonly evidence: Schema.$Array<Schema.Struct<{
4269
+ readonly file: Schema.String;
4270
+ readonly row: Schema.Finite;
4271
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
4272
+ readonly kind: Schema.Literal<"status_column">;
4273
+ }>, Schema.Struct<{
4274
+ readonly kind: Schema.Literal<"export_scope">;
4275
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
4276
+ }>]>;
4277
+ readonly suppressionFree: Schema.Boolean;
4278
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
4279
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
4280
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
4281
+ }>>;
4282
+ }>;
4283
+ }>, Schema.Null]>;
3161
4284
  readonly createdAt: Schema.String;
3162
4285
  readonly updatedAt: Schema.String;
3163
4286
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
@@ -3243,7 +4366,7 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3243
4366
  }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsGetActivityTimeline", "GET", "/v1/contacts/:id/activity", Schema.toCodecStringTree<Schema.Struct<{
3244
4367
  readonly id: Schema.brand<Schema.String, "ContactId">;
3245
4368
  }>>, Schema.toCodecStringTree<Schema.Struct<{
3246
- readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
4369
+ readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.Finite, Schema.Null]>>;
3247
4370
  readonly cursor: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3248
4371
  readonly channel: Schema.optionalKey<Schema.Union<readonly [Schema.Literal<"email">, Schema.Null]>>;
3249
4372
  }>>, never, never, Schema.toCodecJson<Schema.Struct<{
@@ -3430,7 +4553,7 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3430
4553
  }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsGetGroupMemberships", "GET", "/v1/contacts/:id/groups", Schema.toCodecStringTree<Schema.Struct<{
3431
4554
  readonly id: Schema.brand<Schema.String, "ContactId">;
3432
4555
  }>>, Schema.toCodecStringTree<Schema.Struct<{
3433
- readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
4556
+ readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.Finite, Schema.Null]>>;
3434
4557
  readonly cursor: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3435
4558
  }>>, never, never, Schema.toCodecJson<Schema.Struct<{
3436
4559
  readonly items: Schema.$Array<Schema.Struct<{
@@ -3522,8 +4645,120 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3522
4645
  readonly _tag: Schema.tag<"ValidationError">;
3523
4646
  readonly message: Schema.String;
3524
4647
  readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
4648
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsGetImportJob", "GET", "/v1/contacts/imports/:id", Schema.toCodecStringTree<Schema.Struct<{
4649
+ readonly id: Schema.brand<Schema.String, "ContactImportJobId">;
4650
+ }>>, never, never, never, Schema.toCodecJson<Schema.Struct<{
4651
+ readonly id: Schema.brand<Schema.String, "ContactImportJobId">;
4652
+ readonly namespaceId: Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>;
4653
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
4654
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
4655
+ readonly status: Schema.Union<readonly [Schema.Literal<"queued">, Schema.Literal<"running">, Schema.Literal<"finalizing">, Schema.Literal<"completed">, Schema.Literal<"failed">]>;
4656
+ readonly generation: Schema.Finite;
4657
+ readonly counts: Schema.Struct<{
4658
+ readonly totalRows: Schema.Finite;
4659
+ readonly uniqueAddresses: Schema.Finite;
4660
+ readonly subscribed: Schema.Finite;
4661
+ readonly unsubscribed: Schema.Finite;
4662
+ readonly suppressed: Schema.Finite;
4663
+ readonly skipped: Schema.Finite;
4664
+ readonly conflicts: Schema.Finite;
4665
+ readonly created: Schema.Finite;
4666
+ readonly existing: Schema.Finite;
4667
+ }>;
4668
+ readonly processedRows: Schema.Finite;
4669
+ readonly totalRows: Schema.Finite;
4670
+ readonly createdAt: Schema.String;
4671
+ readonly startedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
4672
+ readonly updatedAt: Schema.String;
4673
+ readonly completedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
4674
+ readonly failure: Schema.Union<readonly [Schema.Struct<{
4675
+ readonly code: Schema.String;
4676
+ readonly message: Schema.String;
4677
+ readonly retryable: Schema.Boolean;
4678
+ }>, Schema.Null]>;
4679
+ readonly resumable: Schema.Boolean;
4680
+ }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
4681
+ readonly _tag: "ForbiddenError";
4682
+ readonly message: string;
4683
+ }, readonly [Schema.Struct<{
4684
+ readonly _tag: Schema.tag<"ForbiddenError">;
4685
+ readonly message: Schema.String;
4686
+ }>], {
4687
+ readonly _tag: "ForbiddenError";
4688
+ readonly message: string;
4689
+ }>, Schema.Struct<{
4690
+ readonly _tag: Schema.tag<"ForbiddenError">;
4691
+ readonly message: Schema.String;
4692
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
4693
+ readonly _tag: "GatewayTimeoutError";
4694
+ readonly message: string;
4695
+ readonly retryAfterSeconds: number;
4696
+ }, readonly [Schema.Struct<{
4697
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
4698
+ readonly message: Schema.String;
4699
+ readonly retryAfterSeconds: Schema.Finite;
4700
+ }>], {
4701
+ readonly _tag: "GatewayTimeoutError";
4702
+ readonly message: string;
4703
+ readonly retryAfterSeconds: number;
4704
+ }>, Schema.Struct<{
4705
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
4706
+ readonly message: Schema.String;
4707
+ readonly retryAfterSeconds: Schema.Finite;
4708
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
4709
+ readonly _tag: "ResourceNotFoundError";
4710
+ readonly resource: string;
4711
+ readonly id: string;
4712
+ readonly message: string;
4713
+ }, readonly [Schema.Struct<{
4714
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
4715
+ readonly resource: Schema.String;
4716
+ readonly id: Schema.String;
4717
+ readonly message: Schema.String;
4718
+ }>], {
4719
+ readonly _tag: "ResourceNotFoundError";
4720
+ readonly resource: string;
4721
+ readonly id: string;
4722
+ readonly message: string;
4723
+ }>, Schema.Struct<{
4724
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
4725
+ readonly resource: Schema.String;
4726
+ readonly id: Schema.String;
4727
+ readonly message: Schema.String;
4728
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
4729
+ readonly _tag: "UnauthorizedError";
4730
+ readonly message: string;
4731
+ }, readonly [Schema.Struct<{
4732
+ readonly _tag: Schema.tag<"UnauthorizedError">;
4733
+ readonly message: Schema.String;
4734
+ }>], {
4735
+ readonly _tag: "UnauthorizedError";
4736
+ readonly message: string;
4737
+ }>, Schema.Struct<{
4738
+ readonly _tag: Schema.tag<"UnauthorizedError">;
4739
+ readonly message: Schema.String;
4740
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
4741
+ readonly _tag: "ValidationError";
4742
+ readonly message: string;
4743
+ readonly fields?: {
4744
+ readonly [x: string]: readonly string[];
4745
+ } | null;
4746
+ }, readonly [Schema.Struct<{
4747
+ readonly _tag: Schema.tag<"ValidationError">;
4748
+ readonly message: Schema.String;
4749
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
4750
+ }>], {
4751
+ readonly _tag: "ValidationError";
4752
+ readonly message: string;
4753
+ readonly fields?: {
4754
+ readonly [x: string]: readonly string[];
4755
+ } | null;
4756
+ }>, Schema.Struct<{
4757
+ readonly _tag: Schema.tag<"ValidationError">;
4758
+ readonly message: Schema.String;
4759
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
3525
4760
  }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsList", "GET", "/v1/contacts", never, Schema.toCodecStringTree<Schema.Struct<{
3526
- readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
4761
+ readonly limit: Schema.optionalKey<Schema.Union<readonly [Schema.Finite, Schema.Null]>>;
3527
4762
  readonly cursor: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
3528
4763
  readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
3529
4764
  readonly search: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
@@ -3613,6 +4848,124 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3613
4848
  readonly _tag: Schema.tag<"ValidationError">;
3614
4849
  readonly message: Schema.String;
3615
4850
  readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
4851
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsPlanImport", "POST", "/v1/contacts/imports/plan", never, never, Schema.toCodecJson<Schema.Struct<{
4852
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
4853
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
4854
+ readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
4855
+ readonly files: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.Struct<{
4856
+ readonly name: Schema.String;
4857
+ readonly csv: Schema.String;
4858
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
4859
+ readonly kind: Schema.Literal<"status_column">;
4860
+ }>, Schema.Struct<{
4861
+ readonly kind: Schema.Literal<"export_scope">;
4862
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
4863
+ }>]>;
4864
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
4865
+ }>]>, readonly [Schema.Struct<{
4866
+ readonly name: Schema.String;
4867
+ readonly csv: Schema.String;
4868
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
4869
+ readonly kind: Schema.Literal<"status_column">;
4870
+ }>, Schema.Struct<{
4871
+ readonly kind: Schema.Literal<"export_scope">;
4872
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
4873
+ }>]>;
4874
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
4875
+ }>]>;
4876
+ }>>, never, Schema.toCodecJson<Schema.Struct<{
4877
+ readonly planHash: Schema.String;
4878
+ readonly presetVersion: Schema.String;
4879
+ readonly namespaceId: Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>;
4880
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
4881
+ readonly canStart: Schema.Boolean;
4882
+ readonly counts: Schema.Struct<{
4883
+ readonly totalRows: Schema.Finite;
4884
+ readonly uniqueAddresses: Schema.Finite;
4885
+ readonly subscribed: Schema.Finite;
4886
+ readonly unsubscribed: Schema.Finite;
4887
+ readonly suppressed: Schema.Finite;
4888
+ readonly skipped: Schema.Finite;
4889
+ readonly conflicts: Schema.Finite;
4890
+ readonly created: Schema.Finite;
4891
+ readonly existing: Schema.Finite;
4892
+ }>;
4893
+ readonly diagnostics: Schema.$Array<Schema.Struct<{
4894
+ readonly file: Schema.String;
4895
+ readonly row: Schema.Finite;
4896
+ readonly code: Schema.String;
4897
+ readonly message: Schema.String;
4898
+ readonly email: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
4899
+ }>>;
4900
+ readonly diagnosticsTruncated: Schema.Boolean;
4901
+ }>>, Schema.toCodecJson<Schema.Union<readonly [typeof ForbiddenError, typeof FlagDisabledError]> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
4902
+ readonly _tag: "GatewayTimeoutError";
4903
+ readonly message: string;
4904
+ readonly retryAfterSeconds: number;
4905
+ }, readonly [Schema.Struct<{
4906
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
4907
+ readonly message: Schema.String;
4908
+ readonly retryAfterSeconds: Schema.Finite;
4909
+ }>], {
4910
+ readonly _tag: "GatewayTimeoutError";
4911
+ readonly message: string;
4912
+ readonly retryAfterSeconds: number;
4913
+ }>, Schema.Struct<{
4914
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
4915
+ readonly message: Schema.String;
4916
+ readonly retryAfterSeconds: Schema.Finite;
4917
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
4918
+ readonly _tag: "ResourceNotFoundError";
4919
+ readonly resource: string;
4920
+ readonly id: string;
4921
+ readonly message: string;
4922
+ }, readonly [Schema.Struct<{
4923
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
4924
+ readonly resource: Schema.String;
4925
+ readonly id: Schema.String;
4926
+ readonly message: Schema.String;
4927
+ }>], {
4928
+ readonly _tag: "ResourceNotFoundError";
4929
+ readonly resource: string;
4930
+ readonly id: string;
4931
+ readonly message: string;
4932
+ }>, Schema.Struct<{
4933
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
4934
+ readonly resource: Schema.String;
4935
+ readonly id: Schema.String;
4936
+ readonly message: Schema.String;
4937
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
4938
+ readonly _tag: "UnauthorizedError";
4939
+ readonly message: string;
4940
+ }, readonly [Schema.Struct<{
4941
+ readonly _tag: Schema.tag<"UnauthorizedError">;
4942
+ readonly message: Schema.String;
4943
+ }>], {
4944
+ readonly _tag: "UnauthorizedError";
4945
+ readonly message: string;
4946
+ }>, Schema.Struct<{
4947
+ readonly _tag: Schema.tag<"UnauthorizedError">;
4948
+ readonly message: Schema.String;
4949
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
4950
+ readonly _tag: "ValidationError";
4951
+ readonly message: string;
4952
+ readonly fields?: {
4953
+ readonly [x: string]: readonly string[];
4954
+ } | null;
4955
+ }, readonly [Schema.Struct<{
4956
+ readonly _tag: Schema.tag<"ValidationError">;
4957
+ readonly message: Schema.String;
4958
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
4959
+ }>], {
4960
+ readonly _tag: "ValidationError";
4961
+ readonly message: string;
4962
+ readonly fields?: {
4963
+ readonly [x: string]: readonly string[];
4964
+ } | null;
4965
+ }>, Schema.Struct<{
4966
+ readonly _tag: Schema.tag<"ValidationError">;
4967
+ readonly message: Schema.String;
4968
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
3616
4969
  }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsRemove", "DELETE", "/v1/contacts/:id", Schema.toCodecStringTree<Schema.Struct<{
3617
4970
  readonly id: Schema.brand<Schema.String, "ContactId">;
3618
4971
  }>>, never, never, never, Schema.toCodecJson<Schema.Struct<{
@@ -3765,6 +5118,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3765
5118
  }>, Schema.Null]>;
3766
5119
  readonly tags: Schema.$Array<Schema.String>;
3767
5120
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
5121
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
5122
+ readonly first: Schema.Struct<{
5123
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5124
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5125
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5126
+ readonly importedAt: Schema.String;
5127
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5128
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5129
+ readonly value: Schema.String;
5130
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5131
+ }>, Schema.Null]>;
5132
+ readonly sources: Schema.$Array<Schema.String>;
5133
+ readonly omittedSources: Schema.Finite;
5134
+ }>, Schema.Null]>>;
5135
+ readonly evidence: Schema.$Array<Schema.Struct<{
5136
+ readonly file: Schema.String;
5137
+ readonly row: Schema.Finite;
5138
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5139
+ readonly kind: Schema.Literal<"status_column">;
5140
+ }>, Schema.Struct<{
5141
+ readonly kind: Schema.Literal<"export_scope">;
5142
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5143
+ }>]>;
5144
+ readonly suppressionFree: Schema.Boolean;
5145
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5146
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5147
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5148
+ }>>;
5149
+ }>;
5150
+ readonly latest: Schema.Struct<{
5151
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5152
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5153
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5154
+ readonly importedAt: Schema.String;
5155
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5156
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5157
+ readonly value: Schema.String;
5158
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5159
+ }>, Schema.Null]>;
5160
+ readonly sources: Schema.$Array<Schema.String>;
5161
+ readonly omittedSources: Schema.Finite;
5162
+ }>, Schema.Null]>>;
5163
+ readonly evidence: Schema.$Array<Schema.Struct<{
5164
+ readonly file: Schema.String;
5165
+ readonly row: Schema.Finite;
5166
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5167
+ readonly kind: Schema.Literal<"status_column">;
5168
+ }>, Schema.Struct<{
5169
+ readonly kind: Schema.Literal<"export_scope">;
5170
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5171
+ }>]>;
5172
+ readonly suppressionFree: Schema.Boolean;
5173
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5174
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5175
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5176
+ }>>;
5177
+ }>;
5178
+ }>, Schema.Null]>;
3768
5179
  readonly createdAt: Schema.String;
3769
5180
  readonly updatedAt: Schema.String;
3770
5181
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
@@ -3904,6 +5315,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
3904
5315
  }>, Schema.Null]>;
3905
5316
  readonly tags: Schema.$Array<Schema.String>;
3906
5317
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
5318
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
5319
+ readonly first: Schema.Struct<{
5320
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5321
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5322
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5323
+ readonly importedAt: Schema.String;
5324
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5325
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5326
+ readonly value: Schema.String;
5327
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5328
+ }>, Schema.Null]>;
5329
+ readonly sources: Schema.$Array<Schema.String>;
5330
+ readonly omittedSources: Schema.Finite;
5331
+ }>, Schema.Null]>>;
5332
+ readonly evidence: Schema.$Array<Schema.Struct<{
5333
+ readonly file: Schema.String;
5334
+ readonly row: Schema.Finite;
5335
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5336
+ readonly kind: Schema.Literal<"status_column">;
5337
+ }>, Schema.Struct<{
5338
+ readonly kind: Schema.Literal<"export_scope">;
5339
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5340
+ }>]>;
5341
+ readonly suppressionFree: Schema.Boolean;
5342
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5343
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5344
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5345
+ }>>;
5346
+ }>;
5347
+ readonly latest: Schema.Struct<{
5348
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5349
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5350
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5351
+ readonly importedAt: Schema.String;
5352
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5353
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5354
+ readonly value: Schema.String;
5355
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5356
+ }>, Schema.Null]>;
5357
+ readonly sources: Schema.$Array<Schema.String>;
5358
+ readonly omittedSources: Schema.Finite;
5359
+ }>, Schema.Null]>>;
5360
+ readonly evidence: Schema.$Array<Schema.Struct<{
5361
+ readonly file: Schema.String;
5362
+ readonly row: Schema.Finite;
5363
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5364
+ readonly kind: Schema.Literal<"status_column">;
5365
+ }>, Schema.Struct<{
5366
+ readonly kind: Schema.Literal<"export_scope">;
5367
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5368
+ }>]>;
5369
+ readonly suppressionFree: Schema.Boolean;
5370
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5371
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5372
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5373
+ }>>;
5374
+ }>;
5375
+ }>, Schema.Null]>;
3907
5376
  readonly createdAt: Schema.String;
3908
5377
  readonly updatedAt: Schema.String;
3909
5378
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
@@ -4048,6 +5517,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
4048
5517
  }>, Schema.Null]>;
4049
5518
  readonly tags: Schema.$Array<Schema.String>;
4050
5519
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
5520
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
5521
+ readonly first: Schema.Struct<{
5522
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5523
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5524
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5525
+ readonly importedAt: Schema.String;
5526
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5527
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5528
+ readonly value: Schema.String;
5529
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5530
+ }>, Schema.Null]>;
5531
+ readonly sources: Schema.$Array<Schema.String>;
5532
+ readonly omittedSources: Schema.Finite;
5533
+ }>, Schema.Null]>>;
5534
+ readonly evidence: Schema.$Array<Schema.Struct<{
5535
+ readonly file: Schema.String;
5536
+ readonly row: Schema.Finite;
5537
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5538
+ readonly kind: Schema.Literal<"status_column">;
5539
+ }>, Schema.Struct<{
5540
+ readonly kind: Schema.Literal<"export_scope">;
5541
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5542
+ }>]>;
5543
+ readonly suppressionFree: Schema.Boolean;
5544
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5545
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5546
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5547
+ }>>;
5548
+ }>;
5549
+ readonly latest: Schema.Struct<{
5550
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5551
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5552
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5553
+ readonly importedAt: Schema.String;
5554
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5555
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5556
+ readonly value: Schema.String;
5557
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5558
+ }>, Schema.Null]>;
5559
+ readonly sources: Schema.$Array<Schema.String>;
5560
+ readonly omittedSources: Schema.Finite;
5561
+ }>, Schema.Null]>>;
5562
+ readonly evidence: Schema.$Array<Schema.Struct<{
5563
+ readonly file: Schema.String;
5564
+ readonly row: Schema.Finite;
5565
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5566
+ readonly kind: Schema.Literal<"status_column">;
5567
+ }>, Schema.Struct<{
5568
+ readonly kind: Schema.Literal<"export_scope">;
5569
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5570
+ }>]>;
5571
+ readonly suppressionFree: Schema.Boolean;
5572
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5573
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5574
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5575
+ }>>;
5576
+ }>;
5577
+ }>, Schema.Null]>;
4051
5578
  readonly createdAt: Schema.String;
4052
5579
  readonly updatedAt: Schema.String;
4053
5580
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<ForbiddenError, {
@@ -4130,6 +5657,194 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
4130
5657
  readonly _tag: Schema.tag<"ValidationError">;
4131
5658
  readonly message: Schema.String;
4132
5659
  readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
5660
+ }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsStartImport", "POST", "/v1/contacts/imports", never, never, Schema.toCodecJson<Schema.Union<readonly [Schema.Struct<{
5661
+ readonly mode: Schema.Literal<"new">;
5662
+ readonly input: Schema.Struct<{
5663
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5664
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5665
+ readonly namespaceId: Schema.optionalKey<Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>>;
5666
+ readonly files: Schema.TupleWithRest<Schema.Tuple<readonly [Schema.Struct<{
5667
+ readonly name: Schema.String;
5668
+ readonly csv: Schema.String;
5669
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
5670
+ readonly kind: Schema.Literal<"status_column">;
5671
+ }>, Schema.Struct<{
5672
+ readonly kind: Schema.Literal<"export_scope">;
5673
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5674
+ }>]>;
5675
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
5676
+ }>]>, readonly [Schema.Struct<{
5677
+ readonly name: Schema.String;
5678
+ readonly csv: Schema.String;
5679
+ readonly evidence: Schema.Union<readonly [Schema.Struct<{
5680
+ readonly kind: Schema.Literal<"status_column">;
5681
+ }>, Schema.Struct<{
5682
+ readonly kind: Schema.Literal<"export_scope">;
5683
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5684
+ }>]>;
5685
+ readonly suppressionFree: Schema.optionalKey<Schema.Union<readonly [Schema.Boolean, Schema.Null]>>;
5686
+ }>]>;
5687
+ }>;
5688
+ readonly planHash: Schema.String;
5689
+ readonly idempotencyKey: Schema.String;
5690
+ }>, Schema.Struct<{
5691
+ readonly mode: Schema.Literal<"resume">;
5692
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5693
+ readonly expectedGeneration: Schema.Finite;
5694
+ }>]>>, never, Schema.toCodecJson<Schema.Struct<{
5695
+ readonly id: Schema.brand<Schema.String, "ContactImportJobId">;
5696
+ readonly namespaceId: Schema.Union<readonly [Schema.brand<Schema.String, "NamespaceId">, Schema.Null]>;
5697
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5698
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5699
+ readonly status: Schema.Union<readonly [Schema.Literal<"queued">, Schema.Literal<"running">, Schema.Literal<"finalizing">, Schema.Literal<"completed">, Schema.Literal<"failed">]>;
5700
+ readonly generation: Schema.Finite;
5701
+ readonly counts: Schema.Struct<{
5702
+ readonly totalRows: Schema.Finite;
5703
+ readonly uniqueAddresses: Schema.Finite;
5704
+ readonly subscribed: Schema.Finite;
5705
+ readonly unsubscribed: Schema.Finite;
5706
+ readonly suppressed: Schema.Finite;
5707
+ readonly skipped: Schema.Finite;
5708
+ readonly conflicts: Schema.Finite;
5709
+ readonly created: Schema.Finite;
5710
+ readonly existing: Schema.Finite;
5711
+ }>;
5712
+ readonly processedRows: Schema.Finite;
5713
+ readonly totalRows: Schema.Finite;
5714
+ readonly createdAt: Schema.String;
5715
+ readonly startedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5716
+ readonly updatedAt: Schema.String;
5717
+ readonly completedAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5718
+ readonly failure: Schema.Union<readonly [Schema.Struct<{
5719
+ readonly code: Schema.String;
5720
+ readonly message: Schema.String;
5721
+ readonly retryable: Schema.Boolean;
5722
+ }>, Schema.Null]>;
5723
+ readonly resumable: Schema.Boolean;
5724
+ }>>, Schema.toCodecJson<Schema.Union<readonly [typeof ForbiddenError, typeof FlagDisabledError]> | Schema.decodeTo<Schema.declareConstructor<BillingProviderError, {
5725
+ readonly _tag: "BillingProviderError";
5726
+ readonly message: string;
5727
+ }, readonly [Schema.Struct<{
5728
+ readonly _tag: Schema.tag<"BillingProviderError">;
5729
+ readonly message: Schema.String;
5730
+ }>], {
5731
+ readonly _tag: "BillingProviderError";
5732
+ readonly message: string;
5733
+ }>, Schema.Struct<{
5734
+ readonly _tag: Schema.tag<"BillingProviderError">;
5735
+ readonly message: Schema.String;
5736
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ConflictError, {
5737
+ readonly _tag: "ConflictError";
5738
+ readonly message: string;
5739
+ readonly resource: string;
5740
+ readonly id?: string | null;
5741
+ }, readonly [Schema.Struct<{
5742
+ readonly _tag: Schema.tag<"ConflictError">;
5743
+ readonly message: Schema.String;
5744
+ readonly resource: Schema.String;
5745
+ readonly id: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
5746
+ }>], {
5747
+ readonly _tag: "ConflictError";
5748
+ readonly message: string;
5749
+ readonly resource: string;
5750
+ readonly id?: string | null;
5751
+ }>, Schema.Struct<{
5752
+ readonly _tag: Schema.tag<"ConflictError">;
5753
+ readonly message: Schema.String;
5754
+ readonly resource: Schema.String;
5755
+ readonly id: Schema.optionalKey<Schema.Union<readonly [Schema.String, Schema.Null]>>;
5756
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<GatewayTimeoutError, {
5757
+ readonly _tag: "GatewayTimeoutError";
5758
+ readonly message: string;
5759
+ readonly retryAfterSeconds: number;
5760
+ }, readonly [Schema.Struct<{
5761
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
5762
+ readonly message: Schema.String;
5763
+ readonly retryAfterSeconds: Schema.Finite;
5764
+ }>], {
5765
+ readonly _tag: "GatewayTimeoutError";
5766
+ readonly message: string;
5767
+ readonly retryAfterSeconds: number;
5768
+ }>, Schema.Struct<{
5769
+ readonly _tag: Schema.tag<"GatewayTimeoutError">;
5770
+ readonly message: Schema.String;
5771
+ readonly retryAfterSeconds: Schema.Finite;
5772
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<PaymentRequiredError, {
5773
+ readonly _tag: "PaymentRequiredError";
5774
+ readonly message: string;
5775
+ readonly resource: string;
5776
+ readonly currentUsage: number;
5777
+ readonly limit: number;
5778
+ }, readonly [Schema.Struct<{
5779
+ readonly _tag: Schema.tag<"PaymentRequiredError">;
5780
+ readonly message: Schema.String;
5781
+ readonly resource: Schema.String;
5782
+ readonly currentUsage: Schema.Finite;
5783
+ readonly limit: Schema.Finite;
5784
+ }>], {
5785
+ readonly _tag: "PaymentRequiredError";
5786
+ readonly message: string;
5787
+ readonly resource: string;
5788
+ readonly currentUsage: number;
5789
+ readonly limit: number;
5790
+ }>, Schema.Struct<{
5791
+ readonly _tag: Schema.tag<"PaymentRequiredError">;
5792
+ readonly message: Schema.String;
5793
+ readonly resource: Schema.String;
5794
+ readonly currentUsage: Schema.Finite;
5795
+ readonly limit: Schema.Finite;
5796
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ResourceNotFoundError, {
5797
+ readonly _tag: "ResourceNotFoundError";
5798
+ readonly resource: string;
5799
+ readonly id: string;
5800
+ readonly message: string;
5801
+ }, readonly [Schema.Struct<{
5802
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
5803
+ readonly resource: Schema.String;
5804
+ readonly id: Schema.String;
5805
+ readonly message: Schema.String;
5806
+ }>], {
5807
+ readonly _tag: "ResourceNotFoundError";
5808
+ readonly resource: string;
5809
+ readonly id: string;
5810
+ readonly message: string;
5811
+ }>, Schema.Struct<{
5812
+ readonly _tag: Schema.tag<"ResourceNotFoundError">;
5813
+ readonly resource: Schema.String;
5814
+ readonly id: Schema.String;
5815
+ readonly message: Schema.String;
5816
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<UnauthorizedError, {
5817
+ readonly _tag: "UnauthorizedError";
5818
+ readonly message: string;
5819
+ }, readonly [Schema.Struct<{
5820
+ readonly _tag: Schema.tag<"UnauthorizedError">;
5821
+ readonly message: Schema.String;
5822
+ }>], {
5823
+ readonly _tag: "UnauthorizedError";
5824
+ readonly message: string;
5825
+ }>, Schema.Struct<{
5826
+ readonly _tag: Schema.tag<"UnauthorizedError">;
5827
+ readonly message: Schema.String;
5828
+ }>, never, never> | Schema.decodeTo<Schema.declareConstructor<ValidationError, {
5829
+ readonly _tag: "ValidationError";
5830
+ readonly message: string;
5831
+ readonly fields?: {
5832
+ readonly [x: string]: readonly string[];
5833
+ } | null;
5834
+ }, readonly [Schema.Struct<{
5835
+ readonly _tag: Schema.tag<"ValidationError">;
5836
+ readonly message: Schema.String;
5837
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
5838
+ }>], {
5839
+ readonly _tag: "ValidationError";
5840
+ readonly message: string;
5841
+ readonly fields?: {
5842
+ readonly [x: string]: readonly string[];
5843
+ } | null;
5844
+ }>, Schema.Struct<{
5845
+ readonly _tag: Schema.tag<"ValidationError">;
5846
+ readonly message: Schema.String;
5847
+ readonly fields: Schema.optionalKey<Schema.Union<readonly [Schema.$Record<Schema.String, Schema.$Array<Schema.String>>, Schema.Null]>>;
4133
5848
  }>, never, never> | typeof InternalError>, ApiKeySecurityMiddleware, never> | HttpApiEndpoint.HttpApiEndpoint<"contactsUpdate", "PATCH", "/v1/contacts/:id", Schema.toCodecStringTree<Schema.Struct<{
4134
5849
  readonly id: Schema.brand<Schema.String, "ContactId">;
4135
5850
  }>>, never, Schema.toCodecJson<Schema.Struct<{
@@ -4218,6 +5933,64 @@ declare const ContactsGroup_base: HttpApiGroup.HttpApiGroup<"Contacts", HttpApiE
4218
5933
  }>, Schema.Null]>;
4219
5934
  readonly tags: Schema.$Array<Schema.String>;
4220
5935
  readonly metadata: Schema.Union<readonly [Schema.$Record<Schema.String, Schema.suspend<Schema.Codec<import("./shared").JsonValue, import("./shared").JsonValue, never, never>>>, Schema.Null]>;
5936
+ readonly importProvenance: Schema.Union<readonly [Schema.Struct<{
5937
+ readonly first: Schema.Struct<{
5938
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5939
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5940
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5941
+ readonly importedAt: Schema.String;
5942
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5943
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5944
+ readonly value: Schema.String;
5945
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5946
+ }>, Schema.Null]>;
5947
+ readonly sources: Schema.$Array<Schema.String>;
5948
+ readonly omittedSources: Schema.Finite;
5949
+ }>, Schema.Null]>>;
5950
+ readonly evidence: Schema.$Array<Schema.Struct<{
5951
+ readonly file: Schema.String;
5952
+ readonly row: Schema.Finite;
5953
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5954
+ readonly kind: Schema.Literal<"status_column">;
5955
+ }>, Schema.Struct<{
5956
+ readonly kind: Schema.Literal<"export_scope">;
5957
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5958
+ }>]>;
5959
+ readonly suppressionFree: Schema.Boolean;
5960
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5961
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5962
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5963
+ }>>;
5964
+ }>;
5965
+ readonly latest: Schema.Struct<{
5966
+ readonly jobId: Schema.brand<Schema.String, "ContactImportJobId">;
5967
+ readonly topicId: Schema.brand<Schema.String, "TopicId">;
5968
+ readonly preset: Schema.Union<readonly [Schema.Literal<"beehiiv">, Schema.Literal<"substack">, Schema.Literal<"kit">, Schema.Literal<"mailchimp">]>;
5969
+ readonly importedAt: Schema.String;
5970
+ readonly summary: Schema.optionalKey<Schema.Union<readonly [Schema.Struct<{
5971
+ readonly signupAt: Schema.Union<readonly [Schema.Struct<{
5972
+ readonly value: Schema.String;
5973
+ readonly kind: Schema.Union<readonly [Schema.Literal<"time">, Schema.Literal<"text">]>;
5974
+ }>, Schema.Null]>;
5975
+ readonly sources: Schema.$Array<Schema.String>;
5976
+ readonly omittedSources: Schema.Finite;
5977
+ }>, Schema.Null]>>;
5978
+ readonly evidence: Schema.$Array<Schema.Struct<{
5979
+ readonly file: Schema.String;
5980
+ readonly row: Schema.Finite;
5981
+ readonly declared: Schema.Union<readonly [Schema.Struct<{
5982
+ readonly kind: Schema.Literal<"status_column">;
5983
+ }>, Schema.Struct<{
5984
+ readonly kind: Schema.Literal<"export_scope">;
5985
+ readonly scope: Schema.Union<readonly [Schema.Literal<"subscribed">, Schema.Literal<"unsubscribed">, Schema.Literal<"suppressed">, Schema.Literal<"cleaned/bounced">]>;
5986
+ }>]>;
5987
+ readonly suppressionFree: Schema.Boolean;
5988
+ readonly sourceStatus: Schema.Union<readonly [Schema.String, Schema.Null]>;
5989
+ readonly signupAt: Schema.Union<readonly [Schema.String, Schema.Null]>;
5990
+ readonly source: Schema.Union<readonly [Schema.String, Schema.Null]>;
5991
+ }>>;
5992
+ }>;
5993
+ }>, Schema.Null]>;
4221
5994
  readonly createdAt: Schema.String;
4222
5995
  readonly updatedAt: Schema.String;
4223
5996
  }>>, Schema.toCodecJson<Schema.decodeTo<Schema.declareConstructor<BillingProviderError, {