@linqapp/sdk 0.1.0 → 0.1.3

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 (223) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/LICENSE +198 -4
  3. package/README.md +52 -52
  4. package/client.d.mts +34 -22
  5. package/client.d.mts.map +1 -1
  6. package/client.d.ts +34 -22
  7. package/client.d.ts.map +1 -1
  8. package/client.js +50 -41
  9. package/client.js.map +1 -1
  10. package/client.mjs +49 -40
  11. package/client.mjs.map +1 -1
  12. package/core/api-promise.d.mts +2 -2
  13. package/core/api-promise.d.mts.map +1 -1
  14. package/core/api-promise.d.ts +2 -2
  15. package/core/api-promise.d.ts.map +1 -1
  16. package/core/api-promise.js.map +1 -1
  17. package/core/api-promise.mjs.map +1 -1
  18. package/core/error.d.mts +2 -2
  19. package/core/error.d.mts.map +1 -1
  20. package/core/error.d.ts +2 -2
  21. package/core/error.d.ts.map +1 -1
  22. package/core/error.js +4 -4
  23. package/core/error.js.map +1 -1
  24. package/core/error.mjs +2 -2
  25. package/core/error.mjs.map +1 -1
  26. package/core/resource.d.mts +3 -3
  27. package/core/resource.d.mts.map +1 -1
  28. package/core/resource.d.ts +3 -3
  29. package/core/resource.d.ts.map +1 -1
  30. package/core/resource.js.map +1 -1
  31. package/core/resource.mjs.map +1 -1
  32. package/index.d.mts +3 -3
  33. package/index.d.mts.map +1 -1
  34. package/index.d.ts +3 -3
  35. package/index.d.ts.map +1 -1
  36. package/index.js +4 -4
  37. package/index.js.map +1 -1
  38. package/index.mjs +3 -3
  39. package/index.mjs.map +1 -1
  40. package/internal/parse.d.mts +2 -2
  41. package/internal/parse.d.mts.map +1 -1
  42. package/internal/parse.d.ts +2 -2
  43. package/internal/parse.d.ts.map +1 -1
  44. package/internal/parse.js.map +1 -1
  45. package/internal/parse.mjs.map +1 -1
  46. package/internal/shims.js +1 -1
  47. package/internal/shims.js.map +1 -1
  48. package/internal/shims.mjs +1 -1
  49. package/internal/shims.mjs.map +1 -1
  50. package/internal/uploads.d.mts +4 -4
  51. package/internal/uploads.d.mts.map +1 -1
  52. package/internal/uploads.d.ts +4 -4
  53. package/internal/uploads.d.ts.map +1 -1
  54. package/internal/uploads.js.map +1 -1
  55. package/internal/uploads.mjs.map +1 -1
  56. package/internal/utils/base64.js +2 -2
  57. package/internal/utils/base64.js.map +1 -1
  58. package/internal/utils/base64.mjs +3 -3
  59. package/internal/utils/base64.mjs.map +1 -1
  60. package/internal/utils/log.d.mts +3 -3
  61. package/internal/utils/log.d.mts.map +1 -1
  62. package/internal/utils/log.d.ts +3 -3
  63. package/internal/utils/log.d.ts.map +1 -1
  64. package/internal/utils/log.js.map +1 -1
  65. package/internal/utils/log.mjs.map +1 -1
  66. package/internal/utils/path.js +1 -1
  67. package/internal/utils/path.js.map +1 -1
  68. package/internal/utils/path.mjs +2 -2
  69. package/internal/utils/path.mjs.map +1 -1
  70. package/internal/utils/values.js +5 -5
  71. package/internal/utils/values.js.map +1 -1
  72. package/internal/utils/values.mjs +6 -6
  73. package/internal/utils/values.mjs.map +1 -1
  74. package/package.json +4 -4
  75. package/resources/attachments.d.mts +28 -3
  76. package/resources/attachments.d.mts.map +1 -1
  77. package/resources/attachments.d.ts +28 -3
  78. package/resources/attachments.d.ts.map +1 -1
  79. package/resources/capability.d.mts +74 -0
  80. package/resources/capability.d.mts.map +1 -0
  81. package/resources/capability.d.ts +74 -0
  82. package/resources/capability.d.ts.map +1 -0
  83. package/resources/capability.js +36 -0
  84. package/resources/capability.js.map +1 -0
  85. package/resources/capability.mjs +32 -0
  86. package/resources/capability.mjs.map +1 -0
  87. package/resources/chats/chats.d.mts +133 -663
  88. package/resources/chats/chats.d.mts.map +1 -1
  89. package/resources/chats/chats.d.ts +133 -663
  90. package/resources/chats/chats.d.ts.map +1 -1
  91. package/resources/chats/chats.js +2 -2
  92. package/resources/chats/chats.js.map +1 -1
  93. package/resources/chats/chats.mjs +2 -2
  94. package/resources/chats/chats.mjs.map +1 -1
  95. package/resources/chats/index.d.mts +2 -2
  96. package/resources/chats/index.d.mts.map +1 -1
  97. package/resources/chats/index.d.ts +2 -2
  98. package/resources/chats/index.d.ts.map +1 -1
  99. package/resources/chats/index.js.map +1 -1
  100. package/resources/chats/index.mjs.map +1 -1
  101. package/resources/chats/messages.d.mts +55 -716
  102. package/resources/chats/messages.d.mts.map +1 -1
  103. package/resources/chats/messages.d.ts +55 -716
  104. package/resources/chats/messages.d.ts.map +1 -1
  105. package/resources/chats/messages.js.map +1 -1
  106. package/resources/chats/messages.mjs.map +1 -1
  107. package/resources/index.d.mts +8 -5
  108. package/resources/index.d.mts.map +1 -1
  109. package/resources/index.d.ts +8 -5
  110. package/resources/index.d.ts.map +1 -1
  111. package/resources/index.js +9 -3
  112. package/resources/index.js.map +1 -1
  113. package/resources/index.mjs +5 -2
  114. package/resources/index.mjs.map +1 -1
  115. package/resources/messages.d.mts +129 -553
  116. package/resources/messages.d.mts.map +1 -1
  117. package/resources/messages.d.ts +129 -553
  118. package/resources/messages.d.ts.map +1 -1
  119. package/resources/messages.js +1 -1
  120. package/resources/messages.js.map +1 -1
  121. package/resources/messages.mjs +1 -1
  122. package/resources/messages.mjs.map +1 -1
  123. package/resources/phone-numbers.d.mts +1 -50
  124. package/resources/phone-numbers.d.mts.map +1 -1
  125. package/resources/phone-numbers.d.ts +1 -50
  126. package/resources/phone-numbers.d.ts.map +1 -1
  127. package/resources/phone-numbers.js +0 -8
  128. package/resources/phone-numbers.js.map +1 -1
  129. package/resources/phone-numbers.mjs +0 -8
  130. package/resources/phone-numbers.mjs.map +1 -1
  131. package/resources/phonenumbers.d.mts +58 -0
  132. package/resources/phonenumbers.d.mts.map +1 -0
  133. package/resources/phonenumbers.d.ts +58 -0
  134. package/resources/phonenumbers.d.ts.map +1 -0
  135. package/resources/phonenumbers.js +17 -0
  136. package/resources/phonenumbers.js.map +1 -0
  137. package/resources/phonenumbers.mjs +13 -0
  138. package/resources/phonenumbers.mjs.map +1 -0
  139. package/resources/webhook-events.d.mts +29 -0
  140. package/resources/webhook-events.d.mts.map +1 -0
  141. package/resources/webhook-events.d.ts +29 -0
  142. package/resources/webhook-events.d.ts.map +1 -0
  143. package/resources/{webhooks/events.js → webhook-events.js} +5 -10
  144. package/resources/webhook-events.js.map +1 -0
  145. package/resources/{webhooks/events.mjs → webhook-events.mjs} +3 -8
  146. package/resources/webhook-events.mjs.map +1 -0
  147. package/resources/webhook-subscriptions.d.mts +184 -0
  148. package/resources/webhook-subscriptions.d.mts.map +1 -0
  149. package/resources/webhook-subscriptions.d.ts +184 -0
  150. package/resources/webhook-subscriptions.d.ts.map +1 -0
  151. package/resources/{webhooks/subscriptions.js → webhook-subscriptions.js} +16 -16
  152. package/resources/webhook-subscriptions.js.map +1 -0
  153. package/resources/{webhooks/subscriptions.mjs → webhook-subscriptions.mjs} +14 -14
  154. package/resources/webhook-subscriptions.mjs.map +1 -0
  155. package/src/client.ts +97 -41
  156. package/src/core/api-promise.ts +4 -4
  157. package/src/core/error.ts +2 -2
  158. package/src/core/resource.ts +3 -3
  159. package/src/index.ts +3 -3
  160. package/src/internal/parse.ts +2 -2
  161. package/src/internal/shims.ts +1 -1
  162. package/src/internal/uploads.ts +5 -5
  163. package/src/internal/utils/base64.ts +3 -3
  164. package/src/internal/utils/log.ts +3 -3
  165. package/src/internal/utils/path.ts +2 -2
  166. package/src/internal/utils/values.ts +6 -6
  167. package/src/resources/attachments.ts +81 -106
  168. package/src/resources/capability.ts +98 -0
  169. package/src/resources/chats/chats.ts +135 -770
  170. package/src/resources/chats/index.ts +4 -2
  171. package/src/resources/chats/messages.ts +60 -839
  172. package/src/resources/index.ts +29 -9
  173. package/src/resources/messages.ts +153 -659
  174. package/src/resources/phone-numbers.ts +1 -65
  175. package/src/resources/phonenumbers.ts +72 -0
  176. package/src/resources/webhook-events.ts +57 -0
  177. package/src/resources/webhook-subscriptions.ts +238 -0
  178. package/src/version.ts +1 -1
  179. package/version.d.mts +1 -1
  180. package/version.d.ts +1 -1
  181. package/version.js +1 -1
  182. package/version.mjs +1 -1
  183. package/resources/webhooks/events.d.mts +0 -30
  184. package/resources/webhooks/events.d.mts.map +0 -1
  185. package/resources/webhooks/events.d.ts +0 -30
  186. package/resources/webhooks/events.d.ts.map +0 -1
  187. package/resources/webhooks/events.js.map +0 -1
  188. package/resources/webhooks/events.mjs.map +0 -1
  189. package/resources/webhooks/index.d.mts +0 -4
  190. package/resources/webhooks/index.d.mts.map +0 -1
  191. package/resources/webhooks/index.d.ts +0 -4
  192. package/resources/webhooks/index.d.ts.map +0 -1
  193. package/resources/webhooks/index.js +0 -11
  194. package/resources/webhooks/index.js.map +0 -1
  195. package/resources/webhooks/index.mjs +0 -5
  196. package/resources/webhooks/index.mjs.map +0 -1
  197. package/resources/webhooks/subscriptions.d.mts +0 -237
  198. package/resources/webhooks/subscriptions.d.mts.map +0 -1
  199. package/resources/webhooks/subscriptions.d.ts +0 -237
  200. package/resources/webhooks/subscriptions.d.ts.map +0 -1
  201. package/resources/webhooks/subscriptions.js.map +0 -1
  202. package/resources/webhooks/subscriptions.mjs.map +0 -1
  203. package/resources/webhooks/webhooks.d.mts +0 -14
  204. package/resources/webhooks/webhooks.d.mts.map +0 -1
  205. package/resources/webhooks/webhooks.d.ts +0 -14
  206. package/resources/webhooks/webhooks.d.ts.map +0 -1
  207. package/resources/webhooks/webhooks.js +0 -21
  208. package/resources/webhooks/webhooks.js.map +0 -1
  209. package/resources/webhooks/webhooks.mjs +0 -16
  210. package/resources/webhooks/webhooks.mjs.map +0 -1
  211. package/resources/webhooks.d.mts +0 -2
  212. package/resources/webhooks.d.mts.map +0 -1
  213. package/resources/webhooks.d.ts +0 -2
  214. package/resources/webhooks.d.ts.map +0 -1
  215. package/resources/webhooks.js +0 -6
  216. package/resources/webhooks.js.map +0 -1
  217. package/resources/webhooks.mjs +0 -3
  218. package/resources/webhooks.mjs.map +0 -1
  219. package/src/resources/webhooks/events.ts +0 -55
  220. package/src/resources/webhooks/index.ts +0 -13
  221. package/src/resources/webhooks/subscriptions.ts +0 -409
  222. package/src/resources/webhooks/webhooks.ts +0 -37
  223. package/src/resources/webhooks.ts +0 -3
