samva 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/AGENTS.md +1 -1
  2. package/README.md +10 -3
  3. package/dist/client/sdk.gen.d.ts +232 -23
  4. package/dist/client/types.gen.d.ts +693 -352
  5. package/dist/{client-BqkU-sFv.js → client-BOghX8fr.js} +1530 -1532
  6. package/dist/effect/api-keys.d.ts +14 -14
  7. package/dist/effect/api-keys.js +1 -1
  8. package/dist/effect/campaigns.d.ts +134 -853
  9. package/dist/effect/campaigns.js +1 -1
  10. package/dist/effect/categories.d.ts +1 -1
  11. package/dist/effect/client.js +1 -1
  12. package/dist/effect/contacts.d.ts +123 -145
  13. package/dist/effect/contacts.js +1 -1
  14. package/dist/effect/conversations.d.ts +128 -260
  15. package/dist/effect/conversations.js +1 -1
  16. package/dist/effect/design.d.ts +11 -11
  17. package/dist/effect/design.js +1 -1
  18. package/dist/effect/email.d.ts +64 -108
  19. package/dist/effect/email.js +2 -2
  20. package/dist/effect/generated.d.ts +7346 -8748
  21. package/dist/effect/index.d.ts +1 -0
  22. package/dist/effect/index.js +3 -2
  23. package/dist/effect/internal/operation.d.ts +15 -113
  24. package/dist/effect/media.d.ts +80 -0
  25. package/dist/effect/media.js +19 -0
  26. package/dist/effect/messages.d.ts +41 -261
  27. package/dist/effect/messages.js +1 -1
  28. package/dist/effect/operations.d.ts +7 -7
  29. package/dist/effect/operations.js +1 -1
  30. package/dist/effect/organizations.d.ts +23 -41
  31. package/dist/effect/organizations.js +1 -1
  32. package/dist/effect/scheduled-messages.d.ts +43 -454
  33. package/dist/effect/scheduled-messages.js +1 -1
  34. package/dist/effect/templates.d.ts +175 -649
  35. package/dist/effect/templates.js +2 -2
  36. package/dist/effect/webhooks.d.ts +20 -21
  37. package/dist/effect/webhooks.js +2 -2
  38. package/dist/index.js +1 -1
  39. package/dist/{normalize-LkWl4HUF.js → normalize-BKFjbR9t.js} +5 -13
  40. package/dist/normalize.d.ts +3 -33
  41. package/dist/{operation-Ccqh_yxb.js → operation-C2Q4cFJL.js} +21 -3
  42. package/dist/promises/index.d.ts +4 -14
  43. package/dist/promises/index.js +1 -1
  44. package/dist/promises/types.gen.d.ts +1 -1
  45. package/dist/{promises-Dgv8UmCC.js → promises-oiy7mOyu.js} +386 -29
  46. package/dist/service-map.d.ts +26 -0
  47. package/package.json +17 -12
package/AGENTS.md CHANGED
@@ -6,7 +6,7 @@ required.
6
6
 
7
7
  Effect applications should import Pascal-cased domain modules from focused subpaths such as
8
8
  `samva/effect/email` and provide `Client.layerFetch` from `samva/effect/client`. Install the optional
9
- peer `effect@4.0.0-beta.102` when using those entrypoints. Keep that exact beta pinned. Tagged API
9
+ peer `effect@4.0.0-rc.111` when using those entrypoints. Keep that exact release candidate pinned. Tagged API
10
10
  failures remain in the Effect error channel and can be handled with `Effect.catchTag`.
11
11
 
12
12
  Treat exported request and response types as the API contract. Do not import package-internal files
