@messagebird/sdk 0.37.3 → 0.38.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.mts CHANGED
@@ -352,6 +352,12 @@ type WebhookEvent = ({
352
352
  } & EventEmailMailboxThreadCreated) | ({
353
353
  type: "email_suppression.created";
354
354
  } & EventEmailSuppressionCreated) | ({
355
+ type: "preference.deleted";
356
+ } & EventPreferenceDeleted) | ({
357
+ type: "preference.granted";
358
+ } & EventPreferenceGranted) | ({
359
+ type: "preference.revoked";
360
+ } & EventPreferenceRevoked) | ({
355
361
  type: "sms.accepted";
356
362
  } & EventSmsAccepted) | ({
357
363
  type: "sms.delivered";
@@ -401,7 +407,9 @@ type WebhookEvent = ({
401
407
  type: "whatsapp.rejected";
402
408
  } & EventWhatsAppRejected) | ({
403
409
  type: "whatsapp.sent";
404
- } & EventWhatsAppSent);
410
+ } & EventWhatsAppSent) | ({
411
+ type: "whatsapp_suppression.created";
412
+ } & EventWhatsAppSuppressionCreated);
405
413
  type NextAction$1 = {
406
414
  /**
407
415
  * What you do about this step.
@@ -1288,6 +1296,111 @@ type Audience = {
1288
1296
  */
1289
1297
  type: "static";
1290
1298
  } & Timestamps;
1299
+ type PreferenceId = string;
1300
+ /**
1301
+ * The channel a preference statement applies to. A preference addresses one channel: the handle that identifies the person differs per channel, so opting out of one channel says nothing about the others. New channels can be added over time, so a value outside this list can be returned.
1302
+ */
1303
+ type PreferenceChannel$1 = "email" | "sms" | "whatsapp" | (string & {});
1304
+ /**
1305
+ * What the statement says: `granted` records consent to receive messages, `revoked` records an opt-out. There is no third state: a person who never stated anything simply has no preference on record.
1306
+ */
1307
+ type PreferenceStatus = "granted" | "revoked";
1308
+ /**
1309
+ * How much traffic the statement covers. `non_transactional` covers marketing and other non-essential messages while transactional messages such as receipts and verification codes keep flowing; `all` covers every message including transactional ones.
1310
+ */
1311
+ type PreferenceCoverage = "all" | "non_transactional";
1312
+ /**
1313
+ * How the statement was made. Statements the person made themselves (`unsubscribe_link`, `unsubscribe_event`, `keyword`, `preference_page`) carry more weight than ones asserted on their behalf (`api_key`, `user`, `import`): a person's own opt-out cannot be overridden or deleted through this API. New origins can be added over time, so a value outside this list can be returned.
1314
+ */
1315
+ type PreferenceOrigin$1 = "unsubscribe_link" | "unsubscribe_event" | "keyword" | "preference_page" | "api_key" | "user" | "import" | (string & {});
1316
+ /**
1317
+ * One person's current stated preference for one channel: whether they have consented to or opted out of receiving messages at a handle, and how much traffic the statement covers. A key holds one current statement (a newer statement replaces it, an older one is refused), and the full history behind the current state is kept internally. `sender_scope` and `topic_id` are part of the key: a preference with both null applies channel-wide.
1318
+ *
1319
+ */
1320
+ type Preference = {
1321
+ readonly id: PreferenceId;
1322
+ readonly channel: PreferenceChannel$1;
1323
+ /**
1324
+ * Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
1325
+ */
1326
+ readonly handle: string;
1327
+ /**
1328
+ * The sender the statement is limited to, or null when it covers the whole channel. On SMS this is the originator the person replied to; on WhatsApp it identifies the business account that messaged them. Email preferences are always channel-wide, so it is always null there.
1329
+ */
1330
+ readonly sender_scope: string | null;
1331
+ /**
1332
+ * The topic the statement is limited to, or null when it covers every topic. Part of the key that identifies a statement, alongside `sender_scope`.
1333
+ */
1334
+ readonly topic_id: string | null;
1335
+ readonly status: PreferenceStatus;
1336
+ readonly coverage: PreferenceCoverage;
1337
+ /**
1338
+ * When the statement was made, as reported by whoever made it. This is what orders one key's statements: a write dated before this moment is refused rather than applied.
1339
+ */
1340
+ readonly effective_at: string;
1341
+ readonly origin: PreferenceOrigin$1;
1342
+ /**
1343
+ * Free-form note on where the statement came from, as supplied when it was recorded: a form name, an import batch, a campaign. Null when none was given.
1344
+ */
1345
+ readonly source?: string | null;
1346
+ /**
1347
+ * When the person consented, as evidenced by whoever asserted the grant. Null on statements that carry no consent evidence, including every opt-out.
1348
+ */
1349
+ readonly consented_at?: string | null;
1350
+ /**
1351
+ * The contact whose handle matched when the statement was recorded. Null when no contact matched at that moment; it is not updated when contacts change later.
1352
+ */
1353
+ readonly contact_id?: ContactId | null;
1354
+ } & Timestamps;
1355
+ type PreferenceStatement = {
1356
+ channel: PreferenceChannel$1;
1357
+ status: PreferenceStatus;
1358
+ /**
1359
+ * How much traffic the statement covers. Defaults to `non_transactional`, which keeps transactional messages such as receipts and verification codes flowing.
1360
+ */
1361
+ coverage?: PreferenceCoverage;
1362
+ /**
1363
+ * Limit the statement to one sender instead of the whole channel. On SMS this is the originator; on WhatsApp it identifies the business account. Not supported on email, where preferences are always channel-wide.
1364
+ */
1365
+ sender_scope?: string;
1366
+ /**
1367
+ * Free-form note on where the statement came from: a form name, an import batch, a campaign. Stored verbatim and returned on the preference.
1368
+ */
1369
+ source?: string;
1370
+ /**
1371
+ * When the person consented, on a `granted` statement. Required evidence when granting over a stored opt-out: the grant applies only if this is later than the opt-out it reverses. May not be in the future.
1372
+ */
1373
+ consented_at?: string;
1374
+ };
1375
+ /**
1376
+ * Records one preference statement for a handle. Writing is an upsert by key (channel, handle, sender scope, and topic), and statements are causally ordered: a statement dated older than the key's current one is refused and returned with `applied: false` rather than applied out of order.
1377
+ *
1378
+ */
1379
+ type PreferenceCreate = {
1380
+ /**
1381
+ * Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
1382
+ */
1383
+ handle: string;
1384
+ } & PreferenceStatement;
1385
+ type PreferenceTransitionId = string;
1386
+ /**
1387
+ * The outcome of one preference write or delete. `applied: true` means the request took effect: either it changed the record, or an identical statement already had. `applied: false` means it was refused as older than the key's current statement; `preference` then carries the statement that survived, and `transition_id` identifies the refusal on the key's record.
1388
+ *
1389
+ */
1390
+ type PreferenceWriteResult = {
1391
+ /**
1392
+ * Whether the request took effect. False only when it was refused as out of order; the surviving, newer statement is returned in `preference`.
1393
+ */
1394
+ readonly applied: boolean;
1395
+ /**
1396
+ * Identifies this write on the key's record, for applied and refused requests alike. Null when the write was a repeat of the current statement and recorded nothing new.
1397
+ */
1398
+ readonly transition_id: PreferenceTransitionId | null;
1399
+ /**
1400
+ * The key's surviving statement. Null after an applied delete, when the key is back to having no record.
1401
+ */
1402
+ readonly preference: Preference | null;
1403
+ };
1291
1404
  type ContactPropertyId = string;
