meta-cloud-api 1.0.0 → 1.0.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 (133) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +405 -0
  3. package/dist/BusinessProfileApi-WXscSgo-.d.ts +353 -0
  4. package/dist/EncryptionApi-D7pt-OXT.d.ts +22 -0
  5. package/dist/FlowApi-UAvzhJfV.d.ts +136 -0
  6. package/dist/MediaApi-BrEKpqi_.d.ts +90 -0
  7. package/dist/MessageApi-Circorzz.d.ts +587 -0
  8. package/dist/PhoneNumberApi-DKlu9PHl.d.ts +142 -0
  9. package/dist/QrCodeApi-7vDwIBHR.d.ts +98 -0
  10. package/dist/RegistrationApi-qO_qoti9.d.ts +47 -0
  11. package/dist/TemplateApi-xGgIZt89.d.ts +161 -0
  12. package/dist/TwoStepVerificationApi-DfNPIz-C.d.ts +33 -0
  13. package/dist/WabaApi-DqQi_68m.d.ts +175 -0
  14. package/dist/WebhookProcessor-ByAe7Kf_.d.ts +707 -0
  15. package/dist/WhatsApp-BIBtT-y9.d.ts +82 -0
  16. package/dist/api/encryption/index.d.ts +10 -0
  17. package/dist/api/encryption/index.js +2 -0
  18. package/dist/api/encryption/index.js.map +1 -0
  19. package/dist/api/flow/index.d.ts +10 -0
  20. package/dist/api/flow/index.js +2 -0
  21. package/dist/api/flow/index.js.map +1 -0
  22. package/dist/api/index.d.ts +16 -0
  23. package/dist/api/index.js +2 -0
  24. package/dist/api/index.js.map +1 -0
  25. package/dist/api/media/index.d.ts +10 -0
  26. package/dist/api/media/index.js +2 -0
  27. package/dist/api/media/index.js.map +1 -0
  28. package/dist/api/messages/index.d.ts +10 -0
  29. package/dist/api/messages/index.js +2 -0
  30. package/dist/api/messages/index.js.map +1 -0
  31. package/dist/api/phone/index.d.ts +10 -0
  32. package/dist/api/phone/index.js +2 -0
  33. package/dist/api/phone/index.js.map +1 -0
  34. package/dist/api/profile/index.d.ts +10 -0
  35. package/dist/api/profile/index.js +2 -0
  36. package/dist/api/profile/index.js.map +1 -0
  37. package/dist/api/qrCode/index.d.ts +10 -0
  38. package/dist/api/qrCode/index.js +2 -0
  39. package/dist/api/qrCode/index.js.map +1 -0
  40. package/dist/api/registration/index.d.ts +10 -0
  41. package/dist/api/registration/index.js +2 -0
  42. package/dist/api/registration/index.js.map +1 -0
  43. package/dist/api/template/index.d.ts +215 -0
  44. package/dist/api/template/index.js +2 -0
  45. package/dist/api/template/index.js.map +1 -0
  46. package/dist/api/twoStepVerification/index.d.ts +10 -0
  47. package/dist/api/twoStepVerification/index.js +2 -0
  48. package/dist/api/twoStepVerification/index.js.map +1 -0
  49. package/dist/api/waba/index.d.ts +10 -0
  50. package/dist/api/waba/index.js +2 -0
  51. package/dist/api/waba/index.js.map +1 -0
  52. package/dist/base-CdGDdVEl.d.ts +18 -0
  53. package/dist/chunk-7QBIZCJ4.js +2 -0
  54. package/dist/chunk-7QBIZCJ4.js.map +1 -0
  55. package/dist/chunk-AMHQGG6Z.js +2 -0
  56. package/dist/chunk-AMHQGG6Z.js.map +1 -0
  57. package/dist/chunk-B7DCL6I7.js +10 -0
  58. package/dist/chunk-B7DCL6I7.js.map +1 -0
  59. package/dist/chunk-CRZ7EUYR.js +2 -0
  60. package/dist/chunk-CRZ7EUYR.js.map +1 -0
  61. package/dist/chunk-FKXSL2JK.js +3 -0
  62. package/dist/chunk-FKXSL2JK.js.map +1 -0
  63. package/dist/chunk-FSKBLPGE.js +2 -0
  64. package/dist/chunk-FSKBLPGE.js.map +1 -0
  65. package/dist/chunk-HJGN3PO4.js +3 -0
  66. package/dist/chunk-HJGN3PO4.js.map +1 -0
  67. package/dist/chunk-IYSR44P6.js +2 -0
  68. package/dist/chunk-IYSR44P6.js.map +1 -0
  69. package/dist/chunk-JC6YMVID.js +2 -0
  70. package/dist/chunk-JC6YMVID.js.map +1 -0
  71. package/dist/chunk-JPAV644F.js +2 -0
  72. package/dist/chunk-JPAV644F.js.map +1 -0
  73. package/dist/chunk-JXCLRKQ7.js +2 -0
  74. package/dist/chunk-JXCLRKQ7.js.map +1 -0
  75. package/dist/chunk-KMAH6636.js +2 -0
  76. package/dist/chunk-KMAH6636.js.map +1 -0
  77. package/dist/chunk-L4ESAO2S.js +2 -0
  78. package/dist/chunk-L4ESAO2S.js.map +1 -0
  79. package/dist/chunk-LV3TULSI.js +2 -0
  80. package/dist/chunk-LV3TULSI.js.map +1 -0
  81. package/dist/chunk-MJEG3K4V.js +2 -0
  82. package/dist/chunk-MJEG3K4V.js.map +1 -0
  83. package/dist/chunk-NLF2JGYY.js +2 -0
  84. package/dist/chunk-NLF2JGYY.js.map +1 -0
  85. package/dist/chunk-OA2SW4AF.js +2 -0
  86. package/dist/chunk-OA2SW4AF.js.map +1 -0
  87. package/dist/chunk-PHPQ5HP3.js +2 -0
  88. package/dist/chunk-PHPQ5HP3.js.map +1 -0
  89. package/dist/chunk-RIL6QABY.js +2 -0
  90. package/dist/chunk-RIL6QABY.js.map +1 -0
  91. package/dist/chunk-RWCVPWRC.js +2 -0
  92. package/dist/chunk-RWCVPWRC.js.map +1 -0
  93. package/dist/chunk-SNNRWNGZ.js +2 -0
  94. package/dist/chunk-SNNRWNGZ.js.map +1 -0
  95. package/dist/chunk-UCBYECNQ.js +2 -0
  96. package/dist/chunk-UCBYECNQ.js.map +1 -0
  97. package/dist/chunk-VHAODWCN.js +2 -0
  98. package/dist/chunk-VHAODWCN.js.map +1 -0
  99. package/dist/chunk-WGGN32O2.js +2 -0
  100. package/dist/chunk-WGGN32O2.js.map +1 -0
  101. package/dist/common-DDXsNyLF.d.ts +376 -0
  102. package/dist/core/webhook/frameworks/express.d.ts +48 -0
  103. package/dist/core/webhook/frameworks/express.js +2 -0
  104. package/dist/core/webhook/frameworks/express.js.map +1 -0
  105. package/dist/core/webhook/frameworks/nextjs.d.ts +44 -0
  106. package/dist/core/webhook/frameworks/nextjs.js +2 -0
  107. package/dist/core/webhook/frameworks/nextjs.js.map +1 -0
  108. package/dist/core/webhook/index.d.ts +26 -0
  109. package/dist/core/webhook/index.js +2 -0
  110. package/dist/core/webhook/index.js.map +1 -0
  111. package/dist/core/whatsapp/index.d.ts +40 -0
  112. package/dist/core/whatsapp/index.js +2 -0
  113. package/dist/core/whatsapp/index.js.map +1 -0
  114. package/dist/enums-BZd9T2ul.d.ts +707 -0
  115. package/dist/httpsClient-v4gmltzS.d.ts +19 -0
  116. package/dist/index.d.ts +22 -0
  117. package/dist/index.js +2 -0
  118. package/dist/index.js.map +1 -0
  119. package/dist/logger-BdE0Vyim.d.ts +9 -0
  120. package/dist/request-vYMaEfk5.d.ts +50 -0
  121. package/dist/types/config.d.ts +78 -0
  122. package/dist/types/config.js +2 -0
  123. package/dist/types/config.js.map +1 -0
  124. package/dist/types/enums.d.ts +1 -0
  125. package/dist/types/enums.js +2 -0
  126. package/dist/types/enums.js.map +1 -0
  127. package/dist/types/index.d.ts +6 -0
  128. package/dist/types/index.js +2 -0
  129. package/dist/types/index.js.map +1 -0
  130. package/dist/utils/index.d.ts +98 -0
  131. package/dist/utils/index.js +2 -0
  132. package/dist/utils/index.js.map +1 -0
  133. package/package.json +240 -8