package/README.md CHANGED
@@ -65,7 +65,7 @@ const messages = await client.messages.list({
65
65
  Install `effect` next to `samva` when using the Effect entrypoint:
66
66
 
67
67
  ```bash
68
- bun add samva effect@4.0.0-beta.102
68
+ bun add samva effect@4.0.0-rc.111
69
69
  ```
70
70
 
71
71
  ```typescript
@@ -124,6 +124,7 @@ The Promise client exposes:
124
124
  - `conversations`
125
125
  - `design`
126
126
  - `email`
127
+ - `media`
127
128
  - `messages`
128
129
  - `operations`
129
130
  - `organizations`
@@ -139,6 +140,7 @@ The Effect SDK exposes Pascal-cased domain modules with lower-camel operations:
139
140
  - `Conversations`
140
141
  - `Design`
141
142
  - `Email`
143
+ - `Media`
142
144
  - `Messages`
143
145
  - `Operations`
144
146
  - `Organizations`
@@ -148,6 +150,11 @@ The Effect SDK exposes Pascal-cased domain modules with lower-camel operations:
148
150
 
149
151
  Effect operations take direct parameter objects: body, path, and query fields are not wrapped in `payload` or `params` envelopes. Import the modules you use from `samva/effect/<lower-kebab>` and provide `Client.layerFetch` once at the program boundary. `Client.raw` exposes the underlying generated client for advanced access, but ordinary workflows do not require it.
150
152
 
153
+ Email attachments use organization-owned media. Call `media.create`, upload the bytes with the
154
+ returned instruction, call `media.complete`, and pass the ready `mediaId` to `email.send` or
155
+ `messages.send`. A message accepts at most 10 attachments totaling 25 MiB of raw bytes; the same
156
+ budget covers inline base64 content and owned media references. Remote URL attachments are not.
157
+
151
158
  Effect failures carry Samva's real tagged errors (`RateLimitedError`, `ValidationError`, `PaymentRequiredError`, …) directly in the error channel, so `Effect.catchTag("RateLimitedError", …)` works against any operation without enumerating status codes, and each error exposes its own fields (no wrapper `cause`). The SDK also exports category helpers such as `isRetryable`, `isTransient`, `catchAuthError`, and `catchTransient`. Success values decode to domain types: annotated absolute instants become `Date`, sensitive fields become `Redacted`, and unannotated wire timestamps remain strings.
152
159
 
153
160
  ### Default-on retry
@@ -369,8 +376,8 @@ subclass for failures declared by OpenAPI. Network and malformed-response failur
369
376
  const result = await client.raw.messages.send({
370
377
  body: {
371
378
  to: [{ contactId: "contact-id" }],
372
- channel: "sms",
373
- sms: { text: "Hello" },
379
+ channel: "email",
380
+ email: { subject: "Hello", text: "Hello" },
374
381
  },
375
382
  });
376
383
 
@@ -1,5 +1,5 @@
1
1
  import { type Client, type ClientMeta, type Options as Options2, type RequestResult, type TDataShape } from "./client";
2
- import type { ActorTracking, ApiKeyId, ApiKeyPermissions, ApiKeysCreateErrors, ApiKeysCreateResponses, ApiKeysGetActivityErrors, ApiKeysGetActivityResponses, ApiKeysGetErrors, ApiKeysGetResponses, ApiKeysGetStatsErrors, ApiKeysGetStatsResponses, ApiKeysListErrors, ApiKeysListResponses, ApiKeysRemoveErrors, ApiKeysRemoveResponses, ApiKeysRevokeErrors, ApiKeysRevokeResponses, ApiKeysRotateErrors, ApiKeysRotateResponses, ApiKeysUpdateErrors, ApiKeysUpdateResponses, BlockedEmailId, CampaignAudience, CampaignContentInput, CampaignId, CampaignPolicy, CampaignRunId, CampaignsArchiveErrors, CampaignsArchiveResponses, CampaignsCancelRunErrors, CampaignsCancelRunResponses, CampaignsCreateErrors, CampaignsCreateResponses, CampaignsGetErrors, CampaignsGetResponses, CampaignsGetRunErrors, CampaignsGetRunResponses, CampaignsListErrors, CampaignsListRecipientsErrors, CampaignsListRecipientsResponses, CampaignsListResponses, CampaignsListRunsErrors, CampaignsListRunsResponses, CampaignsPauseRunErrors, CampaignsPauseRunResponses, CampaignsResumeRunErrors, CampaignsResumeRunResponses, CampaignsScheduleRunErrors, CampaignsScheduleRunResponses, CampaignsUpdateErrors, CampaignsUpdateResponses, ContactAccessConfig, ContactId, ContactIdentity, ContactPreferences, ContactsBulkDeleteErrors, ContactsBulkDeleteResponses, ContactsBulkImportErrors, ContactsBulkImportResponses, ContactsBulkUpdateStatusErrors, ContactsBulkUpdateStatusResponses, ContactsBulkUpdateTagsErrors, ContactsBulkUpdateTagsResponses, ContactsCreateErrors, ContactsCreateResponses, ContactsExportErrors, ContactsExportResponses, ContactsFindErrors, ContactsFindOrCreateErrors, ContactsFindOrCreateResponses, ContactsFindResponses, ContactsGetActivityTimelineErrors, ContactsGetActivityTimelineResponses, ContactsGetEngagementErrors, ContactsGetEngagementResponses, ContactsGetErrors, ContactsGetGroupMembershipsErrors, ContactsGetGroupMembershipsResponses, ContactsGetResponses, ContactsListErrors, ContactsListResponses, ContactsRemoveErrors, ContactsRemoveResponses, ContactsUpdateErrors, ContactsUpdateResponses, ConversationContext, ConversationId, ConversationMetadata, ConversationMetrics, ConversationsAddContactsErrors, ConversationsAddContactsResponses, ConversationsCreateErrors, ConversationsCreateResponses, ConversationsGetByIdErrors, ConversationsGetByIdResponses, ConversationsListErrors, ConversationsListMessagesErrors, ConversationsListMessagesResponses, ConversationsListResponses, ConversationsRemoveContactsErrors, ConversationsRemoveContactsResponses, ConversationsUpdateErrors, ConversationsUpdateResponses, Design as Design3, DesignGetErrors, DesignGetResponses, DesignUpdateErrors, DesignUpdateResponses, DispatchSendMessagePayload, EmailAddBlockErrors, EmailAddBlockResponses, EmailAddDomainErrors, EmailAddDomainResponses, EmailAddSenderErrors, EmailAddSenderResponses, EmailAdvanceDomainVerificationErrors, EmailAdvanceDomainVerificationResponses, EmailBuildCustomTrackingDomainConnectApplyUrlErrors, EmailBuildCustomTrackingDomainConnectApplyUrlResponses, EmailBuildDomainConnectApplyUrlErrors, EmailBuildDomainConnectApplyUrlResponses, EmailCheckBlockedErrors, EmailCheckBlockedResponses, EmailCheckSenderVerificationErrors, EmailCheckSenderVerificationResponses, EmailClearDomainDefaultSenderErrors, EmailClearDomainDefaultSenderResponses, EmailCompleteCustomTrackingDomainConnectErrors, EmailCompleteCustomTrackingDomainConnectResponses, EmailCompleteDomainConnectErrors, EmailCompleteDomainConnectResponses, EmailCreateForwardingRuleErrors, EmailCreateForwardingRuleResponses, EmailDeleteForwardingRuleErrors, EmailDeleteForwardingRuleResponses, EmailDetectRegistrarErrors, EmailDetectRegistrarResponses, EmailDisableCatchAllErrors, EmailDisableCatchAllResponses, EmailDisableCustomTrackingErrors, EmailDisableCustomTrackingResponses, EmailDomainId, EmailEnableCatchAllErrors, EmailEnableCatchAllResponses, EmailEnableCustomTrackingErrors, EmailEnableCustomTrackingResponses, EmailEnableReceivingErrors, EmailEnableReceivingResponses, EmailForwardingRuleId, EmailGetBlockLogsErrors, EmailGetBlockLogsResponses, EmailGetCatchAllConfigErrors, EmailGetCatchAllConfigResponses, EmailGetCatchAllStatsErrors, EmailGetCatchAllStatsResponses, EmailGetCustomTrackingDomainConnectErrors, EmailGetCustomTrackingDomainConnectResponses, EmailGetCustomTrackingErrors, EmailGetCustomTrackingResponses, EmailGetDomainByIdErrors, EmailGetDomainByIdResponses, EmailGetDomainConnectErrors, EmailGetDomainConnectResponses, EmailGetDomainVerificationErrors, EmailGetDomainVerificationResponses, EmailGetForwardingLogErrors, EmailGetForwardingLogResponses, EmailGetRecipientTrackingPreferenceErrors, EmailGetRecipientTrackingPreferenceResponses, EmailGetStatsErrors, EmailGetStatsResponses, EmailGetTrackingDefaultsErrors, EmailGetTrackingDefaultsResponses, EmailListBlocksErrors, EmailListBlocksResponses, EmailListDomainsErrors, EmailListDomainsResponses, EmailListForwardingRulesErrors, EmailListForwardingRulesResponses, EmailListSendersErrors, EmailListSendersResponses, EmailListSuppressionsErrors, EmailListSuppressionsResponses, EmailRemoveBlockErrors, EmailRemoveBlockResponses, EmailRemoveDomainErrors, EmailRemoveDomainResponses, EmailRemoveSenderErrors, EmailRemoveSenderResponses, EmailRemoveSuppressionErrors, EmailRemoveSuppressionResponses, EmailSenderId, EmailSendMessagePayload, EmailSetDefaultDomainErrors, EmailSetDefaultDomainResponses, EmailSetDefaultSenderErrors, EmailSetDefaultSenderResponses, EmailSetDomainDefaultSenderErrors, EmailSetDomainDefaultSenderResponses, EmailUpdateBlockErrors, EmailUpdateBlockResponses, EmailUpdateCatchAllConfigErrors, EmailUpdateCatchAllConfigResponses, EmailUpdateDomainConfigErrors, EmailUpdateDomainConfigResponses, EmailUpdateForwardingRuleErrors, EmailUpdateForwardingRuleResponses, EmailUpdateRecipientTrackingPreferenceErrors, EmailUpdateRecipientTrackingPreferenceResponses, EmailUpdateTrackingDefaultsErrors, EmailUpdateTrackingDefaultsResponses, ForwardingConditions, HumanProfile, JsonObject, JsonValue, MessageId, MessagesGetEmailErrors, MessagesGetEmailResponses, MessagesGetErrors, MessagesGetEventsErrors, MessagesGetEventsResponses, MessagesGetResponses, MessagesGetStatusErrors, MessagesGetStatusResponses, MessagesListErrors, MessagesListResponses, MessagesRemoveErrors, MessagesRemoveResponses, MessagesSendErrors, MessagesSendResponses, OperationId, OperationsGetErrors, OperationsGetResponses, OperationsListErrors, OperationsListResponses, OperationsRetryErrors, OperationsRetryResponses, OrganizationsBootstrapErrors, OrganizationsBootstrapResponses, OrganizationsCreateErrors, OrganizationsCreateResponses, OrganizationsDeleteErrors, OrganizationsDeleteResponses, OrganizationsGetErrors, OrganizationsGetResponses, OrganizationsGetUsageErrors, OrganizationsGetUsageResponses, OrganizationsUpdateErrors, OrganizationsUpdateResponses, ScheduledMessageId, ScheduledMessagesCancelErrors, ScheduledMessagesCancelResponses, ScheduledMessagesCreateErrors, ScheduledMessagesCreateResponses, ScheduledMessagesGetErrors, ScheduledMessagesGetResponses, ScheduledMessagesListErrors, ScheduledMessagesListResponses, SmsSendMessagePayload, SuppressionId, TemplateCompliance, TemplateDocumentsBootstrapErrors, TemplateDocumentsBootstrapResponses, TemplateDocumentsGetErrors, TemplateDocumentsGetResponses, TemplateDocumentsPublishErrors, TemplateDocumentsPublishResponses, TemplateDocumentsRenderErrors, TemplateDocumentsRenderResponses, TemplateDocumentsReplaceErrors, TemplateDocumentsReplaceResponses, TemplateDocumentsRestoreErrors, TemplateDocumentsRestoreResponses, TemplateDocumentsSaveErrors, TemplateDocumentsSaveResponses, TemplateDocumentsSendErrors, TemplateDocumentsSendResponses, TemplateDocumentsSpamCheckErrors, TemplateDocumentsSpamCheckResponses, TemplateDocumentsTestSendErrors, TemplateDocumentsTestSendResponses, TemplateDocumentsUnpublishErrors, TemplateDocumentsUnpublishResponses, TemplateDocumentsVersionsErrors, TemplateDocumentsVersionsResponses, TemplateFamilyId, TemplateFromDefault, TemplateId, TemplatePerformance, TemplatesAddFamilyChannelErrors, TemplatesAddFamilyChannelResponses, TemplatesApproveErrors, TemplatesApproveResponses, TemplatesAttachFamilyMemberErrors, TemplatesAttachFamilyMemberResponses, TemplatesCreateErrors, TemplatesCreateFamilyErrors, TemplatesCreateFamilyFromTemplateErrors, TemplatesCreateFamilyFromTemplateResponses, TemplatesCreateFamilyResponses, TemplatesCreateResponses, TemplatesDeleteFamilyErrors, TemplatesDeleteFamilyResponses, TemplatesDetachFamilyMemberErrors, TemplatesDetachFamilyMemberResponses, TemplatesGetByIdErrors, TemplatesGetByIdResponses, TemplatesGetFamilyErrors, TemplatesGetFamilyResponses, TemplatesListDashboardErrors, TemplatesListDashboardResponses, TemplatesListErrors, TemplatesListFamiliesErrors, TemplatesListFamiliesResponses, TemplatesListResponses, TemplateSourceVersionId, TemplatesRemoveErrors, TemplatesRemoveResponses, TemplatesRenameFamilyErrors, TemplatesRenameFamilyResponses, TemplatesUpdateErrors, TemplatesUpdateResponses, TemplateVariable, TrackingRecipientEmail, UnknownRecord, UnsubscribeId, WebhookDeliveryId, WebhookEndpointId, WebhooksCreateErrors, WebhooksCreateResponses, WebhooksGetErrors, WebhooksGetLogsErrors, WebhooksGetLogsResponses, WebhooksGetResponses, WebhooksGetStatsErrors, WebhooksGetStatsResponses, WebhooksListErrors, WebhooksListResponses, WebhooksRegenerateSecretErrors, WebhooksRegenerateSecretResponses, WebhooksRemoveErrors, WebhooksRemoveResponses, WebhooksRetryDeliveryErrors, WebhooksRetryDeliveryResponses, WebhooksTestErrors, WebhooksTestResponses, WebhooksUpdateErrors, WebhooksUpdateResponses, WhatsAppSendMessagePayload } from "./types.gen";
2
+ import type { ActorTracking, ApiKeyId, ApiKeyPermissions, ApiKeysCreateErrors, ApiKeysCreateResponses, ApiKeysGetActivityErrors, ApiKeysGetActivityResponses, ApiKeysGetErrors, ApiKeysGetResponses, ApiKeysGetStatsErrors, ApiKeysGetStatsResponses, ApiKeysListErrors, ApiKeysListResponses, ApiKeysRemoveErrors, ApiKeysRemoveResponses, ApiKeysRevokeErrors, ApiKeysRevokeResponses, ApiKeysRotateErrors, ApiKeysRotateResponses, ApiKeysUpdateErrors, ApiKeysUpdateResponses, BlockedEmailId, CampaignAudience, CampaignContentInput, CampaignId, CampaignPolicy, CampaignRunId, CampaignsArchiveErrors, CampaignsArchiveResponses, CampaignsCancelRunErrors, CampaignsCancelRunResponses, CampaignsCreateErrors, CampaignsCreateResponses, CampaignsGetErrors, CampaignsGetResponses, CampaignsGetRunErrors, CampaignsGetRunResponses, CampaignsListErrors, CampaignsListRecipientsErrors, CampaignsListRecipientsResponses, CampaignsListResponses, CampaignsListRunsErrors, CampaignsListRunsResponses, CampaignsPauseRunErrors, CampaignsPauseRunResponses, CampaignsResumeRunErrors, CampaignsResumeRunResponses, CampaignsScheduleRunErrors, CampaignsScheduleRunResponses, CampaignsUpdateErrors, CampaignsUpdateResponses, ContactAccessConfig, ContactId, ContactIdentity, ContactPreferences, ContactsBulkDeleteErrors, ContactsBulkDeleteResponses, ContactsBulkImportErrors, ContactsBulkImportResponses, ContactsBulkUpdateStatusErrors, ContactsBulkUpdateStatusResponses, ContactsBulkUpdateTagsErrors, ContactsBulkUpdateTagsResponses, ContactsCreateErrors, ContactsCreateResponses, ContactsExportErrors, ContactsExportResponses, ContactsFindErrors, ContactsFindOrCreateErrors, ContactsFindOrCreateResponses, ContactsFindResponses, ContactsGetActivityTimelineErrors, ContactsGetActivityTimelineResponses, ContactsGetEngagementErrors, ContactsGetEngagementResponses, ContactsGetErrors, ContactsGetGroupMembershipsErrors, ContactsGetGroupMembershipsResponses, ContactsGetResponses, ContactsListErrors, ContactsListResponses, ContactsRemoveErrors, ContactsRemoveResponses, ContactsUpdateErrors, ContactsUpdateResponses, ConversationContext, ConversationId, ConversationMetadata, ConversationMetrics, ConversationsAddContactsErrors, ConversationsAddContactsResponses, ConversationsCreateErrors, ConversationsCreateResponses, ConversationsGetByIdErrors, ConversationsGetByIdResponses, ConversationsListErrors, ConversationsListMessagesErrors, ConversationsListMessagesResponses, ConversationsListResponses, ConversationsRemoveContactsErrors, ConversationsRemoveContactsResponses, ConversationsUpdateErrors, ConversationsUpdateResponses, Design as Design3, DesignGetErrors, DesignGetResponses, DesignUpdateErrors, DesignUpdateResponses, DispatchSendMessagePayload, EmailAddBlockErrors, EmailAddBlockResponses, EmailAddDomainErrors, EmailAddDomainResponses, EmailAddSenderErrors, EmailAddSenderResponses, EmailAdvanceDomainVerificationErrors, EmailAdvanceDomainVerificationResponses, EmailBuildCustomTrackingDomainConnectApplyUrlErrors, EmailBuildCustomTrackingDomainConnectApplyUrlResponses, EmailBuildDomainConnectApplyUrlErrors, EmailBuildDomainConnectApplyUrlResponses, EmailCheckBlockedErrors, EmailCheckBlockedResponses, EmailCheckSenderVerificationErrors, EmailCheckSenderVerificationResponses, EmailClearDomainDefaultSenderErrors, EmailClearDomainDefaultSenderResponses, EmailCompleteCustomTrackingDomainConnectErrors, EmailCompleteCustomTrackingDomainConnectResponses, EmailCompleteDomainConnectErrors, EmailCompleteDomainConnectResponses, EmailCreateForwardingRuleErrors, EmailCreateForwardingRuleResponses, EmailDeleteForwardingRuleErrors, EmailDeleteForwardingRuleResponses, EmailDetectRegistrarErrors, EmailDetectRegistrarResponses, EmailDisableCatchAllErrors, EmailDisableCatchAllResponses, EmailDisableCustomTrackingErrors, EmailDisableCustomTrackingResponses, EmailDomainId, EmailEnableCatchAllErrors, EmailEnableCatchAllResponses, EmailEnableCustomTrackingErrors, EmailEnableCustomTrackingResponses, EmailEnableReceivingErrors, EmailEnableReceivingResponses, EmailForwardingRuleId, EmailGetBlockLogsErrors, EmailGetBlockLogsResponses, EmailGetCatchAllConfigErrors, EmailGetCatchAllConfigResponses, EmailGetCatchAllStatsErrors, EmailGetCatchAllStatsResponses, EmailGetCustomTrackingDomainConnectErrors, EmailGetCustomTrackingDomainConnectResponses, EmailGetCustomTrackingErrors, EmailGetCustomTrackingResponses, EmailGetDomainByIdErrors, EmailGetDomainByIdResponses, EmailGetDomainConnectErrors, EmailGetDomainConnectResponses, EmailGetDomainVerificationErrors, EmailGetDomainVerificationResponses, EmailGetForwardingLogErrors, EmailGetForwardingLogResponses, EmailGetRecipientTrackingPreferenceErrors, EmailGetRecipientTrackingPreferenceResponses, EmailGetStatsErrors, EmailGetStatsResponses, EmailGetTrackingDefaultsErrors, EmailGetTrackingDefaultsResponses, EmailListBlocksErrors, EmailListBlocksResponses, EmailListDomainsErrors, EmailListDomainsResponses, EmailListForwardingRulesErrors, EmailListForwardingRulesResponses, EmailListSendersErrors, EmailListSendersResponses, EmailListSuppressionsErrors, EmailListSuppressionsResponses, EmailRemoveBlockErrors, EmailRemoveBlockResponses, EmailRemoveDomainErrors, EmailRemoveDomainResponses, EmailRemoveSenderErrors, EmailRemoveSenderResponses, EmailRemoveSuppressionErrors, EmailRemoveSuppressionResponses, EmailSenderId, EmailSendMessagePayload, EmailSetDefaultDomainErrors, EmailSetDefaultDomainResponses, EmailSetDefaultSenderErrors, EmailSetDefaultSenderResponses, EmailSetDomainDefaultSenderErrors, EmailSetDomainDefaultSenderResponses, EmailUpdateBlockErrors, EmailUpdateBlockResponses, EmailUpdateCatchAllConfigErrors, EmailUpdateCatchAllConfigResponses, EmailUpdateDomainConfigErrors, EmailUpdateDomainConfigResponses, EmailUpdateForwardingRuleErrors, EmailUpdateForwardingRuleResponses, EmailUpdateRecipientTrackingPreferenceErrors, EmailUpdateRecipientTrackingPreferenceResponses, EmailUpdateTrackingDefaultsErrors, EmailUpdateTrackingDefaultsResponses, ForwardingConditions, HumanProfile, JsonObject, JsonValue, MailboxExtensionId, MediaCompleteErrors, MediaCompleteResponses, MediaCreateErrors, MediaCreateResponses, MediaDownloadUrlErrors, MediaDownloadUrlResponses, MediaGetByIdErrors, MediaGetByIdResponses, MediaId, MediaRemoveErrors, MediaRemoveResponses, MessageId, MessagesGetEmailErrors, MessagesGetEmailResponses, MessagesGetErrors, MessagesGetEventsErrors, MessagesGetEventsResponses, MessagesGetResponses, MessagesGetStatusErrors, MessagesGetStatusResponses, MessagesListErrors, MessagesListResponses, MessagesRemoveErrors, MessagesRemoveResponses, MessagesSendErrors, MessagesSendResponses, OperationId, OperationsGetErrors, OperationsGetResponses, OperationsListErrors, OperationsListResponses, OperationsRetryErrors, OperationsRetryResponses, OrganizationsBootstrapErrors, OrganizationsBootstrapResponses, OrganizationsCreateErrors, OrganizationsCreateResponses, OrganizationsDeleteErrors, OrganizationsDeleteResponses, OrganizationsGetErrors, OrganizationsGetResponses, OrganizationsGetUsageErrors, OrganizationsGetUsageResponses, OrganizationsUpdateErrors, OrganizationsUpdateResponses, ScheduledMessageId, ScheduledMessagesCancelErrors, ScheduledMessagesCancelResponses, ScheduledMessagesCreateErrors, ScheduledMessagesCreateResponses, ScheduledMessagesGetErrors, ScheduledMessagesGetResponses, ScheduledMessagesListErrors, ScheduledMessagesListResponses, SuppressionId, TemplateCompliance, TemplateDocumentsApplyAgentProposalErrors, TemplateDocumentsApplyAgentProposalResponses, TemplateDocumentsBootstrapErrors, TemplateDocumentsBootstrapResponses, TemplateDocumentsCompleteAgentConversationClearErrors, TemplateDocumentsCompleteAgentConversationClearResponses, TemplateDocumentsGetErrors, TemplateDocumentsGetResponses, TemplateDocumentsIssueAgentAdmissionErrors, TemplateDocumentsIssueAgentAdmissionResponses, TemplateDocumentsPublishErrors, TemplateDocumentsPublishResponses, TemplateDocumentsRenderErrors, TemplateDocumentsRenderResponses, TemplateDocumentsReplaceErrors, TemplateDocumentsReplaceResponses, TemplateDocumentsRestoreErrors, TemplateDocumentsRestoreResponses, TemplateDocumentsSaveErrors, TemplateDocumentsSaveResponses, TemplateDocumentsSendErrors, TemplateDocumentsSendResponses, TemplateDocumentsSpamCheckErrors, TemplateDocumentsSpamCheckResponses, TemplateDocumentsTestSendErrors, TemplateDocumentsTestSendResponses, TemplateDocumentsUnpublishErrors, TemplateDocumentsUnpublishResponses, TemplateDocumentsVersionsErrors, TemplateDocumentsVersionsResponses, TemplateFamilyId, TemplateFromDefault, TemplateId, TemplatePerformance, TemplatesAddFamilyChannelErrors, TemplatesAddFamilyChannelResponses, TemplatesApproveErrors, TemplatesApproveResponses, TemplatesAttachFamilyMemberErrors, TemplatesAttachFamilyMemberResponses, TemplatesCreateErrors, TemplatesCreateFamilyErrors, TemplatesCreateFamilyFromTemplateErrors, TemplatesCreateFamilyFromTemplateResponses, TemplatesCreateFamilyResponses, TemplatesCreateResponses, TemplatesDeleteFamilyErrors, TemplatesDeleteFamilyResponses, TemplatesDetachFamilyMemberErrors, TemplatesDetachFamilyMemberResponses, TemplatesGetByIdErrors, TemplatesGetByIdResponses, TemplatesGetFamilyErrors, TemplatesGetFamilyResponses, TemplatesListDashboardErrors, TemplatesListDashboardResponses, TemplatesListErrors, TemplatesListFamiliesErrors, TemplatesListFamiliesResponses, TemplatesListResponses, TemplateSourceVersionId, TemplatesRemoveErrors, TemplatesRemoveResponses, TemplatesRenameFamilyErrors, TemplatesRenameFamilyResponses, TemplatesUpdateErrors, TemplatesUpdateResponses, TemplateVariable, TrackingRecipientEmail, UnknownRecord, UnsubscribeId, WebhookDeliveryId, WebhookEndpointId, WebhooksCreateErrors, WebhooksCreateResponses, WebhooksGetErrors, WebhooksGetLogsErrors, WebhooksGetLogsResponses, WebhooksGetResponses, WebhooksGetStatsErrors, WebhooksGetStatsResponses, WebhooksListErrors, WebhooksListResponses, WebhooksRegenerateSecretErrors, WebhooksRegenerateSecretResponses, WebhooksRemoveErrors, WebhooksRemoveResponses, WebhooksRetryDeliveryErrors, WebhooksRetryDeliveryResponses, WebhooksTestErrors, WebhooksTestResponses, WebhooksUpdateErrors, WebhooksUpdateResponses } from "./types.gen";
3
3
  export type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -22,7 +22,7 @@ export declare class Messages {
22
22
  static list<ThrowOnError extends boolean = false>(parameters?: {
23
23
  page?: string | null | undefined;
24
24
  limit?: string | null | undefined;
25
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
25
+ channel?: "email" | null | undefined;
26
26
  status?: "pending" | "scheduled" | "queued" | "processing" | "sent" | "delivered" | "read" | "failed" | "bounced" | "complained" | null | undefined;
27
27
  conversationId?: ConversationId | null | undefined;
28
28
  contactId?: ContactId | null | undefined;
@@ -32,11 +32,11 @@ export declare class Messages {
32
32
  /**
33
33
  * Send a message
34
34
  *
35
- * Sends a message on the requested channel and returns the created message with a 201 Created status. `channel` selects the payload variant. Email sends today; the SMS and WhatsApp variants are coming soon and answer 403 until the channel launches for your organization, so integrating against them now costs no rewrite later. Repeating an identical request with the same optional `Idempotency-Key` header returns the original message; reusing the key for different content returns a conflict.
35
+ * Sends a message on the requested channel and returns the created message with a 201 Created status. `channel` selects the payload variant. Repeating an identical request with the same optional `Idempotency-Key` header returns the original message; reusing the key for different content returns a conflict.
36
36
  */
37
37
  static send<ThrowOnError extends boolean = false>(parameters: {
38
38
  "idempotency-key"?: string | null | undefined;
39
- body: EmailSendMessagePayload | SmsSendMessagePayload | WhatsAppSendMessagePayload;
39
+ emailSendMessagePayload: EmailSendMessagePayload;
40
40
  }, options?: Options<never, ThrowOnError>): RequestResult<MessagesSendResponses, MessagesSendErrors, ThrowOnError>;
41
41
  /**
42
42
  * Delete a message
@@ -57,7 +57,7 @@ export declare class Messages {
57
57
  /**
58
58
  * Get email message details
59
59
  *
60
- * Returns the email projection of a message, optionally including signed S3 URLs for its raw MIME, HTML, and text content.
60
+ * Returns email delivery details for a message, optionally including signed URLs for its raw MIME, HTML, and text content.
61
61
  */
62
62
  static getEmail<ThrowOnError extends boolean = false>(parameters: {
63
63
  id: MessageId;
@@ -130,7 +130,7 @@ export declare class ScheduledMessages {
130
130
  /**
131
131
  * Schedule a message
132
132
  *
133
- * Schedules a message at the absolute ISO-8601 instant in scheduledFor. The send payload is the same channel union the immediate send accepts, with each channel's content checked at schedule time so a send that could never render fails now rather than hours later: email schedules today, and the SMS and WhatsApp variants are coming soon and answer 403 until the channel launches. Optional timezone is validated IANA display metadata only and never changes the execution instant.
133
+ * Schedules a message at the absolute ISO-8601 instant in scheduledFor. Optional timezone is validated IANA display metadata only and never changes the execution instant.
134
134
  */
135
135
  static create<ThrowOnError extends boolean = false>(parameters: {
136
136
  send: DispatchSendMessagePayload;
@@ -177,7 +177,7 @@ export declare class Campaigns {
177
177
  */
178
178
  static create<ThrowOnError extends boolean = false>(parameters: {
179
179
  name: string;
180
- channel: "sms" | "whatsapp" | "email";
180
+ channel: "email";
181
181
  content: CampaignContentInput;
182
182
  audience: CampaignAudience;
183
183
  policy?: CampaignPolicy | null | undefined;
@@ -764,6 +764,55 @@ export declare class Email {
764
764
  export declare class Email2 {
765
765
  static email: typeof Email;
766
766
  }
767
+ export declare class Media {
768
+ /**
769
+ * Create a media object
770
+ *
771
+ * Creates the media object in the pending state and returns it with the upload instruction — URL, method, and headers — for putting its bytes into storage.
772
+ */
773
+ static create<ThrowOnError extends boolean = false>(parameters: {
774
+ filename: string;
775
+ contentType: string;
776
+ sizeBytes: number;
777
+ purpose: "attachment" | "avatar";
778
+ checksumSha256?: string | null | undefined;
779
+ }, options?: Options<never, ThrowOnError>): RequestResult<MediaCreateResponses, MediaCreateErrors, ThrowOnError>;
780
+ /**
781
+ * Complete a media upload
782
+ *
783
+ * Verifies the uploaded object exists in storage, marks the media object ready, and returns it with a download URL.
784
+ */
785
+ static complete<ThrowOnError extends boolean = false>(parameters: {
786
+ mediaId: MediaId;
787
+ }, options?: Options<never, ThrowOnError>): RequestResult<MediaCompleteResponses, MediaCompleteErrors, ThrowOnError>;
788
+ /**
789
+ * Delete a media object
790
+ *
791
+ * Deletes a pending media object and the bytes stored for it. Fails if the media object is already ready.
792
+ */
793
+ static remove<ThrowOnError extends boolean = false>(parameters: {
794
+ mediaId: MediaId;
795
+ }, options?: Options<never, ThrowOnError>): RequestResult<MediaRemoveResponses, MediaRemoveErrors, ThrowOnError>;
796
+ /**
797
+ * Get a media object
798
+ *
799
+ * Returns the media object's metadata, including status, dimensions, and confirmation timestamps.
800
+ */
801
+ static getById<ThrowOnError extends boolean = false>(parameters: {
802
+ mediaId: MediaId;
803
+ }, options?: Options<never, ThrowOnError>): RequestResult<MediaGetByIdResponses, MediaGetByIdErrors, ThrowOnError>;
804
+ /**
805
+ * Get a media download URL
806
+ *
807
+ * Generates a presigned, time-limited download URL for a ready media object.
808
+ */
809
+ static downloadUrl<ThrowOnError extends boolean = false>(parameters: {
810
+ mediaId: MediaId;
811
+ }, options?: Options<never, ThrowOnError>): RequestResult<MediaDownloadUrlResponses, MediaDownloadUrlErrors, ThrowOnError>;
812
+ }
813
+ export declare class Media2 {
814
+ static media: typeof Media;
815
+ }
767
816
  export declare class Conversations {
768
817
  /**
769
818
  * List conversations
@@ -774,7 +823,7 @@ export declare class Conversations {
774
823
  page?: string | null | undefined;
775
824
  limit?: string | null | undefined;
776
825
  status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
777
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
826
+ channel?: "email" | null | undefined;
778
827
  contactId?: ContactId | null | undefined;
779
828
  startDate?: string | null | undefined;
780
829
  endDate?: string | null | undefined;
@@ -789,8 +838,8 @@ export declare class Conversations {
789
838
  description?: string | null | undefined;
790
839
  externalId?: string | null | undefined;
791
840
  parentConversationId?: ConversationId | null | undefined;
792
- channels: Array<"sms" | "whatsapp" | "email">;
793
- primaryChannel: "sms" | "whatsapp" | "email";
841
+ channels: Array<"email">;
842
+ primaryChannel: "email";
794
843
  status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
795
844
  statusReason?: string | null | undefined;
796
845
  priority?: number | null | undefined;
@@ -825,7 +874,7 @@ export declare class Conversations {
825
874
  description?: string | null | null | undefined;
826
875
  externalId?: string | null | null | undefined;
827
876
  parentConversationId?: ConversationId | null | null | undefined;
828
- primaryChannel?: "sms" | "whatsapp" | "email" | null | undefined;
877
+ primaryChannel?: "email" | null | undefined;
829
878
  status?: "active" | "waiting" | "resolved" | "escalated" | "archived" | null | undefined;
830
879
  statusReason?: string | null | null | undefined;
831
880
  priority?: number | null | undefined;
@@ -835,7 +884,7 @@ export declare class Conversations {
835
884
  metadata?: ConversationMetadata | null | null | undefined;
836
885
  metrics?: ConversationMetrics | null | undefined;
837
886
  actorTracking?: ActorTracking | null | undefined;
838
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
887
+ channels?: Array<"email"> | null | undefined;
839
888
  tags?: Array<string> | null | undefined;
840
889
  categories?: Array<string> | null | undefined;
841
890
  isTest?: boolean | null | undefined;
@@ -916,12 +965,11 @@ export declare class Contacts {
916
965
  /**
917
966
  * Find a contact
918
967
  *
919
- * Looks up a single contact by email, phone, WhatsApp, or external ID, returning null when no contact matches.
968
+ * Samva API operation.
920
969
  */
921
970
  static find<ThrowOnError extends boolean = false>(parameters?: {
922
971
  email?: string | null | undefined;
923
972
  phone?: string | null | undefined;
924
- whatsapp?: string | null | undefined;
925
973
  externalId?: string | null | undefined;
926
974
  }, options?: Options<never, ThrowOnError>): RequestResult<ContactsFindResponses, ContactsFindErrors, ThrowOnError>;
927
975
  /**
@@ -932,7 +980,6 @@ export declare class Contacts {
932
980
  static findOrCreate<ThrowOnError extends boolean = false>(parameters?: {
933
981
  email?: string | null | undefined;
934
982
  phone?: string | null | undefined;
935
- whatsapp?: string | null | undefined;
936
983
  externalId?: string | null | undefined;
937
984
  name?: string | null | undefined;
938
985
  displayName?: string | null | null | undefined;
@@ -1056,7 +1103,7 @@ export declare class Contacts {
1056
1103
  id: ContactId;
1057
1104
  page?: string | null | undefined;
1058
1105
  limit?: string | null | undefined;
1059
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
1106
+ channel?: "email" | null | undefined;
1060
1107
  }, options?: Options<never, ThrowOnError>): RequestResult<ContactsGetActivityTimelineResponses, ContactsGetActivityTimelineErrors, ThrowOnError>;
1061
1108
  /**
1062
1109
  * List a contact's group memberships
@@ -1080,7 +1127,7 @@ export declare class Templates {
1080
1127
  page?: string | null | undefined;
1081
1128
  limit?: string | null | undefined;
1082
1129
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | undefined;
1083
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
1130
+ channel?: "email" | null | undefined;
1084
1131
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
1085
1132
  search?: string | null | undefined;
1086
1133
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
@@ -1110,49 +1157,99 @@ export declare class Templates {
1110
1157
  isDefault?: boolean | null | undefined;
1111
1158
  version?: number | null | undefined;
1112
1159
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesCreateResponses, TemplatesCreateErrors, ThrowOnError>;
1160
+ /**
1161
+ * List templates for the dashboard
1162
+ *
1163
+ * Returns a paginated dashboard view that groups related channel templates into families and leaves standalone templates ungrouped.
1164
+ */
1113
1165
  static listDashboard<ThrowOnError extends boolean = false>(parameters: {
1114
1166
  page?: string | null | undefined;
1115
1167
  limit?: string | null | undefined;
1116
- allowedChannels: "sms" | "whatsapp" | "email" | Array<"sms" | "whatsapp" | "email">;
1168
+ allowedChannels: "email" | Array<"email">;
1117
1169
  category?: "transactional" | "marketing" | "support" | "notification" | "verification" | "reminder" | "alert" | null | undefined;
1118
- channel?: "sms" | "whatsapp" | "email" | null | undefined;
1170
+ channel?: "email" | null | undefined;
1119
1171
  status?: "draft" | "pending" | "approved" | "published" | "rejected" | "archived" | null | undefined;
1120
1172
  search?: string | null | undefined;
1121
1173
  sortBy?: "name" | "createdAt" | "updatedAt" | "usageCount" | "lastUsedAt" | null | undefined;
1122
1174
  sortOrder?: "asc" | "desc" | null | undefined;
1123
1175
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesListDashboardResponses, TemplatesListDashboardErrors, ThrowOnError>;
1176
+ /**
1177
+ * List template families
1178
+ *
1179
+ * Returns a paginated list of the organization's template families and members.
1180
+ */
1124
1181
  static listFamilies<ThrowOnError extends boolean = false>(parameters?: {
1125
1182
  page?: string | null | undefined;
1126
1183
  limit?: string | null | undefined;
1127
1184
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesListFamiliesResponses, TemplatesListFamiliesErrors, ThrowOnError>;
1185
+ /**
1186
+ * Create a template family
1187
+ *
1188
+ * Creates an empty template family with the supplied name and returns it with status 201.
1189
+ */
1128
1190
  static createFamily<ThrowOnError extends boolean = false>(parameters: {
1129
1191
  name: string;
1130
1192
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesCreateFamilyResponses, TemplatesCreateFamilyErrors, ThrowOnError>;
1193
+ /**
1194
+ * Delete a template family
1195
+ *
1196
+ * Deletes a template family without deleting its member templates.
1197
+ */
1131
1198
  static deleteFamily<ThrowOnError extends boolean = false>(parameters: {
1132
1199
  familyId: TemplateFamilyId;
1133
1200
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesDeleteFamilyResponses, TemplatesDeleteFamilyErrors, ThrowOnError>;
1201
+ /**
1202
+ * Get a template family
1203
+ *
1204
+ * Returns a template family and its channel-specific member templates.
1205
+ */
1134
1206
  static getFamily<ThrowOnError extends boolean = false>(parameters: {
1135
1207
  familyId: TemplateFamilyId;
1136
1208
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesGetFamilyResponses, TemplatesGetFamilyErrors, ThrowOnError>;
1209
+ /**
1210
+ * Rename a template family
1211
+ *
1212
+ * Changes a template family's name and returns the updated family.
1213
+ */
1137
1214
  static renameFamily<ThrowOnError extends boolean = false>(parameters: {
1138
1215
  familyId: TemplateFamilyId;
1139
1216
  name: string;
1140
1217
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesRenameFamilyResponses, TemplatesRenameFamilyErrors, ThrowOnError>;
1218
+ /**
1219
+ * Create a family from a template
1220
+ *
1221
+ * Creates a template family containing the specified template and returns the new family with status 201.
1222
+ */
1141
1223
  static createFamilyFromTemplate<ThrowOnError extends boolean = false>(parameters: {
1142
1224
  templateId: TemplateId;
1143
1225
  name: string;
1144
1226
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesCreateFamilyFromTemplateResponses, TemplatesCreateFamilyFromTemplateErrors, ThrowOnError>;
1227
+ /**
1228
+ * Detach a template from a family
1229
+ *
1230
+ * Removes a member template from the family without deleting the template.
1231
+ */
1145
1232
  static detachFamilyMember<ThrowOnError extends boolean = false>(parameters: {
1146
1233
  familyId: TemplateFamilyId;
1147
1234
  templateId: TemplateId;
1148
1235
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesDetachFamilyMemberResponses, TemplatesDetachFamilyMemberErrors, ThrowOnError>;
1236
+ /**
1237
+ * Attach a template to a family
1238
+ *
1239
+ * Adds an existing template as a channel member of the family and returns the updated family.
1240
+ */
1149
1241
  static attachFamilyMember<ThrowOnError extends boolean = false>(parameters: {
1150
1242
  familyId: TemplateFamilyId;
1151
1243
  templateId: TemplateId;
1152
1244
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesAttachFamilyMemberResponses, TemplatesAttachFamilyMemberErrors, ThrowOnError>;
1245
+ /**
1246
+ * Add a channel to a template family
1247
+ *
1248
+ * Creates a template for the requested channel in the family and returns the updated family with status 201.
1249
+ */
1153
1250
  static addFamilyChannel<ThrowOnError extends boolean = false>(parameters: {
1154
1251
  familyId: TemplateFamilyId;
1155
- channel: "sms" | "whatsapp" | "email";
1252
+ channel: "email";
1156
1253
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplatesAddFamilyChannelResponses, TemplatesAddFamilyChannelErrors, ThrowOnError>;
1157
1254
  /**
1158
1255
  * Delete a template
@@ -1210,21 +1307,98 @@ export declare class Templates2 {
1210
1307
  static templates: typeof Templates;
1211
1308
  }
1212
1309
  export declare class TemplateDocuments {
1310
+ /**
1311
+ * Bootstrap a template document
1312
+ *
1313
+ * Creates or loads the authoritative editable document for a template and returns its current snapshot.
1314
+ */
1213
1315
  static bootstrap<ThrowOnError extends boolean = false>(parameters: {
1214
1316
  templateId: TemplateId;
1215
1317
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsBootstrapResponses, TemplateDocumentsBootstrapErrors, ThrowOnError>;
1318
+ /**
1319
+ * Get a template document
1320
+ *
1321
+ * Returns the current authoritative source, revision, and metadata for a template document.
1322
+ */
1216
1323
  static get<ThrowOnError extends boolean = false>(parameters: {
1217
1324
  templateId: TemplateId;
1218
1325
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsGetResponses, TemplateDocumentsGetErrors, ThrowOnError>;
1326
+ /**
1327
+ * Issue an agent admission
1328
+ *
1329
+ * Authorizes a bounded template-agent operation against the current document and returns the admission context.
1330
+ */
1331
+ static issueAgentAdmission<ThrowOnError extends boolean = false>(parameters: {
1332
+ templateId: TemplateId;
1333
+ method: "GET" | "HEAD" | "POST";
1334
+ route: "prompt" | "read" | "abort" | "clear";
1335
+ referenceDigest?: string | undefined;
1336
+ research?: {
1337
+ kind: "query";
1338
+ query: string;
1339
+ } | {
1340
+ kind: "url";
1341
+ url: string;
1342
+ } | {
1343
+ kind: "styleguide";
1344
+ domain: string;
1345
+ } | undefined;
1346
+ competitorMessage?: {
1347
+ watchId: MailboxExtensionId;
1348
+ messageId: MessageId;
1349
+ } | undefined;
1350
+ }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsIssueAgentAdmissionResponses, TemplateDocumentsIssueAgentAdmissionErrors, ThrowOnError>;
1351
+ /**
1352
+ * Complete an agent conversation clear
1353
+ *
1354
+ * Records completion of an admitted agent conversation-clear operation for the template document.
1355
+ */
1356
+ static completeAgentConversationClear<ThrowOnError extends boolean = false>(parameters: {
1357
+ templateId: TemplateId;
1358
+ conversationId: string;
1359
+ }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsCompleteAgentConversationClearResponses, TemplateDocumentsCompleteAgentConversationClearErrors, ThrowOnError>;
1360
+ /**
1361
+ * Apply an agent proposal
1362
+ *
1363
+ * Applies an admitted agent-authored source proposal when its revision and source digest still match the document.
1364
+ */
1365
+ static applyAgentProposal<ThrowOnError extends boolean = false>(parameters: {
1366
+ templateId: TemplateId;
1367
+ expectedRevision: string;
1368
+ sourceDigest: string;
1369
+ idempotencyKey: string;
1370
+ source: string;
1371
+ references: Array<{
1372
+ kind: string;
1373
+ digest: string;
1374
+ locator?: string | undefined;
1375
+ }>;
1376
+ proposalBinding?: string | undefined;
1377
+ }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsApplyAgentProposalResponses, TemplateDocumentsApplyAgentProposalErrors, ThrowOnError>;
1378
+ /**
1379
+ * Replace template source
1380
+ *
1381
+ * Replaces the editable SML source when the expected revision matches and returns the updated document snapshot.
1382
+ */
1219
1383
  static replace<ThrowOnError extends boolean = false>(parameters: {
1220
1384
  templateId: TemplateId;
1221
1385
  expectedRevision: string;
1222
1386
  source: string;
1223
1387
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsReplaceResponses, TemplateDocumentsReplaceErrors, ThrowOnError>;
1388
+ /**
1389
+ * Save a template document
1390
+ *
1391
+ * Materializes the specified document revision as a durable template source version and returns its receipt.
1392
+ */
1224
1393
  static save<ThrowOnError extends boolean = false>(parameters: {
1225
1394
  templateId: TemplateId;
1226
1395
  revision: string;
1227
1396
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsSaveResponses, TemplateDocumentsSaveErrors, ThrowOnError>;
1397
+ /**
1398
+ * Render a template document
1399
+ *
1400
+ * Renders the specified document revision with optional variables and reports any missing variables.
1401
+ */
1228
1402
  static render<ThrowOnError extends boolean = false>(parameters: {
1229
1403
  templateId: TemplateId;
1230
1404
  revision: string;
@@ -1232,6 +1406,11 @@ export declare class TemplateDocuments {
1232
1406
  [key: string]: JsonValue;
1233
1407
  } | null | undefined;
1234
1408
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsRenderResponses, TemplateDocumentsRenderErrors, ThrowOnError>;
1409
+ /**
1410
+ * Check a template document for spam
1411
+ *
1412
+ * Renders and analyzes the specified document revision for spam risks, returning issues and recommendations.
1413
+ */
1235
1414
  static spamCheck<ThrowOnError extends boolean = false>(parameters: {
1236
1415
  templateId: TemplateId;
1237
1416
  revision: string;
@@ -1239,6 +1418,11 @@ export declare class TemplateDocuments {
1239
1418
  [key: string]: JsonValue;
1240
1419
  } | null | undefined;
1241
1420
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsSpamCheckResponses, TemplateDocumentsSpamCheckErrors, ThrowOnError>;
1421
+ /**
1422
+ * Send a template test
1423
+ *
1424
+ * Renders the specified document revision and sends a test message to one recipient without publishing it.
1425
+ */
1242
1426
  static testSend<ThrowOnError extends boolean = false>(parameters: {
1243
1427
  templateId: TemplateId;
1244
1428
  revision: string;
@@ -1247,6 +1431,11 @@ export declare class TemplateDocuments {
1247
1431
  [key: string]: JsonValue;
1248
1432
  } | null | undefined;
1249
1433
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsTestSendResponses, TemplateDocumentsTestSendErrors, ThrowOnError>;
1434
+ /**
1435
+ * Send a template document
1436
+ *
1437
+ * Sends or schedules the specified document revision for one or more recipients with optional variables.
1438
+ */
1250
1439
  static send<ThrowOnError extends boolean = false>(parameters: {
1251
1440
  templateId: TemplateId;
1252
1441
  revision: string;
@@ -1259,15 +1448,35 @@ export declare class TemplateDocuments {
1259
1448
  } | null | undefined;
1260
1449
  schedule?: string | null | null | undefined;
1261
1450
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsSendResponses, TemplateDocumentsSendErrors, ThrowOnError>;
1451
+ /**
1452
+ * List template document versions
1453
+ *
1454
+ * Returns the saved source-version history for a template document.
1455
+ */
1262
1456
  static versions<ThrowOnError extends boolean = false>(parameters: {
1263
1457
  templateId: TemplateId;
1264
1458
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsVersionsResponses, TemplateDocumentsVersionsErrors, ThrowOnError>;
1459
+ /**
1460
+ * Publish a template document
1461
+ *
1462
+ * Publishes the current saved template source version and returns its lifecycle receipt.
1463
+ */
1265
1464
  static publish<ThrowOnError extends boolean = false>(parameters: {
1266
1465
  templateId: TemplateId;
1267
1466
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsPublishResponses, TemplateDocumentsPublishErrors, ThrowOnError>;
1467
+ /**
1468
+ * Unpublish a template document
1469
+ *
1470
+ * Unpublishes the current template source version and returns its lifecycle receipt.
1471
+ */
1268
1472
  static unpublish<ThrowOnError extends boolean = false>(parameters: {
1269
1473
  templateId: TemplateId;
1270
1474
  }, options?: Options<never, ThrowOnError>): RequestResult<TemplateDocumentsUnpublishResponses, TemplateDocumentsUnpublishErrors, ThrowOnError>;
1475
+ /**
1476
+ * Restore a template document version
1477
+ *
1478
+ * Restores a saved source version into the editable document when the expected revision matches.
1479
+ */
1271
1480
  static restore<ThrowOnError extends boolean = false>(parameters: {
1272
1481
  templateId: TemplateId;
1273
1482
  versionId: TemplateSourceVersionId;
@@ -1316,7 +1525,7 @@ export declare class Webhooks {
1316
1525
  name: string;
1317
1526
  url: string;
1318
1527
  eventTypes: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated">;
1319
- channels?: Array<"sms" | "whatsapp" | "email"> | null | undefined;
1528
+ channels?: Array<"email"> | null | undefined;
1320
1529
  headers?: {
1321
1530
  [key: string]: string;
1322
1531
  } | null | undefined;
@@ -1348,7 +1557,7 @@ export declare class Webhooks {
1348
1557
  name?: string | null | undefined;
1349
1558
  url?: string | null | undefined;
1350
1559
  eventTypes?: Array<"message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated"> | null | undefined;
1351
- channels?: Array<"sms" | "whatsapp" | "email"> | null | null | undefined;
1560
+ channels?: Array<"email"> | null | null | undefined;
1352
1561
  headers?: {
1353
1562
  [key: string]: string;
1354
1563
  } | null | undefined;
@@ -1520,7 +1729,7 @@ export declare class ApiKeys {
1520
1729
  /**
1521
1730
  * Rotate an API key
1522
1731
  *
1523
- * Deactivates the existing key and issues a replacement with the same name and permissions. Returns the new key, including the plaintext secret.
1732
+ * Issues a replacement with the same owner, name, and permissions, then deactivates the existing key. Returns the new key, including the plaintext secret.
1524
1733
  */
1525
1734
  static rotate<ThrowOnError extends boolean = false>(parameters: {
1526
1735
  id: ApiKeyId;