1292
1405
  /**
1293
1406
  * The value type every contact must use for a property. Cannot be changed after creation.
@@ -4089,6 +4202,7 @@ type WhatsAppEventList = {
4089
4202
  data: Array<WhatsAppEvent>;
4090
4203
  };
4091
4204
  type NumbersDedicatedAllocationId = string;
4205
+ type WhatsAppSuppressionId = string;
4092
4206
  /**
4093
4207
  * The window and bucket grain the response covers, echoed from the request, plus the freshness boundary the data is current to.
4094
4208
  *
@@ -7115,6 +7229,94 @@ type EventEmailSuppressionCreated = {
7115
7229
  timestamp: string;
7116
7230
  data: EventEmailSuppressionCreatedData;
7117
7231
  };
7232
+ /**
7233
+ * Always `preference.deleted` for this event.
7234
+ */
7235
+ type PreferenceDeletedEventType = "preference.deleted";
7236
+ /**
7237
+ * Identity fields shared by every preference lifecycle event: the key plus the ledger entry the write appended. `effective_at` is not repeated here: it is the envelope `timestamp`.
7238
+ */
7239
+ type EventPreferenceBase = {
7240
+ /**
7241
+ * The preference key this write applied to.
7242
+ */
7243
+ preference_id: PreferenceId;
7244
+ /**
7245
+ * The ledger entry this write appended.
7246
+ */
7247
+ transition_id: PreferenceTransitionId;
7248
+ channel: PreferenceChannel$1;
7249
+ /**
7250
+ * Who the statement is about: an email address on the email channel, a phone number in E.164 format on SMS and WhatsApp.
7251
+ */
7252
+ handle: string;
7253
+ /**
7254
+ * The sender the statement is limited to, or null when it covers the whole channel. Present-with-null on every payload of this type: it is part of the key alongside `topic_id`, and pinning its presence keeps a subscriber from ever learning `(handle, channel)` as the unique key.
7255
+ */
7256
+ sender_scope: string | null;
7257
+ /**
7258
+ * The topic the statement is limited to, or null when it covers every topic. Reserved: always null in v1. Present-with-null for the same reason as `sender_scope`.
7259
+ */
7260
+ topic_id: string | null;
7261
+ coverage: PreferenceCoverage;
7262
+ /**
7263
+ * The contact whose handle matched when the statement was recorded. Null when no contact matched at that moment.
7264
+ */
7265
+ contact_id: ContactId | null;
7266
+ };
7267
+ /**
7268
+ * Payload of the preference.deleted event.
7269
+ */
7270
+ type EventPreferenceDeletedData = EventPreferenceBase;
7271
+ /**
7272
+ * A stated preference was deleted, superseding it in the ledger without erasing its history.
7273
+ */
7274
+ type EventPreferenceDeleted = {
7275
+ type: PreferenceDeletedEventType;
7276
+ /**
7277
+ * When the delete took effect (`effective_at`), not when it was recorded.
7278
+ */
7279
+ timestamp: string;
7280
+ data: EventPreferenceDeletedData;
7281
+ };
7282
+ /**
7283
+ * Always `preference.granted` for this event.
7284
+ */
7285
+ type PreferenceGrantedEventType = "preference.granted";
7286
+ /**
7287
+ * Payload of the preference.granted event.
7288
+ */
7289
+ type EventPreferenceGrantedData = EventPreferenceBase;
7290
+ /**
7291
+ * A stated preference was granted (a person consented, or a customer wrote a grant) and became the key's live statement.
7292
+ */
7293
+ type EventPreferenceGranted = {
7294
+ type: PreferenceGrantedEventType;
7295
+ /**
7296
+ * When the statement took effect (`effective_at`), not when it was recorded.
7297
+ */
7298
+ timestamp: string;
7299
+ data: EventPreferenceGrantedData;
7300
+ };
7301
+ /**
7302
+ * Always `preference.revoked` for this event.
7303
+ */
7304
+ type PreferenceRevokedEventType = "preference.revoked";
7305
+ /**
7306
+ * Payload of the preference.revoked event.
7307
+ */
7308
+ type EventPreferenceRevokedData = EventPreferenceBase;
7309
+ /**
7310
+ * A stated preference was revoked (a person opted out, or a customer wrote a revoke) and became the key's live statement.
7311
+ */
7312
+ type EventPreferenceRevoked = {
7313
+ type: PreferenceRevokedEventType;
7314
+ /**
7315
+ * When the statement took effect (`effective_at`), not when it was recorded.
7316
+ */
7317
+ timestamp: string;
7318
+ data: EventPreferenceRevokedData;
7319
+ };
7118
7320
  /**
7119
7321
  * Identity fields shared by every SMS lifecycle event payload.
7120
7322
  */