@@ -1,4 +1,6 @@
1
1
  import { APIResource } from "../../core/resource.mjs";
2
+ import * as MessagesAPI from "../messages.mjs";
3
+ import * as ChatsAPI from "./chats.mjs";
2
4
  import { APIPromise } from "../../core/api-promise.mjs";
3
5
  import { RequestOptions } from "../../internal/request-options.mjs";
4
6
  export declare class Messages extends APIResource {
@@ -45,309 +47,66 @@ export declare class Messages extends APIResource {
45
47
  */
46
48
  send(chatID: string, body: MessageSendParams, options?: RequestOptions): APIPromise<MessageSendResponse>;
47
49
  }
50
+ /**
51
+ * A message that was sent (used in CreateChat and SendMessage responses)
52
+ */
53
+ export interface SentMessage {
54
+ /**
55
+ * Message identifier (UUID)
56
+ */
57
+ id: string;
58
+ /**
59
+ * Current delivery status of a message
60
+ */
61
+ delivery_status: 'pending' | 'queued' | 'sent' | 'delivered' | 'failed';
62
+ /**
63
+ * Whether the message has been read
64
+ */
65
+ is_read: boolean;
66
+ /**
67
+ * Message parts in order (text and media)
68
+ */
69
+ parts: Array<MessagesAPI.TextPart | MessagesAPI.MediaPart>;
70
+ /**
71
+ * When the message was sent
72
+ */
73
+ sent_at: string;
74
+ /**
75
+ * When the message was delivered
76
+ */
77
+ delivered_at?: string | null;
78
+ /**
79
+ * iMessage effect applied to a message (screen or bubble effect)
80
+ */
81
+ effect?: MessagesAPI.MessageEffect | null;
82
+ /**
83
+ * The sender of this message as a full handle object
84
+ */
85
+ from_handle?: MessagesAPI.ChatHandle | null;
86
+ /**
87
+ * Messaging service type
88
+ */
89
+ preferred_service?: ChatsAPI.ServiceType | null;
90
+ /**
91
+ * Indicates this message is a threaded reply to another message
92
+ */
93
+ reply_to?: MessagesAPI.ReplyTo | null;
94
+ /**
95
+ * Messaging service type
96
+ */
97
+ service?: ChatsAPI.ServiceType | null;
98
+ }
48
99
  export interface MessageListResponse {
49
100
  /**
50
101
  * List of messages
51
102
  */
52
- messages: Array<MessageListResponse.Message>;
103
+ messages: Array<MessagesAPI.Message>;
53
104
  /**
54
105
  * Cursor for fetching the next page of results. Null if there are no more results
55
106
  * to fetch. Pass this value as the `cursor` parameter in the next request.
56
107
  */
57
108
  next_cursor?: string | null;
58
109
  }
59
- export declare namespace MessageListResponse {
60
- interface Message {
61
- /**
62
- * Unique identifier for the message
63
- */
64
- id: string;
65
- /**
66
- * ID of the chat this message belongs to
67
- */
68
- chat_id: string;
69
- /**
70
- * When the message was created
71
- */
72
- created_at: string;
73
- /**
74
- * Whether the message has been delivered
75
- */
76
- is_delivered: boolean;
77
- /**
78
- * Whether this message was sent by the authenticated user
79
- */
80
- is_from_me: boolean;
81
- /**
82
- * Whether the message has been read
83
- */
84
- is_read: boolean;
85
- /**
86
- * When the message was last updated
87
- */
88
- updated_at: string;
89
- /**
90
- * When the message was delivered
91
- */
92
- delivered_at?: string | null;
93
- /**
94
- * iMessage effect applied to a message (screen or bubble effect)
95
- */
96
- effect?: Message.Effect | null;
97
- /**
98
- * @deprecated DEPRECATED: Use from_handle instead. Phone number of the message
99
- * sender.
100
- */
101
- from?: string | null;
102
- /**
103
- * The sender of this message as a full handle object
104
- */
105
- from_handle?: Message.FromHandle | null;
106
- /**
107
- * Message parts in order (text and media)
108
- */
109
- parts?: Array<Message.TextPartResponse | Message.MediaPartResponse> | null;
110
- /**
111
- * Messaging service type
112
- */
113
- preferred_service?: 'iMessage' | 'SMS' | 'RCS' | null;
114
- /**
115
- * When the message was read
116
- */
117
- read_at?: string | null;
118
- /**
119
- * Indicates this message is a threaded reply to another message
120
- */
121
- reply_to?: Message.ReplyTo | null;
122
- /**
123
- * When the message was sent
124
- */
125
- sent_at?: string | null;
126
- /**
127
- * Messaging service type
128
- */
129
- service?: 'iMessage' | 'SMS' | 'RCS' | null;
130
- }
131
- namespace Message {
132
- /**
133
- * iMessage effect applied to a message (screen or bubble effect)
134
- */
135
- interface Effect {
136
- /**
137
- * Name of the effect. Common values:
138
- *
139
- * - Screen effects: confetti, fireworks, lasers, sparkles, celebration, hearts,
140
- * love, balloons, happy_birthday, echo, spotlight
141
- * - Bubble effects: slam, loud, gentle, invisible
142
- */
143
- name?: string;
144
- /**
145
- * Type of effect
146
- */
147
- type?: 'screen' | 'bubble';
148
- }
149
- /**
150
- * The sender of this message as a full handle object
151
- */
152
- interface FromHandle {
153
- /**
154
- * Unique identifier for this handle
155
- */
156
- id: string;
157
- /**
158
- * Phone number (E.164) or email address of the participant
159
- */
160
- handle: string;
161
- /**
162
- * When this participant joined the chat
163
- */
164
- joined_at: string;
165
- /**
166
- * Messaging service type
167
- */
168
- service: 'iMessage' | 'SMS' | 'RCS';
169
- /**
170
- * Whether this handle belongs to the sender (your phone number)
171
- */
172
- is_me?: boolean | null;
173
- /**
174
- * When they left (if applicable)
175
- */
176
- left_at?: string | null;
177
- /**
178
- * Participant status
179
- */
180
- status?: 'active' | 'left' | 'removed' | null;
181
- }
182
- /**
183
- * A text message part
184
- */
185
- interface TextPartResponse {
186
- /**
187
- * Reactions on this message part
188
- */
189
- reactions: Array<TextPartResponse.Reaction> | null;
190
- /**
191
- * Indicates this is a text message part
192
- */
193
- type: 'text';
194
- /**
195
- * The text content
196
- */
197
- value: string;
198
- }
199
- namespace TextPartResponse {
200
- interface Reaction {
201
- handle: Reaction.Handle;
202
- /**
203
- * Whether this reaction is from the current user
204
- */
205
- is_me: boolean;
206
- /**
207
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
208
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
209
- * emoji in the custom_emoji field.
210
- */
211
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
212
- /**
213
- * Custom emoji if type is "custom", null otherwise
214
- */
215
- custom_emoji?: string | null;
216
- }
217
- namespace Reaction {
218
- interface Handle {
219
- /**
220
- * Unique identifier for this handle
221
- */
222
- id: string;
223
- /**
224
- * Phone number (E.164) or email address of the participant
225
- */
226
- handle: string;
227
- /**
228
- * When this participant joined the chat
229
- */
230
- joined_at: string;
231
- /**
232
- * Messaging service type
233
- */
234
- service: 'iMessage' | 'SMS' | 'RCS';
235
- /**
236
- * Whether this handle belongs to the sender (your phone number)
237
- */
238
- is_me?: boolean | null;
239
- /**
240
- * When they left (if applicable)
241
- */
242
- left_at?: string | null;
243
- /**
244
- * Participant status
245
- */
246
- status?: 'active' | 'left' | 'removed' | null;
247
- }
248
- }
249
- }
250
- /**
251
- * A media attachment part
252
- */
253
- interface MediaPartResponse {
254
- /**
255
- * Unique attachment identifier
256
- */
257
- id: string;
258
- /**
259
- * Original filename
260
- */
261
- filename: string;
262
- /**
263
- * MIME type of the file
264
- */
265
- mime_type: string;
266
- /**
267
- * Reactions on this message part
268
- */
269
- reactions: Array<MediaPartResponse.Reaction> | null;
270
- /**
271
- * File size in bytes
272
- */
273
- size_bytes: number;
274
- /**
275
- * Indicates this is a media attachment part
276
- */
277
- type: 'media';
278
- /**
279
- * Presigned URL for downloading the attachment (expires in 1 hour).
280
- */
281
- url: string;
282
- }
283
- namespace MediaPartResponse {
284
- interface Reaction {
285
- handle: Reaction.Handle;
286
- /**
287
- * Whether this reaction is from the current user
288
- */
289
- is_me: boolean;
290
- /**
291
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
292
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
293
- * emoji in the custom_emoji field.
294
- */
295
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
296
- /**
297
- * Custom emoji if type is "custom", null otherwise
298
- */
299
- custom_emoji?: string | null;
300
- }
301
- namespace Reaction {
302
- interface Handle {
303
- /**
304
- * Unique identifier for this handle
305
- */
306
- id: string;
307
- /**
308
- * Phone number (E.164) or email address of the participant
309
- */
310
- handle: string;
311
- /**
312
- * When this participant joined the chat
313
- */
314
- joined_at: string;
315
- /**
316
- * Messaging service type
317
- */
318
- service: 'iMessage' | 'SMS' | 'RCS';
319
- /**
320
- * Whether this handle belongs to the sender (your phone number)
321
- */
322
- is_me?: boolean | null;
323
- /**
324
- * When they left (if applicable)
325
- */
326
- left_at?: string | null;
327
- /**
328
- * Participant status
329
- */
330
- status?: 'active' | 'left' | 'removed' | null;
331
- }
332
- }
333
- }
334
- /**
335
- * Indicates this message is a threaded reply to another message
336
- */
337
- interface ReplyTo {
338
- /**
339
- * The ID of the message to reply to
340
- */
341
- message_id: string;
342
- /**
343
- * The specific message part to reply to (0-based index). Defaults to 0 (first
344
- * part) if not provided. Use this when replying to a specific part of a multipart
345
- * message.
346
- */
347
- part_index?: number;
348
- }
349
- }
350
- }
351
110
  /**
352
111
  * Response for sending a message to a chat
353
112
  */
@@ -359,277 +118,7 @@ export interface MessageSendResponse {
359
118
  /**
360
119
  * A message that was sent (used in CreateChat and SendMessage responses)
361
120
  */
362
- message: MessageSendResponse.Message;
363
- }
364
- export declare namespace MessageSendResponse {
365
- /**
366
- * A message that was sent (used in CreateChat and SendMessage responses)
367
- */
368
- interface Message {
369
- /**
370
- * Message identifier (UUID)
371
- */
372
- id: string;
373
- /**
374
- * Current delivery status of a message
375
- */
376
- delivery_status: 'pending' | 'queued' | 'sent' | 'delivered' | 'failed';
377
- /**
378
- * Whether the message has been read
379
- */
380
- is_read: boolean;
381
- /**
382
- * Message parts in order (text and media)
383
- */
384
- parts: Array<Message.TextPartResponse | Message.MediaPartResponse>;
385
- /**
386
- * When the message was sent
387
- */
388
- sent_at: string;
389
- /**
390
- * When the message was delivered
391
- */
392
- delivered_at?: string | null;
393
- /**
394
- * iMessage effect applied to a message (screen or bubble effect)
395
- */
396
- effect?: Message.Effect | null;
397
- /**
398
- * The sender of this message as a full handle object
399
- */
400
- from_handle?: Message.FromHandle | null;
401
- /**
402
- * Messaging service type
403
- */
404
- preferred_service?: 'iMessage' | 'SMS' | 'RCS' | null;
405
- /**
406
- * Indicates this message is a threaded reply to another message
407
- */
408
- reply_to?: Message.ReplyTo | null;
409
- /**
410
- * Messaging service type
411
- */
412
- service?: 'iMessage' | 'SMS' | 'RCS' | null;
413
- }
414
- namespace Message {
415
- /**
416
- * A text message part
417
- */
418
- interface TextPartResponse {
419
- /**
420
- * Reactions on this message part
421
- */
422
- reactions: Array<TextPartResponse.Reaction> | null;
423
- /**
424
- * Indicates this is a text message part
425
- */
426
- type: 'text';
427
- /**
428
- * The text content
429
- */
430
- value: string;
431
- }
432
- namespace TextPartResponse {
433
- interface Reaction {
434
- handle: Reaction.Handle;
435
- /**
436
- * Whether this reaction is from the current user
437
- */
438
- is_me: boolean;
439
- /**
440
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
441
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
442
- * emoji in the custom_emoji field.
443
- */
444
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
445
- /**
446
- * Custom emoji if type is "custom", null otherwise
447
- */
448
- custom_emoji?: string | null;
449
- }
450
- namespace Reaction {
451
- interface Handle {
452
- /**
453
- * Unique identifier for this handle
454
- */
455
- id: string;
456
- /**
457
- * Phone number (E.164) or email address of the participant
458
- */
459
- handle: string;
460
- /**
461
- * When this participant joined the chat
462
- */
463
- joined_at: string;
464
- /**
465
- * Messaging service type
466
- */
467
- service: 'iMessage' | 'SMS' | 'RCS';
468
- /**
469
- * Whether this handle belongs to the sender (your phone number)
470
- */
471
- is_me?: boolean | null;
472
- /**
473
- * When they left (if applicable)
474
- */
475
- left_at?: string | null;
476
- /**
477
- * Participant status
478
- */
479
- status?: 'active' | 'left' | 'removed' | null;
480
- }
481
- }
482
- }
483
- /**
484
- * A media attachment part
485
- */
486
- interface MediaPartResponse {
487
- /**
488
- * Unique attachment identifier
489
- */
490
- id: string;
491
- /**
492
- * Original filename
493
- */
494
- filename: string;
495
- /**
496
- * MIME type of the file
497
- */
498
- mime_type: string;
499
- /**
500
- * Reactions on this message part
501
- */
502
- reactions: Array<MediaPartResponse.Reaction> | null;
503
- /**
504
- * File size in bytes
505
- */
506
- size_bytes: number;
507
- /**
508
- * Indicates this is a media attachment part
509
- */
510
- type: 'media';
511
- /**
512
- * Presigned URL for downloading the attachment (expires in 1 hour).
513
- */
514
- url: string;
515
- }
516
- namespace MediaPartResponse {
517
- interface Reaction {
518
- handle: Reaction.Handle;
519
- /**
520
- * Whether this reaction is from the current user
521
- */
522
- is_me: boolean;
523
- /**
524
- * Type of reaction. Standard iMessage tapbacks are love, like, dislike, laugh,
525
- * emphasize, question. Custom emoji reactions have type "custom" with the actual
526
- * emoji in the custom_emoji field.
527
- */
528
- type: 'love' | 'like' | 'dislike' | 'laugh' | 'emphasize' | 'question' | 'custom';
529
- /**
530
- * Custom emoji if type is "custom", null otherwise
531
- */
532
- custom_emoji?: string | null;
533
- }
534
- namespace Reaction {
535
- interface Handle {
536
- /**
537
- * Unique identifier for this handle
538
- */
539
- id: string;
540
- /**
541
- * Phone number (E.164) or email address of the participant
542
- */
543
- handle: string;
544
- /**
545
- * When this participant joined the chat
546
- */
547
- joined_at: string;
548
- /**
549
- * Messaging service type
550
- */
551
- service: 'iMessage' | 'SMS' | 'RCS';
552
- /**
553
- * Whether this handle belongs to the sender (your phone number)
554
- */
555
- is_me?: boolean | null;
556
- /**
557
- * When they left (if applicable)
558
- */
559
- left_at?: string | null;
560
- /**
561
- * Participant status
562
- */
563
- status?: 'active' | 'left' | 'removed' | null;
564
- }
565
- }
566
- }
567
- /**
568
- * iMessage effect applied to a message (screen or bubble effect)
569
- */
570
- interface Effect {
571
- /**
572
- * Name of the effect. Common values:
573
- *
574
- * - Screen effects: confetti, fireworks, lasers, sparkles, celebration, hearts,
575
- * love, balloons, happy_birthday, echo, spotlight
576
- * - Bubble effects: slam, loud, gentle, invisible
577
- */
578
- name?: string;
579
- /**
580
- * Type of effect
581
- */
582
- type?: 'screen' | 'bubble';
583
- }
584
- /**
585
- * The sender of this message as a full handle object
586
- */
587
- interface FromHandle {
588
- /**
589
- * Unique identifier for this handle
590
- */
591
- id: string;
592
- /**
593
- * Phone number (E.164) or email address of the participant
594
- */
595
- handle: string;
596
- /**
597
- * When this participant joined the chat
598
- */
599
- joined_at: string;
600
- /**
601
- * Messaging service type
602
- */
603
- service: 'iMessage' | 'SMS' | 'RCS';
604
- /**
605
- * Whether this handle belongs to the sender (your phone number)
606
- */
607
- is_me?: boolean | null;
608
- /**
609
- * When they left (if applicable)
610
- */
611
- left_at?: string | null;
612
- /**
613
- * Participant status
614
- */
615
- status?: 'active' | 'left' | 'removed' | null;
616
- }
617
- /**
618
- * Indicates this message is a threaded reply to another message
619
- */
620
- interface ReplyTo {
621
- /**
622
- * The ID of the message to reply to
623
- */
624
- message_id: string;
625
- /**
626
- * The specific message part to reply to (0-based index). Defaults to 0 (first
627
- * part) if not provided. Use this when replying to a specific part of a multipart
628
- * message.
629
- */
630
- part_index?: number;
631
- }
632
- }
121
+ message: SentMessage;
633
122
  }
634
123
  export interface MessageListParams {
635
124
  /**
@@ -647,159 +136,9 @@ export interface MessageSendParams {
647
136
  * separating the "what" (message content) from the "where" (routing fields like
648
137
  * from/to).
649
138
  */
650
- message: MessageSendParams.Message;
651
- }
652
- export declare namespace MessageSendParams {
653
- /**
654
- * Message content container. Groups all message-related fields together,
655
- * separating the "what" (message content) from the "where" (routing fields like
656
- * from/to).
657
- */
658
- interface Message {
659
- /**
660
- * Array of message parts. Each part can be either text or media. Parts are
661
- * displayed in order. Text and media can be mixed.
662
- *
663
- * **Supported Media:**
664
- *
665
- * - Images: .jpg, .jpeg, .png, .gif, .heic, .heif, .tif, .tiff, .bmp
666
- * - Videos: .mp4, .mov, .m4v, .mpeg, .mpg, .3gp
667
- * - Audio: .m4a, .mp3, .aac, .caf, .wav, .aiff, .amr
668
- * - Documents: .pdf, .txt, .rtf, .csv, .doc, .docx, .xls, .xlsx, .ppt, .pptx,
669
- * .pages, .numbers, .key, .epub, .zip, .html, .htm
670
- * - Contact & Calendar: .vcf, .ics
671
- *
672
- * **Audio:**
673
- *
674
- * - Audio files (.m4a, .mp3, .aac, .caf, .wav, .aiff, .amr) are fully supported as
675
- * media parts
676
- * - To send audio as an **iMessage voice memo bubble** (inline playback UI), use
677
- * the dedicated `/v3/chats/{chatId}/voicememo` endpoint instead
678
- *
679
- * **Validation Rule:** Consecutive text parts are not allowed. Text parts must be
680
- * separated by media parts. For example, [text, text] is invalid, but [text,
681
- * media, text] is valid.
682
- */
683
- parts: Array<Message.TextPart | Message.MediaPart>;
684
- /**
685
- * iMessage effect to apply to this message (screen or bubble effect)
686
- */
687
- effect?: Message.Effect;
688
- /**
689
- * Optional idempotency key for this message. Use this to prevent duplicate sends
690
- * of the same message.
691
- */
692
- idempotency_key?: string;
693
- /**
694
- * Messaging service type
695
- */
696
- preferred_service?: 'iMessage' | 'SMS' | 'RCS';
697
- /**
698
- * Reply to another message to create a threaded conversation
699
- */
700
- reply_to?: Message.ReplyTo;
701
- }
702
- namespace Message {
703
- interface TextPart {
704
- /**
705
- * Indicates this is a text message part
706
- */
707
- type: 'text';
708
- /**
709
- * The text content
710
- */
711
- value: string;
712
- /**
713
- * Optional idempotency key for this specific message part. Use this to prevent
714
- * duplicate sends of the same part.
715
- */
716
- idempotency_key?: string;
717
- }
718
- interface MediaPart {
719
- /**
720
- * Indicates this is a media attachment part
721
- */
722
- type: 'media';
723
- /**
724
- * Reference to a file pre-uploaded via `POST /v3/attachments` (optional). The file
725
- * is already stored, so sends using this ID skip the download step — useful when
726
- * sending the same file to many recipients.
727
- *
728
- * Either `url` or `attachment_id` must be provided, but not both.
729
- */
730
- attachment_id?: string;
731
- /**
732
- * Optional idempotency key for this specific message part. Use this to prevent
733
- * duplicate sends of the same part.
734
- */
735
- idempotency_key?: string;
736
- /**
737
- * Any publicly accessible HTTPS URL to the media file. The server downloads and
738
- * sends the file automatically — no pre-upload step required.
739
- *
740
- * **Size limit:** 10MB maximum for URL-based downloads. For larger files (up to
741
- * 100MB), use the pre-upload flow: `POST /v3/attachments` to get a presigned URL,
742
- * upload directly, then reference by `attachment_id`.
743
- *
744
- * **Requirements:**
745
- *
746
- * - URL must use HTTPS
747
- * - File content must be a supported format (the server validates the actual file
748
- * content)
749
- *
750
- * **Supported formats:**
751
- *
752
- * - Images: .jpg, .jpeg, .png, .gif, .heic, .heif, .tif, .tiff, .bmp
753
- * - Videos: .mp4, .mov, .m4v, .mpeg, .mpg, .3gp
754
- * - Audio: .m4a, .mp3, .aac, .caf, .wav, .aiff, .amr
755
- * - Documents: .pdf, .txt, .rtf, .csv, .doc, .docx, .xls, .xlsx, .ppt, .pptx,
756
- * .pages, .numbers, .key, .epub, .zip, .html, .htm
757
- * - Contact & Calendar: .vcf, .ics
758
- *
759
- * **Tip:** Audio sent here appears as a regular file attachment. To send audio as
760
- * an iMessage voice memo bubble (with inline playback), use
761
- * `/v3/chats/{chatId}/voicememo`. For repeated sends of the same file, use
762
- * `attachment_id` to avoid redundant downloads.
763
- *
764
- * Either `url` or `attachment_id` must be provided, but not both.
765
- */
766
- url?: string;
767
- }
768
- /**
769
- * iMessage effect to apply to this message (screen or bubble effect)
770
- */
771
- interface Effect {
772
- /**
773
- * Name of the effect. Common values:
774
- *
775
- * - Screen effects: confetti, fireworks, lasers, sparkles, celebration, hearts,
776
- * love, balloons, happy_birthday, echo, spotlight
777
- * - Bubble effects: slam, loud, gentle, invisible
778
- */
779
- name?: string;
780
- /**
781
- * Type of effect
782
- */
783
- type?: 'screen' | 'bubble';
784
- }
785
- /**
786
- * Reply to another message to create a threaded conversation
787
- */
788
- interface ReplyTo {
789
- /**
790
- * The ID of the message to reply to
791
- */
792
- message_id: string;
793
- /**
794
- * The specific message part to reply to (0-based index). Defaults to 0 (first
795
- * part) if not provided. Use this when replying to a specific part of a multipart
796
- * message.
797
- */
798
- part_index?: number;
799
- }
800
- }
139
+ message: ChatsAPI.MessageContent;
801
140
  }
802
141
  export declare namespace Messages {
803
- export { type MessageListResponse as MessageListResponse, type MessageSendResponse as MessageSendResponse, type MessageListParams as MessageListParams, type MessageSendParams as MessageSendParams, };
142
+ export { type SentMessage as SentMessage, type MessageListResponse as MessageListResponse, type MessageSendResponse as MessageSendResponse, type MessageListParams as MessageListParams, type MessageSendParams as MessageSendParams, };
804
143
  }
805
144
  //# sourceMappingURL=messages.d.mts.map