samva 0.10.0 → 0.12.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 (71) hide show
  1. package/README.md +59 -9
  2. package/dist/client/sdk.gen.d.ts +1126 -219
  3. package/dist/client/types.gen.d.ts +11655 -6311
  4. package/dist/{client-mI4S99Ts.js → client-Cj1bqIEe.js} +5169 -1639
  5. package/dist/{client-attribution-Bl4nTEsE.js → client-attribution-BTWYSXxo.js} +2 -2
  6. package/dist/effect/analytics.d.ts +18 -18
  7. package/dist/effect/analytics.js +1 -1
  8. package/dist/effect/api-keys.d.ts +99 -43
  9. package/dist/effect/api-keys.js +2 -4
  10. package/dist/effect/attachments.d.ts +5 -6
  11. package/dist/effect/attachments.js +1 -1
  12. package/dist/effect/brands.d.ts +4 -4
  13. package/dist/effect/brands.js +2 -2
  14. package/dist/effect/campaigns.d.ts +30 -60
  15. package/dist/effect/campaigns.js +1 -1
  16. package/dist/effect/client.js +1 -1
  17. package/dist/effect/contact-groups.d.ts +29 -46
  18. package/dist/effect/contact-groups.js +1 -1
  19. package/dist/effect/contacts.d.ts +324 -726
  20. package/dist/effect/contacts.js +10 -2
  21. package/dist/effect/conversations.d.ts +575 -1130
  22. package/dist/effect/conversations.js +14 -2
  23. package/dist/effect/custom-fields.d.ts +3 -53
  24. package/dist/effect/custom-fields.js +1 -1
  25. package/dist/effect/email.d.ts +349 -298
  26. package/dist/effect/email.js +9 -3
  27. package/dist/effect/extension-installations.d.ts +218 -0
  28. package/dist/effect/extension-installations.js +25 -0
  29. package/dist/effect/extensions.d.ts +192 -0
  30. package/dist/effect/extensions.js +19 -0
  31. package/dist/effect/feedback.d.ts +12 -0
  32. package/dist/effect/feedback.js +13 -0
  33. package/dist/effect/generated.d.ts +33011 -15519
  34. package/dist/effect/index.d.ts +6 -1
  35. package/dist/effect/index.js +7 -2
  36. package/dist/effect/internal/client.d.ts +3 -0
  37. package/dist/effect/internal/mailbox-events.d.ts +11 -0
  38. package/dist/effect/internal/operation.d.ts +20 -374
  39. package/dist/effect/mailboxes.d.ts +1676 -0
  40. package/dist/effect/mailboxes.js +3 -0
  41. package/dist/effect/media.d.ts +5 -5
  42. package/dist/effect/media.js +1 -1
  43. package/dist/effect/messages.d.ts +171 -938
  44. package/dist/effect/messages.js +6 -2
  45. package/dist/effect/namespaces.d.ts +82 -0
  46. package/dist/effect/namespaces.js +19 -0
  47. package/dist/effect/operations.d.ts +68 -12
  48. package/dist/effect/operations.js +1 -1
  49. package/dist/effect/organizations.d.ts +5 -4
  50. package/dist/effect/organizations.js +1 -1
  51. package/dist/effect/pagination.d.ts +16 -21
  52. package/dist/effect/scheduled-messages.d.ts +13 -23
  53. package/dist/effect/scheduled-messages.js +1 -1
  54. package/dist/effect/templates.d.ts +204 -281
  55. package/dist/effect/templates.js +2 -2
  56. package/dist/effect/unsubscribe-groups.d.ts +21 -75
  57. package/dist/effect/unsubscribe-groups.js +1 -1
  58. package/dist/effect/webhooks.d.ts +117 -39
  59. package/dist/effect/webhooks.js +2 -2
  60. package/dist/index.js +3 -2
  61. package/dist/mailbox-events-CsbF35vH.js +629 -0
  62. package/dist/mailbox-events.d.ts +178 -0
  63. package/dist/mailboxes-BtcktcNB.js +147 -0
  64. package/dist/{operation-DQWJO4jY.js → operation-BEghYyLu.js} +411 -67
  65. package/dist/promises/errors.gen.d.ts +5 -0
  66. package/dist/promises/index.d.ts +23 -1
  67. package/dist/promises/index.js +3 -2
  68. package/dist/promises/types.gen.d.ts +1 -1
  69. package/dist/{promises-C7D4oaHn.js → promises-BzrwhHEW.js} +3273 -547
  70. package/dist/service-map.d.ts +468 -36
  71. package/package.json +22 -2
@@ -1,814 +1,89 @@
1
1
  import { type MessageSendInput, type SendOptions } from "./internal/operation";
2
2
  export type { MessageSendInput, SendOptions };