@@ -7982,6 +8184,46 @@ type EventWhatsAppSent = {
7982
8184
  timestamp: string;
7983
8185
  data: EventWhatsAppSentData;
7984
8186
  };
8187
+ /**
8188
+ * Always `whatsapp_suppression.created` for this event.
8189
+ */
8190
+ type WhatsAppSuppressionCreatedEventType = "whatsapp_suppression.created";
8191
+ /**
8192
+ * Payload of the whatsapp_suppression.created event.
8193
+ */
8194
+ type EventWhatsAppSuppressionCreatedData = {
8195
+ /**
8196
+ * The suppression episode that was opened.
8197
+ */
8198
+ suppression_id: WhatsAppSuppressionId;
8199
+ /**
8200
+ * The suppressed WhatsApp address. For a phone number this is canonical E.164 with a leading plus sign, such as `+5511977670804`.
8201
+ */
8202
+ address: string;
8203
+ /**
8204
+ * The WhatsApp Business Account the suppression is limited to, identified by its WhatsApp-issued account ID, or null when it covers the whole workspace.
8205
+ */
8206
+ waba: string | null;
8207
+ /**
8208
+ * Why the address is suppressed. `manual` means it was added directly rather than created automatically from a delivery outcome. This list grows over time, so treat an unknown value as informational rather than rejecting the record.
8209
+ */
8210
+ reason: string;
8211
+ /**
8212
+ * The workspace the suppression belongs to.
8213
+ */
8214
+ workspace_id: WorkspaceId;
8215
+ };
8216
+ /**
8217
+ * An address was added to the workspace's WhatsApp suppression ledger.
8218
+ */
8219
+ type EventWhatsAppSuppressionCreated = {
8220
+ type: WhatsAppSuppressionCreatedEventType;
8221
+ /**
8222
+ * When the episode's opening statement took effect (`effective_at`).
8223
+ */
8224
+ timestamp: string;
8225
+ data: EventWhatsAppSuppressionCreatedData;
8226
+ };
7985
8227
  /**
7986
8228
  * Physical type of a phone number. New number types may be added over time, so treat unrecognized values as supported types rather than errors.
7987
8229
  */
@@ -8602,6 +8844,58 @@ type UpdateContactData = {
8602
8844
  query?: never;
8603
8845
  url: "/v1/contacts/{contact_id}";
8604
8846
  };
