@digisglobal/omnivox-sdk 0.7.0 → 0.8.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.
package/dist/index.d.ts CHANGED
@@ -138,6 +138,8 @@ type CannedResponsesModule = ReturnType<typeof createCannedResponsesModule>;
138
138
  * Exposes the Phase-2 templates surface via two submodules:
139
139
  *
140
140
  * whatsapp (WABA-scoped):
141
+ * - list(tenantId, wabaId, opts) → GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates
142
+ * - getById(tenantId, wabaId, templateId) → GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates/:templateId
141
143
  * - authorDraft(tenantId, wabaId, input) → POST /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates
142
144
  * - importApproved(tenantId, wabaId) → POST /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates/import
143
145
  * - update(tenantId, wabaId, templateId, input) → PATCH /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates/:templateId
@@ -172,11 +174,55 @@ interface UpdateWhatsAppTemplateInput {
172
174
  body?: string;
173
175
  [key: string]: unknown;
174
176
  }
175
- /** A WhatsApp template version history event. */
177
+ /**
178
+ * A single status-event row attached to a template version, as returned nested
179
+ * under each version in the history response (`versions[].statusEvents[]`).
180
+ * These are the raw Meta callback events (plus synthetic import events).
181
+ */
176
182
  interface WhatsAppTemplateHistoryEvent {
177
- version: number;
183
+ id: string;
184
+ templateVersionId: string;
185
+ eventName: string;
186
+ reason: string | null;
187
+ createdAt: string;
188
+ [key: string]: unknown;
189
+ }
190
+ /**
191
+ * A single template version within the history response, carrying its own
192
+ * ordered list of status events.
193
+ */
194
+ interface WhatsAppTemplateHistoryVersion {
195
+ id: string;
196
+ templateId: string;
197
+ versionNumber: number;
198
+ language: string;
199
+ category: string;
200
+ body: string;
178
201
  status: string;
202
+ sendability: string;
203
+ placeholderSnapshot: unknown;
204
+ supersedesVersionId: string | null;
205
+ providerTemplateId: string | null;
206
+ submittedAt: string | null;
207
+ createdAt: string;
208
+ updatedAt: string;
209
+ statusEvents: WhatsAppTemplateHistoryEvent[];
210
+ [key: string]: unknown;
211
+ }
212
+ /**
213
+ * The full history for a single WhatsApp template, as returned by
214
+ * `whatsapp.history`. This is a single OBJECT (not an array): template-level
215
+ * fields plus a `versions` array ordered by `versionNumber` ascending, each
216
+ * version carrying its own `statusEvents`. The "current" version is the one
217
+ * with the highest `versionNumber`.
218
+ */
219
+ interface WhatsAppTemplateHistory {
220
+ id: string;
221
+ whatsAppBusinessAccountId: string;
222
+ name: string;
223
+ createdAt: string;
179
224
  updatedAt: string;
225
+ versions: WhatsAppTemplateHistoryVersion[];
180
226
  [key: string]: unknown;
181
227
  }
182
228
  /** A WhatsApp template item returned by the API. */
@@ -187,23 +233,67 @@ interface WhatsAppTemplateItem {
187
233
  status?: string;
188
234
  [key: string]: unknown;
189
235
  }