@@ -0,0 +1,587 @@
1
+ import { a as BaseClass, B as BaseAPI } from './base-CdGDdVEl.js';
2
+ import { WabaConfigType } from './types/config.js';
3
+ import { I as InteractiveTypesEnum, C as ComponentTypesEnum, L as LanguagesEnum, P as ParametersTypesEnum, i as CurrencyCodesEnum, S as SubTypeEnum, B as ButtonPositionEnum, M as MessageTypesEnum } from './enums-BZd9T2ul.js';
4
+ import { a as GeneralRequestBody, R as RequesterClass } from './request-vYMaEfk5.js';
5
+
6
+ interface ReactionParams {
7
+ messageId: string;
8
+ emoji: string;
9
+ to: string;
10
+ }
11
+
12
+ type DocumentMediaObject$2 = {
13
+ id?: string;
14
+ link?: string;
15
+ caption?: string;
16
+ filename?: string;
17
+ };
18
+ type ImageMediaObject$2 = {
19
+ id?: string;
20
+ link?: string;
21
+ caption?: string;
22
+ };
23
+ type VideoMediaObject$2 = {
24
+ id?: string;
25
+ link?: string;
26
+ caption?: string;
27
+ };
28
+ type ProductObject = {
29
+ product_retailer_id: string;
30
+ };
31
+ type SimpleTextObject$1 = {
32
+ text: string;
33
+ };
34
+ type RowObject = {
35
+ id: string;
36
+ title: string;
37
+ description?: string;
38
+ };
39
+ type MultiProductSectionObject = {
40
+ product_items: ProductObject[];
41
+ rows?: never;
42
+ title?: string;
43
+ };
44
+ type ListSectionObject = {
45
+ product_items?: never;
46
+ rows: RowObject[];
47
+ title?: string;
48
+ };
49
+ type SectionObject = MultiProductSectionObject | ListSectionObject;
50
+ type ButtonObject = {
51
+ title: string;
52
+ id: string;
53
+ };
54
+ type ReplyButtonObject = {
55
+ type: 'reply';
56
+ reply: ButtonObject;
57
+ };
58
+ type ActionObject = {
59
+ buttons?: ReplyButtonObject[];
60
+ catalog_id?: string;
61
+ product_retailer_id?: string;
62
+ sections?: SectionObject;
63
+ };
64
+ type HeaderObject = {
65
+ type: 'document' | 'image' | 'text' | 'video';
66
+ document?: DocumentMediaObject$2;
67
+ image?: ImageMediaObject$2;
68
+ text?: string;
69
+ video?: VideoMediaObject$2;
70
+ };
71
+ type ButtonInteractiveObject = {
72
+ type: InteractiveTypesEnum.Button;
73
+ body: SimpleTextObject$1;
74
+ footer?: SimpleTextObject$1;
75
+ header?: HeaderObject;
76
+ action: ActionObject;
77
+ };
78
+ type ListInteractiveObject = {
79
+ type: InteractiveTypesEnum.List;
80
+ body: SimpleTextObject$1;
81
+ footer?: SimpleTextObject$1;
82
+ header?: HeaderObject;
83
+ action: ActionObject;
84
+ };
85
+ type ProductInteractiveObject = {
86
+ type: InteractiveTypesEnum.Product;
87
+ body?: SimpleTextObject$1;
88
+ footer?: SimpleTextObject$1;
89
+ header?: HeaderObject;
90
+ action: ActionObject;
91
+ };
92
+ type ProductListInteractiveObject = {
93
+ type: InteractiveTypesEnum.ProductList;
94
+ body: SimpleTextObject$1;
95
+ footer?: SimpleTextObject$1;
96
+ header: HeaderObject;
97
+ action: ActionObject;
98
+ };
99
+ type CtaUrlParameters = {
100
+ display_text: string;
101
+ url: string;
102
+ };
103
+ type CtaUrlActionObject = {
104
+ name: 'cta_url';
105
+ parameters: CtaUrlParameters;
106
+ };
107
+ type CtaUrlInteractiveObject = {
108
+ type: InteractiveTypesEnum.CtaUrl;
109
+ body?: SimpleTextObject$1;
110
+ footer?: SimpleTextObject$1;
111
+ header?: HeaderObject;
112
+ action: CtaUrlActionObject;
113
+ };
114
+ type LocationRequestActionObject = {
115
+ name: 'send_location';
116
+ };
117
+ type LocationRequestInteractiveObject = {
118
+ type: InteractiveTypesEnum.LocationRequest;
119
+ body: SimpleTextObject$1;
120
+ footer?: SimpleTextObject$1;
121
+ header?: HeaderObject;
122
+ action: LocationRequestActionObject;
123
+ };
124
+ type AddressValues = {
125
+ name?: string;
126
+ phone_number?: string;
127
+ in_pin_code?: string;
128
+ house_number?: string;
129
+ floor_number?: string;
130
+ tower_number?: string;
131
+ building_name?: string;
132
+ address?: string;
133
+ landmark_area?: string;
134
+ city?: string;
135
+ state?: string;
136
+ };
137
+ type SavedAddress = {
138
+ id: string;
139
+ value: AddressValues;
140
+ };
141
+ type ValidationErrors = {
142
+ [key in keyof AddressValues]?: string;
143
+ };
144
+ type AddressMessageParameters = {
145
+ country: string;
146
+ values?: AddressValues;
147
+ saved_addresses?: SavedAddress[];
148
+ validation_errors?: ValidationErrors;
149
+ };
150
+ type AddressMessageActionObject = {
151
+ name: 'address_message';
152
+ parameters: AddressMessageParameters;
153
+ };
154
+ type AddressMessageInteractiveObject = {
155
+ type: InteractiveTypesEnum.AddressMessage;
156
+ body: SimpleTextObject$1;
157
+ footer?: SimpleTextObject$1;
158
+ header?: HeaderObject;
159
+ action: AddressMessageActionObject;
160
+ };
161
+ type FlowParameters = {
162
+ flow_message_version: string;
163
+ flow_id?: string;
164
+ flow_name?: string;
165
+ flow_cta: string;
166
+ mode?: 'draft' | 'published';
167
+ flow_token: string;
168
+ flow_action: 'navigate' | 'data_exchange';
169
+ flow_action_payload?: {
170
+ screen?: string;
171
+ data?: Record<string, string>;
172
+ };
173
+ };
174
+ type FlowActionObject = {
175
+ name: 'flow';
176
+ parameters: FlowParameters;
177
+ };
178
+ type FlowInteractiveObject = {
179
+ type: InteractiveTypesEnum.Flow;
180
+ body: SimpleTextObject$1;
181
+ footer?: SimpleTextObject$1;
182
+ header?: HeaderObject;
183
+ action: FlowActionObject;
184
+ };
185
+ type InteractiveObject = ButtonInteractiveObject | ListInteractiveObject | ProductInteractiveObject | ProductListInteractiveObject | CtaUrlInteractiveObject | LocationRequestInteractiveObject | AddressMessageInteractiveObject | FlowInteractiveObject;
186
+
187
+ type LocationObject = {
188
+ longitude: number;
189
+ latitude: number;
190
+ name?: string;
191
+ address?: string;
192
+ };
193
+
194
+ type AddressesObject = {
195
+ street?: string;
196
+ city?: string;
197
+ state?: string;
198
+ zip?: string;
199
+ country?: string;
200
+ country_code?: string;
201
+ type?: 'HOME' | 'WORK' | string;
202
+ };
203
+ type EmailObject = {
204
+ email?: string;
205
+ type?: 'HOME' | 'WORK' | string;
206
+ };
207
+ type NameObject = {
208
+ formatted_name: string;
209
+ first_name?: string;
210
+ last_name?: string;
211
+ middle_name?: string;
212
+ suffix?: string;
213
+ prefix?: string;
214
+ };
215
+ type OrgObject = {
216
+ company?: string;
217
+ department?: string;
218
+ title?: string;
219
+ };
220
+ type PhoneObject = {
221
+ phone?: 'PHONE_NUMBER';
222
+ type?: 'CELL' | 'MAIN' | 'IPHONE' | 'HOME' | 'WORK' | string;
223
+ wa_id?: string;
224
+ };
225
+ type URLObject = {
226
+ url?: string;
227
+ type?: 'HOME' | 'WORK' | string;
228
+ };
229
+ type ContactObject = {
230
+ addresses?: AddressesObject[];
231
+ birthday?: `${number}${number}${number}${number}-${number}${number}-${number}${number}`;
232
+ emails?: EmailObject[];
233
+ name: NameObject;
234
+ org?: OrgObject;
235
+ phones?: PhoneObject[];
236
+ urls?: URLObject[];
237
+ };
238
+
239
+ type MetaMediaObject = {
240
+ id: string;
241
+ link?: never;
242
+ };
243
+ type HostedMediaObject = {
244
+ id?: never;
245
+ link: string;
246
+ };
247
+ type AudioMediaObject = MetaMediaObject | HostedMediaObject;
248
+ type MetaDocumentMediaObject = MetaMediaObject & {
249
+ caption?: string;
250
+ filename?: string;
251
+ };
252
+ type HostedDocumentMediaObject = HostedMediaObject & {
253
+ caption?: string;
254
+ filename?: string;
255
+ };
256
+ type DocumentMediaObject$1 = MetaDocumentMediaObject | HostedDocumentMediaObject;
257
+ type MetaImageMediaObject = MetaMediaObject & {
258
+ caption?: string;
259
+ };
260
+ type HostedImageMediaObject = HostedMediaObject & {
261
+ caption?: string;
262
+ };
263
+ type ImageMediaObject$1 = MetaImageMediaObject | HostedImageMediaObject;
264
+ type MetaVideoMediaObject = MetaMediaObject & {
265
+ caption?: string;
266
+ };
267
+ type HostedVideoMediaObject = HostedMediaObject & {
268
+ caption?: string;
269
+ };
270
+ type VideoMediaObject$1 = MetaVideoMediaObject | HostedVideoMediaObject;
271
+ type StickerMediaObject = MetaMediaObject | HostedMediaObject;
272
+
273
+ type LanguageObject = {
274
+ policy: 'deterministic';
275
+ code: LanguagesEnum;
276
+ };
277
+ type ParametersObject<T extends ParametersTypesEnum> = {
278
+ type: T;
279
+ };
280
+ type SimpleTextObject = {
281
+ text: string;
282
+ };
283
+ type TextParametersObject = ParametersObject<ParametersTypesEnum.Text> & SimpleTextObject;
284
+ type CouponCodeParametersObject = ParametersObject<ParametersTypesEnum.CouponCode> & {
285
+ coupon_code: string;
286
+ };
287
+ type CurrencyObject = {
288
+ fallback_value: string;
289
+ code: CurrencyCodesEnum;
290
+ amount_1000: number;
291
+ };
292
+ type CurrencyParametersObject = ParametersObject<ParametersTypesEnum.Currency> & {
293
+ currency: CurrencyObject;
294
+ };
295
+ type DateTimeObject = {
296
+ fallback_value: string;
297
+ };
298
+ type DateTimeParametersObject = ParametersObject<ParametersTypesEnum.Currency> & {
299
+ date_time: DateTimeObject;
300
+ };
301
+ type DocumentMediaObject = {
302
+ id?: string;
303
+ link?: string;
304
+ caption?: string;
305
+ filename?: string;
306
+ };
307
+ type ImageMediaObject = {
308
+ id?: string;
309
+ link?: string;
310
+ caption?: string;
311
+ };
312
+ type VideoMediaObject = {
313
+ id?: string;
314
+ link?: string;
315
+ caption?: string;
316
+ };
317
+ type DocumentParametersObject = ParametersObject<ParametersTypesEnum.Document> & DocumentMediaObject;
318
+ type ImageParametersObject = ParametersObject<ParametersTypesEnum.Image> & ImageMediaObject;
319
+ type VideoParametersObject = ParametersObject<ParametersTypesEnum.Video> & VideoMediaObject;
320
+ type ComponentObject<T extends ComponentTypesEnum> = {
321
+ type: T;
322
+ parameters: (CurrencyParametersObject | DateTimeParametersObject | DocumentParametersObject | ImageParametersObject | TextParametersObject | VideoParametersObject | CouponCodeParametersObject)[];
323
+ };
324
+ type ButtonComponentObject = ComponentObject<ComponentTypesEnum.Button> & {
325
+ parameters: Array<ParametersTypesEnum>;
326
+ sub_type: SubTypeEnum;
327
+ index: ButtonPositionEnum;
328
+ };
329
+ type MessageTemplateObject<T extends ComponentTypesEnum> = {
330
+ name: string;
331
+ language: LanguageObject;
332
+ components?: (ComponentObject<T> | ButtonComponentObject)[];
333
+ };
334
+
335
+ type TextObject = {
336
+ body: string;
337
+ preview_url?: boolean;
338
+ };
339
+ interface TextMessageParams extends MessageRequestParams<TextObject | string> {
340
+ previewUrl?: boolean;
341
+ }
342
+
343
+ type GeneralMessageBody = GeneralRequestBody & {
344
+ /**
345
+ * The Meta messaging product name.
346
+ * @default 'whatsapp'
347
+ */
348
+ messaging_product: 'whatsapp';
349
+ };
350
+ type ConTextObject = {
351
+ message_id: string;
352
+ };
353
+ type MessageRequestBody<T extends MessageTypesEnum> = GeneralMessageBody & {
354
+ recipient_type?: string;
355
+ to: string;
356
+ context?: ConTextObject;
357
+ type?: T;
358
+ };
359
+ interface MessageRequestParams<T> {
360
+ body: T;
361
+ to: string;
362
+ replyMessageId?: string;
363
+ }
364
+ interface StatusParams {
365
+ status: string;
366
+ messageId: string;
367
+ typingIndicator?: {
368
+ type: string;
369
+ };
370
+ }
371
+ type MessagesResponse = GeneralMessageBody & {
372
+ contacts: [
373
+ {
374
+ input: string;
375
+ wa_id: string;
376
+ }
377
+ ];
378
+ messages: [
379
+ {
380
+ id: string;
381
+ }
382
+ ];
383
+ };
384
+ declare class MessagesClass extends BaseClass {
385
+ text(params: TextMessageParams): Promise<MessagesResponse>;
386
+ template(params: MessageRequestParams<MessageTemplateObject<ComponentTypesEnum>>): Promise<MessagesResponse>;
387
+ audio(params: MessageRequestParams<AudioMediaObject>): Promise<MessagesResponse>;
388
+ document(params: MessageRequestParams<DocumentMediaObject$1>): Promise<MessagesResponse>;
389
+ image(params: MessageRequestParams<ImageMediaObject$1>): Promise<MessagesResponse>;
390
+ video(params: MessageRequestParams<VideoMediaObject$1>): Promise<MessagesResponse>;
391
+ sticker(params: MessageRequestParams<StickerMediaObject>): Promise<MessagesResponse>;
392
+ contacts(params: MessageRequestParams<[ContactObject]>): Promise<MessagesResponse>;
393
+ location(params: MessageRequestParams<LocationObject>): Promise<MessagesResponse>;
394
+ interactive(params: MessageRequestParams<InteractiveObject>): Promise<MessagesResponse>;
395
+ interactiveList(params: MessageRequestParams<InteractiveObject & {
396
+ type: InteractiveTypesEnum.List;
397
+ }>): Promise<MessagesResponse>;
398
+ interactiveCtaUrl(params: MessageRequestParams<InteractiveObject & {
399
+ type: InteractiveTypesEnum.CtaUrl;
400
+ }>): Promise<MessagesResponse>;
401
+ interactiveLocationRequest(params: MessageRequestParams<InteractiveObject & {
402
+ type: InteractiveTypesEnum.LocationRequest;
403
+ }>): Promise<MessagesResponse>;
404
+ interactiveAddressMessage(params: MessageRequestParams<InteractiveObject & {
405
+ type: InteractiveTypesEnum.AddressMessage;
406
+ }>): Promise<MessagesResponse>;
407
+ interactiveReplyButtons(params: MessageRequestParams<InteractiveObject & {
408
+ type: InteractiveTypesEnum.Button;
409
+ }>): Promise<MessagesResponse>;
410
+ interactiveFlow(params: MessageRequestParams<InteractiveObject & {
411
+ type: InteractiveTypesEnum.Flow;
412
+ }>): Promise<MessagesResponse>;
413
+ reaction(params: ReactionParams): Promise<MessagesResponse>;
414
+ markAsRead(params: {
415
+ messageId: string;
416
+ }): Promise<MessagesResponse>;
417
+ showTypingIndicator(params: {
418
+ messageId: string;
419
+ }): Promise<MessagesResponse>;
420
+ status(params: StatusParams): Promise<MessagesResponse>;
421
+ }
422
+
423
+ /**
424
+ * Maps each message type to its appropriate payload type
425
+ */
426
+ type MessagePayloadType<T extends MessageTypesEnum> = T extends MessageTypesEnum.Audio ? AudioMediaObject : T extends MessageTypesEnum.Contacts ? [ContactObject] : T extends MessageTypesEnum.Document ? DocumentMediaObject$1 : T extends MessageTypesEnum.Image ? ImageMediaObject$1 : T extends MessageTypesEnum.Interactive ? InteractiveObject : T extends MessageTypesEnum.Location ? LocationObject : T extends MessageTypesEnum.Template ? MessageTemplateObject<ComponentTypesEnum> : T extends MessageTypesEnum.Sticker ? StickerMediaObject : T extends MessageTypesEnum.Text ? TextObject : T extends MessageTypesEnum.Video ? VideoMediaObject$1 : T extends MessageTypesEnum.Reaction ? {
427
+ message_id: string;
428
+ emoji: string;
429
+ } : never;
430
+ declare class MessagesApi extends BaseAPI implements MessagesClass {
431
+ private readonly commonMethod;
432
+ private readonly commonEndpoint;
433
+ constructor(config: WabaConfigType, client: RequesterClass);
434
+ /**
435
+ * Builds the request body for WhatsApp API messages
436
+ * @param type The type of message to send
437
+ * @param payload The message payload object
438
+ * @param to The recipient's phone number
439
+ * @param replyMessageId Optional message ID to reply to
440
+ * @returns The formatted request body
441
+ */
442
+ bodyBuilder<T extends MessageTypesEnum>(type: T, payload: MessagePayloadType<T>, to: string, replyMessageId?: string): MessageRequestBody<T>;
443
+ /**
444
+ * Sends a request to the WhatsApp API
445
+ * @param body The request body to send
446
+ * @returns Promise with the API response
447
+ */
448
+ private send;
449
+ /**
450
+ * Sends an audio message via WhatsApp
451
+ * @param params The audio message parameter object
452
+ * @returns Promise with the message response
453
+ */
454
+ audio(params: MessageRequestParams<AudioMediaObject>): Promise<MessagesResponse>;
455
+ /**
456
+ * Sends a contact card via WhatsApp
457
+ * @param params The contact message parameter object
458
+ * @returns Promise with the message response
459
+ */
460
+ contacts(params: MessageRequestParams<[ContactObject]>): Promise<MessagesResponse>;
461
+ /**
462
+ * Sends a document via WhatsApp
463
+ * @param params The document message parameter object
464
+ * @returns Promise with the message response
465
+ */
466
+ document(params: MessageRequestParams<DocumentMediaObject$1>): Promise<MessagesResponse>;
467
+ /**
468
+ * Sends an image via WhatsApp
469
+ * @param params The image message parameter object
470
+ * @returns Promise with the message response
471
+ */
472
+ image(params: MessageRequestParams<ImageMediaObject$1>): Promise<MessagesResponse>;
473
+ /**
474
+ * Sends an interactive message via WhatsApp
475
+ * @param params The interactive message parameter object
476
+ * @returns Promise with the message response
477
+ */
478
+ interactive(params: MessageRequestParams<InteractiveObject>): Promise<MessagesResponse>;
479
+ /**
480
+ * Sends a location via WhatsApp
481
+ * @param params The location message parameter object
482
+ * @returns Promise with the message response
483
+ */
484
+ location(params: MessageRequestParams<LocationObject>): Promise<MessagesResponse>;
485
+ /**
486
+ * Sends a sticker via WhatsApp
487
+ * @param params The sticker message parameter object
488
+ * @returns Promise with the message response
489
+ */
490
+ sticker(params: MessageRequestParams<StickerMediaObject>): Promise<MessagesResponse>;
491
+ /**
492
+ * Sends a template message via WhatsApp
493
+ * @param params The template message parameter object
494
+ * @returns Promise with the message response
495
+ */
496
+ template(params: MessageRequestParams<MessageTemplateObject<ComponentTypesEnum>>): Promise<MessagesResponse>;
497
+ /**
498
+ * Sends a text message via WhatsApp
499
+ * @param params The text message parameter object
500
+ * @returns Promise with the message response
501
+ */
502
+ text(params: TextMessageParams): Promise<MessagesResponse>;
503
+ /**
504
+ * Sends a video message via WhatsApp
505
+ * @param params The video message parameter object
506
+ * @returns Promise with the message response
507
+ */
508
+ video(params: MessageRequestParams<VideoMediaObject$1>): Promise<MessagesResponse>;
509
+ /**
510
+ * Updates message status (mark as read, etc.)
511
+ * @param params The status update parameters
512
+ * @returns Promise with the API response
513
+ */
514
+ status(params: StatusParams): Promise<MessagesResponse>;
515
+ /**
516
+ * Marks a message as read
517
+ * @param params Object containing messageId
518
+ * @returns Promise with the API response
519
+ */
520
+ markAsRead(params: {
521
+ messageId: string;
522
+ }): Promise<MessagesResponse>;
523
+ /**
524
+ * Shows typing indicator
525
+ * @param params Object containing messageId
526
+ * @returns Promise with the API response
527
+ */
528
+ showTypingIndicator(params: {
529
+ messageId: string;
530
+ }): Promise<MessagesResponse>;
531
+ /**
532
+ * Sends a list interactive message
533
+ * @param params The list interactive message parameters
534
+ * @returns Promise with the message response
535
+ */
536
+ interactiveList(params: MessageRequestParams<InteractiveObject & {
537
+ type: InteractiveTypesEnum.List;
538
+ }>): Promise<MessagesResponse>;
539
+ /**
540
+ * Sends a CTA URL interactive message
541
+ * @param params The CTA URL interactive message parameters
542
+ * @returns Promise with the message response
543
+ */
544
+ interactiveCtaUrl(params: MessageRequestParams<InteractiveObject & {
545
+ type: InteractiveTypesEnum.CtaUrl;
546
+ }>): Promise<MessagesResponse>;
547
+ /**
548
+ * Sends a location request interactive message
549
+ * @param params The location request interactive message parameters
550
+ * @returns Promise with the message response
551
+ */
552
+ interactiveLocationRequest(params: MessageRequestParams<InteractiveObject & {
553
+ type: InteractiveTypesEnum.LocationRequest;
554
+ }>): Promise<MessagesResponse>;
555
+ /**
556
+ * Sends an address message interactive message
557
+ * @param params The address message interactive message parameters
558
+ * @returns Promise with the message response
559
+ */
560
+ interactiveAddressMessage(params: MessageRequestParams<InteractiveObject & {
561
+ type: InteractiveTypesEnum.AddressMessage;
562
+ }>): Promise<MessagesResponse>;
563
+ /**
564
+ * Sends a reply buttons interactive message
565
+ * @param params The reply buttons interactive message parameters
566
+ * @returns Promise with the message response
567
+ */
568
+ interactiveReplyButtons(params: MessageRequestParams<InteractiveObject & {
569
+ type: InteractiveTypesEnum.Button;
570
+ }>): Promise<MessagesResponse>;
571
+ /**
572
+ * Sends a flow interactive message
573
+ * @param params The flow interactive message parameters
574
+ * @returns Promise with the message response
575
+ */
576
+ interactiveFlow(params: MessageRequestParams<InteractiveObject & {
577
+ type: InteractiveTypesEnum.Flow;
578
+ }>): Promise<MessagesResponse>;
579
+ /**
580
+ * Sends a reaction to a message
581
+ * @param params The reaction parameters
582
+ * @returns Promise with the message response
583
+ */
584
+ reaction(params: ReactionParams): Promise<MessagesResponse>;
585
+ }
586
+
587
+ export { type AudioMediaObject as A, type ContactObject as C, type DocumentMediaObject$1 as D, type ImageMediaObject$1 as I, type LocationObject as L, MessagesApi as M, type ReactionParams as R, type StatusParams as S, type TextMessageParams as T, type VideoMediaObject$1 as V, type InteractiveObject as a, type MessageRequestParams as b, type MessagesResponse as c, type MessageTemplateObject as d, type StickerMediaObject as e, type TextObject as f };