8847
+ type ListContactPreferencesData = {
8848
+ body?: never;
8849
+ path: {
8850
+ /**
8851
+ * ID of the contact.
8852
+ */
8853
+ contact_id: ContactId;
8854
+ };
8855
+ query?: {
8856
+ /**
8857
+ * Maximum number of items to return per page.
8858
+ */
8859
+ limit?: number;
8860
+ /**
8861
+ * Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
8862
+ */
8863
+ starting_after?: string;
8864
+ /**
8865
+ * Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
8866
+ */
8867
+ ending_before?: string;
8868
+ };
8869
+ url: "/v1/contacts/{contact_id}/preferences";
8870
+ };
8871
+ type ListPreferencesData = {
8872
+ body?: never;
8873
+ path?: never;
8874
+ query?: {
8875
+ /**
8876
+ * Return only preferences on this channel.
8877
+ */
8878
+ channel?: PreferenceChannel$1;
8879
+ /**
8880
+ * Return only preferences for this exact handle: an email address or an E.164 phone number. Requires `channel`, since a handle only means something on its channel.
8881
+ *
8882
+ */
8883
+ handle?: string;
8884
+ /**
8885
+ * Maximum number of items to return per page.
8886
+ */
8887
+ limit?: number;
8888
+ /**
8889
+ * Cursor from the `next_cursor` field of a previous list response. Returns items immediately after the cursor position in the current sort order.
8890
+ */
8891
+ starting_after?: string;
8892
+ /**
8893
+ * Cursor from the `prev_cursor` or `refresh_cursor` field of a previous list response. Returns items immediately before the cursor position in the current sort order. `prev_cursor` returns the preceding page. `refresh_cursor` anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
8894
+ */
8895
+ ending_before?: string;
8896
+ };
8897
+ url: "/v1/preferences";
8898
+ };
8605
8899
  type ListContactPropertiesData = {
8606
8900
  body?: never;
8607
8901
  path?: never;
@@ -12268,7 +12562,7 @@ type ContactListQuery = NonNullable<ListContactsData["query"]>;
12268
12562
  type ContactCreateParams = NonNullable<CreateContactData["body"]>;
12269
12563
  type ContactUpdateParams = NonNullable<UpdateContactData["body"]>;
12270
12564
  type ContactBatchParams = NonNullable<CreateContactBatchData["body"]>;
12271
- declare class ContactsResource extends Resource {
12565
+ declare class ContactsResourceBase extends Resource {
12272
12566
  /**
12273
12567
  * List the workspace's contacts as a cursor page, newest first. Look one up by exact email, phone_number, or external_id, repeating phone_number to resolve up to 50 numbers in one call (raise limit to match), or search by email, name, or phone substring. Pass include_total for a total count.
12274
12568
  *
@@ -12329,6 +12623,104 @@ declare class ContactsResource extends Resource {
12329
12623
  batch(params: ContactBatchParams, options?: RequestOptions): APIPromise<ContactUpsertResult>;
12330
12624
  }
12331
12625
  //#endregion
12626
+ //#region src/resources/contactsPreferences.gen.d.ts
12627
+ type ContactsPreferencesListQuery = NonNullable<ListContactPreferencesData["query"]>;
12628
+ declare class ContactsPreferencesResource extends Resource {
12629
+ /**
12630
+ * List the recorded messaging preferences for a contact's own handles (their email address and phone number) across every channel, as a cursor page.
12631
+ *
12632
+ * @example List a contact's own preferences
12633
+ * for await (const preference of bird.contacts.preferences.list(
12634
+ * "con_01krdgeqcxet5s7t44vh8rt9mg",
12635
+ * )) {
12636
+ * console.log(preference.channel, preference.status);
12637
+ * }
12638
+ */
12639
+ list(contactId: string, query?: ContactsPreferencesListQuery, options?: RequestOptions): PaginatedPromise<Preference>;
12640
+ }
12641
+ //#endregion
12642
+ //#region src/resources/contacts.d.ts
12643
+ declare class ContactsResource extends ContactsResourceBase {
12644
+ /** A contact's own preferences across every channel — `bird.contacts.preferences.list(contactId)`. */
12645
+ readonly preferences: ContactsPreferencesResource;
12646
+ constructor(core: ConstructorParameters<typeof Resource>[0], client: ConstructorParameters<typeof Resource>[1]);
12647
+ }
12648
+ //#endregion
12649
+ //#region src/resources/preferences.gen.d.ts
12650
+ type PreferencesListQuery = NonNullable<ListPreferencesData["query"]>;
12651
+ declare class PreferencesResourceBase extends Resource {
12652
+ /**
12653
+ * List the workspace's stated messaging preferences (consent grants and opt-outs) as a cursor page. Filter by channel, and by handle within a channel, to look up one person before messaging them.
12654
+ *
12655
+ * @example List stated preferences for a channel
12656
+ * for await (const preference of bird.preferences.list({ channel: "sms" })) {
12657
+ * console.log(preference.handle, preference.status);
12658
+ * }
12659
+ */
12660
+ list(query?: PreferencesListQuery, options?: RequestOptions): PaginatedPromise<Preference>;
12661
+ /**
12662
+ * Read one recorded preference by ID: the channel and handle it is about, whether it grants or revokes, how much traffic it covers, and where the statement came from.
12663
+ *
12664
+ * @example Read one preference
12665
+ * const preference = await bird.preferences.get(
12666
+ * "prf_01krdgeqcxet5s7t44vh8rt9mg",
12667
+ * );
12668
+ * console.log(preference.status, preference.coverage);
12669
+ */
12670
+ get(preferenceId: string, options?: RequestOptions): APIPromise<Preference>;
12671
+ }
12672
+ //#endregion
12673
+ //#region src/resources/preferences.d.ts
12674
+ /**
12675
+ * Body for `bird.preferences.create` — one statement for a handle on one
12676
+ * channel. Wire data is snake_case verbatim; `consented_at` is the one
12677
+ * relaxation, accepting a `Date` (serialized with `toISOString()`) alongside
12678
+ * the wire's RFC 3339 string.
12679
+ */
12680
+ type PreferenceCreateParams = Omit<PreferenceCreate, "consented_at"> & {
12681
+ /**
12682
+ * When the person consented, on a `granted` statement. Required evidence
12683
+ * when granting over a stored opt-out: the grant applies only if this is
12684
+ * later than the opt-out it reverses. May not be in the future.
12685
+ */
12686
+ consented_at?: Date | string;
12687
+ };
12688
+ declare class PreferencesResource extends PreferencesResourceBase {
12689
+ /**
12690
+ * Record one preference statement — a grant or an opt-out — for a handle on
12691
+ * one channel. Writing is an upsert by key (channel, handle, and optional
12692
+ * sender scope): statements are causally ordered, so one dated older than
12693
+ * the key's current statement is refused and returned with `applied:
12694
+ * false` rather than applied out of order. A `201` (the key had no record)
12695
+ * and a `200` (the key already had one) return the same shape either way.
12696
+ *
12697
+ * @example Record a stated opt-out
12698
+ * const result = await bird.preferences.create({
12699
+ * channel: "sms",
12700
+ * handle: "+15550001234",
12701
+ * status: "revoked",
12702
+ * });
12703
+ * console.log(result.applied, result.preference?.id);
12704
+ */
12705
+ create(params: PreferenceCreateParams, options?: RequestOptions): APIPromise<PreferenceWriteResult>;
12706
+ /**
12707
+ * Delete a preference, returning its key to having no record. Never void:
12708
+ * the delete is ordered like any statement, so a `200` with `applied:
12709
+ * false` means a newer statement survived and is returned in `preference`
12710
+ * rather than deleted. A statement the person made themselves — an
12711
+ * unsubscribe link, a stop keyword — cannot be deleted this way; record a
12712
+ * `granted` statement with `consented_at` evidence to restore messaging
12713
+ * instead.
12714
+ *
12715
+ * @example Delete a preference
12716
+ * const result = await bird.preferences.delete("prf_01krdgeqcxet5s7t44vh8rt9mg");
12717
+ * if (!result.applied) {
12718
+ * console.log("refused — a newer statement survived:", result.preference?.status);
12719
+ * }
12720
+ */
12721
+ delete(preferenceId: string, options?: RequestOptions): APIPromise<PreferenceWriteResult>;
12722
+ }
12723
+ //#endregion
12332
12724
  //#region src/resources/sms.gen.d.ts
12333
12725
  type SmsListQuery = NonNullable<ListSmsMessagesData["query"]>;
12334
12726
  type SmsListEventsQuery = NonNullable<ListSmsMessageEventsData["query"]>;
@@ -13276,6 +13668,8 @@ declare class BirdClient<const O extends BirdClientOptions = BirdClientOptions>
13276
13668
  readonly verify: VerifyResource;
13277
13669
  /** Contacts: `bird.contacts.create(...)`, `.list(...)`, `.get(...)`, `.batch(...)`, … */
13278
13670
  readonly contacts: ContactsResource;
13671
+ /** Preferences: `bird.preferences.list(...)`, `.get(...)`, `.create(...)`, `.delete(...)`. */
13672
+ readonly preferences: PreferencesResource;
13279
13673
  /** Audiences: `bird.audiences.create(...)`, `.list(...)`, `.addContacts(...)`, … */
13280
13674
  readonly audiences: AudiencesResource;
13281
13675
  /** Contact properties: `bird.contactProperties.create(...)`, `.list(...)`, `.archive(...)`, … */
@@ -13343,6 +13737,9 @@ declare const WebhookEventType: {
13343
13737
  readonly EmailScheduled: "email.scheduled";
13344
13738
  readonly EmailSuppressionCreated: "email_suppression.created";
13345
13739
  readonly EmailUnsubscribed: "email.unsubscribed";
13740
+ readonly PreferenceDeleted: "preference.deleted";
13741
+ readonly PreferenceGranted: "preference.granted";
13742
+ readonly PreferenceRevoked: "preference.revoked";
13346
13743
  readonly SmsAccepted: "sms.accepted";
13347
13744
  readonly SmsDelivered: "sms.delivered";
13348
13745
  readonly SmsExpired: "sms.expired";
@@ -13368,6 +13765,7 @@ declare const WebhookEventType: {
13368
13765
  readonly WhatsappReceived: "whatsapp.received";
13369
13766
  readonly WhatsappRejected: "whatsapp.rejected";
13370
13767
  readonly WhatsappSent: "whatsapp.sent";
13768
+ readonly WhatsappSuppressionCreated: "whatsapp_suppression.created";
13371
13769
  };
13372
13770
  /** A known webhook event type value. */
13373
13771
  type WebhookEventTypeValue = (typeof WebhookEventType)[keyof typeof WebhookEventType];
@@ -13497,6 +13895,34 @@ declare const NumbersOrderStatus: {
13497
13895
  };
13498
13896
  /** A known NumbersOrderStatus value. */
13499
13897
  type NumbersOrderStatusValue = (typeof NumbersOrderStatus)[keyof typeof NumbersOrderStatus];
13898
+ /**
13899
+ * Values of PreferenceChannel known at this SDK version. The wire value is an open
13900
+ * string: a value added by a newer server deserializes unchanged, so switch on
13901
+ * these with a `default` branch rather than treating the set as closed.
13902
+ */
13903
+ declare const PreferenceChannel: {
13904
+ readonly Email: "email";
13905
+ readonly Sms: "sms";
13906
+ readonly Whatsapp: "whatsapp";
13907
+ };
13908
+ /** A known PreferenceChannel value. */
13909
+ type PreferenceChannelValue = (typeof PreferenceChannel)[keyof typeof PreferenceChannel];
13910
+ /**
13911
+ * Values of PreferenceOrigin known at this SDK version. The wire value is an open
13912
+ * string: a value added by a newer server deserializes unchanged, so switch on
13913
+ * these with a `default` branch rather than treating the set as closed.
13914
+ */
13915
+ declare const PreferenceOrigin: {
13916
+ readonly ApiKey: "api_key";
13917
+ readonly Import: "import";
13918
+ readonly Keyword: "keyword";
13919
+ readonly PreferencePage: "preference_page";
13920
+ readonly UnsubscribeEvent: "unsubscribe_event";
13921
+ readonly UnsubscribeLink: "unsubscribe_link";
13922
+ readonly User: "user";
13923
+ };
13924
+ /** A known PreferenceOrigin value. */
13925
+ type PreferenceOriginValue = (typeof PreferenceOrigin)[keyof typeof PreferenceOrigin];
13500
13926
  /**
13501
13927
  * Values of SMSErrorCode known at this SDK version. The wire value is an open
13502
13928
  * string: a value added by a newer server deserializes unchanged, so switch on
@@ -13710,5 +14136,5 @@ declare const WhatsAppTemplateParameterType: {
13710
14136
  /** A known WhatsAppTemplateParameterType value. */
13711
14137
  type WhatsAppTemplateParameterTypeValue = (typeof WhatsAppTemplateParameterType)[keyof typeof WhatsAppTemplateParameterType];
13712
14138
  //#endregion
13713
- export { type APIPromise, type Audience, type AudienceAddContactsParams, type AudienceCreateParams, type AudienceListContactsQuery, type AudienceListQuery, type AudienceMember, type AudienceRemoveContactsParams, type AudienceUpdateParams, BirdAPIError, BirdAuthError, BirdBadRequestError, BirdBillingError, BirdClient, type BirdClientOptions, BirdConflictError, BirdConnectionError, BirdError, BirdInternalError, BirdMisdirectedError, BirdNotFoundError, BirdNotImplementedError, BirdPayloadTooLargeError, BirdPermissionError, BirdPreconditionError, BirdRateLimitError, type BirdRequest, type BirdResponse, BirdServiceUnavailableError, BirdTimeoutError, BirdValidationError, type BirdWebhookEvent, BirdWebhookVerificationError, type ChannelAuthorization, type Contact, type ContactBatchParams, type ContactCreateParams, type ContactListQuery, type ContactProperty, type ContactPropertyCreateParams, type ContactPropertyListQuery, type ContactPropertyUpdateParams, type ContactUpdateParams, type ContactUpsertResult, type CursorPage, type DnsRecord, type Domain, type DomainCapabilities, type DomainCreateParams, type DomainDkim, type DomainListQuery, type DomainUpdateParams, type EmailChannelDefaults, EmailEventType, type EmailEventTypeValue, type EmailListQuery, type EmailLookup, EmailLookupFlag, type EmailLookupFlagValue, EmailLookupReason, type EmailLookupReasonValue, EmailLookupResult, type EmailLookupResultValue, type EmailMailboxLabelList, type EmailMailboxesCreateParams, type EmailMailboxesListQuery, type EmailMailboxesMessagesCreateParams, type EmailMailboxesReceiveRulesCreateParams, type EmailMailboxesReceiveRulesListQuery, type EmailMailboxesStatsQuery, type EmailMailboxesUpdateParams, type EmailMailboxesUpdateQuery, type EmailMessage, type EmailSendBatchParams, type EmailSendBatchResult, type EmailSendParams, type EmailStatsByBounceCodeQuery, type EmailStatsByBounceCodeResponse, type EmailStatsByBroadcastQuery, type EmailStatsByBroadcastResponse, type EmailStatsByCategoryQuery, type EmailStatsByCategoryResponse, type EmailStatsByClientQuery, type EmailStatsByClientResponse, type EmailStatsByComplaintTypeQuery, type EmailStatsByComplaintTypeResponse, type EmailStatsByLocationQuery, type EmailStatsByLocationResponse, type EmailStatsByMailboxProviderQuery, type EmailStatsByMailboxProviderRegionQuery, type EmailStatsByMailboxProviderRegionResponse, type EmailStatsByMailboxProviderResponse, type EmailStatsByRecipientDomainQuery, type EmailStatsByRecipientDomainResponse, type EmailStatsBySendingDomainQuery, type EmailStatsBySendingDomainResponse, type EmailStatsBySendingIpQuery, type EmailStatsBySendingIpResponse, type EmailStatsByTagQuery, type EmailStatsByTemplateQuery, type EmailStatsByTemplateResponse, type EmailStatsDailyQuery, type EmailStatsHourlyQuery, type EmailStatsResponse, type EmailStatsSummary, type EmailStatsSummaryQuery, type EmailStatsTagsResponse, type EmailThread, type EmailThreadMessage, type EmailThreadMessageAttachmentList, type EmailThreadMessageBody, type EmailThreadsDeleteQuery, type EmailThreadsListQuery, type EmailThreadsMessagesListQuery, type EmailThreadsMessagesReplyParams, type EmailThreadsUpdateParams, type ErrorDetail, type LookupEmailParams, LookupFlag, type LookupFlagValue, type LookupPhoneNumberParams, LookupPropertyStatus, type LookupPropertyStatusValue, type Mailbox, type MailboxStatsResponse, type NextAction, NumberCapability, type NumberCapabilityValue, NumberType, type NumberTypeValue, NumbersOrderStatus, type NumbersOrderStatusValue, type PaginatedPromise, type PhoneNumberLookup, type RealtimeBatchPublishResult, type RealtimeChannelGetQuery, type RealtimeChannelInclude, type RealtimeChannelInfo, type RealtimeChannelListItem, type RealtimeChannelListQuery, type RealtimeChannelMember, type RealtimeChannelMembers, type RealtimeChannelsList, type RealtimeOptions, type RealtimePublishBatchParams, type RealtimePublishParams, type RealtimePublishResult, type ReceiveRule, type RequestOptions, SMSErrorCode, type SMSErrorCodeValue, SMSKeywordOperation, type SMSKeywordOperationValue, SMSSuppressionCoverage, type SMSSuppressionCoverageValue, SMSSuppressionEndReason, type SMSSuppressionEndReasonValue, SMSSuppressionOrigin, type SMSSuppressionOriginValue, SMSSuppressionReason, type SMSSuppressionReasonValue, type SafeResult, type SmsEventList, type SmsInboundStatsByCountryResponse, type SmsInboundStatsByNumberResponse, type SmsInboundStatsByOperatorResponse, type SmsInboundStatsResponse, type SmsInboundStatsSummaryResponse, type SmsKeywordRule, type SmsKeywordRuleList, type SmsKeywordRulesCreateParams, type SmsKeywordRulesListQuery, type SmsKeywordRulesUpdateParams, type SmsListEventsQuery, type SmsListQuery, type SmsMessage, type SmsSendBatchParams, type SmsSendBatchResult, type SmsSendParams, type SmsStatsByCarrierQuery, type SmsStatsByCarrierResponse, type SmsStatsByCategoryQuery, type SmsStatsByCategoryResponse, type SmsStatsByCountryQuery, type SmsStatsByCountryResponse, type SmsStatsByErrorCodeQuery, type SmsStatsByErrorCodeResponse, type SmsStatsByOriginatorQuery, type SmsStatsByOriginatorResponse, type SmsStatsByStatusQuery, type SmsStatsByStatusResponse, type SmsStatsDailyQuery, type SmsStatsHourlyQuery, type SmsStatsInboundByCountryQuery, type SmsStatsInboundByNumberQuery, type SmsStatsInboundByOperatorQuery, type SmsStatsInboundDailyQuery, type SmsStatsInboundHourlyQuery, type SmsStatsInboundSummaryQuery, type SmsStatsResponse, type SmsStatsSummary, type SmsStatsSummaryQuery, type SmsSuppression, type SmsSuppressionsAddParams, type SmsSuppressionsListQuery, type SmsTemplate, type SmsTemplateList, type SmsTemplateListQuery, TemplateLanguageStatus, type TemplateLanguageStatusValue, TemplateStatus, type TemplateStatusValue, type Verification, VerificationAttemptFailureReason, type VerificationAttemptFailureReasonValue, VerificationChannel, type VerificationChannelValue, type VerificationCheckResult, VerificationTerminalReason, type VerificationTerminalReasonValue, type VerifyVerificationsCheckParams, type VerifyVerificationsCreateParams, type VerifyVerificationsNextChannelParams, WebhookEventType, type WebhookEventTypeValue, type WebhookHeaders, type WebhookOptions, WhatsAppErrorCode, type WhatsAppErrorCodeValue, type WhatsAppEventList, WhatsAppEventType, type WhatsAppEventTypeValue, type WhatsAppMessage, WhatsAppTemplateCategory, type WhatsAppTemplateCategoryValue, WhatsAppTemplateParameterType, type WhatsAppTemplateParameterTypeValue, type WhatsappListEventsQuery, type WhatsappListQuery, type WhatsappSendParams, baseUrlForRegion, regionFromApiKey };
14139
+ export { type APIPromise, type Audience, type AudienceAddContactsParams, type AudienceCreateParams, type AudienceListContactsQuery, type AudienceListQuery, type AudienceMember, type AudienceRemoveContactsParams, type AudienceUpdateParams, BirdAPIError, BirdAuthError, BirdBadRequestError, BirdBillingError, BirdClient, type BirdClientOptions, BirdConflictError, BirdConnectionError, BirdError, BirdInternalError, BirdMisdirectedError, BirdNotFoundError, BirdNotImplementedError, BirdPayloadTooLargeError, BirdPermissionError, BirdPreconditionError, BirdRateLimitError, type BirdRequest, type BirdResponse, BirdServiceUnavailableError, BirdTimeoutError, BirdValidationError, type BirdWebhookEvent, BirdWebhookVerificationError, type ChannelAuthorization, type Contact, type ContactBatchParams, type ContactCreateParams, type ContactListQuery, type ContactProperty, type ContactPropertyCreateParams, type ContactPropertyListQuery, type ContactPropertyUpdateParams, type ContactUpdateParams, type ContactUpsertResult, type ContactsPreferencesListQuery, type CursorPage, type DnsRecord, type Domain, type DomainCapabilities, type DomainCreateParams, type DomainDkim, type DomainListQuery, type DomainUpdateParams, type EmailChannelDefaults, EmailEventType, type EmailEventTypeValue, type EmailListQuery, type EmailLookup, EmailLookupFlag, type EmailLookupFlagValue, EmailLookupReason, type EmailLookupReasonValue, EmailLookupResult, type EmailLookupResultValue, type EmailMailboxLabelList, type EmailMailboxesCreateParams, type EmailMailboxesListQuery, type EmailMailboxesMessagesCreateParams, type EmailMailboxesReceiveRulesCreateParams, type EmailMailboxesReceiveRulesListQuery, type EmailMailboxesStatsQuery, type EmailMailboxesUpdateParams, type EmailMailboxesUpdateQuery, type EmailMessage, type EmailSendBatchParams, type EmailSendBatchResult, type EmailSendParams, type EmailStatsByBounceCodeQuery, type EmailStatsByBounceCodeResponse, type EmailStatsByBroadcastQuery, type EmailStatsByBroadcastResponse, type EmailStatsByCategoryQuery, type EmailStatsByCategoryResponse, type EmailStatsByClientQuery, type EmailStatsByClientResponse, type EmailStatsByComplaintTypeQuery, type EmailStatsByComplaintTypeResponse, type EmailStatsByLocationQuery, type EmailStatsByLocationResponse, type EmailStatsByMailboxProviderQuery, type EmailStatsByMailboxProviderRegionQuery, type EmailStatsByMailboxProviderRegionResponse, type EmailStatsByMailboxProviderResponse, type EmailStatsByRecipientDomainQuery, type EmailStatsByRecipientDomainResponse, type EmailStatsBySendingDomainQuery, type EmailStatsBySendingDomainResponse, type EmailStatsBySendingIpQuery, type EmailStatsBySendingIpResponse, type EmailStatsByTagQuery, type EmailStatsByTemplateQuery, type EmailStatsByTemplateResponse, type EmailStatsDailyQuery, type EmailStatsHourlyQuery, type EmailStatsResponse, type EmailStatsSummary, type EmailStatsSummaryQuery, type EmailStatsTagsResponse, type EmailThread, type EmailThreadMessage, type EmailThreadMessageAttachmentList, type EmailThreadMessageBody, type EmailThreadsDeleteQuery, type EmailThreadsListQuery, type EmailThreadsMessagesListQuery, type EmailThreadsMessagesReplyParams, type EmailThreadsUpdateParams, type ErrorDetail, type LookupEmailParams, LookupFlag, type LookupFlagValue, type LookupPhoneNumberParams, LookupPropertyStatus, type LookupPropertyStatusValue, type Mailbox, type MailboxStatsResponse, type NextAction, NumberCapability, type NumberCapabilityValue, NumberType, type NumberTypeValue, NumbersOrderStatus, type NumbersOrderStatusValue, type PaginatedPromise, type PhoneNumberLookup, type Preference, PreferenceChannel, type PreferenceChannelValue, type PreferenceCoverage, type PreferenceCreateParams, PreferenceOrigin, type PreferenceOriginValue, type PreferenceStatus, type PreferenceWriteResult, type PreferencesListQuery, type RealtimeBatchPublishResult, type RealtimeChannelGetQuery, type RealtimeChannelInclude, type RealtimeChannelInfo, type RealtimeChannelListItem, type RealtimeChannelListQuery, type RealtimeChannelMember, type RealtimeChannelMembers, type RealtimeChannelsList, type RealtimeOptions, type RealtimePublishBatchParams, type RealtimePublishParams, type RealtimePublishResult, type ReceiveRule, type RequestOptions, SMSErrorCode, type SMSErrorCodeValue, SMSKeywordOperation, type SMSKeywordOperationValue, SMSSuppressionCoverage, type SMSSuppressionCoverageValue, SMSSuppressionEndReason, type SMSSuppressionEndReasonValue, SMSSuppressionOrigin, type SMSSuppressionOriginValue, SMSSuppressionReason, type SMSSuppressionReasonValue, type SafeResult, type SmsEventList, type SmsInboundStatsByCountryResponse, type SmsInboundStatsByNumberResponse, type SmsInboundStatsByOperatorResponse, type SmsInboundStatsResponse, type SmsInboundStatsSummaryResponse, type SmsKeywordRule, type SmsKeywordRuleList, type SmsKeywordRulesCreateParams, type SmsKeywordRulesListQuery, type SmsKeywordRulesUpdateParams, type SmsListEventsQuery, type SmsListQuery, type SmsMessage, type SmsSendBatchParams, type SmsSendBatchResult, type SmsSendParams, type SmsStatsByCarrierQuery, type SmsStatsByCarrierResponse, type SmsStatsByCategoryQuery, type SmsStatsByCategoryResponse, type SmsStatsByCountryQuery, type SmsStatsByCountryResponse, type SmsStatsByErrorCodeQuery, type SmsStatsByErrorCodeResponse, type SmsStatsByOriginatorQuery, type SmsStatsByOriginatorResponse, type SmsStatsByStatusQuery, type SmsStatsByStatusResponse, type SmsStatsDailyQuery, type SmsStatsHourlyQuery, type SmsStatsInboundByCountryQuery, type SmsStatsInboundByNumberQuery, type SmsStatsInboundByOperatorQuery, type SmsStatsInboundDailyQuery, type SmsStatsInboundHourlyQuery, type SmsStatsInboundSummaryQuery, type SmsStatsResponse, type SmsStatsSummary, type SmsStatsSummaryQuery, type SmsSuppression, type SmsSuppressionsAddParams, type SmsSuppressionsListQuery, type SmsTemplate, type SmsTemplateList, type SmsTemplateListQuery, TemplateLanguageStatus, type TemplateLanguageStatusValue, TemplateStatus, type TemplateStatusValue, type Verification, VerificationAttemptFailureReason, type VerificationAttemptFailureReasonValue, VerificationChannel, type VerificationChannelValue, type VerificationCheckResult, VerificationTerminalReason, type VerificationTerminalReasonValue, type VerifyVerificationsCheckParams, type VerifyVerificationsCreateParams, type VerifyVerificationsNextChannelParams, WebhookEventType, type WebhookEventTypeValue, type WebhookHeaders, type WebhookOptions, WhatsAppErrorCode, type WhatsAppErrorCodeValue, type WhatsAppEventList, WhatsAppEventType, type WhatsAppEventTypeValue, type WhatsAppMessage, WhatsAppTemplateCategory, type WhatsAppTemplateCategoryValue, WhatsAppTemplateParameterType, type WhatsAppTemplateParameterTypeValue, type WhatsappListEventsQuery, type WhatsappListQuery, type WhatsappSendParams, baseUrlForRegion, regionFromApiKey };
13714
14140
  //# sourceMappingURL=index.d.mts.map