sendblue 3.15.0 → 3.16.1

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 (217) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/client.d.mts +1 -1
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +1 -1
  5. package/client.d.ts.map +1 -1
  6. package/client.js +1 -1
  7. package/client.js.map +1 -1
  8. package/client.mjs +1 -1
  9. package/client.mjs.map +1 -1
  10. package/package.json +1 -1
  11. package/resources/groups.d.mts +1 -1
  12. package/resources/groups.d.mts.map +1 -1
  13. package/resources/groups.d.ts +1 -1
  14. package/resources/groups.d.ts.map +1 -1
  15. package/resources/index.d.mts +1 -1
  16. package/resources/index.d.mts.map +1 -1
  17. package/resources/index.d.ts +1 -1
  18. package/resources/index.d.ts.map +1 -1
  19. package/resources/index.js +1 -1
  20. package/resources/index.js.map +1 -1
  21. package/resources/index.mjs +1 -1
  22. package/resources/index.mjs.map +1 -1
  23. package/resources/messages/index.d.mts +3 -0
  24. package/resources/messages/index.d.mts.map +1 -0
  25. package/resources/messages/index.d.ts +3 -0
  26. package/resources/messages/index.d.ts.map +1 -0
  27. package/resources/messages/index.js +9 -0
  28. package/resources/messages/index.js.map +1 -0
  29. package/resources/messages/index.mjs +4 -0
  30. package/resources/messages/index.mjs.map +1 -0
  31. package/resources/messages/messages.d.mts +1071 -0
  32. package/resources/messages/messages.d.mts.map +1 -0
  33. package/resources/messages/messages.d.ts +1071 -0
  34. package/resources/messages/messages.d.ts.map +1 -0
  35. package/resources/messages/messages.js +105 -0
  36. package/resources/messages/messages.js.map +1 -0
  37. package/resources/messages/messages.mjs +100 -0
  38. package/resources/messages/messages.mjs.map +1 -0
  39. package/resources/messages/v2/index.d.mts +3 -0
  40. package/resources/messages/v2/index.d.mts.map +1 -0
  41. package/resources/messages/v2/index.d.ts +3 -0
  42. package/resources/messages/v2/index.d.ts.map +1 -0
  43. package/resources/{v2/groups → messages/v2}/index.js +3 -3
  44. package/resources/messages/v2/index.js.map +1 -0
  45. package/resources/{v2/groups → messages/v2}/index.mjs +1 -1
  46. package/resources/messages/v2/index.mjs.map +1 -0
  47. package/resources/messages/v2/v2.d.mts +10 -0
  48. package/resources/messages/v2/v2.d.mts.map +1 -0
  49. package/resources/messages/v2/v2.d.ts +10 -0
  50. package/resources/messages/v2/v2.d.ts.map +1 -0
  51. package/resources/messages/v2/v2.js +17 -0
  52. package/resources/messages/v2/v2.js.map +1 -0
  53. package/resources/messages/v2/v2.mjs +12 -0
  54. package/resources/messages/v2/v2.mjs.map +1 -0
  55. package/resources/messages/v2/verify/index.d.mts.map +1 -0
  56. package/resources/messages/v2/verify/index.d.ts.map +1 -0
  57. package/resources/messages/v2/verify/index.js.map +1 -0
  58. package/resources/messages/v2/verify/index.mjs.map +1 -0
  59. package/resources/messages/v2/verify/services/index.d.mts.map +1 -0
  60. package/resources/messages/v2/verify/services/index.d.ts.map +1 -0
  61. package/resources/messages/v2/verify/services/index.js.map +1 -0
  62. package/resources/messages/v2/verify/services/index.mjs.map +1 -0
  63. package/resources/messages/v2/verify/services/services.d.mts.map +1 -0
  64. package/resources/messages/v2/verify/services/services.d.ts.map +1 -0
  65. package/resources/messages/v2/verify/services/services.js.map +1 -0
  66. package/resources/messages/v2/verify/services/services.mjs.map +1 -0
  67. package/resources/{v2/groups → messages/v2}/verify/services/verifications.d.mts +2 -2
  68. package/resources/messages/v2/verify/services/verifications.d.mts.map +1 -0
  69. package/resources/{v2/groups → messages/v2}/verify/services/verifications.d.ts +2 -2
  70. package/resources/messages/v2/verify/services/verifications.d.ts.map +1 -0
  71. package/resources/{v2/groups → messages/v2}/verify/services/verifications.js +2 -2
  72. package/resources/messages/v2/verify/services/verifications.js.map +1 -0
  73. package/resources/{v2/groups → messages/v2}/verify/services/verifications.mjs +2 -2
  74. package/resources/messages/v2/verify/services/verifications.mjs.map +1 -0
  75. package/resources/messages/v2/verify/services.d.mts.map +1 -0
  76. package/resources/messages/v2/verify/services.d.ts.map +1 -0
  77. package/resources/messages/v2/verify/services.js.map +1 -0
  78. package/resources/messages/v2/verify/services.mjs.map +1 -0
  79. package/resources/messages/v2/verify/verify.d.mts.map +1 -0
  80. package/resources/messages/v2/verify/verify.d.ts.map +1 -0
  81. package/resources/messages/v2/verify/verify.js.map +1 -0
  82. package/resources/messages/v2/verify/verify.mjs.map +1 -0
  83. package/resources/messages/v2/verify.d.mts.map +1 -0
  84. package/resources/messages/v2/verify.d.ts.map +1 -0
  85. package/resources/messages/v2/verify.js.map +1 -0
  86. package/resources/messages/v2/verify.mjs.map +1 -0
  87. package/resources/messages/v2.d.mts +2 -0
  88. package/resources/messages/v2.d.mts.map +1 -0
  89. package/resources/messages/v2.d.ts +2 -0
  90. package/resources/messages/v2.d.ts.map +1 -0
  91. package/resources/messages/v2.js +6 -0
  92. package/resources/messages/v2.js.map +1 -0
  93. package/resources/messages/v2.mjs +3 -0
  94. package/resources/messages/v2.mjs.map +1 -0
  95. package/resources/messages.d.mts +1 -1066
  96. package/resources/messages.d.mts.map +1 -1
  97. package/resources/messages.d.ts +1 -1066
  98. package/resources/messages.d.ts.map +1 -1
  99. package/resources/messages.js +2 -93
  100. package/resources/messages.js.map +1 -1
  101. package/resources/messages.mjs +1 -91
  102. package/resources/messages.mjs.map +1 -1
  103. package/resources/v2/groups.d.mts +119 -1
  104. package/resources/v2/groups.d.mts.map +1 -1
  105. package/resources/v2/groups.d.ts +119 -1
  106. package/resources/v2/groups.d.ts.map +1 -1
  107. package/resources/v2/groups.js +43 -2
  108. package/resources/v2/groups.js.map +1 -1
  109. package/resources/v2/groups.mjs +41 -1
  110. package/resources/v2/groups.mjs.map +1 -1
  111. package/resources/v2/index.d.mts +1 -1
  112. package/resources/v2/index.d.mts.map +1 -1
  113. package/resources/v2/index.d.ts +1 -1
  114. package/resources/v2/index.d.ts.map +1 -1
  115. package/resources/v2/index.js +4 -4
  116. package/resources/v2/index.js.map +1 -1
  117. package/resources/v2/index.mjs +1 -1
  118. package/resources/v2/index.mjs.map +1 -1
  119. package/resources/v2/v2.d.mts +3 -3
  120. package/resources/v2/v2.d.mts.map +1 -1
  121. package/resources/v2/v2.d.ts +3 -3
  122. package/resources/v2/v2.d.ts.map +1 -1
  123. package/resources/v2/v2.js +2 -2
  124. package/resources/v2/v2.js.map +1 -1
  125. package/resources/v2/v2.mjs +2 -2
  126. package/resources/v2/v2.mjs.map +1 -1
  127. package/src/client.ts +11 -11
  128. package/src/resources/groups.ts +1 -1
  129. package/src/resources/index.ts +1 -1
  130. package/src/resources/messages/index.ts +14 -0
  131. package/src/resources/messages/messages.ts +1444 -0
  132. package/src/resources/{v2/groups → messages/v2}/index.ts +1 -1
  133. package/src/resources/messages/v2/v2.ts +15 -0
  134. package/src/resources/{v2/groups → messages/v2}/verify/services/verifications.ts +2 -2
  135. package/src/resources/messages/v2.ts +3 -0
  136. package/src/resources/messages.ts +1 -1434
  137. package/src/resources/v2/groups.ts +158 -1
  138. package/src/resources/v2/index.ts +6 -1
  139. package/src/resources/v2/v2.ts +8 -3
  140. package/src/version.ts +1 -1
  141. package/version.d.mts +1 -1
  142. package/version.d.ts +1 -1
  143. package/version.js +1 -1
  144. package/version.mjs +1 -1
  145. package/resources/v2/groups/groups.d.mts +0 -86
  146. package/resources/v2/groups/groups.d.mts.map +0 -1
  147. package/resources/v2/groups/groups.d.ts +0 -86
  148. package/resources/v2/groups/groups.d.ts.map +0 -1
  149. package/resources/v2/groups/groups.js +0 -35
  150. package/resources/v2/groups/groups.js.map +0 -1
  151. package/resources/v2/groups/groups.mjs +0 -30
  152. package/resources/v2/groups/groups.mjs.map +0 -1
  153. package/resources/v2/groups/index.d.mts +0 -3
  154. package/resources/v2/groups/index.d.mts.map +0 -1
  155. package/resources/v2/groups/index.d.ts +0 -3
  156. package/resources/v2/groups/index.d.ts.map +0 -1
  157. package/resources/v2/groups/index.js.map +0 -1
  158. package/resources/v2/groups/index.mjs.map +0 -1
  159. package/resources/v2/groups/verify/index.d.mts.map +0 -1
  160. package/resources/v2/groups/verify/index.d.ts.map +0 -1
  161. package/resources/v2/groups/verify/index.js.map +0 -1
  162. package/resources/v2/groups/verify/index.mjs.map +0 -1
  163. package/resources/v2/groups/verify/services/index.d.mts.map +0 -1
  164. package/resources/v2/groups/verify/services/index.d.ts.map +0 -1
  165. package/resources/v2/groups/verify/services/index.js.map +0 -1
  166. package/resources/v2/groups/verify/services/index.mjs.map +0 -1
  167. package/resources/v2/groups/verify/services/services.d.mts.map +0 -1
  168. package/resources/v2/groups/verify/services/services.d.ts.map +0 -1
  169. package/resources/v2/groups/verify/services/services.js.map +0 -1
  170. package/resources/v2/groups/verify/services/services.mjs.map +0 -1
  171. package/resources/v2/groups/verify/services/verifications.d.mts.map +0 -1
  172. package/resources/v2/groups/verify/services/verifications.d.ts.map +0 -1
  173. package/resources/v2/groups/verify/services/verifications.js.map +0 -1
  174. package/resources/v2/groups/verify/services/verifications.mjs.map +0 -1
  175. package/resources/v2/groups/verify/services.d.mts.map +0 -1
  176. package/resources/v2/groups/verify/services.d.ts.map +0 -1
  177. package/resources/v2/groups/verify/services.js.map +0 -1
  178. package/resources/v2/groups/verify/services.mjs.map +0 -1
  179. package/resources/v2/groups/verify/verify.d.mts.map +0 -1
  180. package/resources/v2/groups/verify/verify.d.ts.map +0 -1
  181. package/resources/v2/groups/verify/verify.js.map +0 -1
  182. package/resources/v2/groups/verify/verify.mjs.map +0 -1
  183. package/resources/v2/groups/verify.d.mts.map +0 -1
  184. package/resources/v2/groups/verify.d.ts.map +0 -1
  185. package/resources/v2/groups/verify.js.map +0 -1
  186. package/resources/v2/groups/verify.mjs.map +0 -1
  187. package/src/resources/v2/groups/groups.ts +0 -114
  188. /package/resources/{v2/groups → messages/v2}/verify/index.d.mts +0 -0
  189. /package/resources/{v2/groups → messages/v2}/verify/index.d.ts +0 -0
  190. /package/resources/{v2/groups → messages/v2}/verify/index.js +0 -0
  191. /package/resources/{v2/groups → messages/v2}/verify/index.mjs +0 -0
  192. /package/resources/{v2/groups → messages/v2}/verify/services/index.d.mts +0 -0
  193. /package/resources/{v2/groups → messages/v2}/verify/services/index.d.ts +0 -0
  194. /package/resources/{v2/groups → messages/v2}/verify/services/index.js +0 -0
  195. /package/resources/{v2/groups → messages/v2}/verify/services/index.mjs +0 -0
  196. /package/resources/{v2/groups → messages/v2}/verify/services/services.d.mts +0 -0
  197. /package/resources/{v2/groups → messages/v2}/verify/services/services.d.ts +0 -0
  198. /package/resources/{v2/groups → messages/v2}/verify/services/services.js +0 -0
  199. /package/resources/{v2/groups → messages/v2}/verify/services/services.mjs +0 -0
  200. /package/resources/{v2/groups → messages/v2}/verify/services.d.mts +0 -0
  201. /package/resources/{v2/groups → messages/v2}/verify/services.d.ts +0 -0
  202. /package/resources/{v2/groups → messages/v2}/verify/services.js +0 -0
  203. /package/resources/{v2/groups → messages/v2}/verify/services.mjs +0 -0
  204. /package/resources/{v2/groups → messages/v2}/verify/verify.d.mts +0 -0
  205. /package/resources/{v2/groups → messages/v2}/verify/verify.d.ts +0 -0
  206. /package/resources/{v2/groups → messages/v2}/verify/verify.js +0 -0
  207. /package/resources/{v2/groups → messages/v2}/verify/verify.mjs +0 -0
  208. /package/resources/{v2/groups → messages/v2}/verify.d.mts +0 -0
  209. /package/resources/{v2/groups → messages/v2}/verify.d.ts +0 -0
  210. /package/resources/{v2/groups → messages/v2}/verify.js +0 -0
  211. /package/resources/{v2/groups → messages/v2}/verify.mjs +0 -0
  212. /package/src/resources/{v2/groups → messages/v2}/verify/index.ts +0 -0
  213. /package/src/resources/{v2/groups → messages/v2}/verify/services/index.ts +0 -0
  214. /package/src/resources/{v2/groups → messages/v2}/verify/services/services.ts +0 -0
  215. /package/src/resources/{v2/groups → messages/v2}/verify/services.ts +0 -0
  216. /package/src/resources/{v2/groups → messages/v2}/verify/verify.ts +0 -0
  217. /package/src/resources/{v2/groups → messages/v2}/verify.ts +0 -0