236
+ /**
237
+ * A single WhatsApp template together with its current (latest) version, as
238
+ * returned by `whatsapp.getById`. Unlike the flat list item, language/status
239
+ * and other version-scoped fields live under `currentVersion` — reading them at
240
+ * the top level would be `undefined` at runtime.
241
+ */
242
+ interface WhatsAppTemplateDetail {
243
+ id: string;
244
+ whatsAppBusinessAccountId: string;
245
+ name: string;
246
+ createdAt: string;
247
+ updatedAt: string;
248
+ currentVersion: {
249
+ versionNumber: number;
250
+ language: string;
251
+ category?: string;
252
+ body?: string;
253
+ status: string;
254
+ [key: string]: unknown;
255
+ };
256
+ [key: string]: unknown;
257
+ }
258
+ /** Pagination + filter options for the WhatsApp templates list. */
259
+ interface WhatsAppTemplateListOpts {
260
+ /** Narrow to templates whose current version has this status (e.g. "APPROVED"). */
261
+ status?: string;
262
+ /** Case-insensitive contains-match on template name. */
263
+ q?: string;
264
+ page: number;
265
+ pageSize: number;
266
+ }
267
+ /** A single template upserted by an import-approved call. */
268
+ interface ImportedTemplateResult {
269
+ name: string;
270
+ language: string;
271
+ category: string;
272
+ version: Omit<WhatsAppTemplateHistoryVersion, 'statusEvents'>;
273
+ created: boolean;
274
+ }
190
275
  /** Import-approved result. */
191
276
  interface ImportApprovedResult {
192
- imported: number;
193
- [key: string]: unknown;
277
+ imported: ImportedTemplateResult[];
194
278
  }
195
279
  /** Submit result. */
196
280
  interface SubmitResult {
197
281
  status: string;
198
282
  [key: string]: unknown;
199
283
  }
200
- /** Input for creating an Email template. */
284
+ /**
285
+ * Input for creating an Email template.
286
+ *
287
+ * `variableSchema` is a name→sample-value map (variable name → default/sample
288
+ * value). Preview substitutes those values; the API contract stores the same
289
+ * shape.
290
+ */
201
291
  interface CreateEmailTemplateInput {
202
292
  name: string;
203
293
  subject: string;
204
294
  htmlBody?: string;
205
295
  textBody?: string;
206
- variableSchema?: Record<string, unknown>;
296
+ variableSchema?: Record<string, string>;
207
297
  [key: string]: unknown;
208
298
  }
209
299
  /** Input for partially updating an Email template. */
@@ -212,7 +302,7 @@ interface PatchEmailTemplateInput {
212
302
  subject?: string;
213
303
  htmlBody?: string;
214
304
  textBody?: string;
215
- variableSchema?: Record<string, unknown>;
305
+ variableSchema?: Record<string, string>;
216
306
  [key: string]: unknown;
217
307
  }
218
308
  /** An Email template item returned by the API. */
@@ -222,7 +312,7 @@ interface EmailTemplateItem {
222
312
  subject: string;
223
313
  htmlBody?: string;
224
314
  textBody?: string;
225
- variableSchema?: Record<string, unknown>;
315
+ variableSchema?: Record<string, string>;
226
316
  [key: string]: unknown;
227
317
  }
228
318
  /** Paginated list response. */