3
3
  export declare const list: ((input?: {
4
- readonly page?: string | null | undefined;
5
4
  readonly limit?: string | null | undefined;
5
+ readonly cursor?: string | null | undefined;
6
6
  readonly channel?: string | null | undefined;
7
7
  readonly direction?: string | null | undefined;
8
8
  readonly status?: string | null | undefined;
9
9
  readonly conversationId?: string | null | undefined;
10
10
  readonly contactId?: string | null | undefined;
11
11
  readonly from?: string | null | undefined;
12
- readonly startDate?: string | null | undefined;
13
- readonly endDate?: string | null | undefined;
12
+ readonly after?: string | null | undefined;
13
+ readonly before?: string | null | undefined;
14
14
  } | undefined) => import("effect/Effect").Effect<{
15
15
  readonly items: readonly {
16
- readonly id: string;
17
- readonly organizationId: string;
18
- readonly conversationId: string | null;
19
- readonly parentMessageId: string | null;
20
- readonly fromActorId: string;
21
- readonly actorMetadata: {
22
- readonly [x: string]: import("./generated").JsonValue;
23
- } | null;
16
+ readonly id: string & import("effect/Brand").Brand<"MessageId">;
24
17
  readonly channel: "email";
25
18
  readonly direction: "inbound" | "outbound";
26
- readonly content: {
27
- readonly text?: string | null;
28
- readonly html?: string | null;
29
- readonly markdown?: string | null;
30
- readonly email?: {
31
- readonly subject?: string | null;
32
- readonly html?: string | null;
33
- readonly text?: string | null;
34
- readonly headers?: {
35
- readonly [x: string]: string;
36
- } | null;
37
- readonly tracking?: {
38
- readonly opens?: boolean;
39
- readonly clicks?: boolean;
40
- };
41
- readonly attachments?: readonly {
42
- readonly filename: string;
43
- readonly content?: string | null;
44
- readonly mediaId?: (string & import("effect/Brand").Brand<"MediaId">) | null;
45
- readonly contentType: string;
46
- readonly size: number;
47
- }[] | null;
48
- } | null;
49
- readonly metadata?: {
50
- readonly [x: string]: import("./generated").JsonValue;
51
- } | null;
52
- };
53
- readonly metadata: {
54
- readonly [x: string]: import("./generated").JsonValue;
55
- } | null;
56
19
  readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
57
- readonly scheduledAt: string | null;
58
- readonly tags: readonly string[];
59
- readonly categories: readonly string[];
60
- readonly isTest: boolean;
61
- readonly externalId: string | null;
62
- readonly referenceId: string | null;
63
- readonly submission: {
64
- readonly origin: "campaign" | "direct" | "scheduled";
65
- readonly transport: "http" | null;
66
- readonly credential: {
67
- readonly kind: "api_key";
68
- readonly apiKeyId: (string & import("effect/Brand").Brand<"ApiKeyId">) | null;
69
- } | {
70
- readonly kind: "oauth";
71
- readonly clientId: string | null;
72
- } | {
73
- readonly kind: "session";
74
- } | null;
75
- readonly userId: (string & import("effect/Brand").Brand<"UserId">) | null;
76
- readonly client: {
77
- readonly surface: "cli" | "mcp" | "typescript-effect" | "typescript-promise";
78
- readonly version: string;
79
- } | null;
80
- } | null;
81
- readonly createdAt: string;
82
- readonly updatedAt: string;
83
- readonly fromContact: {
84
- readonly id: string;
85
- readonly name: string;
86
- readonly displayName: string | null;
87
- readonly type: string;
88
- readonly identities: readonly {
89
- readonly channel: "email";
90
- readonly identifier: string;
91
- readonly verified: boolean;
92
- }[];
93
- } | null;
94
- readonly toContacts: readonly {
95
- readonly id: string;
96
- readonly name: string;
97
- readonly displayName: string | null;
98
- readonly type: string;
99
- readonly identities: readonly {
100
- readonly channel: "email";
101
- readonly identifier: string;
102
- readonly verified: boolean;
103
- }[];
104
- }[];
105
- readonly recipients: readonly {
106
- readonly id: string;
107
- readonly messageId: string;
108
- readonly actorId: string | null;
109
- readonly contactId: string | null;
110
- readonly identityId: string | null;
111
- readonly kind: "bcc" | "cc" | "to";
112
- readonly address: string;
113
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
114
- readonly createdAt: string;
115
- readonly updatedAt: string;
116
- readonly contact: {
117
- readonly id: string;
118
- readonly name: string;
119
- readonly displayName: string | null;
120
- readonly type: string;
121
- readonly identities: readonly {
122
- readonly channel: "email";
123
- readonly identifier: string;
124
- readonly verified: boolean;
125
- }[];
126
- } | null;
127
- }[];
128
- readonly deliveries: readonly {
129
- readonly scheduling: {
130
- readonly dueAt: string;
131
- readonly expiresAt: string;
132
- readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
133
- readonly reviewExpectedAt: string | null;
134
- } | null;
135
- readonly id: string;
136
- readonly messageId: string;
137
- readonly recipientId: string | null;
138
- readonly channel: "email";
139
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
140
- readonly attemptCount: number;
141
- readonly maxAttempts: number;
142
- readonly queuedAt: string | null;
143
- readonly claimedAt: string | null;
144
- readonly lastAttemptAt: string | null;
145
- readonly nextRetryAt: string | null;
146
- readonly sentAt: string | null;
147
- readonly deliveredAt: string | null;
148
- readonly readAt: string | null;
149
- readonly failedAt: string | null;
150
- readonly terminalAt: string | null;
151
- readonly errorCode: string | null;
152
- readonly errorMessage: string | null;
153
- readonly errorDetails: {
154
- readonly code?: string | null;
155
- readonly name?: string | null;
156
- readonly message?: string | null;
157
- readonly details?: {
158
- readonly [x: string]: string | number | null;
159
- } | null;
160
- readonly retryable?: boolean | null;
161
- } | null;
162
- readonly cost: string;
163
- readonly currency: string;
164
- readonly idempotencyKey: string | null;
165
- readonly createdAt: string;
166
- readonly updatedAt: string;
167
- }[];
168
- readonly emailDeliveryDetails: readonly {
169
- readonly deliveryId: string;
170
- readonly messageIdHeader: string;
171
- readonly inReplyTo: string | null;
172
- readonly references: readonly string[] | null;
173
- readonly subject: string;
174
- readonly fromEmail: string;
175
- readonly fromName: string | null;
176
- readonly toEmails: readonly string[];
177
- readonly toName: string | null;
178
- readonly ccEmails: readonly string[] | null;
179
- readonly bccEmails: readonly string[] | null;
180
- readonly replyToEmails: readonly string[] | null;
181
- readonly hasAttachments: boolean;
182
- readonly attachmentCount: number;
183
- readonly listUnsubscribeUrl: string | null;
184
- readonly listUnsubscribeEmail: string | null;
185
- readonly threadPosition: number | null;
186
- readonly newContent: string | null;
187
- readonly quotedContent: string | null;
188
- readonly hasQuotedContent: boolean;
189
- readonly dkimVerdict: string | null;
190
- readonly spfVerdict: string | null;
191
- readonly dmarcVerdict: string | null;
192
- readonly isAutoReply: boolean;
193
- readonly autoReplyReason: "auto-response" | "delivery-status" | "out-of-office" | "read-receipt" | null;
194
- readonly priority: string | null;
195
- readonly parsingErrors: readonly string[] | null;
196
- readonly parsingDuration: number | null;
197
- readonly receivedAt: string | null;
198
- readonly processedAt: string | null;
199
- readonly createdAt: string;
200
- readonly updatedAt: string;
201
- }[];
20
+ readonly from: string | null;
21
+ readonly to: readonly string[];
22
+ readonly subject: string | null;
202
23
  readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
203
- readonly reviewExpectedAt: string | null;
24
+ readonly createdAt: string;
204
25
  }[];
205
- readonly pagination: {
206
- readonly page: number;
207
- readonly limit: number;
208
- readonly total: number;
209
- readonly totalPages: number;
210
- };
211
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>) & {
26
+ readonly nextCursor: string | null;
27
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>) & {
212
28
  readonly pages: (input?: {
213
- readonly page?: string | null | undefined;
214
29
  readonly limit?: string | null | undefined;
30
+ readonly cursor?: string | null | undefined;
215
31
  readonly channel?: string | null | undefined;
216
32
  readonly direction?: string | null | undefined;
217
33
  readonly status?: string | null | undefined;
218
34
  readonly conversationId?: string | null | undefined;
219
35
  readonly contactId?: string | null | undefined;
220
36
  readonly from?: string | null | undefined;
221
- readonly startDate?: string | null | undefined;
222
- readonly endDate?: string | null | undefined;
37
+ readonly after?: string | null | undefined;
38
+ readonly before?: string | null | undefined;
223
39
  } | undefined) => import("effect/Stream").Stream<{
224
40
  readonly items: readonly {
225
- readonly id: string;
226
- readonly organizationId: string;
227
- readonly conversationId: string | null;
228
- readonly parentMessageId: string | null;
229
- readonly fromActorId: string;
230
- readonly actorMetadata: {
231
- readonly [x: string]: import("./generated").JsonValue;
232
- } | null;
41
+ readonly id: string & import("effect/Brand").Brand<"MessageId">;
233
42
  readonly channel: "email";
234
43
  readonly direction: "inbound" | "outbound";
235
- readonly content: {
236
- readonly text?: string | null;
237
- readonly html?: string | null;
238
- readonly markdown?: string | null;
239
- readonly email?: {
240
- readonly subject?: string | null;
241
- readonly html?: string | null;
242
- readonly text?: string | null;
243
- readonly headers?: {
244
- readonly [x: string]: string;
245
- } | null;
246
- readonly tracking?: {
247
- readonly opens?: boolean;
248
- readonly clicks?: boolean;
249
- };
250
- readonly attachments?: readonly {
251
- readonly filename: string;
252
- readonly content?: string | null;
253
- readonly mediaId?: (string & import("effect/Brand").Brand<"MediaId">) | null;
254
- readonly contentType: string;
255
- readonly size: number;
256
- }[] | null;
257
- } | null;
258
- readonly metadata?: {
259
- readonly [x: string]: import("./generated").JsonValue;
260
- } | null;
261
- };
262
- readonly metadata: {
263
- readonly [x: string]: import("./generated").JsonValue;
264
- } | null;
265
44
  readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
266
- readonly scheduledAt: string | null;
267
- readonly tags: readonly string[];
268
- readonly categories: readonly string[];
269
- readonly isTest: boolean;
270
- readonly externalId: string | null;
271
- readonly referenceId: string | null;
272
- readonly submission: {
273
- readonly origin: "campaign" | "direct" | "scheduled";
274
- readonly transport: "http" | null;
275
- readonly credential: {
276
- readonly kind: "api_key";
277
- readonly apiKeyId: (string & import("effect/Brand").Brand<"ApiKeyId">) | null;
278
- } | {
279
- readonly kind: "oauth";
280
- readonly clientId: string | null;
281
- } | {
282
- readonly kind: "session";
283
- } | null;
284
- readonly userId: (string & import("effect/Brand").Brand<"UserId">) | null;
285
- readonly client: {
286
- readonly surface: "cli" | "mcp" | "typescript-effect" | "typescript-promise";
287
- readonly version: string;
288
- } | null;
289
- } | null;
290
- readonly createdAt: string;
291
- readonly updatedAt: string;
292
- readonly fromContact: {
293
- readonly id: string;
294
- readonly name: string;
295
- readonly displayName: string | null;
296
- readonly type: string;
297
- readonly identities: readonly {
298
- readonly channel: "email";
299
- readonly identifier: string;
300
- readonly verified: boolean;
301
- }[];
302
- } | null;
303
- readonly toContacts: readonly {
304
- readonly id: string;
305
- readonly name: string;
306
- readonly displayName: string | null;
307
- readonly type: string;
308
- readonly identities: readonly {
309
- readonly channel: "email";
310
- readonly identifier: string;
311
- readonly verified: boolean;
312
- }[];
313
- }[];
314
- readonly recipients: readonly {
315
- readonly id: string;
316
- readonly messageId: string;
317
- readonly actorId: string | null;
318
- readonly contactId: string | null;
319
- readonly identityId: string | null;
320
- readonly kind: "bcc" | "cc" | "to";
321
- readonly address: string;
322
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
323
- readonly createdAt: string;
324
- readonly updatedAt: string;
325
- readonly contact: {
326
- readonly id: string;
327
- readonly name: string;
328
- readonly displayName: string | null;
329
- readonly type: string;
330
- readonly identities: readonly {
331
- readonly channel: "email";
332
- readonly identifier: string;
333
- readonly verified: boolean;
334
- }[];
335
- } | null;
336
- }[];
337
- readonly deliveries: readonly {
338
- readonly scheduling: {
339
- readonly dueAt: string;
340
- readonly expiresAt: string;
341
- readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
342
- readonly reviewExpectedAt: string | null;
343
- } | null;
344
- readonly id: string;
345
- readonly messageId: string;
346
- readonly recipientId: string | null;
347
- readonly channel: "email";
348
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
349
- readonly attemptCount: number;
350
- readonly maxAttempts: number;
351
- readonly queuedAt: string | null;
352
- readonly claimedAt: string | null;
353
- readonly lastAttemptAt: string | null;
354
- readonly nextRetryAt: string | null;
355
- readonly sentAt: string | null;
356
- readonly deliveredAt: string | null;
357
- readonly readAt: string | null;
358
- readonly failedAt: string | null;
359
- readonly terminalAt: string | null;
360
- readonly errorCode: string | null;
361
- readonly errorMessage: string | null;
362
- readonly errorDetails: {
363
- readonly code?: string | null;
364
- readonly name?: string | null;
365
- readonly message?: string | null;
366
- readonly details?: {
367
- readonly [x: string]: string | number | null;
368
- } | null;
369
- readonly retryable?: boolean | null;
370
- } | null;
371
- readonly cost: string;
372
- readonly currency: string;
373
- readonly idempotencyKey: string | null;
374
- readonly createdAt: string;
375
- readonly updatedAt: string;
376
- }[];
377
- readonly emailDeliveryDetails: readonly {
378
- readonly deliveryId: string;
379
- readonly messageIdHeader: string;
380
- readonly inReplyTo: string | null;
381
- readonly references: readonly string[] | null;
382
- readonly subject: string;
383
- readonly fromEmail: string;
384
- readonly fromName: string | null;
385
- readonly toEmails: readonly string[];
386
- readonly toName: string | null;
387
- readonly ccEmails: readonly string[] | null;
388
- readonly bccEmails: readonly string[] | null;
389
- readonly replyToEmails: readonly string[] | null;
390
- readonly hasAttachments: boolean;
391
- readonly attachmentCount: number;
392
- readonly listUnsubscribeUrl: string | null;
393
- readonly listUnsubscribeEmail: string | null;
394
- readonly threadPosition: number | null;
395
- readonly newContent: string | null;
396
- readonly quotedContent: string | null;
397
- readonly hasQuotedContent: boolean;
398
- readonly dkimVerdict: string | null;
399
- readonly spfVerdict: string | null;
400
- readonly dmarcVerdict: string | null;
401
- readonly isAutoReply: boolean;
402
- readonly autoReplyReason: "auto-response" | "delivery-status" | "out-of-office" | "read-receipt" | null;
403
- readonly priority: string | null;
404
- readonly parsingErrors: readonly string[] | null;
405
- readonly parsingDuration: number | null;
406
- readonly receivedAt: string | null;
407
- readonly processedAt: string | null;
408
- readonly createdAt: string;
409
- readonly updatedAt: string;
410
- }[];
45
+ readonly from: string | null;
46
+ readonly to: readonly string[];
47
+ readonly subject: string | null;
411
48
  readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
412
- readonly reviewExpectedAt: string | null;
49
+ readonly createdAt: string;
413
50
  }[];
414
- readonly pagination: {
415
- readonly page: number;
416
- readonly limit: number;
417
- readonly total: number;
418
- readonly totalPages: number;
419
- };
420
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
51
+ readonly nextCursor: string | null;
52
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
421
53
  readonly items: (input?: {
422
- readonly page?: string | null | undefined;
423
54
  readonly limit?: string | null | undefined;
55
+ readonly cursor?: string | null | undefined;
424
56
  readonly channel?: string | null | undefined;
425
57
  readonly direction?: string | null | undefined;
426
58
  readonly status?: string | null | undefined;
427
59
  readonly conversationId?: string | null | undefined;
428
60
  readonly contactId?: string | null | undefined;
429
61
  readonly from?: string | null | undefined;
430
- readonly startDate?: string | null | undefined;
431
- readonly endDate?: string | null | undefined;
62
+ readonly after?: string | null | undefined;
63
+ readonly before?: string | null | undefined;
432
64
  } | undefined) => import("effect/Stream").Stream<{
433
- readonly id: string;
434
- readonly organizationId: string;
435
- readonly conversationId: string | null;
436
- readonly parentMessageId: string | null;
437
- readonly fromActorId: string;
438
- readonly actorMetadata: {
439
- readonly [x: string]: import("./generated").JsonValue;
440
- } | null;
65
+ readonly id: string & import("effect/Brand").Brand<"MessageId">;
441
66
  readonly channel: "email";
442
67
  readonly direction: "inbound" | "outbound";
443
- readonly content: {
444
- readonly text?: string | null;
445
- readonly html?: string | null;
446
- readonly markdown?: string | null;
447
- readonly email?: {
448
- readonly subject?: string | null;
449
- readonly html?: string | null;
450
- readonly text?: string | null;
451
- readonly headers?: {
452
- readonly [x: string]: string;
453
- } | null;
454
- readonly tracking?: {
455
- readonly opens?: boolean;
456
- readonly clicks?: boolean;
457
- };
458
- readonly attachments?: readonly {
459
- readonly filename: string;
460
- readonly content?: string | null;
461
- readonly mediaId?: (string & import("effect/Brand").Brand<"MediaId">) | null;
462
- readonly contentType: string;
463
- readonly size: number;
464
- }[] | null;
465
- } | null;
466
- readonly metadata?: {
467
- readonly [x: string]: import("./generated").JsonValue;
468
- } | null;
469
- };
470
- readonly metadata: {
471
- readonly [x: string]: import("./generated").JsonValue;
472
- } | null;
473
68
  readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
474
- readonly scheduledAt: string | null;
475
- readonly tags: readonly string[];
476
- readonly categories: readonly string[];
477
- readonly isTest: boolean;
478
- readonly externalId: string | null;
479
- readonly referenceId: string | null;
480
- readonly submission: {
481
- readonly origin: "campaign" | "direct" | "scheduled";
482
- readonly transport: "http" | null;
483
- readonly credential: {
484
- readonly kind: "api_key";
485
- readonly apiKeyId: (string & import("effect/Brand").Brand<"ApiKeyId">) | null;
486
- } | {
487
- readonly kind: "oauth";
488
- readonly clientId: string | null;
489
- } | {
490
- readonly kind: "session";
491
- } | null;
492
- readonly userId: (string & import("effect/Brand").Brand<"UserId">) | null;
493
- readonly client: {
494
- readonly surface: "cli" | "mcp" | "typescript-effect" | "typescript-promise";
495
- readonly version: string;
496
- } | null;
497
- } | null;
498
- readonly createdAt: string;
499
- readonly updatedAt: string;
500
- readonly fromContact: {
501
- readonly id: string;
502
- readonly name: string;
503
- readonly displayName: string | null;
504
- readonly type: string;
505
- readonly identities: readonly {
506
- readonly channel: "email";
507
- readonly identifier: string;
508
- readonly verified: boolean;
509
- }[];
510
- } | null;
511
- readonly toContacts: readonly {
512
- readonly id: string;
513
- readonly name: string;
514
- readonly displayName: string | null;
515
- readonly type: string;
516
- readonly identities: readonly {
517
- readonly channel: "email";
518
- readonly identifier: string;
519
- readonly verified: boolean;
520
- }[];
521
- }[];
522
- readonly recipients: readonly {
523
- readonly id: string;
524
- readonly messageId: string;
525
- readonly actorId: string | null;
526
- readonly contactId: string | null;
527
- readonly identityId: string | null;
528
- readonly kind: "bcc" | "cc" | "to";
529
- readonly address: string;
530
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
531
- readonly createdAt: string;
532
- readonly updatedAt: string;
533
- readonly contact: {
534
- readonly id: string;
535
- readonly name: string;
536
- readonly displayName: string | null;
537
- readonly type: string;
538
- readonly identities: readonly {
539
- readonly channel: "email";
540
- readonly identifier: string;
541
- readonly verified: boolean;
542
- }[];
543
- } | null;
544
- }[];
545
- readonly deliveries: readonly {
546
- readonly scheduling: {
547
- readonly dueAt: string;
548
- readonly expiresAt: string;
549
- readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
550
- readonly reviewExpectedAt: string | null;
551
- } | null;
552
- readonly id: string;
553
- readonly messageId: string;
554
- readonly recipientId: string | null;
555
- readonly channel: "email";
556
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
557
- readonly attemptCount: number;
558
- readonly maxAttempts: number;
559
- readonly queuedAt: string | null;
560
- readonly claimedAt: string | null;
561
- readonly lastAttemptAt: string | null;
562
- readonly nextRetryAt: string | null;
563
- readonly sentAt: string | null;
564
- readonly deliveredAt: string | null;
565
- readonly readAt: string | null;
566
- readonly failedAt: string | null;
567
- readonly terminalAt: string | null;
568
- readonly errorCode: string | null;
569
- readonly errorMessage: string | null;
570
- readonly errorDetails: {
571
- readonly code?: string | null;
572
- readonly name?: string | null;
573
- readonly message?: string | null;
574
- readonly details?: {
575
- readonly [x: string]: string | number | null;
576
- } | null;
577
- readonly retryable?: boolean | null;
578
- } | null;
579
- readonly cost: string;
580
- readonly currency: string;
581
- readonly idempotencyKey: string | null;
582
- readonly createdAt: string;
583
- readonly updatedAt: string;
584
- }[];
585
- readonly emailDeliveryDetails: readonly {
586
- readonly deliveryId: string;
587
- readonly messageIdHeader: string;
588
- readonly inReplyTo: string | null;
589
- readonly references: readonly string[] | null;
590
- readonly subject: string;
591
- readonly fromEmail: string;
592
- readonly fromName: string | null;
593
- readonly toEmails: readonly string[];
594
- readonly toName: string | null;
595
- readonly ccEmails: readonly string[] | null;
596
- readonly bccEmails: readonly string[] | null;
597
- readonly replyToEmails: readonly string[] | null;
598
- readonly hasAttachments: boolean;
599
- readonly attachmentCount: number;
600
- readonly listUnsubscribeUrl: string | null;
601
- readonly listUnsubscribeEmail: string | null;
602
- readonly threadPosition: number | null;
603
- readonly newContent: string | null;
604
- readonly quotedContent: string | null;
605
- readonly hasQuotedContent: boolean;
606
- readonly dkimVerdict: string | null;
607
- readonly spfVerdict: string | null;
608
- readonly dmarcVerdict: string | null;
609
- readonly isAutoReply: boolean;
610
- readonly autoReplyReason: "auto-response" | "delivery-status" | "out-of-office" | "read-receipt" | null;
611
- readonly priority: string | null;
612
- readonly parsingErrors: readonly string[] | null;
613
- readonly parsingDuration: number | null;
614
- readonly receivedAt: string | null;
615
- readonly processedAt: string | null;
616
- readonly createdAt: string;
617
- readonly updatedAt: string;
618
- }[];
69
+ readonly from: string | null;
70
+ readonly to: readonly string[];
71
+ readonly subject: string | null;
619
72
  readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
620
- readonly reviewExpectedAt: string | null;
621
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
73
+ readonly createdAt: string;
74
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
622
75
  };
623
76
  export declare const send: (input: MessageSendInput, options?: SendOptions | undefined) => import("effect/Effect").Effect<{
624
- readonly id: string;
625
- readonly organizationId: string;
626
- readonly conversationId: string | null;
627
- readonly parentMessageId: string | null;
628
- readonly fromActorId: string;
629
- readonly actorMetadata: {
630
- readonly [x: string]: import("./generated").JsonValue;
631
- } | null;
632
- readonly channel: "email";
633
- readonly direction: "inbound" | "outbound";
634
- readonly content: {
635
- readonly text?: string | null;
636
- readonly html?: string | null;
637
- readonly markdown?: string | null;
638
- readonly email?: {
639
- readonly subject?: string | null;
640
- readonly html?: string | null;
641
- readonly text?: string | null;
642
- readonly headers?: {
643
- readonly [x: string]: string;
644
- } | null;
645
- readonly tracking?: {
646
- readonly opens?: boolean;
647
- readonly clicks?: boolean;
648
- };
649
- readonly attachments?: readonly {
650
- readonly filename: string;
651
- readonly content?: string | null;
652
- readonly mediaId?: (string & import("effect/Brand").Brand<"MediaId">) | null;
653
- readonly contentType: string;
654
- readonly size: number;
655
- }[] | null;
656
- } | null;
657
- readonly metadata?: {
658
- readonly [x: string]: import("./generated").JsonValue;
659
- } | null;
660
- };
661
- readonly metadata: {
662
- readonly [x: string]: import("./generated").JsonValue;
663
- } | null;
77
+ readonly id: string & import("effect/Brand").Brand<"MessageId">;
664
78
  readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
665
- readonly scheduledAt: string | null;
666
- readonly tags: readonly string[];
667
- readonly categories: readonly string[];
668
- readonly isTest: boolean;
669
- readonly externalId: string | null;
670
- readonly referenceId: string | null;
671
- readonly submission: {
672
- readonly origin: "campaign" | "direct" | "scheduled";
673
- readonly transport: "http" | null;
674
- readonly credential: {
675
- readonly kind: "api_key";
676
- readonly apiKeyId: (string & import("effect/Brand").Brand<"ApiKeyId">) | null;
677
- } | {
678
- readonly kind: "oauth";
679
- readonly clientId: string | null;
680
- } | {
681
- readonly kind: "session";
682
- } | null;
683
- readonly userId: (string & import("effect/Brand").Brand<"UserId">) | null;
684
- readonly client: {
685
- readonly surface: "cli" | "mcp" | "typescript-effect" | "typescript-promise";
686
- readonly version: string;
687
- } | null;
688
- } | null;
689
- readonly createdAt: string;
690
- readonly updatedAt: string;
691
- readonly fromContact: {
692
- readonly id: string;
693
- readonly name: string;
694
- readonly displayName: string | null;
695
- readonly type: string;
696
- readonly identities: readonly {
697
- readonly channel: "email";
698
- readonly identifier: string;
699
- readonly verified: boolean;
700
- }[];
701
- } | null;
702
- readonly toContacts: readonly {
703
- readonly id: string;
704
- readonly name: string;
705
- readonly displayName: string | null;
706
- readonly type: string;
707
- readonly identities: readonly {
708
- readonly channel: "email";
709
- readonly identifier: string;
710
- readonly verified: boolean;
711
- }[];
712
- }[];
713
- readonly recipients: readonly {
714
- readonly id: string;
715
- readonly messageId: string;
716
- readonly actorId: string | null;
717
- readonly contactId: string | null;
718
- readonly identityId: string | null;
719
- readonly kind: "bcc" | "cc" | "to";
720
- readonly address: string;
721
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
722
- readonly createdAt: string;
723
- readonly updatedAt: string;
724
- readonly contact: {
725
- readonly id: string;
726
- readonly name: string;
727
- readonly displayName: string | null;
728
- readonly type: string;
729
- readonly identities: readonly {
730
- readonly channel: "email";
731
- readonly identifier: string;
732
- readonly verified: boolean;
733
- }[];
734
- } | null;
735
- }[];
736
- readonly deliveries: readonly {
737
- readonly scheduling: {
738
- readonly dueAt: string;
739
- readonly expiresAt: string;
740
- readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
741
- readonly reviewExpectedAt: string | null;
742
- } | null;
743
- readonly id: string;
744
- readonly messageId: string;
745
- readonly recipientId: string | null;
746
- readonly channel: "email";
747
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
748
- readonly attemptCount: number;
749
- readonly maxAttempts: number;
750
- readonly queuedAt: string | null;
751
- readonly claimedAt: string | null;
752
- readonly lastAttemptAt: string | null;
753
- readonly nextRetryAt: string | null;
754
- readonly sentAt: string | null;
755
- readonly deliveredAt: string | null;
756
- readonly readAt: string | null;
757
- readonly failedAt: string | null;
758
- readonly terminalAt: string | null;
759
- readonly errorCode: string | null;
760
- readonly errorMessage: string | null;
761
- readonly errorDetails: {
762
- readonly code?: string | null;
763
- readonly name?: string | null;
764
- readonly message?: string | null;
765
- readonly details?: {
766
- readonly [x: string]: string | number | null;
767
- } | null;
768
- readonly retryable?: boolean | null;
769
- } | null;
770
- readonly cost: string;
771
- readonly currency: string;
772
- readonly idempotencyKey: string | null;
773
- readonly createdAt: string;
774
- readonly updatedAt: string;
775
- }[];
776
- readonly emailDeliveryDetails: readonly {
777
- readonly deliveryId: string;
778
- readonly messageIdHeader: string;
779
- readonly inReplyTo: string | null;
780
- readonly references: readonly string[] | null;
781
- readonly subject: string;
782
- readonly fromEmail: string;
783
- readonly fromName: string | null;
784
- readonly toEmails: readonly string[];
785
- readonly toName: string | null;
786
- readonly ccEmails: readonly string[] | null;
787
- readonly bccEmails: readonly string[] | null;
788
- readonly replyToEmails: readonly string[] | null;
789
- readonly hasAttachments: boolean;
790
- readonly attachmentCount: number;
791
- readonly listUnsubscribeUrl: string | null;
792
- readonly listUnsubscribeEmail: string | null;
793
- readonly threadPosition: number | null;
794
- readonly newContent: string | null;
795
- readonly quotedContent: string | null;
796
- readonly hasQuotedContent: boolean;
797
- readonly dkimVerdict: string | null;
798
- readonly spfVerdict: string | null;
799
- readonly dmarcVerdict: string | null;
800
- readonly isAutoReply: boolean;
801
- readonly autoReplyReason: "auto-response" | "delivery-status" | "out-of-office" | "read-receipt" | null;
802
- readonly priority: string | null;
803
- readonly parsingErrors: readonly string[] | null;
804
- readonly parsingDuration: number | null;
805
- readonly receivedAt: string | null;
806
- readonly processedAt: string | null;
807
- readonly createdAt: string;
808
- readonly updatedAt: string;
809
- }[];
810
79
  readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
811
80
  readonly reviewExpectedAt: string | null;
81
+ readonly skippedRecipients: readonly {
82
+ readonly address: string;
83
+ readonly reason: "bounce" | "complaint" | "group-unsubscribe" | "manual" | "unsubscribe";
84
+ readonly unsubscribeGroupId?: (string & import("effect/Brand").Brand<"UnsubscribeId">) | null;
85
+ }[];
86
+ readonly createdAt: string;
812
87
  }, import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").DeliveryUnavailableError | import("./generated").ExternalServiceError | import("./generated").FlagDisabledError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").OnboardingReviewRequiredError | import("./generated").PaymentRequiredError | import("./generated").RateLimitedError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
813
88
  export declare const validateEmail: (input: {
814
89
  readonly conversationId?: string | null | undefined;
@@ -937,55 +212,38 @@ export declare const validateEmail: (input: {
937
212
  export declare const get: (input: {
938
213
  readonly id: string;
939
214
  }) => import("effect/Effect").Effect<{
940
- readonly id: string;
941
- readonly organizationId: string;
942
- readonly conversationId: string | null;
943
- readonly parentMessageId: string | null;
944
- readonly fromActorId: string;
945
- readonly actorMetadata: {
946
- readonly [x: string]: import("./generated").JsonValue;
947
- } | null;
215
+ readonly id: string & import("effect/Brand").Brand<"MessageId">;
948
216
  readonly channel: "email";
949
217
  readonly direction: "inbound" | "outbound";
950
- readonly content: {
951
- readonly text?: string | null;
952
- readonly html?: string | null;
953
- readonly markdown?: string | null;
954
- readonly email?: {
955
- readonly subject?: string | null;
956
- readonly html?: string | null;
957
- readonly text?: string | null;
958
- readonly headers?: {
959
- readonly [x: string]: string;
960
- } | null;
961
- readonly tracking?: {
962
- readonly opens?: boolean;
963
- readonly clicks?: boolean;
964
- };
965
- readonly attachments?: readonly {
966
- readonly filename: string;
967
- readonly content?: string | null;
968
- readonly mediaId?: (string & import("effect/Brand").Brand<"MediaId">) | null;
969
- readonly contentType: string;
970
- readonly size: number;
971
- }[] | null;
972
- } | null;
973
- readonly metadata?: {
974
- readonly [x: string]: import("./generated").JsonValue;
975
- } | null;
976
- };
218
+ readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
219
+ readonly from: {
220
+ readonly address: string;
221
+ readonly name: string | null;
222
+ } | null;
223
+ readonly to: readonly {
224
+ readonly address: string;
225
+ readonly contactId: (string & import("effect/Brand").Brand<"ContactId">) | null;
226
+ }[];
227
+ readonly cc: readonly {
228
+ readonly address: string;
229
+ readonly contactId: (string & import("effect/Brand").Brand<"ContactId">) | null;
230
+ }[];
231
+ readonly bcc: readonly {
232
+ readonly address: string;
233
+ readonly contactId: (string & import("effect/Brand").Brand<"ContactId">) | null;
234
+ }[];
235
+ readonly replyTo: readonly string[];
236
+ readonly subject: string | null;
237
+ readonly conversationId: (string & import("effect/Brand").Brand<"ConversationId">) | null;
238
+ readonly inReplyToMessageId: (string & import("effect/Brand").Brand<"MessageId">) | null;
239
+ readonly tags: readonly string[];
977
240
  readonly metadata: {
978
241
  readonly [x: string]: import("./generated").JsonValue;
979
242
  } | null;
980
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
981
- readonly scheduledAt: string | null;
982
- readonly tags: readonly string[];
983
- readonly categories: readonly string[];
984
243
  readonly isTest: boolean;
985
- readonly externalId: string | null;
986
- readonly referenceId: string | null;
244
+ readonly scheduledAt: string | null;
987
245
  readonly submission: {
988
- readonly origin: "campaign" | "direct" | "scheduled";
246
+ readonly origin: "campaign" | "direct" | "forwarding" | "mailbox" | "scheduled";
989
247
  readonly transport: "http" | null;
990
248
  readonly credential: {
991
249
  readonly kind: "api_key";
@@ -1002,133 +260,19 @@ export declare const get: (input: {
1002
260
  readonly version: string;
1003
261
  } | null;
1004
262
  } | null;
1005
- readonly createdAt: string;
1006
- readonly updatedAt: string;
1007
- readonly fromContact: {
1008
- readonly id: string;
1009
- readonly name: string;
1010
- readonly displayName: string | null;
1011
- readonly type: string;
1012
- readonly identities: readonly {
1013
- readonly channel: "email";
1014
- readonly identifier: string;
1015
- readonly verified: boolean;
1016
- }[];
1017
- } | null;
1018
- readonly toContacts: readonly {
1019
- readonly id: string;
1020
- readonly name: string;
1021
- readonly displayName: string | null;
1022
- readonly type: string;
1023
- readonly identities: readonly {
1024
- readonly channel: "email";
1025
- readonly identifier: string;
1026
- readonly verified: boolean;
1027
- }[];
1028
- }[];
1029
- readonly recipients: readonly {
1030
- readonly id: string;
1031
- readonly messageId: string;
1032
- readonly actorId: string | null;
1033
- readonly contactId: string | null;
1034
- readonly identityId: string | null;
1035
- readonly kind: "bcc" | "cc" | "to";
1036
- readonly address: string;
1037
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
1038
- readonly createdAt: string;
1039
- readonly updatedAt: string;
1040
- readonly contact: {
1041
- readonly id: string;
1042
- readonly name: string;
1043
- readonly displayName: string | null;
1044
- readonly type: string;
1045
- readonly identities: readonly {
1046
- readonly channel: "email";
1047
- readonly identifier: string;
1048
- readonly verified: boolean;
1049
- }[];
1050
- } | null;
1051
- }[];
1052
- readonly deliveries: readonly {
1053
- readonly scheduling: {
1054
- readonly dueAt: string;
1055
- readonly expiresAt: string;
1056
- readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
1057
- readonly reviewExpectedAt: string | null;
1058
- } | null;
1059
- readonly id: string;
1060
- readonly messageId: string;
1061
- readonly recipientId: string | null;
1062
- readonly channel: "email";
1063
- readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
1064
- readonly attemptCount: number;
1065
- readonly maxAttempts: number;
1066
- readonly queuedAt: string | null;
1067
- readonly claimedAt: string | null;
1068
- readonly lastAttemptAt: string | null;
1069
- readonly nextRetryAt: string | null;
1070
- readonly sentAt: string | null;
1071
- readonly deliveredAt: string | null;
1072
- readonly readAt: string | null;
1073
- readonly failedAt: string | null;
1074
- readonly terminalAt: string | null;
1075
- readonly errorCode: string | null;
1076
- readonly errorMessage: string | null;
1077
- readonly errorDetails: {
1078
- readonly code?: string | null;
1079
- readonly name?: string | null;
1080
- readonly message?: string | null;
1081
- readonly details?: {
1082
- readonly [x: string]: string | number | null;
1083
- } | null;
1084
- readonly retryable?: boolean | null;
1085
- } | null;
1086
- readonly cost: string;
1087
- readonly currency: string;
1088
- readonly idempotencyKey: string | null;
1089
- readonly createdAt: string;
1090
- readonly updatedAt: string;
1091
- }[];
1092
- readonly emailDeliveryDetails: readonly {
1093
- readonly deliveryId: string;
1094
- readonly messageIdHeader: string;
1095
- readonly inReplyTo: string | null;
1096
- readonly references: readonly string[] | null;
1097
- readonly subject: string;
1098
- readonly fromEmail: string;
1099
- readonly fromName: string | null;
1100
- readonly toEmails: readonly string[];
1101
- readonly toName: string | null;
1102
- readonly ccEmails: readonly string[] | null;
1103
- readonly bccEmails: readonly string[] | null;
1104
- readonly replyToEmails: readonly string[] | null;
1105
- readonly hasAttachments: boolean;
1106
- readonly attachmentCount: number;
1107
- readonly listUnsubscribeUrl: string | null;
1108
- readonly listUnsubscribeEmail: string | null;
1109
- readonly threadPosition: number | null;
1110
- readonly newContent: string | null;
1111
- readonly quotedContent: string | null;
1112
- readonly hasQuotedContent: boolean;
1113
- readonly dkimVerdict: string | null;
1114
- readonly spfVerdict: string | null;
1115
- readonly dmarcVerdict: string | null;
1116
- readonly isAutoReply: boolean;
1117
- readonly autoReplyReason: "auto-response" | "delivery-status" | "out-of-office" | "read-receipt" | null;
1118
- readonly priority: string | null;
1119
- readonly parsingErrors: readonly string[] | null;
1120
- readonly parsingDuration: number | null;
1121
- readonly receivedAt: string | null;
1122
- readonly processedAt: string | null;
1123
- readonly createdAt: string;
1124
- readonly updatedAt: string;
1125
- }[];
1126
263
  readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
1127
264
  readonly reviewExpectedAt: string | null;
1128
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
265
+ readonly skippedRecipients: readonly {
266
+ readonly address: string;
267
+ readonly reason: "bounce" | "complaint" | "group-unsubscribe" | "manual" | "unsubscribe";
268
+ readonly unsubscribeGroupId?: (string & import("effect/Brand").Brand<"UnsubscribeId">) | null;
269
+ }[];
270
+ readonly createdAt: string;
271
+ readonly updatedAt: string;
272
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
1129
273
  export declare const getEmail: (input: {
1130
274
  readonly id: string;
1131
- readonly includeS3Urls?: string | null | undefined;
275
+ readonly includeDownloadUrls?: string | null | undefined;
1132
276
  readonly urlExpiresIn?: string | null | undefined;
1133
277
  }) => import("effect/Effect").Effect<{
1134
278
  readonly deliveries: readonly {
@@ -1220,7 +364,7 @@ export declare const getEmail: (input: {
1220
364
  readonly isInline: boolean;
1221
365
  readonly contentId: string | null;
1222
366
  }[];
1223
- readonly s3ContentUrls: {
367
+ readonly downloadUrls: {
1224
368
  readonly rawMime: string | null;
1225
369
  readonly html: string | null;
1226
370
  readonly text: string | null;
@@ -1229,29 +373,118 @@ export declare const getEmail: (input: {
1229
373
  readonly createdAt: string;
1230
374
  readonly receivedAt: string | null;
1231
375
  readonly processedAt: string | null;
1232
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
376
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
1233
377
  export declare const remove: (input: {
1234
378
  readonly id: string;
1235
379
  }) => import("effect/Effect").Effect<{
1236
380
  readonly success: boolean;
1237
381
  readonly message: string;
1238
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
382
+ }, import("./generated").BillingProviderError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
1239
383
  export declare const getStatus: (input: {
1240
384
  readonly id: string;
1241
385
  }) => import("effect/Effect").Effect<{
1242
386
  readonly id: string & import("effect/Brand").Brand<"MessageId">;
1243
387
  readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
1244
388
  readonly updatedAt: string;
1245
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
1246
- export declare const getEvents: (input: {
389
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
390
+ export declare const getEvents: ((input: {
1247
391
  readonly id: string;
1248
- }) => import("effect/Effect").Effect<readonly {
1249
- readonly id: string & import("effect/Brand").Brand<"MessageEventId">;
1250
- readonly messageId: string & import("effect/Brand").Brand<"MessageId">;
1251
- readonly eventType: string;
1252
- readonly status: string;
1253
- readonly timestamp: string;
392
+ readonly limit?: string | null | undefined;
393
+ readonly cursor?: string | null | undefined;
394
+ }) => import("effect/Effect").Effect<{
395
+ readonly items: readonly {
396
+ readonly id: string & import("effect/Brand").Brand<"MessageEventId">;
397
+ readonly messageId: string & import("effect/Brand").Brand<"MessageId">;
398
+ readonly eventType: string;
399
+ readonly status: string;
400
+ readonly timestamp: string;
401
+ readonly metadata?: {
402
+ readonly [x: string]: import("./generated").JsonValue;
403
+ } | null;
404
+ }[];
405
+ readonly nextCursor: string | null;
406
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>) & {
407
+ readonly pages: (input: {
408
+ readonly id: string;
409
+ readonly limit?: string | null | undefined;
410
+ readonly cursor?: string | null | undefined;
411
+ }) => import("effect/Stream").Stream<{
412
+ readonly items: readonly {
413
+ readonly id: string & import("effect/Brand").Brand<"MessageEventId">;
414
+ readonly messageId: string & import("effect/Brand").Brand<"MessageId">;
415
+ readonly eventType: string;
416
+ readonly status: string;
417
+ readonly timestamp: string;
418
+ readonly metadata?: {
419
+ readonly [x: string]: import("./generated").JsonValue;
420
+ } | null;
421
+ }[];
422
+ readonly nextCursor: string | null;
423
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
424
+ readonly items: (input: {
425
+ readonly id: string;
426
+ readonly limit?: string | null | undefined;
427
+ readonly cursor?: string | null | undefined;
428
+ }) => import("effect/Stream").Stream<{
429
+ readonly id: string & import("effect/Brand").Brand<"MessageEventId">;
430
+ readonly messageId: string & import("effect/Brand").Brand<"MessageId">;
431
+ readonly eventType: string;
432
+ readonly status: string;
433
+ readonly timestamp: string;
434
+ readonly metadata?: {
435
+ readonly [x: string]: import("./generated").JsonValue;
436
+ } | null;
437
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
438
+ };
439
+ export declare const listDeliveries: (input: {
440
+ readonly id: string;
441
+ }) => import("effect/Effect").Effect<{
442
+ readonly items: readonly {
443
+ readonly id: string & import("effect/Brand").Brand<"MessageDeliveryId">;
444
+ readonly recipient: string | null;
445
+ readonly status: "bounced" | "complained" | "delivered" | "failed" | "pending" | "processing" | "queued" | "read" | "scheduled" | "sent";
446
+ readonly attemptCount: number;
447
+ readonly waitReason: "campaign-paused" | "content-review" | "daily-quota" | "domain-health" | "domain-warming" | "onboarding-review" | "rate" | "retry" | "sending-paused" | "upstream-unavailable" | null;
448
+ readonly nextRetryAt: string | null;
449
+ readonly sentAt: string | null;
450
+ readonly deliveredAt: string | null;
451
+ readonly readAt: string | null;
452
+ readonly failedAt: string | null;
453
+ readonly error: {
454
+ readonly code: string | null;
455
+ readonly message: string | null;
456
+ readonly retryable: boolean | null;
457
+ } | null;
458
+ readonly createdAt: string;
459
+ readonly updatedAt: string;
460
+ }[];
461
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
462
+ export declare const getContent: (input: {
463
+ readonly id: string;
464
+ }) => import("effect/Effect").Effect<{
465
+ readonly text?: string | null;
466
+ readonly html?: string | null;
467
+ readonly markdown?: string | null;
468
+ readonly email?: {
469
+ readonly subject?: string | null;
470
+ readonly html?: string | null;
471
+ readonly text?: string | null;
472
+ readonly headers?: {
473
+ readonly [x: string]: string;
474
+ } | null;
475
+ readonly tracking?: {
476
+ readonly opens?: boolean;
477
+ readonly clicks?: boolean;
478
+ };
479
+ readonly attachments?: readonly {
480
+ readonly filename: string;
481
+ readonly content?: string | null;
482
+ readonly mediaId?: (string & import("effect/Brand").Brand<"MediaId">) | null;
483
+ readonly contentType: string;
484
+ readonly size: number;
485
+ }[] | null;
486
+ } | null;
1254
487
  readonly metadata?: {
1255
488
  readonly [x: string]: import("./generated").JsonValue;
1256
489
  } | null;
1257
- }[], import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
490
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;