@@ -0,0 +1,1071 @@
1
+ import { APIResource } from "../../core/resource.js";
2
+ import * as V2API from "./v2/v2.js";
3
+ import { V2 } from "./v2/v2.js";
4
+ import { APIPromise } from "../../core/api-promise.js";
5
+ import { RequestOptions } from "../../internal/request-options.js";
6
+ /**
7
+ * Operations for sending and managing messages
8
+ */
9
+ export declare class Messages extends APIResource {
10
+ v2: V2API.V2;
11
+ /**
12
+ * Retrieve details of a specific message by its ID
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const message = await client.messages.retrieve(
17
+ * 'msg_abc123def456',
18
+ * );
19
+ * ```
20
+ */
21
+ retrieve(messageID: string, options?: RequestOptions): APIPromise<MessageRetrieveResponse>;
22
+ /**
23
+ * Retrieve a list of messages for the authenticated account with comprehensive
24
+ * filtering capabilities. Rate limited to 100 requests per 10 seconds per account.
25
+ *
26
+ * ## Common Use Cases
27
+ *
28
+ * **Polling for inbound messages (no webhooks):**
29
+ *
30
+ * ```
31
+ * GET /api/v2/messages?is_outbound=false&sendblue_number=+16292925296&order_by=createdAt&order_direction=desc&limit=50
32
+ * ```
33
+ *
34
+ * Track processed message IDs to avoid duplicates.
35
+ *
36
+ * **Get conversation with a specific contact:**
37
+ *
38
+ * ```
39
+ * GET /api/v2/messages?number=+15551234567&order_by=createdAt&order_direction=desc
40
+ * ```
41
+ *
42
+ * @example
43
+ * ```ts
44
+ * const messages = await client.messages.list();
45
+ * ```
46
+ */
47
+ list(query?: MessageListParams | null | undefined, options?: RequestOptions): APIPromise<MessageListResponse>;
48
+ /**
49
+ * Retrieve the current status of a message using its message handle. Useful for
50
+ * resolving pending message statuses and avoiding duplicate messages.
51
+ *
52
+ * @example
53
+ * ```ts
54
+ * const messageResponse = await client.messages.getStatus({
55
+ * handle: 'msg_abc123def456',
56
+ * });
57
+ * ```
58
+ */
59
+ getStatus(query: MessageGetStatusParams, options?: RequestOptions): APIPromise<MessageResponse>;
60
+ /**
61
+ * Send an iMessage, SMS, MMS, or Sendblue App Card to a single recipient
62
+ *
63
+ * @example
64
+ * ```ts
65
+ * const messageResponse = await client.messages.send({
66
+ * from_number: '+19998887777',
67
+ * number: '+19998887777',
68
+ * });
69
+ * ```
70
+ */
71
+ send(body: MessageSendParams, options?: RequestOptions): APIPromise<MessageResponse>;
72
+ /**
73
+ * Continues an existing App Card by sending a new Apple message in the same
74
+ * iMessage session, from the same sender line and inline-reply context. The
75
+ * continuation receives its own message handle and delivery/read status updates.
76
+ *
77
+ * @example
78
+ * ```ts
79
+ * const messageResponse = await client.messages.updateAppCard(
80
+ * 'message_handle',
81
+ * );
82
+ * ```
83
+ */
84
+ updateAppCard(messageHandle: string, body: MessageUpdateAppCardParams, options?: RequestOptions): APIPromise<MessageResponse>;
85
+ }
86
+ export interface MessageContent {
87
+ /**
88
+ * Email of the account
89
+ */
90
+ account_email?: string;
91
+ /**
92
+ * Message content
93
+ */
94
+ content?: string;
95
+ /**
96
+ * When the message was created
97
+ */
98
+ date_created?: string;
99
+ /**
100
+ * When the message was sent
101
+ */
102
+ date_sent?: string;
103
+ /**
104
+ * When the message was last updated
105
+ */
106
+ date_updated?: string;
107
+ /**
108
+ * Sender phone number
109
+ */
110
+ from_number?: string;
111
+ /**
112
+ * Whether this is an outbound message
113
+ */
114
+ is_outbound?: boolean;
115
+ /**
116
+ * URL of attached media
117
+ */
118
+ media_url?: string;
119
+ /**
120
+ * Unique message identifier
121
+ */
122
+ message_handle?: string;
123
+ /**
124
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
125
+ * account, conversation, and sending line.
126
+ */
127
+ reply_to?: MessageContent.ReplyTo;
128
+ /**
129
+ * UUID of the seat that sent the message. Present when `seat_id` was provided on
130
+ * send, or for dashboard-originated group messages.
131
+ */
132
+ seat_id?: string | null;
133
+ send_style?: 'celebration' | 'shooting_star' | 'fireworks' | 'lasers' | 'love' | 'confetti' | 'balloons' | 'spotlight' | 'echo' | 'invisible' | 'gentle' | 'loud' | 'slam';
134
+ /**
135
+ * Email of the seat (user) that sent the message. Auto-populated when a `seat_id`
136
+ * is provided on send. `null` for messages sent without a `seat_id`.
137
+ */
138
+ sender_email?: string | null;
139
+ status?: 'QUEUED' | 'SENT' | 'DELIVERED' | 'ERROR' | 'RECEIVED';
140
+ /**
141
+ * Message that originated an iMessage inline-reply thread.
142
+ */
143
+ thread_originator?: MessageContent.ThreadOriginator;
144
+ /**
145
+ * Recipient phone number
146
+ */
147
+ to_number?: string;
148
+ }
149
+ export declare namespace MessageContent {
150
+ /**
151
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
152
+ * account, conversation, and sending line.
153
+ */
154
+ interface ReplyTo {
155
+ /**
156
+ * Public handle of the immediate parent message
157
+ */
158
+ message_handle: string;
159
+ /**
160
+ * Advanced override for a known part of a multipart target. Omit this in normal
161
+ * reply requests and never guess it; requests default to 0. When replying to an
162
+ * attachment represented by its own webhook, use that webhook's `message_handle`
163
+ * and omit `part_index` so Sendblue can use the stored authoritative part.
164
+ * Responses omit it when no authoritative immediate-parent part is available.
165
+ */
166
+ part_index?: number;
167
+ }
168
+ /**
169
+ * Message that originated an iMessage inline-reply thread.
170
+ */
171
+ interface ThreadOriginator {
172
+ /**
173
+ * Public handle of the thread's root message
174
+ */
175
+ message_handle: string;
176
+ /**
177
+ * Opaque Apple thread-originator part descriptor
178
+ */
179
+ part?: string;
180
+ }
181
+ }
182
+ export interface MessageResponse {
183
+ /**
184
+ * Email of the account that sent the message
185
+ */
186
+ account_email?: string;
187
+ /**
188
+ * App Card data sent or received with this message.
189
+ */
190
+ app_card?: MessageResponse.AppCard | MessageResponse.InboundAppCard;
191
+ /**
192
+ * Message content
193
+ */
194
+ content?: string;
195
+ /**
196
+ * When the message was created
197
+ */
198
+ date_created?: string;
199
+ /**
200
+ * When the message was last updated
201
+ */
202
+ date_updated?: string;
203
+ /**
204
+ * Numeric error code if message failed
205
+ */
206
+ error_code?: number;
207
+ /**
208
+ * Error message if message failed
209
+ */
210
+ error_message?: string;
211
+ /**
212
+ * Sending phone number
213
+ */
214
+ from_number?: string;
215
+ /**
216
+ * Whether this is an outbound message
217
+ */
218
+ is_outbound?: boolean;
219
+ /**
220
+ * Decoded Find My location share coordinates.
221
+ */
222
+ location?: MessageResponse.Location;
223
+ /**
224
+ * URL of attached media
225
+ */
226
+ media_url?: string;
227
+ /**
228
+ * Unique identifier for tracking the message
229
+ */
230
+ message_handle?: string;
231
+ message_type?: 'message' | 'group' | 'location';
232
+ /**
233
+ * Recipient phone number
234
+ */
235
+ number?: string;
236
+ /**
237
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
238
+ * account, conversation, and sending line.
239
+ */
240
+ reply_to?: MessageResponse.ReplyTo;
241
+ /**
242
+ * UUID of the seat that sent the message. Present when `seat_id` was provided on
243
+ * send, or for dashboard-originated group messages.
244
+ */
245
+ seat_id?: string | null;
246
+ /**
247
+ * The iMessage expressive message style
248
+ */
249
+ send_style?: 'celebration' | 'shooting_star' | 'fireworks' | 'lasers' | 'love' | 'confetti' | 'balloons' | 'spotlight' | 'echo' | 'invisible' | 'gentle' | 'loud' | 'slam';
250
+ /**
251
+ * Email of the seat (user) that sent the message. Auto-populated when a `seat_id`
252
+ * is provided on send. `null` for messages sent without a `seat_id`.
253
+ */
254
+ sender_email?: string | null;
255
+ status?: 'QUEUED' | 'SENT' | 'DELIVERED' | 'ERROR';
256
+ /**
257
+ * Message that originated an iMessage inline-reply thread.
258
+ */
259
+ thread_originator?: MessageResponse.ThreadOriginator;
260
+ }
261
+ export declare namespace MessageResponse {
262
+ /**
263
+ * A Sendblue App Card rendered with Apple's Messages framework. App Cards require
264
+ * a V2 Mac line and an iMessage-capable recipient; they never fall back to SMS.
265
+ * The URL is delivered to the identified Messages extension when the recipient
266
+ * taps the card. An initial App Card may include `reply_to` to create an inline
267
+ * reply. Later state changes use the update endpoint, which sends a new Apple
268
+ * message in the same App Card session. The feature is unavailable on the free
269
+ * plan.
270
+ */
271
+ interface AppCard {
272
+ appName: string;
273
+ extensionBundleId: string;
274
+ /**
275
+ * Visible card fields mirroring Apple's MSMessageTemplateLayout.
276
+ */
277
+ layout: AppCard.Layout;
278
+ teamId: string;
279
+ /**
280
+ * URL delivered to the iMessage extension on tap. HTTPS URLs are limited to 2048
281
+ * characters; data URLs carrying inline app state are limited to 16384.
282
+ */
283
+ url: string;
284
+ /**
285
+ * Optional numeric App Store ID for recipients without the extension.
286
+ */
287
+ appStoreId?: number;
288
+ /**
289
+ * Fallback text for notifications and surfaces that cannot render the card.
290
+ */
291
+ fallbackText?: string;
292
+ /**
293
+ * Use Apple's live layout when the extension is installed; false always sends the
294
+ * static template layout.
295
+ */
296
+ interactive?: boolean;
297
+ /**
298
+ * Optional caller-supplied App Card session UUID. Generated automatically when
299
+ * omitted.
300
+ */
301
+ sessionIdentifier?: string;
302
+ /**
303
+ * Original message handle for an App Card continuation returned by the update
304
+ * endpoint.
305
+ */
306
+ updateMessageHandle?: string;
307
+ }
308
+ namespace AppCard {
309
+ /**
310
+ * Visible card fields mirroring Apple's MSMessageTemplateLayout.
311
+ */
312
+ interface Layout {
313
+ caption?: string;
314
+ /**
315
+ * Secondary text overlaid on the preview image. Requires imageUrl.
316
+ */
317
+ imageSubtitle?: string;
318
+ /**
319
+ * Text overlaid on the preview image. Requires imageUrl.
320
+ */
321
+ imageTitle?: string;
322
+ /**
323
+ * HTTPS preview image fetched by the worker and sent as a hidden card attachment.
324
+ * JPEG, PNG, HEIC, HEIF, and WebP are supported up to 10 MB.
325
+ */
326
+ imageUrl?: string;
327
+ subcaption?: string;
328
+ /**
329
+ * Fallback text used in notifications and non-rendering surfaces.
330
+ */
331
+ summary?: string;
332
+ trailingCaption?: string;
333
+ trailingSubcaption?: string;
334
+ }
335
+ }
336
+ /**
337
+ * App Card session metadata received from an iMessage contact.
338
+ */
339
+ interface InboundAppCard {
340
+ balloonBundleId: string;
341
+ extensionBundleId: string;
342
+ /**
343
+ * Retry-stable occurrence revision assigned to this inbound App Card state.
344
+ */
345
+ revision: number;
346
+ sessionIdentifier: string;
347
+ teamId: string;
348
+ url: string;
349
+ }
350
+ /**
351
+ * Decoded Find My location share coordinates.
352
+ */
353
+ interface Location {
354
+ latitude: number;
355
+ longitude: number;
356
+ /**
357
+ * Horizontal accuracy in meters
358
+ */
359
+ accuracy?: number;
360
+ /**
361
+ * Altitude in meters
362
+ */
363
+ altitude?: number;
364
+ /**
365
+ * Share duration selected by the recipient
366
+ */
367
+ duration?: string;
368
+ timestamp?: string;
369
+ }
370
+ /**
371
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
372
+ * account, conversation, and sending line.
373
+ */
374
+ interface ReplyTo {
375
+ /**
376
+ * Public handle of the immediate parent message
377
+ */
378
+ message_handle: string;
379
+ /**
380
+ * Advanced override for a known part of a multipart target. Omit this in normal
381
+ * reply requests and never guess it; requests default to 0. When replying to an
382
+ * attachment represented by its own webhook, use that webhook's `message_handle`
383
+ * and omit `part_index` so Sendblue can use the stored authoritative part.
384
+ * Responses omit it when no authoritative immediate-parent part is available.
385
+ */
386
+ part_index?: number;
387
+ }
388
+ /**
389
+ * Message that originated an iMessage inline-reply thread.
390
+ */
391
+ interface ThreadOriginator {
392
+ /**
393
+ * Public handle of the thread's root message
394
+ */
395
+ message_handle: string;
396
+ /**
397
+ * Opaque Apple thread-originator part descriptor
398
+ */
399
+ part?: string;
400
+ }
401
+ }
402
+ export interface MessageRetrieveResponse {
403
+ data?: MessageRetrieveResponse.Data;
404
+ status?: string;
405
+ }
406
+ export declare namespace MessageRetrieveResponse {
407
+ interface Data {
408
+ /**
409
+ * Email of the account
410
+ */
411
+ accountEmail?: string;
412
+ /**
413
+ * Message content
414
+ */
415
+ content?: string;
416
+ /**
417
+ * When the message was sent
418
+ */
419
+ date_sent?: string;
420
+ /**
421
+ * When the message was last updated
422
+ */
423
+ date_updated?: string;
424
+ /**
425
+ * Numeric error code if message failed
426
+ */
427
+ error_code?: number | null;
428
+ /**
429
+ * Detailed error information
430
+ */
431
+ error_detail?: string | null;
432
+ /**
433
+ * Error message if message failed
434
+ */
435
+ error_message?: string | null;
436
+ /**
437
+ * Error reason if message failed
438
+ */
439
+ error_reason?: string | null;
440
+ /**
441
+ * Sender phone number
442
+ */
443
+ from_number?: string;
444
+ /**
445
+ * Display name for group messages
446
+ */
447
+ group_display_name?: string | null;
448
+ /**
449
+ * Group ID for group messages
450
+ */
451
+ group_id?: string | null;
452
+ /**
453
+ * Whether this is an outbound message
454
+ */
455
+ is_outbound?: boolean;
456
+ /**
457
+ * Decoded Find My location share coordinates.
458
+ */
459
+ location?: Data.Location;
460
+ /**
461
+ * URL of attached media
462
+ */
463
+ media_url?: string | null;
464
+ /**
465
+ * Unique message identifier
466
+ */
467
+ message_handle?: string;
468
+ message_type?: 'message' | 'group' | 'location';
469
+ /**
470
+ * Primary phone number (to_number for outbound, from_number for inbound)
471
+ */
472
+ number?: string;
473
+ /**
474
+ * Whether the recipient has opted out
475
+ */
476
+ opted_out?: boolean;
477
+ /**
478
+ * List of participants for group messages
479
+ */
480
+ participants?: Array<string>;
481
+ /**
482
+ * Account plan used for this message
483
+ */
484
+ plan?: string;
485
+ /**
486
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
487
+ * account, conversation, and sending line.
488
+ */
489
+ reply_to?: Data.ReplyTo;
490
+ /**
491
+ * UUID of the seat that sent the message. Present when `seat_id` was provided on
492
+ * send, or for dashboard-originated group messages.
493
+ */
494
+ seat_id?: string | null;
495
+ /**
496
+ * The iMessage expressive message style
497
+ */
498
+ send_style?: 'celebration' | 'shooting_star' | 'fireworks' | 'lasers' | 'love' | 'confetti' | 'balloons' | 'spotlight' | 'echo' | 'invisible' | 'gentle' | 'loud' | 'slam';
499
+ /**
500
+ * Sendblue phone number used
501
+ */
502
+ sendblue_number?: string | null;
503
+ /**
504
+ * Email of the seat (user) that sent the message. Auto-populated when a `seat_id`
505
+ * is provided on send. `null` for messages sent without a `seat_id`.
506
+ */
507
+ sender_email?: string | null;
508
+ /**
509
+ * The messaging service used
510
+ */
511
+ service?: 'iMessage' | 'SMS' | 'RCS';
512
+ status?: 'REGISTERED' | 'PENDING' | 'SENT' | 'DELIVERED' | 'RECEIVED' | 'QUEUED' | 'ERROR' | 'DECLINED' | 'ACCEPTED' | 'SUCCESS';
513
+ /**
514
+ * Message that originated an iMessage inline-reply thread.
515
+ */
516
+ thread_originator?: Data.ThreadOriginator;
517
+ /**
518
+ * Recipient phone number
519
+ */
520
+ to_number?: string;
521
+ /**
522
+ * Whether the message was downgraded from iMessage to SMS
523
+ */
524
+ was_downgraded?: boolean;
525
+ }
526
+ namespace Data {
527
+ /**
528
+ * Decoded Find My location share coordinates.
529
+ */
530
+ interface Location {
531
+ latitude: number;
532
+ longitude: number;
533
+ /**
534
+ * Horizontal accuracy in meters
535
+ */
536
+ accuracy?: number;
537
+ /**
538
+ * Altitude in meters
539
+ */
540
+ altitude?: number;
541
+ /**
542
+ * Share duration selected by the recipient
543
+ */
544
+ duration?: string;
545
+ timestamp?: string;
546
+ }
547
+ /**
548
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
549
+ * account, conversation, and sending line.
550
+ */
551
+ interface ReplyTo {
552
+ /**
553
+ * Public handle of the immediate parent message
554
+ */
555
+ message_handle: string;
556
+ /**
557
+ * Advanced override for a known part of a multipart target. Omit this in normal
558
+ * reply requests and never guess it; requests default to 0. When replying to an
559
+ * attachment represented by its own webhook, use that webhook's `message_handle`
560
+ * and omit `part_index` so Sendblue can use the stored authoritative part.
561
+ * Responses omit it when no authoritative immediate-parent part is available.
562
+ */
563
+ part_index?: number;
564
+ }
565
+ /**
566
+ * Message that originated an iMessage inline-reply thread.
567
+ */
568
+ interface ThreadOriginator {
569
+ /**
570
+ * Public handle of the thread's root message
571
+ */
572
+ message_handle: string;
573
+ /**
574
+ * Opaque Apple thread-originator part descriptor
575
+ */
576
+ part?: string;
577
+ }
578
+ }
579
+ }
580
+ export interface MessageListResponse {
581
+ data?: Array<MessageListResponse.Data>;
582
+ pagination?: MessageListResponse.Pagination;
583
+ status?: string;
584
+ }
585
+ export declare namespace MessageListResponse {
586
+ interface Data {
587
+ /**
588
+ * Email of the account
589
+ */
590
+ accountEmail?: string;
591
+ /**
592
+ * Message content
593
+ */
594
+ content?: string;
595
+ /**
596
+ * When the message was sent
597
+ */
598
+ date_sent?: string;
599
+ /**
600
+ * When the message was last updated
601
+ */
602
+ date_updated?: string;
603
+ /**
604
+ * Numeric error code if message failed
605
+ */
606
+ error_code?: number | null;
607
+ /**
608
+ * Detailed error information
609
+ */
610
+ error_detail?: string | null;
611
+ /**
612
+ * Error message if message failed
613
+ */
614
+ error_message?: string | null;
615
+ /**
616
+ * Error reason if message failed
617
+ */
618
+ error_reason?: string | null;
619
+ /**
620
+ * Sender phone number
621
+ */
622
+ from_number?: string;
623
+ /**
624
+ * Display name for group messages
625
+ */
626
+ group_display_name?: string | null;
627
+ /**
628
+ * Group ID for group messages
629
+ */
630
+ group_id?: string | null;
631
+ /**
632
+ * Whether this is an outbound message
633
+ */
634
+ is_outbound?: boolean;
635
+ /**
636
+ * Decoded Find My location share coordinates.
637
+ */
638
+ location?: Data.Location;
639
+ /**
640
+ * URL of attached media
641
+ */
642
+ media_url?: string | null;
643
+ /**
644
+ * Unique message identifier
645
+ */
646
+ message_handle?: string;
647
+ message_type?: 'message' | 'group' | 'location';
648
+ /**
649
+ * Primary phone number (to_number for outbound, from_number for inbound)
650
+ */
651
+ number?: string;
652
+ /**
653
+ * Whether the recipient has opted out
654
+ */
655
+ opted_out?: boolean;
656
+ /**
657
+ * List of participants for group messages
658
+ */
659
+ participants?: Array<string>;
660
+ /**
661
+ * Account plan used for this message
662
+ */
663
+ plan?: string;
664
+ /**
665
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
666
+ * account, conversation, and sending line.
667
+ */
668
+ reply_to?: Data.ReplyTo;
669
+ /**
670
+ * UUID of the seat that sent the message. Present when `seat_id` was provided on
671
+ * send, or for dashboard-originated group messages.
672
+ */
673
+ seat_id?: string | null;
674
+ /**
675
+ * The iMessage expressive message style
676
+ */
677
+ send_style?: 'celebration' | 'shooting_star' | 'fireworks' | 'lasers' | 'love' | 'confetti' | 'balloons' | 'spotlight' | 'echo' | 'invisible' | 'gentle' | 'loud' | 'slam';
678
+ /**
679
+ * Sendblue phone number used
680
+ */
681
+ sendblue_number?: string | null;
682
+ /**
683
+ * Email of the seat (user) that sent the message. Auto-populated when a `seat_id`
684
+ * is provided on send. `null` for messages sent without a `seat_id`.
685
+ */
686
+ sender_email?: string | null;
687
+ /**
688
+ * The messaging service used
689
+ */
690
+ service?: 'iMessage' | 'SMS' | 'RCS';
691
+ status?: 'REGISTERED' | 'PENDING' | 'SENT' | 'DELIVERED' | 'RECEIVED' | 'QUEUED' | 'ERROR' | 'DECLINED' | 'ACCEPTED' | 'SUCCESS';
692
+ /**
693
+ * Message that originated an iMessage inline-reply thread.
694
+ */
695
+ thread_originator?: Data.ThreadOriginator;
696
+ /**
697
+ * Recipient phone number
698
+ */
699
+ to_number?: string;
700
+ /**
701
+ * Whether the message was downgraded from iMessage to SMS
702
+ */
703
+ was_downgraded?: boolean;
704
+ }
705
+ namespace Data {
706
+ /**
707
+ * Decoded Find My location share coordinates.
708
+ */
709
+ interface Location {
710
+ latitude: number;
711
+ longitude: number;
712
+ /**
713
+ * Horizontal accuracy in meters
714
+ */
715
+ accuracy?: number;
716
+ /**
717
+ * Altitude in meters
718
+ */
719
+ altitude?: number;
720
+ /**
721
+ * Share duration selected by the recipient
722
+ */
723
+ duration?: string;
724
+ timestamp?: string;
725
+ }
726
+ /**
727
+ * Immediate parent of an iMessage inline reply. The target must belong to the same
728
+ * account, conversation, and sending line.
729
+ */
730
+ interface ReplyTo {
731
+ /**
732
+ * Public handle of the immediate parent message
733
+ */
734
+ message_handle: string;
735
+ /**
736
+ * Advanced override for a known part of a multipart target. Omit this in normal
737
+ * reply requests and never guess it; requests default to 0. When replying to an
738
+ * attachment represented by its own webhook, use that webhook's `message_handle`
739
+ * and omit `part_index` so Sendblue can use the stored authoritative part.
740
+ * Responses omit it when no authoritative immediate-parent part is available.
741
+ */
742
+ part_index?: number;
743
+ }
744
+ /**
745
+ * Message that originated an iMessage inline-reply thread.
746
+ */
747
+ interface ThreadOriginator {
748
+ /**
749
+ * Public handle of the thread's root message
750
+ */
751
+ message_handle: string;
752
+ /**
753
+ * Opaque Apple thread-originator part descriptor
754
+ */
755
+ part?: string;
756
+ }
757
+ }
758
+ interface Pagination {
759
+ /**
760
+ * Whether there are more messages available
761
+ */
762
+ hasMore?: boolean;
763
+ /**
764
+ * Number of messages returned in this request
765
+ */
766
+ limit?: number;
767
+ /**
768
+ * Number of messages skipped
769
+ */
770
+ offset?: number;
771
+ /**
772
+ * Total number of messages matching the filters
773
+ */
774
+ total?: number;
775
+ }
776
+ }
777
+ export interface MessageListParams {
778
+ /**
779
+ * Filter by account email
780
+ */
781
+ account_email?: string;
782
+ /**
783
+ * Filter messages created after this date (ISO 8601 format)
784
+ */
785
+ created_at_gte?: string;
786
+ /**
787
+ * Filter messages created before this date (ISO 8601 format)
788
+ */
789
+ created_at_lte?: string;
790
+ /**
791
+ * Filter by sender phone number
792
+ */
793
+ from_number?: string;
794
+ /**
795
+ * Filter by group ID
796
+ */
797
+ group_id?: string;
798
+ /**
799
+ * Filter by message direction. Use `false` to get inbound messages (messages sent
800
+ * TO your Sendblue number).
801
+ *
802
+ * **To get inbound messages for polling:** Use `is_outbound=false` combined with
803
+ * `sendblue_number` or `to_number` set to your Sendblue phone number.
804
+ *
805
+ * Note: Do NOT use `message_type=inbound` - that parameter only accepts `message`
806
+ * or `group` values.
807
+ */
808
+ is_outbound?: 'true' | 'false';
809
+ /**
810
+ * Maximum number of messages to return
811
+ */
812
+ limit?: number;
813
+ /**
814
+ * Filter by message type (1:1 vs group chat). Only accepts `message` or `group`.
815
+ *
816
+ * **Common mistake:** This is NOT for filtering inbound vs outbound messages. Use
817
+ * `is_outbound` parameter instead.
818
+ */
819
+ message_type?: 'message' | 'group';
820
+ /**
821
+ * Filter by any phone number (from or to)
822
+ */
823
+ number?: string;
824
+ /**
825
+ * Number of messages to skip
826
+ */
827
+ offset?: number;
828
+ /**
829
+ * Field to order messages by
830
+ */
831
+ order_by?: 'createdAt' | 'updatedAt' | 'sentAt';
832
+ /**
833
+ * Sort order
834
+ */
835
+ order_direction?: 'asc' | 'desc';
836
+ /**
837
+ * Filter by Sendblue phone number
838
+ */
839
+ sendblue_number?: string;
840
+ /**
841
+ * Filter messages sent after this date (ISO 8601 format)
842
+ */
843
+ sent_at_gte?: string;
844
+ /**
845
+ * Filter messages sent before this date (ISO 8601 format)
846
+ */
847
+ sent_at_lte?: string;
848
+ /**
849
+ * Filter by service type
850
+ */
851
+ service?: 'iMessage' | 'SMS' | 'RCS';
852
+ /**
853
+ * Filter by message status
854
+ */
855
+ status?: 'REGISTERED' | 'PENDING' | 'SENT' | 'DELIVERED' | 'RECEIVED' | 'QUEUED' | 'ERROR' | 'DECLINED' | 'ACCEPTED' | 'SUCCESS';
856
+ /**
857
+ * Filter by recipient phone number
858
+ */
859
+ to_number?: string;
860
+ /**
861
+ * Filter messages updated after this date (ISO 8601 format)
862
+ */
863
+ updated_at_gte?: string;
864
+ /**
865
+ * Filter messages updated before this date (ISO 8601 format)
866
+ */
867
+ updated_at_lte?: string;
868
+ /**
869
+ * Filter by worker ID (Admin only)
870
+ */
871
+ worker_id?: string;
872
+ }
873
+ export interface MessageGetStatusParams {
874
+ /**
875
+ * The message handle of the message you want to check status for
876
+ */
877
+ handle: string;
878
+ }
879
+ export interface MessageSendParams {
880
+ /**
881
+ * **REQUIRED** - The phone number to send from. Must be one of your registered
882
+ * Sendblue phone numbers in E.164 format. Without this parameter, the message will
883
+ * fail to send.
884
+ */
885
+ from_number: string;
886
+ /**
887
+ * Recipient phone number in E.164 format
888
+ */
889
+ number: string;
890
+ /**
891
+ * A Sendblue App Card rendered with Apple's Messages framework. App Cards require
892
+ * a V2 Mac line and an iMessage-capable recipient; they never fall back to SMS.
893
+ * The URL is delivered to the identified Messages extension when the recipient
894
+ * taps the card. An initial App Card may include `reply_to` to create an inline
895
+ * reply. Later state changes use the update endpoint, which sends a new Apple
896
+ * message in the same App Card session. The feature is unavailable on the free
897
+ * plan.
898
+ */
899
+ app_card?: MessageSendParams.AppCard;
900
+ /**
901
+ * Message text content. Optional when `media_url` or `app_card` is provided.
902
+ */
903
+ content?: string;
904
+ /**
905
+ * URL of media file to send (images, videos, etc.)
906
+ */
907
+ media_url?: string;
908
+ /**
909
+ * Optional inline-reply target. This may be combined with `app_card`; the
910
+ * resulting App Card is sent as an inline reply to the target.
911
+ */
912
+ reply_to?: MessageSendParams.ReplyTo;
913
+ /**
914
+ * Optional. Identifies the seat (user) sending the message so the message is
915
+ * attributed to a specific rep. Accepts either the seat UUID or the Firebase Auth
916
+ * subject. When provided, `sender_email` is auto-populated on the message record
917
+ * and webhook payloads. Returns 400 if the seat is not found.
918
+ */
919
+ seat_id?: string;
920
+ /**
921
+ * The iMessage expressive message style
922
+ */
923
+ send_style?: 'celebration' | 'shooting_star' | 'fireworks' | 'lasers' | 'love' | 'confetti' | 'balloons' | 'spotlight' | 'echo' | 'invisible' | 'gentle' | 'loud' | 'slam';
924
+ /**
925
+ * Webhook URL for message status updates
926
+ */
927
+ status_callback?: string;
928
+ }
929
+ export declare namespace MessageSendParams {
930
+ /**
931
+ * A Sendblue App Card rendered with Apple's Messages framework. App Cards require
932
+ * a V2 Mac line and an iMessage-capable recipient; they never fall back to SMS.
933
+ * The URL is delivered to the identified Messages extension when the recipient
934
+ * taps the card. An initial App Card may include `reply_to` to create an inline
935
+ * reply. Later state changes use the update endpoint, which sends a new Apple
936
+ * message in the same App Card session. The feature is unavailable on the free
937
+ * plan.
938
+ */
939
+ interface AppCard {
940
+ appName: string;
941
+ extensionBundleId: string;
942
+ /**
943
+ * Visible card fields mirroring Apple's MSMessageTemplateLayout.
944
+ */
945
+ layout: AppCard.Layout;
946
+ teamId: string;
947
+ /**
948
+ * URL delivered to the iMessage extension on tap. HTTPS URLs are limited to 2048
949
+ * characters; data URLs carrying inline app state are limited to 16384.
950
+ */
951
+ url: string;
952
+ /**
953
+ * Optional numeric App Store ID for recipients without the extension.
954
+ */
955
+ appStoreId?: number;
956
+ /**
957
+ * Fallback text for notifications and surfaces that cannot render the card.
958
+ */
959
+ fallbackText?: string;
960
+ /**
961
+ * Use Apple's live layout when the extension is installed; false always sends the
962
+ * static template layout.
963
+ */
964
+ interactive?: boolean;
965
+ /**
966
+ * Optional caller-supplied App Card session UUID. Generated automatically when
967
+ * omitted.
968
+ */
969
+ sessionIdentifier?: string;
970
+ }
971
+ namespace AppCard {
972
+ /**
973
+ * Visible card fields mirroring Apple's MSMessageTemplateLayout.
974
+ */
975
+ interface Layout {
976
+ caption?: string;
977
+ /**
978
+ * Secondary text overlaid on the preview image. Requires imageUrl.
979
+ */
980
+ imageSubtitle?: string;
981
+ /**
982
+ * Text overlaid on the preview image. Requires imageUrl.
983
+ */
984
+ imageTitle?: string;
985
+ /**
986
+ * HTTPS preview image fetched by the worker and sent as a hidden card attachment.
987
+ * JPEG, PNG, HEIC, HEIF, and WebP are supported up to 10 MB.
988
+ */
989
+ imageUrl?: string;
990
+ subcaption?: string;
991
+ /**
992
+ * Fallback text used in notifications and non-rendering surfaces.
993
+ */
994
+ summary?: string;
995
+ trailingCaption?: string;
996
+ trailingSubcaption?: string;
997
+ }
998
+ }
999
+ /**
1000
+ * Optional inline-reply target. This may be combined with `app_card`; the
1001
+ * resulting App Card is sent as an inline reply to the target.
1002
+ */
1003
+ interface ReplyTo {
1004
+ /**
1005
+ * Public handle of the immediate parent message
1006
+ */
1007
+ message_handle: string;
1008
+ /**
1009
+ * Advanced override for a known part of a multipart target. Omit this in normal
1010
+ * reply requests and never guess it; requests default to 0. When replying to an
1011
+ * attachment represented by its own webhook, use that webhook's `message_handle`
1012
+ * and omit `part_index` so Sendblue can use the stored authoritative part.
1013
+ * Responses omit it when no authoritative immediate-parent part is available.
1014
+ */
1015
+ part_index?: number;
1016
+ }
1017
+ }
1018
+ export interface MessageUpdateAppCardParams {
1019
+ /**
1020
+ * Replacement fallback text for notifications and non-rendering surfaces.
1021
+ */
1022
+ fallback_text?: string;
1023
+ /**
1024
+ * Reusing this key for the same App Card target returns the original update
1025
+ * instead of sending again.
1026
+ */
1027
+ idempotency_key?: string;
1028
+ interactive?: boolean;
1029
+ /**
1030
+ * Visible card fields mirroring Apple's MSMessageTemplateLayout.
1031
+ */
1032
+ layout?: MessageUpdateAppCardParams.Layout;
1033
+ /**
1034
+ * The iMessage expressive message style for this update.
1035
+ */
1036
+ send_style?: 'celebration' | 'shooting_star' | 'fireworks' | 'lasers' | 'love' | 'confetti' | 'balloons' | 'spotlight' | 'echo' | 'invisible' | 'gentle' | 'loud' | 'slam';
1037
+ url?: string;
1038
+ }
1039
+ export declare namespace MessageUpdateAppCardParams {
1040
+ /**
1041
+ * Visible card fields mirroring Apple's MSMessageTemplateLayout.
1042
+ */
1043
+ interface Layout {
1044
+ caption?: string;
1045
+ /**
1046
+ * Secondary text overlaid on the preview image. Requires imageUrl.
1047
+ */
1048
+ imageSubtitle?: string;
1049
+ /**
1050
+ * Text overlaid on the preview image. Requires imageUrl.
1051
+ */
1052
+ imageTitle?: string;
1053
+ /**
1054
+ * HTTPS preview image fetched by the worker and sent as a hidden card attachment.
1055
+ * JPEG, PNG, HEIC, HEIF, and WebP are supported up to 10 MB.
1056
+ */
1057
+ imageUrl?: string;
1058
+ subcaption?: string;
1059
+ /**
1060
+ * Fallback text used in notifications and non-rendering surfaces.
1061
+ */
1062
+ summary?: string;
1063
+ trailingCaption?: string;
1064
+ trailingSubcaption?: string;
1065
+ }
1066
+ }
1067
+ export declare namespace Messages {
1068
+ export { type MessageContent as MessageContent, type MessageResponse as MessageResponse, type MessageRetrieveResponse as MessageRetrieveResponse, type MessageListResponse as MessageListResponse, type MessageListParams as MessageListParams, type MessageGetStatusParams as MessageGetStatusParams, type MessageSendParams as MessageSendParams, type MessageUpdateAppCardParams as MessageUpdateAppCardParams, };
1069
+ export { V2 as V2 };
1070
+ }
1071
+ //# sourceMappingURL=messages.d.ts.map