@@ -239,6 +329,8 @@ interface TemplatesPagedList<T> {
239
329
  interface EmailTemplateListOpts {
240
330
  page: number;
241
331
  pageSize: number;
332
+ /** Case-insensitive contains-match on template name. */
333
+ q?: string;
242
334
  [key: string]: unknown;
243
335
  }
244
336
  /**
@@ -250,6 +342,18 @@ declare function createTemplatesModule(options: TemplatesModuleOptions): {
250
342
  * WhatsApp template submodule — WABA-scoped operations.
251
343
  */
252
344
  whatsapp: {
345
+ /**
346
+ * List a WhatsApp Business Account's templates (paginated, optionally status-filtered and name-searchable).
347
+ * Calls GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates.
348
+ */
349
+ list(tenantId: string, wabaId: string, opts: WhatsAppTemplateListOpts): Promise<TemplatesPagedList<WhatsAppTemplateItem>>;
350
+ /**
351
+ * Get a single template together with its current (latest) version.
352
+ * Language/status and other version-scoped fields are nested under
353
+ * `currentVersion` — not at the top level (see WhatsAppTemplateDetail).
354
+ * Calls GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates/:templateId.
355
+ */
356
+ getById(tenantId: string, wabaId: string, templateId: string): Promise<WhatsAppTemplateDetail>;
253
357
  /**
254
358
  * Author a new DRAFT template (version 1) under a WhatsApp Business Account.
255
359
  * Calls POST /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates.
@@ -266,10 +370,14 @@ declare function createTemplatesModule(options: TemplatesModuleOptions): {
266
370
  */
267
371
  update(tenantId: string, wabaId: string, templateId: string, input: UpdateWhatsAppTemplateInput): Promise<WhatsAppTemplateItem>;
268
372
  /**
269
- * List all versions and status events for a template in chronological order.
373
+ * Get the full version + status-event history for a template.
374
+ *
375
+ * Returns a single OBJECT (see WhatsAppTemplateHistory) — template-level
376
+ * fields plus a `versions` array ordered by versionNumber ascending, each
377
+ * version carrying its own `statusEvents`. NOT a flat array of events.
270
378
  * Calls GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates/:templateId/history.
271
379
  */
272
- history(tenantId: string, wabaId: string, templateId: string): Promise<WhatsAppTemplateHistoryEvent[]>;
380
+ history(tenantId: string, wabaId: string, templateId: string): Promise<WhatsAppTemplateHistory>;
273
381
  /**
274
382
  * Submit a DRAFT template version to Meta for review and approval (DRAFT → PENDING_APPROVAL).
275
383
  * Calls POST /api/v1/tenants/:id/whatsapp-business-accounts/:wabaId/templates/:templateId/submit.
@@ -469,6 +577,11 @@ interface LobbyEntry {
469
577
  id: string;
470
578
  [key: string]: unknown;
471
579
  }
580
+ /** Result of picking up a lobby entry — the created/reused conversation + entry ids. */
581
+ interface PickupResult {
582
+ conversationId: string;
583
+ entryId: string;
584
+ }
472
585
  /** Paginated list response. */
473
586
  interface PagedList$3<T> {
474
587
  data: T[];
@@ -543,12 +656,10 @@ declare function createConversationsModule(options: ConversationsModuleOptions):
543
656
  get(id: string): Promise<ConversationItem>;
544
657
  /**
545
658
  * Pick up a lobby entry (atomic 4-step transaction).
546
- * Returns the resulting conversation.
659
+ * Returns the resulting conversation + entry ids.
547
660
  * Calls POST /api/v1/conversations/lobby/:entryId/pickup.
548
661
  */
549
- pickup(entryId: string, input: PickupInput): Promise<{
550
- data: ConversationItem;
551
- }>;
662
+ pickup(entryId: string, input: PickupInput): Promise<PickupResult>;
552
663
  /**
553
664
  * List APPROVED + SENDABLE WhatsApp templates eligible to re-open an
554
665
  * expired 24-hour customer-service window for the given conversation.
@@ -842,24 +953,20 @@ interface CreateApiKeyInput {
842
953
  }
843
954
  /** Response from tenants.apiKeys.create() — includes raw key shown once. */
844
955
  interface CreateApiKeyResponse {
845
- data: {
846
- id: string;
847
- label: string;
848
- prefix: string;
849
- scopes: string[];
850
- status: 'ACTIVE' | 'REVOKED';
851
- lastUsedAt: string | null;
852
- createdAt: string;
853
- /** Raw key value — shown once and never again. */
854
- raw: string;
855
- };
956
+ id: string;
957
+ label: string;
958
+ prefix: string;
959
+ scopes: string[];
960
+ status: 'ACTIVE' | 'REVOKED';
961
+ lastUsedAt: string | null;
962
+ createdAt: string;
963
+ /** Raw key value — shown once and never again. */
964
+ raw: string;
856
965
  }
857
966
  /** Response from tenants.apiKeys.revoke(). */
858
967
  interface RevokeApiKeyResponse {
859
- data: {
860
- id: string;
861
- status: 'REVOKED';
862
- };
968
+ id: string;
969
+ status: 'REVOKED';
863
970
  }
864
971
  /** Paginated list response. */
865
972
  interface PagedList<T> {
@@ -1173,9 +1280,7 @@ declare function createOmnivoxClient(options: OmnivoxClientOptions): {
1173
1280
  assign(id: string, input: AssignInput): Promise<ConversationItem>;
1174
1281
  listLobby(opts?: LobbyListOpts): Promise<PagedList$3<LobbyEntry>>;
1175
1282
  get(id: string): Promise<ConversationItem>;
1176
- pickup(entryId: string, input: PickupInput): Promise<{
1177
- data: ConversationItem;
1178
- }>;
1283
+ pickup(entryId: string, input: PickupInput): Promise<PickupResult>;
1179
1284
  whatsappRecoveryOptions(id: string): Promise<WhatsAppRecoveryOption[]>;
1180
1285
  };
1181
1286
  messages: {
@@ -1187,10 +1292,12 @@ declare function createOmnivoxClient(options: OmnivoxClientOptions): {
1187
1292
  };
1188
1293
  templates: {
1189
1294
  whatsapp: {
1295
+ list(tenantId: string, wabaId: string, opts: WhatsAppTemplateListOpts): Promise<TemplatesPagedList<WhatsAppTemplateItem>>;
1296
+ getById(tenantId: string, wabaId: string, templateId: string): Promise<WhatsAppTemplateDetail>;
1190
1297
  authorDraft(tenantId: string, wabaId: string, input: AuthorDraftInput): Promise<WhatsAppTemplateItem>;
1191
1298
  importApproved(tenantId: string, wabaId: string): Promise<ImportApprovedResult>;
1192
1299
  update(tenantId: string, wabaId: string, templateId: string, input: UpdateWhatsAppTemplateInput): Promise<WhatsAppTemplateItem>;
1193
- history(tenantId: string, wabaId: string, templateId: string): Promise<WhatsAppTemplateHistoryEvent[]>;
1300
+ history(tenantId: string, wabaId: string, templateId: string): Promise<WhatsAppTemplateHistory>;
1194
1301
  submit(tenantId: string, wabaId: string, templateId: string): Promise<SubmitResult>;
1195
1302
  };
1196
1303
  email: {
@@ -1215,6 +1322,10 @@ declare function createOmnivoxClient(options: OmnivoxClientOptions): {
1215
1322
  whatsappBusinessAccounts: {
1216
1323
  list(tenantId: string): Promise<WhatsAppBusinessAccountItem[]>;
1217
1324
  get(tenantId: string, wabaRowId: string): Promise<WhatsAppBusinessAccountItem>;
1325
+ create(tenantId: string, body: CreateWhatsAppBusinessAccountBody): Promise<WhatsAppBusinessAccountItem>;
1326
+ update(tenantId: string, wabaRowId: string, body: {
1327
+ name: string;
1328
+ }): Promise<WhatsAppBusinessAccountItem>;
1218
1329
  };
1219
1330
  /**
1220
1331
  * Creates a WebSocket client connected to the `/ws/chat` namespace.
@@ -1574,12 +1685,15 @@ type AttachmentsModule = ReturnType<typeof createAttachmentsModule>;
1574
1685
  /**
1575
1686
  * WhatsApp Business Accounts module — hand-written typed wrapper over the generated client.
1576
1687
  *
1577
- * Exposes the WABA read surface (WABA-as-identity, tenant-scoped):
1578
- * - list(tenantId) → GET /api/v1/tenants/:id/whatsapp-business-accounts
1579
- * - get(tenantId, wabaRowId) → GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaRowId
1688
+ * Exposes the WABA surface (WABA-as-identity, tenant-scoped):
1689
+ * - list(tenantId) → GET /api/v1/tenants/:id/whatsapp-business-accounts
1690
+ * - get(tenantId, wabaRowId) → GET /api/v1/tenants/:id/whatsapp-business-accounts/:wabaRowId
1691
+ * - create(tenantId, body) → POST /api/v1/tenants/:id/whatsapp-business-accounts
1692
+ * - update(tenantId, wabaRowId, body) → PATCH /api/v1/tenants/:id/whatsapp-business-accounts/:wabaRowId
1580
1693
  *
1581
- * The Console's WhatsApp templates page uses this to let an admin pick a WABA
1694
+ * The Console's WhatsApp templates page uses list/get to let an admin pick a WABA
1582
1695
  * before authoring templates (`sdk.templates.whatsapp.*` requires a `wabaId`).
1696
+ * The Console's Channels screen uses create/update to onboard and rename a WABA.
1583
1697
  *
1584
1698
  * Never re-exports symbols from _generated/.
1585
1699
  * Contains no business logic — typed transport only.
@@ -1606,9 +1720,24 @@ interface WhatsAppBusinessAccountItem {
1606
1720
  /** ISO 8601 last-updated timestamp. */
1607
1721
  updatedAt: string;
1608
1722
  }
1723
+ /**
1724
+ * POST body to create a WhatsApp Business Account.
1725
+ * Mirrors `apps/api/src/channels/schemas/save-waba.schema.ts` `CreateWabaSchema`.
1726
+ * The `secret` block is written to the SecretsProvider and never echoed back
1727
+ * (ADR-0011) — the response is a {@link WhatsAppBusinessAccountItem}.
1728
+ */
1729
+ interface CreateWhatsAppBusinessAccountBody {
1730
+ wabaId: string;
1731
+ name: string;
1732
+ secret: {
1733
+ accessToken: string;
1734
+ appSecret: string;
1735
+ webhookVerifyToken: string;
1736
+ };
1737
+ }
1609
1738
  /**
1610
1739
  * Creates the WhatsApp Business Accounts module — a thin typed wrapper over
1611
- * the generated client. Covers the WABA read surface (list + get by row id).
1740
+ * the generated client. Covers the WABA surface (list/get/create/update).
1612
1741
  */
1613
1742
  declare function createWhatsAppBusinessAccountsModule(options: WhatsAppBusinessAccountsModuleOptions): {
1614
1743
  /**
@@ -1630,8 +1759,35 @@ declare function createWhatsAppBusinessAccountsModule(options: WhatsAppBusinessA
1630
1759
  * const waba = await sdk.whatsappBusinessAccounts.get('ten_acmecorp', 'waba_row_001')
1631
1760
  */
1632
1761
  get(tenantId: string, wabaRowId: string): Promise<WhatsAppBusinessAccountItem>;
1762
+ /**
1763
+ * Create a WhatsApp Business Account — writes the secret to the
1764
+ * SecretsProvider and the non-secret row to the DB; returns the
1765
+ * non-secret view (no `secretRef` exposed).
1766
+ * Calls POST /api/v1/tenants/:id/whatsapp-business-accounts.
1767
+ *
1768
+ * @example
1769
+ * const waba = await sdk.whatsappBusinessAccounts.create('ten_acmecorp', {
1770
+ * wabaId: '123456789012345',
1771
+ * name: 'Acme WhatsApp',
1772
+ * secret: { accessToken, appSecret, webhookVerifyToken },
1773
+ * })
1774
+ */
1775
+ create(tenantId: string, body: CreateWhatsAppBusinessAccountBody): Promise<WhatsAppBusinessAccountItem>;
1776
+ /**
1777
+ * Rename a WhatsApp Business Account (name only — secret material is
1778
+ * immutable through this endpoint).
1779
+ * Calls PATCH /api/v1/tenants/:id/whatsapp-business-accounts/:wabaRowId.
1780
+ *
1781
+ * @example
1782
+ * await sdk.whatsappBusinessAccounts.update('ten_acmecorp', 'waba_row_001', {
1783
+ * name: 'Renamed WhatsApp',
1784
+ * })
1785
+ */
1786
+ update(tenantId: string, wabaRowId: string, body: {
1787
+ name: string;
1788
+ }): Promise<WhatsAppBusinessAccountItem>;
1633
1789
  };
1634
1790
  /** Return type of createWhatsAppBusinessAccountsModule. */
1635
1791
  type WhatsAppBusinessAccountsModule = ReturnType<typeof createWhatsAppBusinessAccountsModule>;
1636
1792
 
1637
- export { type AddIdentityInput, type AgentItem, type AgentsModule, type AgentsModuleOptions, type ApiKeyItem, type AssignInput, type AttachmentUploadResult, type AttachmentUrlResult, type AttachmentsModule, type AttachmentsModuleOptions, type AuthMeAgent, type AuthMeModule, type AuthMeModuleOptions, type AuthMeResponse, type AuthMeTenant, type AuthorDraftInput, type BasicEmailChannelConfig, type BasicEmailChannelSecret, type CannedResponseItem, type CannedResponseListOpts, type CannedResponseSearchOpts, type CannedResponsesModule, type CannedResponsesModuleOptions, type Channel, type ChannelListItem, type ChannelStatus, type ChannelType, type ChannelsModule, type ChannelsModuleOptions, type ContactChannel, type ContactConversationSummary, type ContactFieldDefinition, type ContactFieldValue, type ContactFieldValueInput, type ContactIdentity, type ContactIdentityInput, type ContactItem, type ContactSearchOpts, type ContactTag, type ContactsMetadata, type ContactsModule, type ContactsModuleOptions, type ConversationItem, type ConversationListOpts, type ConversationsModule, type ConversationsModuleOptions, type CreateAgentInput, type CreateApiKeyInput, type CreateApiKeyResponse, type CreateCannedResponseInput, type CreateChannelBody, type CreateContactInput, type CreateEmailChannelBody, type CreateEmailTemplateInput, type CreateWhatsAppChannelBody, type CredentialsMode, type EmailChannelConfig, type EmailChannelSecret, type EmailImapConfig, type EmailSmtpConfig, type EmailTemplateItem, type EmailTemplateListOpts, type ImportApprovedResult, type LobbyEntry, type LobbyListOpts, type MessageItem, type MessageListOpts, type MessageReadUpdatePayload, type MessageStatusPayload, type MessagesModule, type MessagesModuleOptions, type OAuth2CertificateEmailChannelSecret, type OAuth2ClientSecretEmailChannelSecret, type OAuth2EmailChannelConfig, type OAuth2EmailChannelSecret, type OmnivoxClient, type OmnivoxClientOptions, OmnivoxRequestError, type PageOpts, type PageParams, type PagedResponse, type ParticipantPayload, type PatchContactInput, type PatchEmailTemplateInput, type PickupInput, type ReopenOrCreateInput, type RevokeApiKeyResponse, type SendMessageInput, type SendTemplateInput, type SubmitResult, type TemplatesModule, type TemplatesModuleOptions, type TenantsModule, type TenantsModuleOptions, type TokenProvider, type TypingIndicatorPayload, type UpdateCannedResponseInput, type UpdateChannelBody, type UpdateStatusInput, type UpdateWhatsAppTemplateInput, type WhatsAppBusinessAccountItem, type WhatsAppBusinessAccountsModule, type WhatsAppBusinessAccountsModuleOptions, type WhatsAppChannelConfig, type WhatsAppRecoveryOption, type WhatsAppTemplateHistoryEvent, type WhatsAppTemplateItem, type WsAuth, type WsClient, type WsClientInstance, type WsClientOptions, type WsConnectionState, type WsEventPayloads, buildPageParams, createAgentsModule, createApiKeyTokenProvider, createAttachmentsModule, createAuthMeModule, createCannedResponsesModule, createChannelsModule, createContactsModule, createConversationsModule, createMessagesModule, createOmnivoxClient, createSessionTokenProvider, createTemplatesModule, createTenantsModule, createWhatsAppBusinessAccountsModule, createWsClient, iteratePages };
1793
+ export { type AddIdentityInput, type AgentItem, type AgentsModule, type AgentsModuleOptions, type ApiKeyItem, type AssignInput, type AttachmentUploadResult, type AttachmentUrlResult, type AttachmentsModule, type AttachmentsModuleOptions, type AuthMeAgent, type AuthMeModule, type AuthMeModuleOptions, type AuthMeResponse, type AuthMeTenant, type AuthorDraftInput, type BasicEmailChannelConfig, type BasicEmailChannelSecret, type CannedResponseItem, type CannedResponseListOpts, type CannedResponseSearchOpts, type CannedResponsesModule, type CannedResponsesModuleOptions, type Channel, type ChannelListItem, type ChannelStatus, type ChannelType, type ChannelsModule, type ChannelsModuleOptions, type ContactChannel, type ContactConversationSummary, type ContactFieldDefinition, type ContactFieldValue, type ContactFieldValueInput, type ContactIdentity, type ContactIdentityInput, type ContactItem, type ContactSearchOpts, type ContactTag, type ContactsMetadata, type ContactsModule, type ContactsModuleOptions, type ConversationItem, type ConversationListOpts, type ConversationsModule, type ConversationsModuleOptions, type CreateAgentInput, type CreateApiKeyInput, type CreateApiKeyResponse, type CreateCannedResponseInput, type CreateChannelBody, type CreateContactInput, type CreateEmailChannelBody, type CreateEmailTemplateInput, type CreateWhatsAppBusinessAccountBody, type CreateWhatsAppChannelBody, type CredentialsMode, type EmailChannelConfig, type EmailChannelSecret, type EmailImapConfig, type EmailSmtpConfig, type EmailTemplateItem, type EmailTemplateListOpts, type ImportApprovedResult, type ImportedTemplateResult, type LobbyEntry, type LobbyListOpts, type MessageItem, type MessageListOpts, type MessageReadUpdatePayload, type MessageStatusPayload, type MessagesModule, type MessagesModuleOptions, type OAuth2CertificateEmailChannelSecret, type OAuth2ClientSecretEmailChannelSecret, type OAuth2EmailChannelConfig, type OAuth2EmailChannelSecret, type OmnivoxClient, type OmnivoxClientOptions, OmnivoxRequestError, type PageOpts, type PageParams, type PagedResponse, type ParticipantPayload, type PatchContactInput, type PatchEmailTemplateInput, type PickupInput, type ReopenOrCreateInput, type RevokeApiKeyResponse, type SendMessageInput, type SendTemplateInput, type SubmitResult, type TemplatesModule, type TemplatesModuleOptions, type TenantsModule, type TenantsModuleOptions, type TokenProvider, type TypingIndicatorPayload, type UpdateCannedResponseInput, type UpdateChannelBody, type UpdateStatusInput, type UpdateWhatsAppTemplateInput, type WhatsAppBusinessAccountItem, type WhatsAppBusinessAccountsModule, type WhatsAppBusinessAccountsModuleOptions, type WhatsAppChannelConfig, type WhatsAppRecoveryOption, type WhatsAppTemplateDetail, type WhatsAppTemplateHistory, type WhatsAppTemplateHistoryEvent, type WhatsAppTemplateHistoryVersion, type WhatsAppTemplateItem, type WhatsAppTemplateListOpts, type WsAuth, type WsClient, type WsClientInstance, type WsClientOptions, type WsConnectionState, type WsEventPayloads, buildPageParams, createAgentsModule, createApiKeyTokenProvider, createAttachmentsModule, createAuthMeModule, createCannedResponsesModule, createChannelsModule, createContactsModule, createConversationsModule, createMessagesModule, createOmnivoxClient, createSessionTokenProvider, createTemplatesModule, createTenantsModule, createWhatsAppBusinessAccountsModule, createWsClient, iteratePages };