@muhammedaksam/waha-node 2025.12.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.
@@ -0,0 +1,4451 @@
1
+ import { AxiosInstance, AxiosRequestConfig, ResponseType, AxiosResponse } from 'axios';
2
+
3
+ interface Base64File {
4
+ mimetype: string;
5
+ data: string;
6
+ }
7
+ interface QRCodeValue {
8
+ value: string;
9
+ }
10
+ interface RequestCodeRequest {
11
+ /**
12
+ * Mobile phone number in international format
13
+ * @example "12132132130"
14
+ */
15
+ phoneNumber: string;
16
+ /**
17
+ * How would you like to receive the one time code for registration? |sms|voice. Leave empty for Web pairing.
18
+ * @example null
19
+ */
20
+ method?: string;
21
+ }
22
+ interface ChatWootCommandsConfig {
23
+ /** @default true */
24
+ server: boolean;
25
+ /** @default false */
26
+ queue?: boolean;
27
+ }
28
+ interface ChatWootConversationsConfig {
29
+ /**
30
+ * Process message.ack events to mark ChatWoot conversations as read. Enabled by default.
31
+ * @default true
32
+ */
33
+ markAsRead?: boolean;
34
+ sort: 'activity_newest' | 'created_newest' | 'created_oldest' | 'activity_oldest';
35
+ status: ('open' | 'pending' | 'snoozed' | 'resolved')[] | null;
36
+ }
37
+ interface ChatWootAppConfig {
38
+ url: string;
39
+ accountId: number;
40
+ accountToken: string;
41
+ inboxId: number;
42
+ inboxIdentifier: string;
43
+ /** @default "OFF" */
44
+ linkPreview?: 'OFF' | 'LG' | 'HG';
45
+ /** @default "en-US" */
46
+ locale: string;
47
+ templates?: object;
48
+ commands?: ChatWootCommandsConfig;
49
+ conversations?: ChatWootConversationsConfig;
50
+ }
51
+ interface CallsAppChannelConfig {
52
+ /**
53
+ * Reject incoming calls for this chat type
54
+ * @default true
55
+ */
56
+ reject: boolean;
57
+ /** Optional auto-reply message sent after the call is rejected. If empty, no message is sent. */
58
+ message?: string;
59
+ }
60
+ interface CallsAppConfig {
61
+ /**
62
+ * Rules applied to direct messages (non-group calls)
63
+ * @default {"reject":true}
64
+ */
65
+ dm: CallsAppChannelConfig;
66
+ /**
67
+ * Rules applied to group calls
68
+ * @default {"reject":true}
69
+ */
70
+ group: CallsAppChannelConfig;
71
+ }
72
+ interface App {
73
+ /**
74
+ * Enable or disable this app without deleting it. If omitted, treated as enabled (true).
75
+ * @default true
76
+ */
77
+ enabled?: boolean;
78
+ id: string;
79
+ session: string;
80
+ app: 'chatwoot' | 'calls';
81
+ config: object;
82
+ }
83
+ interface MeInfo {
84
+ /** @example "11111111111@c.us" */
85
+ id: string;
86
+ /** @example "123123@lid" */
87
+ lid?: string;
88
+ /**
89
+ * Your id with device number
90
+ * @example "123123:123@s.whatsapp.net"
91
+ */
92
+ jid?: string;
93
+ pushName: string;
94
+ }
95
+ interface ProxyConfig {
96
+ /** @example "localhost:3128" */
97
+ server: string;
98
+ /** @example null */
99
+ username?: string;
100
+ /** @example null */
101
+ password?: string;
102
+ }
103
+ interface IgnoreConfig {
104
+ /** Ignore a status@broadcast (stories) events */
105
+ status?: boolean;
106
+ /** Ignore groups events */
107
+ groups?: boolean;
108
+ /** Ignore channels events */
109
+ channels?: boolean;
110
+ /** Ignore broadcast events (broadcast list and status) */
111
+ broadcast?: boolean;
112
+ }
113
+ interface NowebStoreConfig {
114
+ /**
115
+ * Enable or disable the store for contacts, chats, and messages.
116
+ * @default false
117
+ * @example true
118
+ */
119
+ enabled: boolean;
120
+ /**
121
+ * Enable full sync on session initialization (when scanning QR code).
122
+ * Full sync will download all contacts, chats, and messages from the phone.
123
+ * If disabled, only messages early than 90 days will be downloaded and some contacts may be missing.
124
+ * @default false
125
+ */
126
+ fullSync: boolean;
127
+ }
128
+ interface NowebConfig {
129
+ /**
130
+ * Mark the session as online when it connects to the server.
131
+ * @default true
132
+ */
133
+ markOnline: boolean;
134
+ store?: NowebStoreConfig;
135
+ }
136
+ interface WebjsConfig {
137
+ /**
138
+ * Enable emission of special 'tag:*' engine events required for presence.update and message.ack.
139
+ * WARNING: Enabling this may have performance and stability impact. Disabled by default.
140
+ * @default false
141
+ */
142
+ tagsEventsOn?: boolean;
143
+ }
144
+ interface HmacConfiguration {
145
+ /** @example "your-secret-key" */
146
+ key?: string;
147
+ }
148
+ interface RetriesConfiguration {
149
+ /** @example 2 */
150
+ delaySeconds?: number;
151
+ /** @example 15 */
152
+ attempts?: number;
153
+ /** @example "linear" */
154
+ policy?: 'linear' | 'exponential' | 'constant';
155
+ }
156
+ interface CustomHeader {
157
+ /** @example "X-My-Custom-Header" */
158
+ name: string;
159
+ /** @example "Value" */
160
+ value: string;
161
+ }
162
+ interface WebhookConfig {
163
+ /**
164
+ * You can use https://docs.webhook.site/ to test webhooks and see the payload
165
+ * @example "https://webhook.site/11111111-1111-1111-1111-11111111"
166
+ */
167
+ url: string;
168
+ /** @example ["message","session.status"] */
169
+ events: object[];
170
+ /** @example null */
171
+ hmac?: HmacConfiguration;
172
+ /** @example null */
173
+ retries?: RetriesConfiguration;
174
+ /** @example null */
175
+ customHeaders?: CustomHeader[];
176
+ }
177
+ interface SessionConfig {
178
+ /**
179
+ * Metadata for the session. You'll get 'metadata' in all webhooks.
180
+ * @example {"user.id":"123","user.email":"email@example.com"}
181
+ */
182
+ metadata?: object;
183
+ /** @example null */
184
+ proxy?: ProxyConfig;
185
+ /** @default false */
186
+ debug?: boolean;
187
+ /**
188
+ * Ignore some events related to specific chats
189
+ * @example {"status":null,"groups":null,"channels":null}
190
+ */
191
+ ignore?: IgnoreConfig;
192
+ /** @example {"store":{"enabled":true,"fullSync":false}} */
193
+ noweb?: NowebConfig;
194
+ /** WebJS-specific settings. */
195
+ webjs?: WebjsConfig;
196
+ webhooks?: WebhookConfig[];
197
+ }
198
+ interface SessionInfo {
199
+ /**
200
+ * Session name (id)
201
+ * @example "default"
202
+ */
203
+ name: string;
204
+ /** Apps configured for the session. */
205
+ apps?: App[] | null;
206
+ me?: MeInfo;
207
+ assignedWorker?: string;
208
+ presence: object;
209
+ timestamps: {
210
+ activity: number | null;
211
+ };
212
+ status: 'STOPPED' | 'STARTING' | 'SCAN_QR_CODE' | 'WORKING' | 'FAILED';
213
+ config?: SessionConfig;
214
+ }
215
+ interface SessionCreateRequest {
216
+ /**
217
+ * Session name (id)
218
+ * @maxLength 54
219
+ * @pattern /^[a-zA-Z0-9_-]*$/
220
+ * @example "default"
221
+ */
222
+ name?: string;
223
+ /** Apps to be synchronized for this session. */
224
+ apps?: App[] | null;
225
+ /**
226
+ * Start session after creation
227
+ * @default true
228
+ * @example true
229
+ */
230
+ start?: boolean;
231
+ config?: SessionConfig;
232
+ }
233
+ interface SessionDTO {
234
+ /**
235
+ * Session name (id)
236
+ * @example "default"
237
+ */
238
+ name: string;
239
+ status: 'STOPPED' | 'STARTING' | 'SCAN_QR_CODE' | 'WORKING' | 'FAILED';
240
+ config?: SessionConfig;
241
+ }
242
+ interface SessionUpdateRequest {
243
+ /** Apps to be synchronized for this session. */
244
+ apps?: App[] | null;
245
+ config?: SessionConfig;
246
+ }
247
+ interface SessionStartDeprecatedRequest {
248
+ /**
249
+ * Session name (id)
250
+ * @example "default"
251
+ */
252
+ name: string;
253
+ config?: SessionConfig;
254
+ }
255
+ interface SessionStopDeprecatedRequest {
256
+ /**
257
+ * Session name (id)
258
+ * @example "default"
259
+ */
260
+ name: string;
261
+ /**
262
+ * Stop and logout from the session.
263
+ * @default false
264
+ * @example false
265
+ */
266
+ logout?: boolean;
267
+ }
268
+ interface SessionLogoutDeprecatedRequest {
269
+ /**
270
+ * Session name (id)
271
+ * @example "default"
272
+ */
273
+ name: string;
274
+ }
275
+ interface MyProfile {
276
+ /** @example "11111111111@c.us" */
277
+ id: string;
278
+ /** @example "https://example.com/picture.jpg" */
279
+ picture: string | null;
280
+ name: string;
281
+ }
282
+ interface ProfileNameRequest {
283
+ /** @example "My New Name" */
284
+ name: string;
285
+ }
286
+ interface Result {
287
+ /** @default true */
288
+ success: boolean;
289
+ }
290
+ interface ProfileStatusRequest {
291
+ /** @example "🎉 Hey there! I am using WhatsApp 🎉" */
292
+ status: string;
293
+ }
294
+ interface RemoteFile {
295
+ /**
296
+ * MIME type of the attachment.
297
+ * @example "image/jpeg"
298
+ */
299
+ mimetype: string;
300
+ /**
301
+ * Document file name. Value can be null
302
+ * @example "filename.jpg"
303
+ */
304
+ filename?: string;
305
+ /** @example "https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg" */
306
+ url: string;
307
+ }
308
+ interface BinaryFile {
309
+ /**
310
+ * MIME type of the attachment.
311
+ * @example "image/jpeg"
312
+ */
313
+ mimetype: string;
314
+ /**
315
+ * Document file name. Optional
316
+ * @example "filename.jpeg"
317
+ */
318
+ filename?: string;
319
+ /**
320
+ * Base64-encoded data of the file
321
+ * @example "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"
322
+ */
323
+ data: string;
324
+ }
325
+ interface ProfilePictureRequest {
326
+ file: RemoteFile | BinaryFile;
327
+ }
328
+ interface MessageTextRequest {
329
+ /** @example "11111111111@c.us" */
330
+ chatId: string;
331
+ /**
332
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
333
+ * @example null
334
+ */
335
+ reply_to?: string;
336
+ /** @default "Hi there!" */
337
+ text: string;
338
+ /** @default true */
339
+ linkPreview?: boolean;
340
+ /** @default false */
341
+ linkPreviewHighQuality?: boolean;
342
+ /** @default "default" */
343
+ session: string;
344
+ }
345
+ interface S3MediaData {
346
+ /**
347
+ * The name of the S3 bucket
348
+ * @example "my-bucket"
349
+ */
350
+ Bucket: string;
351
+ /**
352
+ * The key of the object in the S3 bucket
353
+ * @example "default/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga"
354
+ */
355
+ Key: string;
356
+ }
357
+ interface WAMedia {
358
+ /**
359
+ * The URL for the media in the message if any
360
+ * @example "http://localhost:3000/api/files/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga"
361
+ */
362
+ url?: string;
363
+ /**
364
+ * mimetype for the media in the message if any
365
+ * @example "audio/jpeg"
366
+ */
367
+ mimetype?: string;
368
+ /**
369
+ * The original filename in mediaUrl in the message if any
370
+ * @example "example.pdf"
371
+ */
372
+ filename?: string;
373
+ /** S3 attributes for the media in the message if you are using S3 media storage */
374
+ s3?: S3MediaData;
375
+ /**
376
+ * Error message if there's an error downloading the media
377
+ * @example null
378
+ */
379
+ error?: object;
380
+ }
381
+ interface WALocation {
382
+ latitude: string;
383
+ longitude: string;
384
+ live: boolean;
385
+ name?: string;
386
+ address?: string;
387
+ url?: string;
388
+ description?: string;
389
+ thumbnail?: string;
390
+ }
391
+ interface ReplyToMessage {
392
+ /**
393
+ * Message ID
394
+ * @example "AAAAAAAAAAAAAAAAAAAA"
395
+ */
396
+ id: string;
397
+ /** @example "11111111111@c.us" */
398
+ participant?: string;
399
+ /** @example "Hello!" */
400
+ body?: string;
401
+ /** Raw data from reply's message */
402
+ _data?: object;
403
+ }
404
+ interface WAMessage {
405
+ /**
406
+ * Message ID
407
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
408
+ */
409
+ id: string;
410
+ /**
411
+ * Unix timestamp for when the message was created
412
+ * @example 1666943582
413
+ */
414
+ timestamp: number;
415
+ /**
416
+ * ID for the Chat that this message was sent to, except if the message was sent by the current user
417
+ * @example "11111111111@c.us"
418
+ */
419
+ from: string;
420
+ /** Indicates if the message was sent by the current user */
421
+ fromMe: boolean;
422
+ /**
423
+ * The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only "fromMe: true" messages.
424
+ * @example "api"
425
+ */
426
+ source: 'api' | 'app';
427
+ /**
428
+ *
429
+ * * ID for who this message is for.
430
+ * * If the message is sent by the current user, it will be the Chat to which the message is being sent.
431
+ * * If the message is sent by another user, it will be the ID for the current user.
432
+ * @example "11111111111@c.us"
433
+ */
434
+ to: string;
435
+ /** For groups - participant who sent the message */
436
+ participant: string;
437
+ /** Message content */
438
+ body: string;
439
+ /** Indicates if the message has media available for download */
440
+ hasMedia: boolean;
441
+ /** Media object for the message if any and downloaded */
442
+ media?: WAMedia;
443
+ /**
444
+ * Use `media.url` instead! The URL for the media in the message if any
445
+ * @deprecated
446
+ * @example "http://localhost:3000/api/files/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga"
447
+ */
448
+ mediaUrl: string;
449
+ /** ACK status for the message */
450
+ ack: -1 | 0 | 1 | 2 | 3 | 4;
451
+ /** ACK status name for the message */
452
+ ackName: string;
453
+ /** If the message was sent to a group, this field will contain the user that sent the message. */
454
+ author?: string;
455
+ /** Location information contained in the message, if the message is type "location" */
456
+ location?: WALocation;
457
+ /** List of vCards contained in the message. */
458
+ vCards?: string[];
459
+ /** Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend. */
460
+ _data?: object;
461
+ replyTo?: ReplyToMessage;
462
+ }
463
+ interface MessageImageRequest {
464
+ /** @example "11111111111@c.us" */
465
+ chatId: string;
466
+ file: RemoteFile | BinaryFile;
467
+ /**
468
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
469
+ * @example null
470
+ */
471
+ reply_to?: string;
472
+ caption?: string;
473
+ /** @default "default" */
474
+ session: string;
475
+ }
476
+ interface MessageFileRequest {
477
+ /** @example "11111111111@c.us" */
478
+ chatId: string;
479
+ file: RemoteFile | BinaryFile;
480
+ /**
481
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
482
+ * @example null
483
+ */
484
+ reply_to?: string;
485
+ caption?: string;
486
+ /** @default "default" */
487
+ session: string;
488
+ }
489
+ interface VoiceBinaryFile {
490
+ /**
491
+ * MIME type of the attachment.
492
+ * @default "audio/ogg; codecs=opus"
493
+ */
494
+ mimetype: object;
495
+ /**
496
+ * Document file name. Optional
497
+ * @default "voice-message.mp3"
498
+ */
499
+ filename: object;
500
+ /**
501
+ * Base64-encoded data of the file
502
+ * @example "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VSO3pMrPlDI7//NkxP8g454UCuJGUWisGIZWQwUgpHZyhg4kNUxBTUUzLjEwMFVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxP4ibDnMAOGEzFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//NkxHwAAANIAAAAAFVVVVVVVVVMQU1FMy4xMDBVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV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"
503
+ */
504
+ data: string;
505
+ }
506
+ interface VoiceRemoteFile {
507
+ /**
508
+ * MIME type of the attachment.
509
+ * @default "audio/ogg; codecs=opus"
510
+ */
511
+ mimetype: object;
512
+ /** @example "https://github.com/devlikeapro/waha/raw/core/examples/dev.likeapro.opus" */
513
+ url: string;
514
+ }
515
+ interface MessageVoiceRequest {
516
+ /** @example "11111111111@c.us" */
517
+ chatId: string;
518
+ file: VoiceRemoteFile | VoiceBinaryFile;
519
+ /**
520
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
521
+ * @example null
522
+ */
523
+ reply_to?: string;
524
+ /**
525
+ * Convert the input file to the required format using ffmpeg before sending
526
+ * @example true
527
+ */
528
+ convert: boolean;
529
+ /** @default "default" */
530
+ session: string;
531
+ }
532
+ interface VideoRemoteFile {
533
+ /**
534
+ * MIME type of the attachment.
535
+ * @default "video/mp4"
536
+ */
537
+ mimetype: object;
538
+ /**
539
+ * Document file name. Optional
540
+ * @default "video.mp4"
541
+ */
542
+ filename: object;
543
+ /** @example "https://github.com/devlikeapro/waha/raw/core/examples/video.mp4" */
544
+ url: string;
545
+ }
546
+ interface VideoBinaryFile {
547
+ /**
548
+ * MIME type of the attachment.
549
+ * @default "video/mp4"
550
+ */
551
+ mimetype: object;
552
+ /**
553
+ * Document file name. Optional
554
+ * @default "video.mp4"
555
+ */
556
+ filename: object;
557
+ /**
558
+ * Base64-encoded data of the file
559
+ * @example "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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHohEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHUhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH0hEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAciEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4hEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHohEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAAAgAaq3yd8AAAMAAAMAAAMAAAMAHrvIgAAAAwAAAwAFtJAAAAAgAaq7yd8AAAMAAAMAAAMAAAMAHrvIgAAAAwAAAwAFtJAAAAAgAaq/yd8AAAMAAAMAAAMAAAMAHrvIgAAAAwAAAwAFtJAAAAAjIetKI9/zIAAAAwAAAwAAAwAAAwAVW8H+swAAAwAAAwAAEvcAAAAgAatHyV8AAAMAAAMAAAMAAAMAKY8KAAADAAADAAAIOyAAAAAgAatLyV8AAAMAAAMAAAMAAAMAKY8KAAADAAADAAAIOyAAAAAhAatPyJf/AAADAAADAAADAAADAByn5+AAAAMAAAMABN2QAAAAIiHtiiNf5EAAAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMCgiAAAAAhAavXyLf/AAADAAADAAADAAADAAADAAADAAADAAADAO6YAAAAIQGr28i3/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwDumAAAACEBq9/It/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMA7pgAAAAiIe/aIt+HAAADAAADAAADAAADAAADAAADAAADAAADAAmagAAAACEBrGfIl/8AAAMAAAMAAAMAAAMAAAMAAAMAAAMAAAMBF3AAAAAhAaxryJf/AAADAAADAAADAAADAAADAAADAAADAAADARdwIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHUhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHUhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB1IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4hEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfSEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcyEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwhEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3p4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHohEAUAoBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAeCEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfiEQBQCgG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADenAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHkAAAAhAaxvyJf/AAADAAADAAADAAADAAADAAADAAADAAADARdwAAAAIQGsc8iX/wAAAwAAAwAAAwAAAwAAAwAAAwAAAwAAAwEXcAAAAAEKIRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6eAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB6IRAFAKAb/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN6cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHI="
560
+ */
561
+ data: string;
562
+ }
563
+ interface MessageVideoRequest {
564
+ /** @example "11111111111@c.us" */
565
+ chatId: string;
566
+ file: VideoRemoteFile | VideoBinaryFile;
567
+ /**
568
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
569
+ * @example null
570
+ */
571
+ reply_to?: string;
572
+ /**
573
+ * Send as video note (aka instant or round video).
574
+ * @example false
575
+ */
576
+ asNote?: boolean;
577
+ /**
578
+ * Convert the input file to the required format using ffmpeg before sending
579
+ * @example true
580
+ */
581
+ convert: boolean;
582
+ /** @default "Just watch at this!" */
583
+ caption?: string;
584
+ /** @default "default" */
585
+ session: string;
586
+ }
587
+ interface FileURL {
588
+ /** @example "https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg" */
589
+ url?: string;
590
+ }
591
+ interface FileContent {
592
+ /**
593
+ * Base64-encoded data of the file
594
+ * @example "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"
595
+ */
596
+ data?: string;
597
+ }
598
+ interface LinkPreviewData {
599
+ /** @example {"url":"https://github.com/devlikeapro/waha/raw/core/examples/waha.jpg"} */
600
+ image?: FileURL | FileContent;
601
+ /** @default "https://github.com/" */
602
+ url: string;
603
+ /** @default "Your Title" */
604
+ title: string;
605
+ /** @default "Check this out, amazing!" */
606
+ description: string;
607
+ }
608
+ interface MessageLinkCustomPreviewRequest {
609
+ /** @example "11111111111@c.us" */
610
+ chatId: string;
611
+ /**
612
+ * The text to send. MUST include the URL provided in preview.url
613
+ * @default "Check this out! https://github.com/"
614
+ */
615
+ text: string;
616
+ /**
617
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
618
+ * @example null
619
+ */
620
+ reply_to?: string;
621
+ /** @default true */
622
+ linkPreviewHighQuality?: boolean;
623
+ preview: LinkPreviewData;
624
+ /** @default "default" */
625
+ session: string;
626
+ }
627
+ interface Button {
628
+ /** @example "Button Text" */
629
+ text: string;
630
+ /** @example "321321" */
631
+ id?: string;
632
+ /** @example "https://example.com" */
633
+ url?: string;
634
+ /** @example "+1234567890" */
635
+ phoneNumber?: string;
636
+ /** @example "4321" */
637
+ copyCode?: string;
638
+ /** @default "reply" */
639
+ type: 'reply' | 'url' | 'call' | 'copy';
640
+ }
641
+ interface SendButtonsRequest {
642
+ /** @example "11111111111@c.us" */
643
+ chatId: string;
644
+ /** @example "How are you?" */
645
+ header: string;
646
+ headerImage?: RemoteFile | BinaryFile;
647
+ /** @example "Tell us how are you please 🙏" */
648
+ body: string;
649
+ /** @example "If you have any questions, please send it in the chat" */
650
+ footer: string;
651
+ /** @example [{"type":"reply","text":"I am good!"},{"type":"call","text":"Call us","phoneNumber":"+1234567890"},{"type":"copy","text":"Copy code","copyCode":"4321"},{"type":"url","text":"How did you do that?","url":"https://waha.devlike.pro"}] */
652
+ buttons: Button[];
653
+ /** @default "default" */
654
+ session: string;
655
+ }
656
+ interface Row {
657
+ /** @example "Option 1" */
658
+ title: string;
659
+ /** @example "Description of option 1" */
660
+ description?: string;
661
+ /** @example "option1" */
662
+ rowId: string;
663
+ }
664
+ interface Section {
665
+ /** @example "Menu" */
666
+ title: string;
667
+ /** @example [{"title":"Option 1","rowId":"option1","description":"First option"},{"title":"Option 2","rowId":"option2","description":"Second option"}] */
668
+ rows: Row[];
669
+ }
670
+ interface SendListMessage {
671
+ /** @example "Example List" */
672
+ title: string;
673
+ /** @example "Choose one of the options" */
674
+ description?: string;
675
+ /** @example "Footer note" */
676
+ footer?: string;
677
+ /** @example "Select" */
678
+ button: string;
679
+ /** @example [{"title":"Section 1","rows":[{"title":"Option 1","rowId":"option1","description":"Description 1"},{"title":"Option 2","rowId":"option2","description":"Description 2"}]}] */
680
+ sections: Section[];
681
+ }
682
+ interface SendListRequest {
683
+ /** @example "11111111111@c.us" */
684
+ chatId: string;
685
+ /** @example {"title":"Simple Menu","description":"Please choose an option","footer":"Thank you!","button":"Choose","sections":[{"title":"Main","rows":[{"title":"Option 1","rowId":"option1","description":null},{"title":"Option 2","rowId":"option2","description":null},{"title":"Option 3","rowId":"option3","description":null}]}]} */
686
+ message: SendListMessage;
687
+ /**
688
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
689
+ * @example null
690
+ */
691
+ reply_to?: string;
692
+ /** @default "default" */
693
+ session: string;
694
+ }
695
+ interface MessageForwardRequest {
696
+ /** @example "11111111111@c.us" */
697
+ chatId: string;
698
+ /** @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" */
699
+ messageId: string;
700
+ /** @default "default" */
701
+ session: string;
702
+ }
703
+ interface SendSeenRequest {
704
+ /** @example "11111111111@c.us" */
705
+ chatId: string;
706
+ /**
707
+ * @deprecated
708
+ * @example null
709
+ */
710
+ messageId?: string;
711
+ /** @example ["false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"] */
712
+ messageIds?: string[];
713
+ /**
714
+ * NOWEB engine only - the ID of the user that sent the message (undefined for individual chats)
715
+ * @default null
716
+ * @example "11111111111@c.us"
717
+ */
718
+ participant?: string;
719
+ /** @default "default" */
720
+ session: string;
721
+ }
722
+ interface ChatRequest {
723
+ /** @example "11111111111@c.us" */
724
+ chatId: string;
725
+ /** @default "default" */
726
+ session: string;
727
+ }
728
+ interface MessageReactionRequest {
729
+ /** @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" */
730
+ messageId: string;
731
+ /**
732
+ * Emoji to react with. Send an empty string to remove the reaction
733
+ * @example "👍"
734
+ */
735
+ reaction: string;
736
+ /** @default "default" */
737
+ session: string;
738
+ }
739
+ interface MessageStarRequest {
740
+ /** @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA" */
741
+ messageId: string;
742
+ /** @example "11111111111@c.us" */
743
+ chatId: string;
744
+ star: boolean;
745
+ /** @default "default" */
746
+ session: string;
747
+ }
748
+ interface MessagePoll {
749
+ /** @example "How are you?" */
750
+ name: string;
751
+ /** @example ["Awesome!","Good!","Not bad!"] */
752
+ options: string[];
753
+ /** @default false */
754
+ multipleAnswers: object;
755
+ }
756
+ interface MessagePollRequest {
757
+ /** @example "11111111111@c.us" */
758
+ chatId: string;
759
+ /**
760
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
761
+ * @example null
762
+ */
763
+ reply_to?: string;
764
+ poll: MessagePoll;
765
+ /** @default "default" */
766
+ session: string;
767
+ }
768
+ interface MessagePollVoteRequest {
769
+ /** @example "11111111111@c.us" */
770
+ chatId: string;
771
+ /**
772
+ * The ID of the poll message. Format: {fromMe}_{chatID}_{messageId}[_{participant}] or just ID for GOWS
773
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
774
+ */
775
+ pollMessageId: string;
776
+ /**
777
+ * Only for Channels - server message id (if known); if omitted, API may look it up in the storage
778
+ * @example null
779
+ */
780
+ pollServerId?: number;
781
+ votes: string[][];
782
+ /** @default "default" */
783
+ session: string;
784
+ }
785
+ interface MessageLocationRequest {
786
+ /** @example "11111111111@c.us" */
787
+ chatId: string;
788
+ /** @example 38.8937255 */
789
+ latitude: number;
790
+ /** @example -77.0969763 */
791
+ longitude: number;
792
+ /** @example "Our office" */
793
+ title: string;
794
+ /**
795
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
796
+ * @example null
797
+ */
798
+ reply_to?: string;
799
+ /** @default "default" */
800
+ session: string;
801
+ }
802
+ interface Contact {
803
+ /**
804
+ * The full name of the contact
805
+ * @example "John Doe"
806
+ */
807
+ fullName: string;
808
+ /**
809
+ * The organization of the contact
810
+ * @example "Company Name"
811
+ */
812
+ organization?: string;
813
+ /**
814
+ * The phone number of the contact
815
+ * @example "+91 11111 11111"
816
+ */
817
+ phoneNumber: string;
818
+ /**
819
+ * The whatsapp id of the contact. DO NOT add + or @c.us
820
+ * @example "911111111111"
821
+ */
822
+ whatsappId?: string;
823
+ /** @default null */
824
+ vcard: string;
825
+ }
826
+ interface VCardContact {
827
+ /**
828
+ * The vcard string
829
+ * @example "BEGIN:VCARD
830
+ * VERSION:3.0
831
+ * FN:Jane Doe
832
+ * ORG:Company Name;
833
+ * TEL;type=CELL;type=VOICE;waid=911111111111:+91 11111 11111
834
+ * END:VCARD"
835
+ */
836
+ vcard: string;
837
+ }
838
+ interface MessageContactVcardRequest {
839
+ /** @example "11111111111@c.us" */
840
+ chatId: string;
841
+ contacts: (VCardContact | Contact)[];
842
+ /**
843
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
844
+ * @example null
845
+ */
846
+ reply_to?: string;
847
+ /** @default "default" */
848
+ session: string;
849
+ }
850
+ interface MessageButtonReply {
851
+ /** @example "11111111111@c.us" */
852
+ chatId: string;
853
+ /**
854
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
855
+ * @example null
856
+ */
857
+ replyTo?: string;
858
+ selectedDisplayText: string;
859
+ selectedButtonID: string;
860
+ /** @default "default" */
861
+ session: string;
862
+ }
863
+ interface WANumberExistResult {
864
+ /** @example "Chat id for the phone number. Undefined if the number does not exist" */
865
+ chatId?: string;
866
+ numberExists: boolean;
867
+ }
868
+ interface MessageReplyRequest {
869
+ /** @example "11111111111@c.us" */
870
+ chatId: string;
871
+ /**
872
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
873
+ * @example null
874
+ */
875
+ reply_to?: string;
876
+ /** @default "Hi there!" */
877
+ text: string;
878
+ /** @default true */
879
+ linkPreview?: boolean;
880
+ /** @default false */
881
+ linkPreviewHighQuality?: boolean;
882
+ /** @default "default" */
883
+ session: string;
884
+ }
885
+ interface MessageLinkPreviewRequest {
886
+ /** @example "11111111111@c.us" */
887
+ chatId: string;
888
+ /** @default "default" */
889
+ session: string;
890
+ url: string;
891
+ title: string;
892
+ }
893
+ interface ChatSummary {
894
+ id: string;
895
+ name: string | null;
896
+ picture: string | null;
897
+ lastMessage: object;
898
+ _chat: object;
899
+ }
900
+ interface OverviewPaginationParams {
901
+ /** @default 20 */
902
+ limit?: number;
903
+ offset?: number;
904
+ }
905
+ interface OverviewFilter {
906
+ /**
907
+ * Filter by chat ids
908
+ * @example ["111111111@c.us"]
909
+ */
910
+ ids?: string[];
911
+ }
912
+ interface OverviewBodyRequest {
913
+ pagination: OverviewPaginationParams;
914
+ filter: OverviewFilter;
915
+ }
916
+ interface ChatPictureResponse {
917
+ url: string;
918
+ }
919
+ interface ReadChatMessagesResponse {
920
+ /** Messages IDs that have been read */
921
+ ids?: string[];
922
+ }
923
+ interface PinMessageRequest {
924
+ /**
925
+ * Duration in seconds. 24 hours (86400), 7 days (604800), 30 days (2592000)
926
+ * @example 86400
927
+ */
928
+ duration: number;
929
+ }
930
+ interface EditMessageRequest {
931
+ /** @default "Hello, world!" */
932
+ text: string;
933
+ /** @default true */
934
+ linkPreview?: boolean;
935
+ /** @default false */
936
+ linkPreviewHighQuality?: boolean;
937
+ }
938
+ interface RejectCallRequest {
939
+ /** @example "11111111111@c.us" */
940
+ from: string;
941
+ /**
942
+ * Call ID
943
+ * @example "ABCDEFGABCDEFGABCDEFGABCDEFG"
944
+ */
945
+ id: string;
946
+ }
947
+ interface Channel {
948
+ /**
949
+ * Newsletter id
950
+ * @example "123123123123@newsletter"
951
+ */
952
+ id: string;
953
+ /**
954
+ * Channel name
955
+ * @example "Channel Name"
956
+ */
957
+ name: string;
958
+ /**
959
+ * Invite link
960
+ * @example "https://www.whatsapp.com/channel/111111111111111111111111"
961
+ */
962
+ invite: string;
963
+ /**
964
+ * Preview for channel's picture
965
+ * @example "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10"
966
+ */
967
+ preview?: string;
968
+ /**
969
+ * Channel's picture
970
+ * @example "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10"
971
+ */
972
+ picture?: string;
973
+ role: 'OWNER' | 'ADMIN' | 'SUBSCRIBER' | 'GUEST';
974
+ description?: string;
975
+ verified: boolean;
976
+ subscribersCount: number;
977
+ }
978
+ interface CreateChannelRequest {
979
+ /** @example "Channel Name" */
980
+ name: string;
981
+ /** @example "Channel Description" */
982
+ description?: string;
983
+ picture?: RemoteFile | BinaryFile;
984
+ }
985
+ interface ChannelMessage {
986
+ /** @example {"👍":10,"❤️":5} */
987
+ reactions: Record<string, number>;
988
+ message: WAMessage;
989
+ viewCount: number;
990
+ }
991
+ interface ChannelSearchByView {
992
+ /** @default "RECOMMENDED" */
993
+ view: string;
994
+ /** @default ["US"] */
995
+ countries: string[];
996
+ /** @default [] */
997
+ categories: string[];
998
+ /** @default 50 */
999
+ limit: number;
1000
+ /** @default "" */
1001
+ startCursor: string;
1002
+ }
1003
+ interface ChannelPagination {
1004
+ startCursor: string | null;
1005
+ endCursor: string | null;
1006
+ hasNextPage: boolean;
1007
+ hasPreviousPage: boolean;
1008
+ }
1009
+ interface ChannelPublicInfo {
1010
+ /**
1011
+ * Newsletter id
1012
+ * @example "123123123123@newsletter"
1013
+ */
1014
+ id: string;
1015
+ /**
1016
+ * Channel name
1017
+ * @example "Channel Name"
1018
+ */
1019
+ name: string;
1020
+ /**
1021
+ * Invite link
1022
+ * @example "https://www.whatsapp.com/channel/111111111111111111111111"
1023
+ */
1024
+ invite: string;
1025
+ /**
1026
+ * Preview for channel's picture
1027
+ * @example "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10"
1028
+ */
1029
+ preview?: string;
1030
+ /**
1031
+ * Channel's picture
1032
+ * @example "https://mmg.whatsapp.net/m1/v/t24/An&_nc_cat=10"
1033
+ */
1034
+ picture?: string;
1035
+ description?: string;
1036
+ verified: boolean;
1037
+ subscribersCount: number;
1038
+ }
1039
+ interface ChannelListResult {
1040
+ page: ChannelPagination;
1041
+ channels: ChannelPublicInfo[];
1042
+ }
1043
+ interface ChannelSearchByText {
1044
+ /** @default "Donald Trump" */
1045
+ text: string;
1046
+ /** @default [] */
1047
+ categories: string[];
1048
+ /** @default 50 */
1049
+ limit: number;
1050
+ /** @default "" */
1051
+ startCursor: string;
1052
+ }
1053
+ interface ChannelView {
1054
+ value: string;
1055
+ name: string;
1056
+ }
1057
+ interface ChannelCountry {
1058
+ code: string;
1059
+ name: string;
1060
+ }
1061
+ interface ChannelCategory {
1062
+ value: string;
1063
+ name: string;
1064
+ }
1065
+ interface TextStatus {
1066
+ /**
1067
+ * Pre-generated status message id
1068
+ * @default null
1069
+ * @example "BBBBBBBBBBBBBBBBB"
1070
+ */
1071
+ id?: string;
1072
+ /**
1073
+ * Contact list to send the status to.
1074
+ * @example null
1075
+ */
1076
+ contacts?: string[];
1077
+ /** @default "Have a look! https://github.com/" */
1078
+ text: string;
1079
+ /** @default "#38b42f" */
1080
+ backgroundColor: string;
1081
+ /** @default 0 */
1082
+ font: number;
1083
+ /** @default true */
1084
+ linkPreview?: boolean;
1085
+ /** @default false */
1086
+ linkPreviewHighQuality?: boolean;
1087
+ }
1088
+ interface ImageStatus {
1089
+ /**
1090
+ * Pre-generated status message id
1091
+ * @default null
1092
+ * @example "BBBBBBBBBBBBBBBBB"
1093
+ */
1094
+ id?: string;
1095
+ /**
1096
+ * Contact list to send the status to.
1097
+ * @example null
1098
+ */
1099
+ contacts?: string[];
1100
+ file: RemoteFile | BinaryFile;
1101
+ caption?: string;
1102
+ }
1103
+ interface VoiceStatus {
1104
+ /**
1105
+ * Pre-generated status message id
1106
+ * @default null
1107
+ * @example "BBBBBBBBBBBBBBBBB"
1108
+ */
1109
+ id?: string;
1110
+ /**
1111
+ * Contact list to send the status to.
1112
+ * @example null
1113
+ */
1114
+ contacts?: string[];
1115
+ file: VoiceRemoteFile | VoiceBinaryFile;
1116
+ /**
1117
+ * Convert the input file to the required format using ffmpeg before sending
1118
+ * @example true
1119
+ */
1120
+ convert: boolean;
1121
+ /** @default "#38b42f" */
1122
+ backgroundColor: string;
1123
+ }
1124
+ interface VideoStatus {
1125
+ /**
1126
+ * Pre-generated status message id
1127
+ * @default null
1128
+ * @example "BBBBBBBBBBBBBBBBB"
1129
+ */
1130
+ id?: string;
1131
+ /**
1132
+ * Contact list to send the status to.
1133
+ * @example null
1134
+ */
1135
+ contacts?: string[];
1136
+ file: VideoRemoteFile | VideoBinaryFile;
1137
+ /**
1138
+ * Convert the input file to the required format using ffmpeg before sending
1139
+ * @example true
1140
+ */
1141
+ convert: boolean;
1142
+ caption?: string;
1143
+ }
1144
+ interface DeleteStatusRequest {
1145
+ /**
1146
+ * Status message id to delete
1147
+ * @default null
1148
+ * @example "AAAAAAAAAAAAAAAAA"
1149
+ */
1150
+ id?: string;
1151
+ /**
1152
+ * Contact list to send the status to.
1153
+ * @example null
1154
+ */
1155
+ contacts?: string[];
1156
+ }
1157
+ interface NewMessageIDResponse {
1158
+ /**
1159
+ * Pre-generated message id
1160
+ * @example "BBBBBBBBBBBBBBBBB"
1161
+ */
1162
+ id: string;
1163
+ }
1164
+ interface Label {
1165
+ /**
1166
+ * Label ID
1167
+ * @example "1"
1168
+ */
1169
+ id: string;
1170
+ /**
1171
+ * Label name
1172
+ * @example "Lead"
1173
+ */
1174
+ name: string;
1175
+ /**
1176
+ * Color number, not hex
1177
+ * @example 0
1178
+ */
1179
+ color: number;
1180
+ /**
1181
+ * Color in hex
1182
+ * @example "#ff9485"
1183
+ */
1184
+ colorHex: string;
1185
+ }
1186
+ interface LabelBody {
1187
+ /**
1188
+ * Label name
1189
+ * @example "Lead"
1190
+ */
1191
+ name: string;
1192
+ /**
1193
+ * Color in hex
1194
+ * @example "#ff9485"
1195
+ */
1196
+ colorHex?: string;
1197
+ /**
1198
+ * Color number, not hex
1199
+ * @example null
1200
+ */
1201
+ color?: number;
1202
+ }
1203
+ interface LabelID {
1204
+ /**
1205
+ * Label ID
1206
+ * @example "1"
1207
+ */
1208
+ id: string;
1209
+ }
1210
+ interface SetLabelsRequest {
1211
+ labels: LabelID[];
1212
+ }
1213
+ interface ContactRequest {
1214
+ /** @example "11111111111@c.us" */
1215
+ contactId: string;
1216
+ /** @default "default" */
1217
+ session: string;
1218
+ }
1219
+ interface ContactUpdateBody {
1220
+ /**
1221
+ * Contact First Name
1222
+ * @default "John"
1223
+ * @example "John"
1224
+ */
1225
+ firstName: string;
1226
+ /**
1227
+ * Contact Last Name
1228
+ * @default "Doe"
1229
+ * @example "Doe"
1230
+ */
1231
+ lastName: string;
1232
+ }
1233
+ interface LidToPhoneNumber {
1234
+ /**
1235
+ * Linked ID for the user
1236
+ * @example "1111111@lid"
1237
+ */
1238
+ lid?: string;
1239
+ /**
1240
+ * Phone number (chat id) for the user
1241
+ * @example "3333333@c.us"
1242
+ */
1243
+ pn?: string;
1244
+ }
1245
+ interface CountResponse {
1246
+ /** @default 0 */
1247
+ count: number;
1248
+ }
1249
+ interface Participant {
1250
+ /** @example "123456789@c.us" */
1251
+ id: string;
1252
+ }
1253
+ interface CreateGroupRequest {
1254
+ name: string;
1255
+ participants: Participant[];
1256
+ }
1257
+ interface JoinGroupRequest {
1258
+ /**
1259
+ * Group code (123) or url (https://chat.whatsapp.com/123)
1260
+ * @example "https://chat.whatsapp.com/1234567890abcdef"
1261
+ */
1262
+ code: string;
1263
+ }
1264
+ interface JoinGroupResponse {
1265
+ /**
1266
+ * Group ID
1267
+ * @example "123@g.us"
1268
+ */
1269
+ id: string;
1270
+ }
1271
+ interface DescriptionRequest {
1272
+ description: string;
1273
+ }
1274
+ interface SubjectRequest {
1275
+ subject: string;
1276
+ }
1277
+ interface SettingsSecurityChangeInfo {
1278
+ /** @default true */
1279
+ adminsOnly: boolean;
1280
+ }
1281
+ interface GroupParticipant {
1282
+ /**
1283
+ * Member ID in @c.us or @lid format
1284
+ * @example "123456789@lid"
1285
+ */
1286
+ id: string;
1287
+ /**
1288
+ * Member ID in @c.us format
1289
+ * @example "123456789@c.us"
1290
+ */
1291
+ pn?: string;
1292
+ /** @example "participant" */
1293
+ role: 'left' | 'participant' | 'admin' | 'superadmin';
1294
+ }
1295
+ interface ParticipantsRequest {
1296
+ participants: Participant[];
1297
+ }
1298
+ interface WAHASessionPresence {
1299
+ /**
1300
+ * Chat ID - either group id or contact id
1301
+ * @example "11111111111@c.us"
1302
+ */
1303
+ chatId: string;
1304
+ presence: 'offline' | 'online' | 'typing' | 'recording' | 'paused';
1305
+ }
1306
+ interface WAHAPresenceData {
1307
+ /**
1308
+ * Chat ID - participant or contact id
1309
+ * @example "11111111111@c.us"
1310
+ */
1311
+ participant: string;
1312
+ /** @example 1686568773 */
1313
+ lastSeen?: number;
1314
+ lastKnownPresence: 'offline' | 'online' | 'typing' | 'recording' | 'paused';
1315
+ }
1316
+ interface WAHAChatPresences {
1317
+ /**
1318
+ * Chat ID - either group id or contact id
1319
+ * @example "11111111111@c.us"
1320
+ */
1321
+ id: string;
1322
+ presences: WAHAPresenceData[];
1323
+ }
1324
+ interface EventLocation {
1325
+ /**
1326
+ * Name of the location
1327
+ * @example "Luxe Nail Studio 💅"
1328
+ */
1329
+ name: string;
1330
+ }
1331
+ interface EventMessage {
1332
+ /**
1333
+ * Name of the event
1334
+ * @example "John's Nail Appointment 💅"
1335
+ */
1336
+ name: string;
1337
+ /**
1338
+ * Description of the event
1339
+ * @example "It's time for your nail care session! 🌟\n\nYou'll be getting a *classic gel manicure* – clean, polished, and long-lasting. 💖\n\n📍 *Location:* Luxe Nail Studio\nWe're on the *2nd floor of the Plaza Mall*, next to the flower shop. Look for the *pink neon sign*!\n\nFeel free to arrive *5–10 mins early* so we can get started on time 😊"
1340
+ */
1341
+ description?: string;
1342
+ /**
1343
+ * Start time of the event (Unix timestamp in seconds)
1344
+ * @example 2063137000
1345
+ */
1346
+ startTime: number;
1347
+ /**
1348
+ * End time of the event (Unix timestamp in seconds)
1349
+ * @example null
1350
+ */
1351
+ endTime?: number;
1352
+ /** Location of the event */
1353
+ location?: EventLocation;
1354
+ /**
1355
+ * Whether extra guests are allowed
1356
+ * @example false
1357
+ */
1358
+ extraGuestsAllowed?: boolean;
1359
+ }
1360
+ interface EventMessageRequest {
1361
+ /** @example "11111111111@c.us" */
1362
+ chatId: string;
1363
+ /**
1364
+ * The ID of the message to reply to - false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA
1365
+ * @example null
1366
+ */
1367
+ reply_to?: string;
1368
+ event: EventMessage;
1369
+ }
1370
+ interface PingResponse {
1371
+ /** @default "pong" */
1372
+ message: string;
1373
+ }
1374
+ interface WAHAEnvironment {
1375
+ /** @example "YYYY.MM.BUILD" */
1376
+ version: string;
1377
+ /** @example "WEBJS" */
1378
+ engine: string;
1379
+ /** @example "PLUS" */
1380
+ tier: string;
1381
+ /** @example "/usr/path/to/bin/google-chrome" */
1382
+ browser: string;
1383
+ }
1384
+ interface WorkerInfo {
1385
+ /**
1386
+ * The worker ID.
1387
+ * @example "waha"
1388
+ */
1389
+ id: string;
1390
+ }
1391
+ interface ServerStatusResponse {
1392
+ /**
1393
+ * The timestamp when the server started (milliseconds).
1394
+ * @example 1723788847247
1395
+ */
1396
+ startTimestamp: number;
1397
+ /**
1398
+ * The uptime of the server in milliseconds.
1399
+ * @example 3600000
1400
+ */
1401
+ uptime: number;
1402
+ worker: WorkerInfo;
1403
+ }
1404
+ interface StopRequest {
1405
+ /**
1406
+ * By default, it gracefully stops the server, but you can force it to terminate immediately.
1407
+ * @default false
1408
+ * @example false
1409
+ */
1410
+ force?: boolean;
1411
+ }
1412
+ interface StopResponse {
1413
+ /**
1414
+ * Always 'true' if the server is stopping.
1415
+ * @default true
1416
+ * @example true
1417
+ */
1418
+ stopping: boolean;
1419
+ }
1420
+ interface VoiceFileDTO {
1421
+ /**
1422
+ * The URL for the voice file
1423
+ * @example "https://github.com/devlikeapro/waha/raw/core/examples/voice.mp3"
1424
+ */
1425
+ url?: string;
1426
+ /**
1427
+ * Base64 content of the file
1428
+ * @example null
1429
+ */
1430
+ data?: string;
1431
+ }
1432
+ interface VideoFileDTO {
1433
+ /**
1434
+ * The URL for the video file
1435
+ * @example "https://github.com/devlikeapro/waha/raw/core/examples/video.mp4"
1436
+ */
1437
+ url?: string;
1438
+ /**
1439
+ * Base64 content of the file
1440
+ * @example null
1441
+ */
1442
+ data?: string;
1443
+ }
1444
+ interface SessionStatusPoint {
1445
+ status: 'STOPPED' | 'STARTING' | 'SCAN_QR_CODE' | 'WORKING' | 'FAILED';
1446
+ timestamp: number;
1447
+ }
1448
+ interface WASessionStatusBody {
1449
+ /** @example "default" */
1450
+ name: string;
1451
+ status: 'STOPPED' | 'STARTING' | 'SCAN_QR_CODE' | 'WORKING' | 'FAILED';
1452
+ statuses: SessionStatusPoint[];
1453
+ }
1454
+ interface WAHAWebhookSessionStatus {
1455
+ /**
1456
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1457
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1458
+ */
1459
+ id: string;
1460
+ /**
1461
+ * Unix timestamp (ms) for when the event was created.
1462
+ * @example 1634567890123
1463
+ */
1464
+ timestamp: number;
1465
+ /** @example "default" */
1466
+ session: string;
1467
+ /**
1468
+ * Metadata for the session.
1469
+ * @example {"user.id":"123","user.email":"email@example.com"}
1470
+ */
1471
+ metadata?: object;
1472
+ /** @example "WEBJS" */
1473
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1474
+ /**
1475
+ * The event is triggered when the session status changes.
1476
+ * @default "session.status"
1477
+ */
1478
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1479
+ payload: WASessionStatusBody;
1480
+ me?: MeInfo;
1481
+ environment: WAHAEnvironment;
1482
+ }
1483
+ interface WAHAWebhookMessage {
1484
+ /**
1485
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1486
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1487
+ */
1488
+ id: string;
1489
+ /**
1490
+ * Unix timestamp (ms) for when the event was created.
1491
+ * @example 1634567890123
1492
+ */
1493
+ timestamp: number;
1494
+ /** @example "default" */
1495
+ session: string;
1496
+ /**
1497
+ * Metadata for the session.
1498
+ * @example {"user.id":"123","user.email":"email@example.com"}
1499
+ */
1500
+ metadata?: object;
1501
+ /** @example "WEBJS" */
1502
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1503
+ /**
1504
+ * Incoming message.
1505
+ * @default "message"
1506
+ */
1507
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1508
+ payload: WAMessage;
1509
+ me?: MeInfo;
1510
+ environment: WAHAEnvironment;
1511
+ }
1512
+ interface WAReaction {
1513
+ /** Reaction to the message. Either the reaction (emoji) or empty string to remove the reaction */
1514
+ text: string;
1515
+ /**
1516
+ * Message ID for the message to react to
1517
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
1518
+ */
1519
+ messageId: string;
1520
+ }
1521
+ interface WAMessageReaction {
1522
+ /**
1523
+ * Message ID
1524
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
1525
+ */
1526
+ id: string;
1527
+ /**
1528
+ * Unix timestamp for when the message was created
1529
+ * @example 1666943582
1530
+ */
1531
+ timestamp: number;
1532
+ /**
1533
+ * ID for the Chat that this message was sent to, except if the message was sent by the current user
1534
+ * @example "11111111111@c.us"
1535
+ */
1536
+ from: string;
1537
+ /** Indicates if the message was sent by the current user */
1538
+ fromMe: boolean;
1539
+ /**
1540
+ * The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only "fromMe: true" messages.
1541
+ * @example "api"
1542
+ */
1543
+ source: 'api' | 'app';
1544
+ /**
1545
+ *
1546
+ * * ID for who this message is for.
1547
+ * * If the message is sent by the current user, it will be the Chat to which the message is being sent.
1548
+ * * If the message is sent by another user, it will be the ID for the current user.
1549
+ * @example "11111111111@c.us"
1550
+ */
1551
+ to: string;
1552
+ /** For groups - participant who sent the message */
1553
+ participant: string;
1554
+ /** Reaction to the message. Either the reaction (emoji) or empty string to remove the reaction */
1555
+ reaction: WAReaction;
1556
+ }
1557
+ interface WAHAWebhookMessageReaction {
1558
+ /**
1559
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1560
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1561
+ */
1562
+ id: string;
1563
+ /**
1564
+ * Unix timestamp (ms) for when the event was created.
1565
+ * @example 1634567890123
1566
+ */
1567
+ timestamp: number;
1568
+ /** @example "default" */
1569
+ session: string;
1570
+ /**
1571
+ * Metadata for the session.
1572
+ * @example {"user.id":"123","user.email":"email@example.com"}
1573
+ */
1574
+ metadata?: object;
1575
+ /** @example "WEBJS" */
1576
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1577
+ /**
1578
+ * The event is triggered when a user reacts or removes a reaction.
1579
+ * @default "message.reaction"
1580
+ */
1581
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1582
+ payload: WAMessageReaction;
1583
+ me?: MeInfo;
1584
+ environment: WAHAEnvironment;
1585
+ }
1586
+ interface WAHAWebhookMessageAny {
1587
+ /**
1588
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1589
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1590
+ */
1591
+ id: string;
1592
+ /**
1593
+ * Unix timestamp (ms) for when the event was created.
1594
+ * @example 1634567890123
1595
+ */
1596
+ timestamp: number;
1597
+ /** @example "default" */
1598
+ session: string;
1599
+ /**
1600
+ * Metadata for the session.
1601
+ * @example {"user.id":"123","user.email":"email@example.com"}
1602
+ */
1603
+ metadata?: object;
1604
+ /** @example "WEBJS" */
1605
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1606
+ /**
1607
+ * Fired on all message creations, including your own.
1608
+ * @default "message.any"
1609
+ */
1610
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1611
+ payload: WAMessage;
1612
+ me?: MeInfo;
1613
+ environment: WAHAEnvironment;
1614
+ }
1615
+ interface WAMessageAckBody {
1616
+ /**
1617
+ * Message ID
1618
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
1619
+ */
1620
+ id: string;
1621
+ /** @example "11111111111@c.us" */
1622
+ from: string;
1623
+ /** @example "11111111111@c.us" */
1624
+ to: string;
1625
+ /** @example "11111111111@c.us" */
1626
+ participant: string;
1627
+ fromMe: boolean;
1628
+ ack: -1 | 0 | 1 | 2 | 3 | 4;
1629
+ ackName: string;
1630
+ _data?: object;
1631
+ }
1632
+ interface WAHAWebhookMessageAck {
1633
+ /**
1634
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1635
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1636
+ */
1637
+ id: string;
1638
+ /**
1639
+ * Unix timestamp (ms) for when the event was created.
1640
+ * @example 1634567890123
1641
+ */
1642
+ timestamp: number;
1643
+ /** @example "default" */
1644
+ session: string;
1645
+ /**
1646
+ * Metadata for the session.
1647
+ * @example {"user.id":"123","user.email":"email@example.com"}
1648
+ */
1649
+ metadata?: object;
1650
+ /** @example "WEBJS" */
1651
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1652
+ /**
1653
+ * Receive events when server or recipient gets the message, read or played it.
1654
+ * @default "message.ack"
1655
+ */
1656
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1657
+ payload: WAMessageAckBody;
1658
+ me?: MeInfo;
1659
+ environment: WAHAEnvironment;
1660
+ }
1661
+ interface WAMessageRevokedBody {
1662
+ /**
1663
+ * ID of the message that was revoked
1664
+ * @example "A06CA7BB5DD8C8F705628CDB7E3A33C9"
1665
+ */
1666
+ revokedMessageId?: string;
1667
+ after?: WAMessage;
1668
+ before?: WAMessage;
1669
+ _data?: object;
1670
+ }
1671
+ interface WAHAWebhookMessageRevoked {
1672
+ /**
1673
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1674
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1675
+ */
1676
+ id: string;
1677
+ /**
1678
+ * Unix timestamp (ms) for when the event was created.
1679
+ * @example 1634567890123
1680
+ */
1681
+ timestamp: number;
1682
+ /** @example "default" */
1683
+ session: string;
1684
+ /**
1685
+ * Metadata for the session.
1686
+ * @example {"user.id":"123","user.email":"email@example.com"}
1687
+ */
1688
+ metadata?: object;
1689
+ /** @example "WEBJS" */
1690
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1691
+ /**
1692
+ * The event is triggered when a user, whether it be you or any other participant, revokes a previously sent message.
1693
+ * @default "message.revoked"
1694
+ */
1695
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1696
+ payload: WAMessageRevokedBody;
1697
+ me?: MeInfo;
1698
+ environment: WAHAEnvironment;
1699
+ }
1700
+ interface WAMessageEditedBody {
1701
+ /**
1702
+ * Message ID
1703
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
1704
+ */
1705
+ id: string;
1706
+ /**
1707
+ * Unix timestamp for when the message was created
1708
+ * @example 1666943582
1709
+ */
1710
+ timestamp: number;
1711
+ /**
1712
+ * ID for the Chat that this message was sent to, except if the message was sent by the current user
1713
+ * @example "11111111111@c.us"
1714
+ */
1715
+ from: string;
1716
+ /** Indicates if the message was sent by the current user */
1717
+ fromMe: boolean;
1718
+ /**
1719
+ * The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only "fromMe: true" messages.
1720
+ * @example "api"
1721
+ */
1722
+ source: 'api' | 'app';
1723
+ /**
1724
+ *
1725
+ * * ID for who this message is for.
1726
+ * * If the message is sent by the current user, it will be the Chat to which the message is being sent.
1727
+ * * If the message is sent by another user, it will be the ID for the current user.
1728
+ * @example "11111111111@c.us"
1729
+ */
1730
+ to: string;
1731
+ /** For groups - participant who sent the message */
1732
+ participant: string;
1733
+ /** Message content */
1734
+ body: string;
1735
+ /** Indicates if the message has media available for download */
1736
+ hasMedia: boolean;
1737
+ /** Media object for the message if any and downloaded */
1738
+ media?: WAMedia;
1739
+ /**
1740
+ * Use `media.url` instead! The URL for the media in the message if any
1741
+ * @deprecated
1742
+ * @example "http://localhost:3000/api/files/false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA.oga"
1743
+ */
1744
+ mediaUrl: string;
1745
+ /** ACK status for the message */
1746
+ ack: -1 | 0 | 1 | 2 | 3 | 4;
1747
+ /** ACK status name for the message */
1748
+ ackName: string;
1749
+ /** If the message was sent to a group, this field will contain the user that sent the message. */
1750
+ author?: string;
1751
+ /** Location information contained in the message, if the message is type "location" */
1752
+ location?: WALocation;
1753
+ /** List of vCards contained in the message. */
1754
+ vCards?: string[];
1755
+ /** Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend. */
1756
+ _data?: object;
1757
+ /**
1758
+ * ID of the original message that was edited
1759
+ * @example "A06CA7BB5DD8C8F705628CDB7E3A33C9"
1760
+ */
1761
+ editedMessageId?: string;
1762
+ replyTo?: ReplyToMessage;
1763
+ }
1764
+ interface WAHAWebhookMessageEdited {
1765
+ /**
1766
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1767
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1768
+ */
1769
+ id: string;
1770
+ /**
1771
+ * Unix timestamp (ms) for when the event was created.
1772
+ * @example 1634567890123
1773
+ */
1774
+ timestamp: number;
1775
+ /** @example "default" */
1776
+ session: string;
1777
+ /**
1778
+ * Metadata for the session.
1779
+ * @example {"user.id":"123","user.email":"email@example.com"}
1780
+ */
1781
+ metadata?: object;
1782
+ /** @example "WEBJS" */
1783
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1784
+ /**
1785
+ * The event is triggered when a user edits a previously sent message.
1786
+ * @default "message.edited"
1787
+ */
1788
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1789
+ payload: WAMessageEditedBody;
1790
+ me?: MeInfo;
1791
+ environment: WAHAEnvironment;
1792
+ }
1793
+ interface GroupInfo {
1794
+ /** @example "123456789@g.us" */
1795
+ id: string;
1796
+ /** @example "Group Name" */
1797
+ subject: string;
1798
+ /** @example "Group Description" */
1799
+ description: string;
1800
+ /**
1801
+ * Invite URL
1802
+ * @example "https://chat.whatsapp.com/1234567890abcdef"
1803
+ */
1804
+ invite?: string;
1805
+ /** Members can add new members */
1806
+ membersCanAddNewMember: boolean;
1807
+ /** Members can send messages to the group */
1808
+ membersCanSendMessages: boolean;
1809
+ /** Admin approval required for new members */
1810
+ newMembersApprovalRequired: boolean;
1811
+ participants: GroupParticipant[];
1812
+ }
1813
+ interface GroupV2JoinEvent {
1814
+ /**
1815
+ * Unix timestamp
1816
+ * @example 1666943582
1817
+ */
1818
+ timestamp: number;
1819
+ group: GroupInfo;
1820
+ _data: object;
1821
+ }
1822
+ interface WebhookGroupV2Join {
1823
+ /**
1824
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1825
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1826
+ */
1827
+ id: string;
1828
+ /**
1829
+ * Unix timestamp (ms) for when the event was created.
1830
+ * @example 1634567890123
1831
+ */
1832
+ timestamp: number;
1833
+ /** @example "default" */
1834
+ session: string;
1835
+ /**
1836
+ * Metadata for the session.
1837
+ * @example {"user.id":"123","user.email":"email@example.com"}
1838
+ */
1839
+ metadata?: object;
1840
+ /** @example "WEBJS" */
1841
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1842
+ /**
1843
+ * When you joined or were added to a group
1844
+ * @default "group.v2.join"
1845
+ */
1846
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1847
+ payload: GroupV2JoinEvent;
1848
+ me?: MeInfo;
1849
+ environment: WAHAEnvironment;
1850
+ }
1851
+ interface GroupId {
1852
+ /** @example "123456789@g.us" */
1853
+ id: string;
1854
+ }
1855
+ interface GroupV2LeaveEvent {
1856
+ /**
1857
+ * Unix timestamp
1858
+ * @example 1666943582
1859
+ */
1860
+ timestamp: number;
1861
+ group: GroupId;
1862
+ _data: object;
1863
+ }
1864
+ interface WebhookGroupV2Leave {
1865
+ /**
1866
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1867
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1868
+ */
1869
+ id: string;
1870
+ /**
1871
+ * Unix timestamp (ms) for when the event was created.
1872
+ * @example 1634567890123
1873
+ */
1874
+ timestamp: number;
1875
+ /** @example "default" */
1876
+ session: string;
1877
+ /**
1878
+ * Metadata for the session.
1879
+ * @example {"user.id":"123","user.email":"email@example.com"}
1880
+ */
1881
+ metadata?: object;
1882
+ /** @example "WEBJS" */
1883
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1884
+ /**
1885
+ * When you left or were removed from a group
1886
+ * @default "group.v2.leave"
1887
+ */
1888
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1889
+ payload: GroupV2LeaveEvent;
1890
+ me?: MeInfo;
1891
+ environment: WAHAEnvironment;
1892
+ }
1893
+ interface GroupV2UpdateEvent {
1894
+ /**
1895
+ * Unix timestamp
1896
+ * @example 1666943582
1897
+ */
1898
+ timestamp: number;
1899
+ group: object;
1900
+ _data: object;
1901
+ }
1902
+ interface WebhookGroupV2Update {
1903
+ /**
1904
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1905
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1906
+ */
1907
+ id: string;
1908
+ /**
1909
+ * Unix timestamp (ms) for when the event was created.
1910
+ * @example 1634567890123
1911
+ */
1912
+ timestamp: number;
1913
+ /** @example "default" */
1914
+ session: string;
1915
+ /**
1916
+ * Metadata for the session.
1917
+ * @example {"user.id":"123","user.email":"email@example.com"}
1918
+ */
1919
+ metadata?: object;
1920
+ /** @example "WEBJS" */
1921
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1922
+ /**
1923
+ * When group info is updated
1924
+ * @default "group.v2.update"
1925
+ */
1926
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1927
+ payload: GroupV2UpdateEvent;
1928
+ me?: MeInfo;
1929
+ environment: WAHAEnvironment;
1930
+ }
1931
+ interface GroupV2ParticipantsEvent {
1932
+ /** Type of the event */
1933
+ type: 'join' | 'leave' | 'promote' | 'demote';
1934
+ /**
1935
+ * Unix timestamp
1936
+ * @example 1666943582
1937
+ */
1938
+ timestamp: number;
1939
+ group: GroupId;
1940
+ participants: GroupParticipant[];
1941
+ _data: object;
1942
+ }
1943
+ interface WebhookGroupV2Participants {
1944
+ /**
1945
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1946
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1947
+ */
1948
+ id: string;
1949
+ /**
1950
+ * Unix timestamp (ms) for when the event was created.
1951
+ * @example 1634567890123
1952
+ */
1953
+ timestamp: number;
1954
+ /** @example "default" */
1955
+ session: string;
1956
+ /**
1957
+ * Metadata for the session.
1958
+ * @example {"user.id":"123","user.email":"email@example.com"}
1959
+ */
1960
+ metadata?: object;
1961
+ /** @example "WEBJS" */
1962
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1963
+ /**
1964
+ * When participants changed - join, leave, promote to admin
1965
+ * @default "group.v2.participants"
1966
+ */
1967
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1968
+ payload: GroupV2ParticipantsEvent;
1969
+ me?: MeInfo;
1970
+ environment: WAHAEnvironment;
1971
+ }
1972
+ interface WAHAWebhookPresenceUpdate {
1973
+ /**
1974
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
1975
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
1976
+ */
1977
+ id: string;
1978
+ /**
1979
+ * Unix timestamp (ms) for when the event was created.
1980
+ * @example 1634567890123
1981
+ */
1982
+ timestamp: number;
1983
+ /** @example "default" */
1984
+ session: string;
1985
+ /**
1986
+ * Metadata for the session.
1987
+ * @example {"user.id":"123","user.email":"email@example.com"}
1988
+ */
1989
+ metadata?: object;
1990
+ /** @example "WEBJS" */
1991
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
1992
+ /**
1993
+ * The most recent presence information for a chat.
1994
+ * @default "presence.update"
1995
+ */
1996
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
1997
+ payload: WAHAChatPresences;
1998
+ me?: MeInfo;
1999
+ environment: WAHAEnvironment;
2000
+ }
2001
+ interface PollVote {
2002
+ /**
2003
+ * Message ID
2004
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
2005
+ */
2006
+ id: string;
2007
+ /**
2008
+ * Option that user has selected
2009
+ * @example ["Awesome!"]
2010
+ */
2011
+ selectedOptions: string[];
2012
+ /**
2013
+ * Timestamp, ms
2014
+ * @example 1692861369
2015
+ */
2016
+ timestamp: number;
2017
+ to: string;
2018
+ from: string;
2019
+ fromMe: boolean;
2020
+ participant?: string;
2021
+ }
2022
+ interface MessageDestination {
2023
+ /**
2024
+ * Message ID
2025
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
2026
+ */
2027
+ id: string;
2028
+ to: string;
2029
+ from: string;
2030
+ fromMe: boolean;
2031
+ participant?: string;
2032
+ }
2033
+ interface PollVotePayload {
2034
+ vote: PollVote;
2035
+ poll: MessageDestination;
2036
+ _data?: object;
2037
+ }
2038
+ interface WAHAWebhookPollVote {
2039
+ /**
2040
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2041
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2042
+ */
2043
+ id: string;
2044
+ /**
2045
+ * Unix timestamp (ms) for when the event was created.
2046
+ * @example 1634567890123
2047
+ */
2048
+ timestamp: number;
2049
+ /** @example "default" */
2050
+ session: string;
2051
+ /**
2052
+ * Metadata for the session.
2053
+ * @example {"user.id":"123","user.email":"email@example.com"}
2054
+ */
2055
+ metadata?: object;
2056
+ /** @example "WEBJS" */
2057
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2058
+ /**
2059
+ * With this event, you receive new votes for the poll sent.
2060
+ * @default "poll.vote"
2061
+ */
2062
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2063
+ payload: PollVotePayload;
2064
+ me?: MeInfo;
2065
+ environment: WAHAEnvironment;
2066
+ }
2067
+ interface WAHAWebhookPollVoteFailed {
2068
+ /**
2069
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2070
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2071
+ */
2072
+ id: string;
2073
+ /**
2074
+ * Unix timestamp (ms) for when the event was created.
2075
+ * @example 1634567890123
2076
+ */
2077
+ timestamp: number;
2078
+ /** @example "default" */
2079
+ session: string;
2080
+ /**
2081
+ * Metadata for the session.
2082
+ * @example {"user.id":"123","user.email":"email@example.com"}
2083
+ */
2084
+ metadata?: object;
2085
+ /** @example "WEBJS" */
2086
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2087
+ /**
2088
+ * There may be cases when it fails to decrypt a vote from the user. Read more about how to handle such events in the documentations.
2089
+ * @default "poll.vote.failed"
2090
+ */
2091
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2092
+ payload: PollVotePayload;
2093
+ me?: MeInfo;
2094
+ environment: WAHAEnvironment;
2095
+ }
2096
+ interface ChatArchiveEvent {
2097
+ /** @example "11111111111@c.us" */
2098
+ id: string;
2099
+ archived: boolean;
2100
+ timestamp: number;
2101
+ }
2102
+ interface WAHAWebhookChatArchive {
2103
+ /**
2104
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2105
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2106
+ */
2107
+ id: string;
2108
+ /**
2109
+ * Unix timestamp (ms) for when the event was created.
2110
+ * @example 1634567890123
2111
+ */
2112
+ timestamp: number;
2113
+ /** @example "default" */
2114
+ session: string;
2115
+ /**
2116
+ * Metadata for the session.
2117
+ * @example {"user.id":"123","user.email":"email@example.com"}
2118
+ */
2119
+ metadata?: object;
2120
+ /** @example "WEBJS" */
2121
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2122
+ /**
2123
+ * The event is triggered when the chat is archived or unarchived
2124
+ * @default "chat.archive"
2125
+ */
2126
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2127
+ payload: ChatArchiveEvent;
2128
+ me?: MeInfo;
2129
+ environment: WAHAEnvironment;
2130
+ }
2131
+ interface CallData {
2132
+ /**
2133
+ * Call ID
2134
+ * @example "ABCDEFGABCDEFGABCDEFGABCDEFG"
2135
+ */
2136
+ id: string;
2137
+ /** @example "11111111111@c.us" */
2138
+ from?: string;
2139
+ timestamp: number;
2140
+ isVideo: boolean;
2141
+ isGroup: boolean;
2142
+ _data: object;
2143
+ }
2144
+ interface WAHAWebhookCallReceived {
2145
+ /**
2146
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2147
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2148
+ */
2149
+ id: string;
2150
+ /**
2151
+ * Unix timestamp (ms) for when the event was created.
2152
+ * @example 1634567890123
2153
+ */
2154
+ timestamp: number;
2155
+ /** @example "default" */
2156
+ session: string;
2157
+ /**
2158
+ * Metadata for the session.
2159
+ * @example {"user.id":"123","user.email":"email@example.com"}
2160
+ */
2161
+ metadata?: object;
2162
+ /** @example "WEBJS" */
2163
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2164
+ /**
2165
+ * The event is triggered when the call is received by the user.
2166
+ * @default "call.received"
2167
+ */
2168
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2169
+ payload: CallData;
2170
+ me?: MeInfo;
2171
+ environment: WAHAEnvironment;
2172
+ }
2173
+ interface WAHAWebhookCallAccepted {
2174
+ /**
2175
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2176
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2177
+ */
2178
+ id: string;
2179
+ /**
2180
+ * Unix timestamp (ms) for when the event was created.
2181
+ * @example 1634567890123
2182
+ */
2183
+ timestamp: number;
2184
+ /** @example "default" */
2185
+ session: string;
2186
+ /**
2187
+ * Metadata for the session.
2188
+ * @example {"user.id":"123","user.email":"email@example.com"}
2189
+ */
2190
+ metadata?: object;
2191
+ /** @example "WEBJS" */
2192
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2193
+ /**
2194
+ * The event is triggered when the call is accepted by the user.
2195
+ * @default "call.accepted"
2196
+ */
2197
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2198
+ payload: CallData;
2199
+ me?: MeInfo;
2200
+ environment: WAHAEnvironment;
2201
+ }
2202
+ interface WAHAWebhookCallRejected {
2203
+ /**
2204
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2205
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2206
+ */
2207
+ id: string;
2208
+ /**
2209
+ * Unix timestamp (ms) for when the event was created.
2210
+ * @example 1634567890123
2211
+ */
2212
+ timestamp: number;
2213
+ /** @example "default" */
2214
+ session: string;
2215
+ /**
2216
+ * Metadata for the session.
2217
+ * @example {"user.id":"123","user.email":"email@example.com"}
2218
+ */
2219
+ metadata?: object;
2220
+ /** @example "WEBJS" */
2221
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2222
+ /**
2223
+ * The event is triggered when the call is rejected by the user.
2224
+ * @default "call.rejected"
2225
+ */
2226
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2227
+ payload: CallData;
2228
+ me?: MeInfo;
2229
+ environment: WAHAEnvironment;
2230
+ }
2231
+ interface WAHAWebhookLabelUpsert {
2232
+ /**
2233
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2234
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2235
+ */
2236
+ id: string;
2237
+ /**
2238
+ * Unix timestamp (ms) for when the event was created.
2239
+ * @example 1634567890123
2240
+ */
2241
+ timestamp: number;
2242
+ /** @example "default" */
2243
+ session: string;
2244
+ /**
2245
+ * Metadata for the session.
2246
+ * @example {"user.id":"123","user.email":"email@example.com"}
2247
+ */
2248
+ metadata?: object;
2249
+ /** @example "WEBJS" */
2250
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2251
+ /**
2252
+ * The event is triggered when a label is created or updated
2253
+ * @default "label.upsert"
2254
+ */
2255
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2256
+ payload: Label;
2257
+ me?: MeInfo;
2258
+ environment: WAHAEnvironment;
2259
+ }
2260
+ interface WAHAWebhookLabelDeleted {
2261
+ /**
2262
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2263
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2264
+ */
2265
+ id: string;
2266
+ /**
2267
+ * Unix timestamp (ms) for when the event was created.
2268
+ * @example 1634567890123
2269
+ */
2270
+ timestamp: number;
2271
+ /** @example "default" */
2272
+ session: string;
2273
+ /**
2274
+ * Metadata for the session.
2275
+ * @example {"user.id":"123","user.email":"email@example.com"}
2276
+ */
2277
+ metadata?: object;
2278
+ /** @example "WEBJS" */
2279
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2280
+ /**
2281
+ * The event is triggered when a label is deleted
2282
+ * @default "label.deleted"
2283
+ */
2284
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2285
+ payload: Label;
2286
+ me?: MeInfo;
2287
+ environment: WAHAEnvironment;
2288
+ }
2289
+ interface LabelChatAssociation {
2290
+ /**
2291
+ * Label ID
2292
+ * @example "1"
2293
+ */
2294
+ labelId: string;
2295
+ /**
2296
+ * Chat ID
2297
+ * @example "11111111111@c.us"
2298
+ */
2299
+ chatId: string;
2300
+ label: Label | null;
2301
+ }
2302
+ interface WAHAWebhookLabelChatAdded {
2303
+ /**
2304
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2305
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2306
+ */
2307
+ id: string;
2308
+ /**
2309
+ * Unix timestamp (ms) for when the event was created.
2310
+ * @example 1634567890123
2311
+ */
2312
+ timestamp: number;
2313
+ /** @example "default" */
2314
+ session: string;
2315
+ /**
2316
+ * Metadata for the session.
2317
+ * @example {"user.id":"123","user.email":"email@example.com"}
2318
+ */
2319
+ metadata?: object;
2320
+ /** @example "WEBJS" */
2321
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2322
+ /**
2323
+ * The event is triggered when a label is added to a chat
2324
+ * @default "label.chat.added"
2325
+ */
2326
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2327
+ payload: LabelChatAssociation;
2328
+ me?: MeInfo;
2329
+ environment: WAHAEnvironment;
2330
+ }
2331
+ interface WAHAWebhookLabelChatDeleted {
2332
+ /**
2333
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2334
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2335
+ */
2336
+ id: string;
2337
+ /**
2338
+ * Unix timestamp (ms) for when the event was created.
2339
+ * @example 1634567890123
2340
+ */
2341
+ timestamp: number;
2342
+ /** @example "default" */
2343
+ session: string;
2344
+ /**
2345
+ * Metadata for the session.
2346
+ * @example {"user.id":"123","user.email":"email@example.com"}
2347
+ */
2348
+ metadata?: object;
2349
+ /** @example "WEBJS" */
2350
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2351
+ /**
2352
+ * The event is triggered when a label is deleted from a chat
2353
+ * @default "label.chat.deleted"
2354
+ */
2355
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2356
+ payload: LabelChatAssociation;
2357
+ me?: MeInfo;
2358
+ environment: WAHAEnvironment;
2359
+ }
2360
+ interface EventResponse {
2361
+ response: 'UNKNOWN' | 'GOING' | 'NOT_GOING' | 'MAYBE';
2362
+ timestampMs: number;
2363
+ extraGuestCount: number;
2364
+ }
2365
+ interface EventResponsePayload {
2366
+ /**
2367
+ * Message ID
2368
+ * @example "false_11111111111@c.us_AAAAAAAAAAAAAAAAAAAA"
2369
+ */
2370
+ id: string;
2371
+ /**
2372
+ * Unix timestamp for when the message was created
2373
+ * @example 1666943582
2374
+ */
2375
+ timestamp: number;
2376
+ /**
2377
+ * ID for the Chat that this message was sent to, except if the message was sent by the current user
2378
+ * @example "11111111111@c.us"
2379
+ */
2380
+ from: string;
2381
+ /** Indicates if the message was sent by the current user */
2382
+ fromMe: boolean;
2383
+ /**
2384
+ * The device that sent the message - either API or APP. Available in events (webhooks/websockets) only and only "fromMe: true" messages.
2385
+ * @example "api"
2386
+ */
2387
+ source: 'api' | 'app';
2388
+ /**
2389
+ *
2390
+ * * ID for who this message is for.
2391
+ * * If the message is sent by the current user, it will be the Chat to which the message is being sent.
2392
+ * * If the message is sent by another user, it will be the ID for the current user.
2393
+ * @example "11111111111@c.us"
2394
+ */
2395
+ to: string;
2396
+ /** For groups - participant who sent the message */
2397
+ participant: string;
2398
+ /** Message in a raw format that we get from WhatsApp. May be changed anytime, use it with caution! It depends a lot on the underlying backend. */
2399
+ _data?: object;
2400
+ eventCreationKey: MessageDestination;
2401
+ eventResponse?: EventResponse;
2402
+ }
2403
+ interface WAHAWebhookEventResponse {
2404
+ /**
2405
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2406
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2407
+ */
2408
+ id: string;
2409
+ /**
2410
+ * Unix timestamp (ms) for when the event was created.
2411
+ * @example 1634567890123
2412
+ */
2413
+ timestamp: number;
2414
+ /** @example "default" */
2415
+ session: string;
2416
+ /**
2417
+ * Metadata for the session.
2418
+ * @example {"user.id":"123","user.email":"email@example.com"}
2419
+ */
2420
+ metadata?: object;
2421
+ /** @example "WEBJS" */
2422
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2423
+ /**
2424
+ * The event is triggered when the event response is received.
2425
+ * @default "event.response"
2426
+ */
2427
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2428
+ payload: EventResponsePayload;
2429
+ me?: MeInfo;
2430
+ environment: WAHAEnvironment;
2431
+ }
2432
+ interface WAHAWebhookEventResponseFailed {
2433
+ /**
2434
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2435
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2436
+ */
2437
+ id: string;
2438
+ /**
2439
+ * Unix timestamp (ms) for when the event was created.
2440
+ * @example 1634567890123
2441
+ */
2442
+ timestamp: number;
2443
+ /** @example "default" */
2444
+ session: string;
2445
+ /**
2446
+ * Metadata for the session.
2447
+ * @example {"user.id":"123","user.email":"email@example.com"}
2448
+ */
2449
+ metadata?: object;
2450
+ /** @example "WEBJS" */
2451
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2452
+ /**
2453
+ * The event is triggered when the event response is failed to decrypt.
2454
+ * @default "event.response.failed"
2455
+ */
2456
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2457
+ payload: EventResponsePayload;
2458
+ me?: MeInfo;
2459
+ environment: WAHAEnvironment;
2460
+ }
2461
+ interface EnginePayload {
2462
+ event: string;
2463
+ data: object;
2464
+ }
2465
+ interface WAHAWebhookEngineEvent {
2466
+ /**
2467
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2468
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2469
+ */
2470
+ id: string;
2471
+ /**
2472
+ * Unix timestamp (ms) for when the event was created.
2473
+ * @example 1634567890123
2474
+ */
2475
+ timestamp: number;
2476
+ /** @example "default" */
2477
+ session: string;
2478
+ /**
2479
+ * Metadata for the session.
2480
+ * @example {"user.id":"123","user.email":"email@example.com"}
2481
+ */
2482
+ metadata?: object;
2483
+ /** @example "WEBJS" */
2484
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2485
+ /**
2486
+ * Internal engine event.
2487
+ * @default "engine.event"
2488
+ */
2489
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2490
+ payload: EnginePayload;
2491
+ me?: MeInfo;
2492
+ environment: WAHAEnvironment;
2493
+ }
2494
+ interface WAHAWebhookGroupJoin {
2495
+ /**
2496
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2497
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2498
+ */
2499
+ id: string;
2500
+ /**
2501
+ * Unix timestamp (ms) for when the event was created.
2502
+ * @example 1634567890123
2503
+ */
2504
+ timestamp: number;
2505
+ /** @example "default" */
2506
+ session: string;
2507
+ /**
2508
+ * Metadata for the session.
2509
+ * @example {"user.id":"123","user.email":"email@example.com"}
2510
+ */
2511
+ metadata?: object;
2512
+ /** @example "WEBJS" */
2513
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2514
+ /**
2515
+ * Some one join a group.
2516
+ * @deprecated
2517
+ * @default "group.join"
2518
+ */
2519
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2520
+ payload: object;
2521
+ me?: MeInfo;
2522
+ environment: WAHAEnvironment;
2523
+ }
2524
+ interface WAHAWebhookGroupLeave {
2525
+ /**
2526
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2527
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2528
+ */
2529
+ id: string;
2530
+ /**
2531
+ * Unix timestamp (ms) for when the event was created.
2532
+ * @example 1634567890123
2533
+ */
2534
+ timestamp: number;
2535
+ /** @example "default" */
2536
+ session: string;
2537
+ /**
2538
+ * Metadata for the session.
2539
+ * @example {"user.id":"123","user.email":"email@example.com"}
2540
+ */
2541
+ metadata?: object;
2542
+ /** @example "WEBJS" */
2543
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2544
+ /**
2545
+ * Some one left a group.
2546
+ * @deprecated
2547
+ * @default "group.leave"
2548
+ */
2549
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2550
+ payload: object;
2551
+ me?: MeInfo;
2552
+ environment: WAHAEnvironment;
2553
+ }
2554
+ interface WAHAWebhookStateChange {
2555
+ /**
2556
+ * Unique identifier for the event - lower case ULID format. https://github.com/ulid/spec
2557
+ * @example "evt_01aaaaaaaaaaaaaaaaaaaaaaaa"
2558
+ */
2559
+ id: string;
2560
+ /**
2561
+ * Unix timestamp (ms) for when the event was created.
2562
+ * @example 1634567890123
2563
+ */
2564
+ timestamp: number;
2565
+ /** @example "default" */
2566
+ session: string;
2567
+ /**
2568
+ * Metadata for the session.
2569
+ * @example {"user.id":"123","user.email":"email@example.com"}
2570
+ */
2571
+ metadata?: object;
2572
+ /** @example "WEBJS" */
2573
+ engine: 'WEBJS' | 'NOWEB' | 'GOWS';
2574
+ /**
2575
+ * It’s an internal engine’s state, not session status.
2576
+ * @deprecated
2577
+ * @default "state.change"
2578
+ */
2579
+ event: 'session.status' | 'message' | 'message.reaction' | 'message.any' | 'message.ack' | 'message.waiting' | 'message.revoked' | 'message.edited' | 'state.change' | 'group.join' | 'group.leave' | 'group.v2.join' | 'group.v2.leave' | 'group.v2.update' | 'group.v2.participants' | 'presence.update' | 'poll.vote' | 'poll.vote.failed' | 'chat.archive' | 'call.received' | 'call.accepted' | 'call.rejected' | 'label.upsert' | 'label.deleted' | 'label.chat.added' | 'label.chat.deleted' | 'event.response' | 'event.response.failed' | 'engine.event';
2580
+ payload: object;
2581
+ me?: MeInfo;
2582
+ environment: WAHAEnvironment;
2583
+ }
2584
+
2585
+ type QueryParamsType = Record<string | number, any>;
2586
+ interface FullRequestParams extends Omit<AxiosRequestConfig, 'data' | 'params' | 'url' | 'responseType'> {
2587
+ /** set parameter to `true` for call `securityWorker` for this request */
2588
+ secure?: boolean;
2589
+ /** request path */
2590
+ path: string;
2591
+ /** content type of request body */
2592
+ type?: ContentType;
2593
+ /** query params */
2594
+ query?: QueryParamsType;
2595
+ /** format of response (i.e. response.json() -> format: "json") */
2596
+ format?: ResponseType;
2597
+ /** request body */
2598
+ body?: unknown;
2599
+ }
2600
+ type RequestParams = Omit<FullRequestParams, 'body' | 'method' | 'query' | 'path'>;
2601
+ interface ApiConfig<SecurityDataType = unknown> extends Omit<AxiosRequestConfig, 'data' | 'cancelToken'> {
2602
+ securityWorker?: (securityData: SecurityDataType | null) => Promise<AxiosRequestConfig | void> | AxiosRequestConfig | void;
2603
+ secure?: boolean;
2604
+ format?: ResponseType;
2605
+ }
2606
+ declare enum ContentType {
2607
+ Json = "application/json",
2608
+ JsonApi = "application/vnd.api+json",
2609
+ FormData = "multipart/form-data",
2610
+ UrlEncoded = "application/x-www-form-urlencoded",
2611
+ Text = "text/plain"
2612
+ }
2613
+ declare class HttpClient<SecurityDataType = unknown> {
2614
+ instance: AxiosInstance;
2615
+ private securityData;
2616
+ private securityWorker?;
2617
+ private secure?;
2618
+ private format?;
2619
+ constructor({ securityWorker, secure, format, ...axiosConfig }?: ApiConfig<SecurityDataType>);
2620
+ setSecurityData: (data: SecurityDataType | null) => void;
2621
+ protected mergeRequestParams(params1: AxiosRequestConfig, params2?: AxiosRequestConfig): AxiosRequestConfig;
2622
+ protected stringifyFormItem(formItem: unknown): string;
2623
+ protected createFormData(input: Record<string, unknown>): FormData;
2624
+ request: <T = any, _E = any>({ secure, path, type, query, format, body, ...params }: FullRequestParams) => Promise<AxiosResponse<T>>;
2625
+ }
2626
+
2627
+ declare class Apps<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
2628
+ /**
2629
+ * No description
2630
+ *
2631
+ * @tags 🧩 Apps
2632
+ * @name AppsControllerList
2633
+ * @summary List all apps for a session
2634
+ * @request GET:/api/apps
2635
+ * @secure
2636
+ */
2637
+ appsControllerList: (query: {
2638
+ /**
2639
+ * Session name to list apps for
2640
+ * @example "default"
2641
+ */
2642
+ session: string;
2643
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2644
+ /**
2645
+ * No description
2646
+ *
2647
+ * @tags 🧩 Apps
2648
+ * @name AppsControllerCreate
2649
+ * @summary Create a new app
2650
+ * @request POST:/api/apps
2651
+ * @secure
2652
+ */
2653
+ appsControllerCreate: (data: App, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2654
+ /**
2655
+ * No description
2656
+ *
2657
+ * @tags 🧩 Apps
2658
+ * @name AppsControllerGet
2659
+ * @summary Get app by ID
2660
+ * @request GET:/api/apps/{id}
2661
+ * @secure
2662
+ */
2663
+ appsControllerGet: (id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2664
+ /**
2665
+ * No description
2666
+ *
2667
+ * @tags 🧩 Apps
2668
+ * @name AppsControllerUpdate
2669
+ * @summary Update an existing app
2670
+ * @request PUT:/api/apps/{id}
2671
+ * @secure
2672
+ */
2673
+ appsControllerUpdate: (id: string, data: App, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2674
+ /**
2675
+ * No description
2676
+ *
2677
+ * @tags 🧩 Apps
2678
+ * @name AppsControllerDelete
2679
+ * @summary Delete an app
2680
+ * @request DELETE:/api/apps/{id}
2681
+ * @secure
2682
+ */
2683
+ appsControllerDelete: (id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2684
+ /**
2685
+ * @description Get available languages for Chatwoot app
2686
+ *
2687
+ * @tags 🧩 Apps
2688
+ * @name ChatwootLocalesControllerGetLanguages
2689
+ * @summary Get available languages for Chatwoot app
2690
+ * @request GET:/api/apps/chatwoot/locales
2691
+ * @secure
2692
+ */
2693
+ chatwootLocalesControllerGetLanguages: (params?: RequestParams) => Promise<AxiosResponse<object[], any, {}>>;
2694
+ }
2695
+
2696
+ declare class Auth<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
2697
+ /**
2698
+ * No description
2699
+ *
2700
+ * @tags 🔑 Auth
2701
+ * @name AuthControllerGetQr
2702
+ * @summary Get QR code for pairing WhatsApp API.
2703
+ * @request GET:/api/{session}/auth/qr
2704
+ * @secure
2705
+ */
2706
+ authControllerGetQr: (session: any, query: {
2707
+ /** @default "image" */
2708
+ format: "image" | "raw";
2709
+ }, params?: RequestParams) => Promise<AxiosResponse<File, any, {}>>;
2710
+ /**
2711
+ * No description
2712
+ *
2713
+ * @tags 🔑 Auth
2714
+ * @name AuthControllerRequestCode
2715
+ * @summary Request authentication code.
2716
+ * @request POST:/api/{session}/auth/request-code
2717
+ * @secure
2718
+ */
2719
+ authControllerRequestCode: (session: any, data: RequestCodeRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2720
+ }
2721
+
2722
+ declare class Calls<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
2723
+ /**
2724
+ * No description
2725
+ *
2726
+ * @tags 📞 Calls
2727
+ * @name CallsControllerRejectCall
2728
+ * @summary Reject incoming call
2729
+ * @request POST:/api/{session}/calls/reject
2730
+ * @secure
2731
+ */
2732
+ callsControllerRejectCall: (session: any, data: RejectCallRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2733
+ }
2734
+
2735
+ declare class Channels<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
2736
+ /**
2737
+ * No description
2738
+ *
2739
+ * @tags 📢 Channels
2740
+ * @name ChannelsControllerList
2741
+ * @summary Get list of know channels
2742
+ * @request GET:/api/{session}/channels
2743
+ * @secure
2744
+ */
2745
+ channelsControllerList: (session: any, query?: {
2746
+ role?: "OWNER" | "ADMIN" | "SUBSCRIBER";
2747
+ }, params?: RequestParams) => Promise<AxiosResponse<Channel[], any, {}>>;
2748
+ /**
2749
+ * No description
2750
+ *
2751
+ * @tags 📢 Channels
2752
+ * @name ChannelsControllerCreate
2753
+ * @summary Create a new channel.
2754
+ * @request POST:/api/{session}/channels
2755
+ * @secure
2756
+ */
2757
+ channelsControllerCreate: (session: any, data: CreateChannelRequest, params?: RequestParams) => Promise<AxiosResponse<Channel, any, {}>>;
2758
+ /**
2759
+ * No description
2760
+ *
2761
+ * @tags 📢 Channels
2762
+ * @name ChannelsControllerDelete
2763
+ * @summary Delete the channel.
2764
+ * @request DELETE:/api/{session}/channels/{id}
2765
+ * @secure
2766
+ */
2767
+ channelsControllerDelete: (session: any, id: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2768
+ /**
2769
+ * @description You can use either id (123@newsletter) OR invite code (https://www.whatsapp.com/channel/123)
2770
+ *
2771
+ * @tags 📢 Channels
2772
+ * @name ChannelsControllerGet
2773
+ * @summary Get the channel info
2774
+ * @request GET:/api/{session}/channels/{id}
2775
+ * @secure
2776
+ */
2777
+ channelsControllerGet: (session: any, id: any, params?: RequestParams) => Promise<AxiosResponse<Channel, any, {}>>;
2778
+ /**
2779
+ * @description You can use either invite code (https://www.whatsapp.com/channel/123) or (123)ORChannel ID (123@newsletter).
2780
+ *
2781
+ * @tags 📢 Channels
2782
+ * @name ChannelsControllerPreviewChannelMessages
2783
+ * @summary Preview channel messages
2784
+ * @request GET:/api/{session}/channels/{id}/messages/preview
2785
+ * @secure
2786
+ */
2787
+ channelsControllerPreviewChannelMessages: (session: any, id: any, query: {
2788
+ /** @default false */
2789
+ downloadMedia: boolean;
2790
+ /** @default 10 */
2791
+ limit: number;
2792
+ }, params?: RequestParams) => Promise<AxiosResponse<ChannelMessage[], any, {}>>;
2793
+ /**
2794
+ * No description
2795
+ *
2796
+ * @tags 📢 Channels
2797
+ * @name ChannelsControllerFollow
2798
+ * @summary Follow the channel.
2799
+ * @request POST:/api/{session}/channels/{id}/follow
2800
+ * @secure
2801
+ */
2802
+ channelsControllerFollow: (session: any, id: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2803
+ /**
2804
+ * No description
2805
+ *
2806
+ * @tags 📢 Channels
2807
+ * @name ChannelsControllerUnfollow
2808
+ * @summary Unfollow the channel.
2809
+ * @request POST:/api/{session}/channels/{id}/unfollow
2810
+ * @secure
2811
+ */
2812
+ channelsControllerUnfollow: (session: any, id: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2813
+ /**
2814
+ * No description
2815
+ *
2816
+ * @tags 📢 Channels
2817
+ * @name ChannelsControllerMute
2818
+ * @summary Mute the channel.
2819
+ * @request POST:/api/{session}/channels/{id}/mute
2820
+ * @secure
2821
+ */
2822
+ channelsControllerMute: (session: any, id: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2823
+ /**
2824
+ * No description
2825
+ *
2826
+ * @tags 📢 Channels
2827
+ * @name ChannelsControllerUnmute
2828
+ * @summary Unmute the channel.
2829
+ * @request POST:/api/{session}/channels/{id}/unmute
2830
+ * @secure
2831
+ */
2832
+ channelsControllerUnmute: (session: any, id: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2833
+ /**
2834
+ * No description
2835
+ *
2836
+ * @tags 📢 Channels
2837
+ * @name ChannelsControllerSearchByView
2838
+ * @summary Search for channels (by view)
2839
+ * @request POST:/api/{session}/channels/search/by-view
2840
+ * @secure
2841
+ */
2842
+ channelsControllerSearchByView: (session: any, data: ChannelSearchByView, params?: RequestParams) => Promise<AxiosResponse<ChannelListResult, any, {}>>;
2843
+ /**
2844
+ * No description
2845
+ *
2846
+ * @tags 📢 Channels
2847
+ * @name ChannelsControllerSearchByText
2848
+ * @summary Search for channels (by text)
2849
+ * @request POST:/api/{session}/channels/search/by-text
2850
+ * @secure
2851
+ */
2852
+ channelsControllerSearchByText: (session: any, data: ChannelSearchByText, params?: RequestParams) => Promise<AxiosResponse<ChannelListResult, any, {}>>;
2853
+ /**
2854
+ * No description
2855
+ *
2856
+ * @tags 📢 Channels
2857
+ * @name ChannelsControllerGetSearchViews
2858
+ * @summary Get list of views for channel search
2859
+ * @request GET:/api/{session}/channels/search/views
2860
+ * @secure
2861
+ */
2862
+ channelsControllerGetSearchViews: (session: any, params?: RequestParams) => Promise<AxiosResponse<ChannelView[], any, {}>>;
2863
+ /**
2864
+ * No description
2865
+ *
2866
+ * @tags 📢 Channels
2867
+ * @name ChannelsControllerGetSearchCountries
2868
+ * @summary Get list of countries for channel search
2869
+ * @request GET:/api/{session}/channels/search/countries
2870
+ * @secure
2871
+ */
2872
+ channelsControllerGetSearchCountries: (session: any, params?: RequestParams) => Promise<AxiosResponse<ChannelCountry[], any, {}>>;
2873
+ /**
2874
+ * No description
2875
+ *
2876
+ * @tags 📢 Channels
2877
+ * @name ChannelsControllerGetSearchCategories
2878
+ * @summary Get list of categories for channel search
2879
+ * @request GET:/api/{session}/channels/search/categories
2880
+ * @secure
2881
+ */
2882
+ channelsControllerGetSearchCategories: (session: any, params?: RequestParams) => Promise<AxiosResponse<ChannelCategory[], any, {}>>;
2883
+ }
2884
+
2885
+ declare class Chats<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
2886
+ /**
2887
+ * No description
2888
+ *
2889
+ * @tags 💬 Chats
2890
+ * @name ChatsControllerGetChats
2891
+ * @summary Get chats
2892
+ * @request GET:/api/{session}/chats
2893
+ * @secure
2894
+ */
2895
+ chatsControllerGetChats: (session: any, query?: {
2896
+ /** Sort by field */
2897
+ sortBy?: "conversationTimestamp" | "id" | "name";
2898
+ /** Sort order - <b>desc</b>ending (Z => A, New first) or <b>asc</b>ending (A => Z, Old first) */
2899
+ sortOrder?: "desc" | "asc";
2900
+ limit?: number;
2901
+ offset?: number;
2902
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2903
+ /**
2904
+ * No description
2905
+ *
2906
+ * @tags 💬 Chats
2907
+ * @name ChatsControllerGetChatsOverview
2908
+ * @summary Get chats overview. Includes all necessary things to build UI "your chats overview" page - chat id, name, picture, last message. Sorting by last message timestamp
2909
+ * @request GET:/api/{session}/chats/overview
2910
+ * @secure
2911
+ */
2912
+ chatsControllerGetChatsOverview: (session: any, query?: {
2913
+ /** @default 20 */
2914
+ limit?: number;
2915
+ offset?: number;
2916
+ /**
2917
+ * Filter by chat ids
2918
+ * @example ["111111111@c.us"]
2919
+ */
2920
+ ids?: string[];
2921
+ }, params?: RequestParams) => Promise<AxiosResponse<ChatSummary[], any, {}>>;
2922
+ /**
2923
+ * No description
2924
+ *
2925
+ * @tags 💬 Chats
2926
+ * @name ChatsControllerPostChatsOverview
2927
+ * @summary Get chats overview. Use POST if you have too many "ids" params - GET can limit it
2928
+ * @request POST:/api/{session}/chats/overview
2929
+ * @secure
2930
+ */
2931
+ chatsControllerPostChatsOverview: (session: any, data: OverviewBodyRequest, params?: RequestParams) => Promise<AxiosResponse<ChatSummary[], any, {}>>;
2932
+ /**
2933
+ * No description
2934
+ *
2935
+ * @tags 💬 Chats
2936
+ * @name ChatsControllerDeleteChat
2937
+ * @summary Deletes the chat
2938
+ * @request DELETE:/api/{session}/chats/{chatId}
2939
+ * @secure
2940
+ */
2941
+ chatsControllerDeleteChat: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
2942
+ /**
2943
+ * No description
2944
+ *
2945
+ * @tags 💬 Chats
2946
+ * @name ChatsControllerGetChatPicture
2947
+ * @summary Gets chat picture
2948
+ * @request GET:/api/{session}/chats/{chatId}/picture
2949
+ * @secure
2950
+ */
2951
+ chatsControllerGetChatPicture: (session: any, chatId: string, query?: {
2952
+ /**
2953
+ * Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error
2954
+ * @default false
2955
+ * @example false
2956
+ */
2957
+ refresh?: boolean;
2958
+ }, params?: RequestParams) => Promise<AxiosResponse<ChatPictureResponse, any, {}>>;
2959
+ /**
2960
+ * No description
2961
+ *
2962
+ * @tags 💬 Chats
2963
+ * @name ChatsControllerGetChatMessages
2964
+ * @summary Gets messages in the chat
2965
+ * @request GET:/api/{session}/chats/{chatId}/messages
2966
+ * @secure
2967
+ */
2968
+ chatsControllerGetChatMessages: (session: any, chatId: string, query: {
2969
+ /**
2970
+ * Sort by field
2971
+ * @default "timestamp"
2972
+ */
2973
+ sortBy?: "timestamp" | "messageTimestamp";
2974
+ /** Sort order - <b>desc</b>ending (Z => A, New first) or <b>asc</b>ending (A => Z, Old first) */
2975
+ sortOrder?: "desc" | "asc";
2976
+ /**
2977
+ * Download media for messages
2978
+ * @default true
2979
+ * @example false
2980
+ */
2981
+ downloadMedia?: boolean;
2982
+ /** @default 10 */
2983
+ limit: number;
2984
+ offset?: number;
2985
+ /** Filter messages before this timestamp (inclusive) */
2986
+ "filter.timestamp.lte"?: number;
2987
+ /** Filter messages after this timestamp (inclusive) */
2988
+ "filter.timestamp.gte"?: number;
2989
+ /** From me filter (by default shows all messages) */
2990
+ "filter.fromMe"?: boolean;
2991
+ /** Filter messages by acknowledgment status */
2992
+ "filter.ack"?: "ERROR" | "PENDING" | "SERVER" | "DEVICE" | "READ" | "PLAYED";
2993
+ }, params?: RequestParams) => Promise<AxiosResponse<WAMessage[], any, {}>>;
2994
+ /**
2995
+ * No description
2996
+ *
2997
+ * @tags 💬 Chats
2998
+ * @name ChatsControllerClearMessages
2999
+ * @summary Clears all messages from the chat
3000
+ * @request DELETE:/api/{session}/chats/{chatId}/messages
3001
+ * @secure
3002
+ */
3003
+ chatsControllerClearMessages: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3004
+ /**
3005
+ * No description
3006
+ *
3007
+ * @tags 💬 Chats
3008
+ * @name ChatsControllerReadChatMessages
3009
+ * @summary Read unread messages in the chat
3010
+ * @request POST:/api/{session}/chats/{chatId}/messages/read
3011
+ * @secure
3012
+ */
3013
+ chatsControllerReadChatMessages: (session: any, chatId: string, query?: {
3014
+ /**
3015
+ * How much messages to read (latest first)
3016
+ * @example 30
3017
+ */
3018
+ messages?: number;
3019
+ /**
3020
+ * How much days to read (latest first)
3021
+ * @default 7
3022
+ */
3023
+ days?: number;
3024
+ }, params?: RequestParams) => Promise<AxiosResponse<ReadChatMessagesResponse, any, {}>>;
3025
+ /**
3026
+ * No description
3027
+ *
3028
+ * @tags 💬 Chats
3029
+ * @name ChatsControllerGetChatMessage
3030
+ * @summary Gets message by id
3031
+ * @request GET:/api/{session}/chats/{chatId}/messages/{messageId}
3032
+ * @secure
3033
+ */
3034
+ chatsControllerGetChatMessage: (session: any, chatId: string, messageId: string, query?: {
3035
+ /**
3036
+ * Download media for messages
3037
+ * @default true
3038
+ * @example true
3039
+ */
3040
+ downloadMedia?: boolean;
3041
+ }, params?: RequestParams) => Promise<AxiosResponse<WAMessage, any, {}>>;
3042
+ /**
3043
+ * No description
3044
+ *
3045
+ * @tags 💬 Chats
3046
+ * @name ChatsControllerDeleteMessage
3047
+ * @summary Deletes a message from the chat
3048
+ * @request DELETE:/api/{session}/chats/{chatId}/messages/{messageId}
3049
+ * @secure
3050
+ */
3051
+ chatsControllerDeleteMessage: (session: any, chatId: string, messageId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3052
+ /**
3053
+ * No description
3054
+ *
3055
+ * @tags 💬 Chats
3056
+ * @name ChatsControllerEditMessage
3057
+ * @summary Edits a message in the chat
3058
+ * @request PUT:/api/{session}/chats/{chatId}/messages/{messageId}
3059
+ * @secure
3060
+ */
3061
+ chatsControllerEditMessage: (session: any, chatId: string, messageId: string, data: EditMessageRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3062
+ /**
3063
+ * No description
3064
+ *
3065
+ * @tags 💬 Chats
3066
+ * @name ChatsControllerPinMessage
3067
+ * @summary Pins a message in the chat
3068
+ * @request POST:/api/{session}/chats/{chatId}/messages/{messageId}/pin
3069
+ * @secure
3070
+ */
3071
+ chatsControllerPinMessage: (session: any, chatId: string, messageId: string, data: PinMessageRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3072
+ /**
3073
+ * No description
3074
+ *
3075
+ * @tags 💬 Chats
3076
+ * @name ChatsControllerUnpinMessage
3077
+ * @summary Unpins a message in the chat
3078
+ * @request POST:/api/{session}/chats/{chatId}/messages/{messageId}/unpin
3079
+ * @secure
3080
+ */
3081
+ chatsControllerUnpinMessage: (session: any, chatId: string, messageId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3082
+ /**
3083
+ * No description
3084
+ *
3085
+ * @tags 💬 Chats
3086
+ * @name ChatsControllerArchiveChat
3087
+ * @summary Archive the chat
3088
+ * @request POST:/api/{session}/chats/{chatId}/archive
3089
+ * @secure
3090
+ */
3091
+ chatsControllerArchiveChat: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3092
+ /**
3093
+ * No description
3094
+ *
3095
+ * @tags 💬 Chats
3096
+ * @name ChatsControllerUnarchiveChat
3097
+ * @summary Unarchive the chat
3098
+ * @request POST:/api/{session}/chats/{chatId}/unarchive
3099
+ * @secure
3100
+ */
3101
+ chatsControllerUnarchiveChat: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3102
+ /**
3103
+ * No description
3104
+ *
3105
+ * @tags 💬 Chats
3106
+ * @name ChatsControllerUnreadChat
3107
+ * @summary Unread the chat
3108
+ * @request POST:/api/{session}/chats/{chatId}/unread
3109
+ * @secure
3110
+ */
3111
+ chatsControllerUnreadChat: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3112
+ }
3113
+
3114
+ declare class Chatting<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3115
+ /**
3116
+ * No description
3117
+ *
3118
+ * @tags 📤 Chatting
3119
+ * @name ChattingControllerSendText
3120
+ * @summary Send a text message
3121
+ * @request POST:/api/sendText
3122
+ * @secure
3123
+ */
3124
+ chattingControllerSendText: (data: MessageTextRequest, params?: RequestParams) => Promise<AxiosResponse<WAMessage, any, {}>>;
3125
+ /**
3126
+ * No description
3127
+ *
3128
+ * @tags 📤 Chatting
3129
+ * @name ChattingControllerSendTextGet
3130
+ * @summary Send a text message
3131
+ * @request GET:/api/sendText
3132
+ * @deprecated
3133
+ * @secure
3134
+ */
3135
+ chattingControllerSendTextGet: (query: {
3136
+ phone: string;
3137
+ text: string;
3138
+ /** @default "default" */
3139
+ session: string;
3140
+ }, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3141
+ /**
3142
+ * @description Either from an URL or base64 data - look at the request schemas for details.
3143
+ *
3144
+ * @tags 📤 Chatting
3145
+ * @name ChattingControllerSendImage
3146
+ * @summary Send an image
3147
+ * @request POST:/api/sendImage
3148
+ * @secure
3149
+ */
3150
+ chattingControllerSendImage: (data: MessageImageRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3151
+ /**
3152
+ * @description Either from an URL or base64 data - look at the request schemas for details.
3153
+ *
3154
+ * @tags 📤 Chatting
3155
+ * @name ChattingControllerSendFile
3156
+ * @summary Send a file
3157
+ * @request POST:/api/sendFile
3158
+ * @secure
3159
+ */
3160
+ chattingControllerSendFile: (data: MessageFileRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3161
+ /**
3162
+ * @description Either from an URL or base64 data - look at the request schemas for details.
3163
+ *
3164
+ * @tags 📤 Chatting
3165
+ * @name ChattingControllerSendVoice
3166
+ * @summary Send an voice message
3167
+ * @request POST:/api/sendVoice
3168
+ * @secure
3169
+ */
3170
+ chattingControllerSendVoice: (data: MessageVoiceRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3171
+ /**
3172
+ * @description Either from an URL or base64 data - look at the request schemas for details.
3173
+ *
3174
+ * @tags 📤 Chatting
3175
+ * @name ChattingControllerSendVideo
3176
+ * @summary Send a video
3177
+ * @request POST:/api/sendVideo
3178
+ * @secure
3179
+ */
3180
+ chattingControllerSendVideo: (data: MessageVideoRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3181
+ /**
3182
+ * @description You can use regular /api/sendText if you wanna send auto-generated link preview.
3183
+ *
3184
+ * @tags 📤 Chatting
3185
+ * @name ChattingControllerSendLinkCustomPreview
3186
+ * @summary Send a text message with a CUSTOM link preview.
3187
+ * @request POST:/api/send/link-custom-preview
3188
+ * @secure
3189
+ */
3190
+ chattingControllerSendLinkCustomPreview: (data: MessageLinkCustomPreviewRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3191
+ /**
3192
+ * @description Send Buttons
3193
+ *
3194
+ * @tags 📤 Chatting
3195
+ * @name ChattingControllerSendButtons
3196
+ * @summary Send buttons message (interactive)
3197
+ * @request POST:/api/sendButtons
3198
+ * @deprecated
3199
+ * @secure
3200
+ */
3201
+ chattingControllerSendButtons: (data: SendButtonsRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3202
+ /**
3203
+ * @description Send a List message with sections and rows
3204
+ *
3205
+ * @tags 📤 Chatting
3206
+ * @name ChattingControllerSendList
3207
+ * @summary Send a list message (interactive)
3208
+ * @request POST:/api/sendList
3209
+ * @secure
3210
+ */
3211
+ chattingControllerSendList: (data: SendListRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3212
+ /**
3213
+ * No description
3214
+ *
3215
+ * @tags 📤 Chatting
3216
+ * @name ChattingControllerForwardMessage
3217
+ * @request POST:/api/forwardMessage
3218
+ * @secure
3219
+ */
3220
+ chattingControllerForwardMessage: (data: MessageForwardRequest, params?: RequestParams) => Promise<AxiosResponse<WAMessage, any, {}>>;
3221
+ /**
3222
+ * No description
3223
+ *
3224
+ * @tags 📤 Chatting
3225
+ * @name ChattingControllerSendSeen
3226
+ * @request POST:/api/sendSeen
3227
+ * @secure
3228
+ */
3229
+ chattingControllerSendSeen: (data: SendSeenRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3230
+ /**
3231
+ * No description
3232
+ *
3233
+ * @tags 📤 Chatting
3234
+ * @name ChattingControllerStartTyping
3235
+ * @request POST:/api/startTyping
3236
+ * @secure
3237
+ */
3238
+ chattingControllerStartTyping: (data: ChatRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3239
+ /**
3240
+ * No description
3241
+ *
3242
+ * @tags 📤 Chatting
3243
+ * @name ChattingControllerStopTyping
3244
+ * @request POST:/api/stopTyping
3245
+ * @secure
3246
+ */
3247
+ chattingControllerStopTyping: (data: ChatRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3248
+ /**
3249
+ * No description
3250
+ *
3251
+ * @tags 📤 Chatting
3252
+ * @name ChattingControllerSetReaction
3253
+ * @summary React to a message with an emoji
3254
+ * @request PUT:/api/reaction
3255
+ * @secure
3256
+ */
3257
+ chattingControllerSetReaction: (data: MessageReactionRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3258
+ /**
3259
+ * No description
3260
+ *
3261
+ * @tags 📤 Chatting
3262
+ * @name ChattingControllerSetStar
3263
+ * @summary Star or unstar a message
3264
+ * @request PUT:/api/star
3265
+ * @secure
3266
+ */
3267
+ chattingControllerSetStar: (data: MessageStarRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3268
+ /**
3269
+ * @description You can use it as buttons or list replacement
3270
+ *
3271
+ * @tags 📤 Chatting
3272
+ * @name ChattingControllerSendPoll
3273
+ * @summary Send a poll with options
3274
+ * @request POST:/api/sendPoll
3275
+ * @secure
3276
+ */
3277
+ chattingControllerSendPoll: (data: MessagePollRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3278
+ /**
3279
+ * @description Cast vote(s) on an existing poll message
3280
+ *
3281
+ * @tags 📤 Chatting
3282
+ * @name ChattingControllerSendPollVote
3283
+ * @summary Vote on a poll
3284
+ * @request POST:/api/sendPollVote
3285
+ * @secure
3286
+ */
3287
+ chattingControllerSendPollVote: (data: MessagePollVoteRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3288
+ /**
3289
+ * No description
3290
+ *
3291
+ * @tags 📤 Chatting
3292
+ * @name ChattingControllerSendLocation
3293
+ * @request POST:/api/sendLocation
3294
+ * @secure
3295
+ */
3296
+ chattingControllerSendLocation: (data: MessageLocationRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3297
+ /**
3298
+ * No description
3299
+ *
3300
+ * @tags 📤 Chatting
3301
+ * @name ChattingControllerSendContactVcard
3302
+ * @request POST:/api/sendContactVcard
3303
+ * @secure
3304
+ */
3305
+ chattingControllerSendContactVcard: (data: MessageContactVcardRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3306
+ /**
3307
+ * No description
3308
+ *
3309
+ * @tags 📤 Chatting
3310
+ * @name ChattingControllerSendButtonsReply
3311
+ * @summary Reply on a button message
3312
+ * @request POST:/api/send/buttons/reply
3313
+ * @secure
3314
+ */
3315
+ chattingControllerSendButtonsReply: (data: MessageButtonReply, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3316
+ /**
3317
+ * @description DEPRECATED. Use "GET /api/chats/{id}/messages" instead
3318
+ *
3319
+ * @tags 📤 Chatting
3320
+ * @name ChattingControllerGetMessages
3321
+ * @summary Get messages in a chat
3322
+ * @request GET:/api/messages
3323
+ * @deprecated
3324
+ * @secure
3325
+ */
3326
+ chattingControllerGetMessages: (query: {
3327
+ /**
3328
+ * Sort by field
3329
+ * @default "timestamp"
3330
+ */
3331
+ sortBy?: "timestamp" | "messageTimestamp";
3332
+ /** Sort order - <b>desc</b>ending (Z => A, New first) or <b>asc</b>ending (A => Z, Old first) */
3333
+ sortOrder?: "desc" | "asc";
3334
+ /**
3335
+ * Download media for messages
3336
+ * @default true
3337
+ * @example false
3338
+ */
3339
+ downloadMedia?: boolean;
3340
+ /** @example "11111111111@c.us" */
3341
+ chatId: string;
3342
+ /** @default "default" */
3343
+ session: string;
3344
+ /** @default 10 */
3345
+ limit: number;
3346
+ offset?: number;
3347
+ /** Filter messages before this timestamp (inclusive) */
3348
+ "filter.timestamp.lte"?: number;
3349
+ /** Filter messages after this timestamp (inclusive) */
3350
+ "filter.timestamp.gte"?: number;
3351
+ /** From me filter (by default shows all messages) */
3352
+ "filter.fromMe"?: boolean;
3353
+ /** Filter messages by acknowledgment status */
3354
+ "filter.ack"?: "ERROR" | "PENDING" | "SERVER" | "DEVICE" | "READ" | "PLAYED";
3355
+ }, params?: RequestParams) => Promise<AxiosResponse<WAMessage[], any, {}>>;
3356
+ /**
3357
+ * @description DEPRECATED. Use "POST /contacts/check-exists" instead
3358
+ *
3359
+ * @tags 📤 Chatting
3360
+ * @name ChattingControllerDeprecatedCheckNumberStatus
3361
+ * @summary Check number status
3362
+ * @request GET:/api/checkNumberStatus
3363
+ * @deprecated
3364
+ * @secure
3365
+ */
3366
+ chattingControllerDeprecatedCheckNumberStatus: (query: {
3367
+ /**
3368
+ * The phone number to check
3369
+ * @example "1213213213"
3370
+ */
3371
+ phone: string;
3372
+ /** @default "default" */
3373
+ session: string;
3374
+ }, params?: RequestParams) => Promise<AxiosResponse<WANumberExistResult, any, {}>>;
3375
+ /**
3376
+ * No description
3377
+ *
3378
+ * @tags 📤 Chatting
3379
+ * @name ChattingControllerReply
3380
+ * @summary DEPRECATED - you can set "reply_to" field when sending text, image, etc
3381
+ * @request POST:/api/reply
3382
+ * @deprecated
3383
+ * @secure
3384
+ */
3385
+ chattingControllerReply: (data: MessageReplyRequest, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3386
+ /**
3387
+ * No description
3388
+ *
3389
+ * @tags 📤 Chatting
3390
+ * @name ChattingControllerSendLinkPreviewDeprecated
3391
+ * @request POST:/api/sendLinkPreview
3392
+ * @deprecated
3393
+ * @secure
3394
+ */
3395
+ chattingControllerSendLinkPreviewDeprecated: (data: MessageLinkPreviewRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3396
+ }
3397
+
3398
+ declare class Contacts<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3399
+ /**
3400
+ * No description
3401
+ *
3402
+ * @tags 👤 Contacts
3403
+ * @name ContactsControllerGetAll
3404
+ * @summary Get all contacts
3405
+ * @request GET:/api/contacts/all
3406
+ * @secure
3407
+ */
3408
+ contactsControllerGetAll: (query: {
3409
+ /** @default "default" */
3410
+ session: string;
3411
+ /** Sort by field */
3412
+ sortBy?: "id" | "name";
3413
+ /** Sort order - <b>desc</b>ending (Z => A, New first) or <b>asc</b>ending (A => Z, Old first) */
3414
+ sortOrder?: "desc" | "asc";
3415
+ limit?: number;
3416
+ offset?: number;
3417
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3418
+ /**
3419
+ * @description The method always return result, even if the phone number is not registered in WhatsApp. For that - use /contacts/check-exists endpoint below.
3420
+ *
3421
+ * @tags 👤 Contacts
3422
+ * @name ContactsControllerGet
3423
+ * @summary Get contact basic info
3424
+ * @request GET:/api/contacts
3425
+ * @secure
3426
+ */
3427
+ contactsControllerGet: (query: {
3428
+ /** @example "11111111111@c.us" */
3429
+ contactId: string;
3430
+ /** @default "default" */
3431
+ session: string;
3432
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3433
+ /**
3434
+ * No description
3435
+ *
3436
+ * @tags 👤 Contacts
3437
+ * @name ContactsControllerCheckExists
3438
+ * @summary Check phone number is registered in WhatsApp.
3439
+ * @request GET:/api/contacts/check-exists
3440
+ * @secure
3441
+ */
3442
+ contactsControllerCheckExists: (query: {
3443
+ /**
3444
+ * The phone number to check
3445
+ * @example "1213213213"
3446
+ */
3447
+ phone: string;
3448
+ /** @default "default" */
3449
+ session: string;
3450
+ }, params?: RequestParams) => Promise<AxiosResponse<WANumberExistResult, any, {}>>;
3451
+ /**
3452
+ * @description Returns null if you do not have permission to read their status.
3453
+ *
3454
+ * @tags 👤 Contacts
3455
+ * @name ContactsControllerGetAbout
3456
+ * @summary Gets the Contact's "about" info
3457
+ * @request GET:/api/contacts/about
3458
+ * @secure
3459
+ */
3460
+ contactsControllerGetAbout: (query: {
3461
+ /** @example "11111111111@c.us" */
3462
+ contactId: string;
3463
+ /** @default "default" */
3464
+ session: string;
3465
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3466
+ /**
3467
+ * @description If privacy settings do not allow to get the picture, the method will return null.
3468
+ *
3469
+ * @tags 👤 Contacts
3470
+ * @name ContactsControllerGetProfilePicture
3471
+ * @summary Get contact's profile picture URL
3472
+ * @request GET:/api/contacts/profile-picture
3473
+ * @secure
3474
+ */
3475
+ contactsControllerGetProfilePicture: (query: {
3476
+ /** @example "11111111111@c.us" */
3477
+ contactId: string;
3478
+ /**
3479
+ * Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error
3480
+ * @default false
3481
+ * @example false
3482
+ */
3483
+ refresh?: boolean;
3484
+ /** @default "default" */
3485
+ session: string;
3486
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3487
+ /**
3488
+ * No description
3489
+ *
3490
+ * @tags 👤 Contacts
3491
+ * @name ContactsControllerBlock
3492
+ * @summary Block contact
3493
+ * @request POST:/api/contacts/block
3494
+ * @secure
3495
+ */
3496
+ contactsControllerBlock: (data: ContactRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3497
+ /**
3498
+ * No description
3499
+ *
3500
+ * @tags 👤 Contacts
3501
+ * @name ContactsControllerUnblock
3502
+ * @summary Unblock contact
3503
+ * @request POST:/api/contacts/unblock
3504
+ * @secure
3505
+ */
3506
+ contactsControllerUnblock: (data: ContactRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3507
+ /**
3508
+ * @description Create or update contact on the phone address book. May not work if you have installed many WhatsApp apps on the same phone
3509
+ *
3510
+ * @tags 👤 Contacts
3511
+ * @name ContactsSessionControllerPut
3512
+ * @summary Create or update contact
3513
+ * @request PUT:/api/{session}/contacts/{chatId}
3514
+ * @secure
3515
+ */
3516
+ contactsSessionControllerPut: (session: any, chatId: string, data: ContactUpdateBody, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
3517
+ /**
3518
+ * No description
3519
+ *
3520
+ * @tags 👤 Contacts
3521
+ * @name LidsControllerGetAll
3522
+ * @summary Get all known lids to phone number mapping
3523
+ * @request GET:/api/{session}/lids
3524
+ * @secure
3525
+ */
3526
+ lidsControllerGetAll: (session: any, query?: {
3527
+ /** @default 100 */
3528
+ limit?: number;
3529
+ /** @default 0 */
3530
+ offset?: number;
3531
+ }, params?: RequestParams) => Promise<AxiosResponse<LidToPhoneNumber[], any, {}>>;
3532
+ /**
3533
+ * No description
3534
+ *
3535
+ * @tags 👤 Contacts
3536
+ * @name LidsControllerGetLidsCount
3537
+ * @summary Get the number of known lids
3538
+ * @request GET:/api/{session}/lids/count
3539
+ * @secure
3540
+ */
3541
+ lidsControllerGetLidsCount: (session: any, params?: RequestParams) => Promise<AxiosResponse<CountResponse, any, {}>>;
3542
+ /**
3543
+ * No description
3544
+ *
3545
+ * @tags 👤 Contacts
3546
+ * @name LidsControllerFindPnByLid
3547
+ * @summary Get phone number by lid
3548
+ * @request GET:/api/{session}/lids/{lid}
3549
+ * @secure
3550
+ */
3551
+ lidsControllerFindPnByLid: (session: any, lid: string, params?: RequestParams) => Promise<AxiosResponse<LidToPhoneNumber, any, {}>>;
3552
+ /**
3553
+ * No description
3554
+ *
3555
+ * @tags 👤 Contacts
3556
+ * @name LidsControllerFindLidByPhoneNumber
3557
+ * @summary Get lid by phone number (chat id)
3558
+ * @request GET:/api/{session}/lids/pn/{phoneNumber}
3559
+ * @secure
3560
+ */
3561
+ lidsControllerFindLidByPhoneNumber: (session: any, phoneNumber: string, params?: RequestParams) => Promise<AxiosResponse<LidToPhoneNumber, any, {}>>;
3562
+ }
3563
+
3564
+ declare class Events<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3565
+ /**
3566
+ * No description
3567
+ *
3568
+ * @tags 📅 Events
3569
+ * @name EventsControllerSendEvent
3570
+ * @summary Send an event message
3571
+ * @request POST:/api/{session}/events
3572
+ * @secure
3573
+ */
3574
+ eventsControllerSendEvent: (session: any, data: EventMessageRequest, params?: RequestParams) => Promise<AxiosResponse<WAMessage, any, {}>>;
3575
+ }
3576
+
3577
+ declare class Groups<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3578
+ /**
3579
+ * No description
3580
+ *
3581
+ * @tags 👥 Groups
3582
+ * @name GroupsControllerCreateGroup
3583
+ * @summary Create a new group.
3584
+ * @request POST:/api/{session}/groups
3585
+ * @secure
3586
+ */
3587
+ groupsControllerCreateGroup: (session: any, data: CreateGroupRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3588
+ /**
3589
+ * No description
3590
+ *
3591
+ * @tags 👥 Groups
3592
+ * @name GroupsControllerGetGroups
3593
+ * @summary Get all groups.
3594
+ * @request GET:/api/{session}/groups
3595
+ * @secure
3596
+ */
3597
+ groupsControllerGetGroups: (session: any, query?: {
3598
+ /** Sort by field */
3599
+ sortBy?: "id" | "subject";
3600
+ /** Sort order - <b>desc</b>ending (Z => A, New first) or <b>asc</b>ending (A => Z, Old first) */
3601
+ sortOrder?: "desc" | "asc";
3602
+ limit?: number;
3603
+ offset?: number;
3604
+ /** Exclude fields */
3605
+ exclude?: ("" | "participants")[];
3606
+ }, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3607
+ /**
3608
+ * No description
3609
+ *
3610
+ * @tags 👥 Groups
3611
+ * @name GroupsControllerJoinInfoGroup
3612
+ * @summary Get info about the group before joining.
3613
+ * @request GET:/api/{session}/groups/join-info
3614
+ * @secure
3615
+ */
3616
+ groupsControllerJoinInfoGroup: (session: any, query: {
3617
+ /**
3618
+ * Group code (123) or url (https://chat.whatsapp.com/123)
3619
+ * @example "https://chat.whatsapp.com/1234567890abcdef"
3620
+ */
3621
+ code: string;
3622
+ }, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3623
+ /**
3624
+ * No description
3625
+ *
3626
+ * @tags 👥 Groups
3627
+ * @name GroupsControllerJoinGroup
3628
+ * @summary Join group via code
3629
+ * @request POST:/api/{session}/groups/join
3630
+ * @secure
3631
+ */
3632
+ groupsControllerJoinGroup: (session: any, data: JoinGroupRequest, params?: RequestParams) => Promise<AxiosResponse<JoinGroupResponse, any, {}>>;
3633
+ /**
3634
+ * No description
3635
+ *
3636
+ * @tags 👥 Groups
3637
+ * @name GroupsControllerGetGroupsCount
3638
+ * @summary Get the number of groups.
3639
+ * @request GET:/api/{session}/groups/count
3640
+ * @secure
3641
+ */
3642
+ groupsControllerGetGroupsCount: (session: any, params?: RequestParams) => Promise<AxiosResponse<CountResponse, any, {}>>;
3643
+ /**
3644
+ * No description
3645
+ *
3646
+ * @tags 👥 Groups
3647
+ * @name GroupsControllerRefreshGroups
3648
+ * @summary Refresh groups from the server.
3649
+ * @request POST:/api/{session}/groups/refresh
3650
+ * @secure
3651
+ */
3652
+ groupsControllerRefreshGroups: (session: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3653
+ /**
3654
+ * No description
3655
+ *
3656
+ * @tags 👥 Groups
3657
+ * @name GroupsControllerGetGroup
3658
+ * @summary Get the group.
3659
+ * @request GET:/api/{session}/groups/{id}
3660
+ * @secure
3661
+ */
3662
+ groupsControllerGetGroup: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3663
+ /**
3664
+ * No description
3665
+ *
3666
+ * @tags 👥 Groups
3667
+ * @name GroupsControllerDeleteGroup
3668
+ * @summary Delete the group.
3669
+ * @request DELETE:/api/{session}/groups/{id}
3670
+ * @secure
3671
+ */
3672
+ groupsControllerDeleteGroup: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3673
+ /**
3674
+ * No description
3675
+ *
3676
+ * @tags 👥 Groups
3677
+ * @name GroupsControllerLeaveGroup
3678
+ * @summary Leave the group.
3679
+ * @request POST:/api/{session}/groups/{id}/leave
3680
+ * @secure
3681
+ */
3682
+ groupsControllerLeaveGroup: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3683
+ /**
3684
+ * No description
3685
+ *
3686
+ * @tags 👥 Groups
3687
+ * @name GroupsControllerGetChatPicture
3688
+ * @summary Get group picture
3689
+ * @request GET:/api/{session}/groups/{id}/picture
3690
+ * @secure
3691
+ */
3692
+ groupsControllerGetChatPicture: (session: any, id: string, query?: {
3693
+ /**
3694
+ * Refresh the picture from the server (24h cache by default). Do not refresh if not needed, you can get rate limit error
3695
+ * @default false
3696
+ * @example false
3697
+ */
3698
+ refresh?: boolean;
3699
+ }, params?: RequestParams) => Promise<AxiosResponse<ChatPictureResponse, any, {}>>;
3700
+ /**
3701
+ * No description
3702
+ *
3703
+ * @tags 👥 Groups
3704
+ * @name GroupsControllerSetPicture
3705
+ * @summary Set group picture
3706
+ * @request PUT:/api/{session}/groups/{id}/picture
3707
+ * @secure
3708
+ */
3709
+ groupsControllerSetPicture: (id: string, session: any, data: ProfilePictureRequest, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
3710
+ /**
3711
+ * No description
3712
+ *
3713
+ * @tags 👥 Groups
3714
+ * @name GroupsControllerDeletePicture
3715
+ * @summary Delete group picture
3716
+ * @request DELETE:/api/{session}/groups/{id}/picture
3717
+ * @secure
3718
+ */
3719
+ groupsControllerDeletePicture: (id: string, session: any, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
3720
+ /**
3721
+ * @description Returns "true" if the subject was properly updated. This can return "false" if the user does not have the necessary permissions.
3722
+ *
3723
+ * @tags 👥 Groups
3724
+ * @name GroupsControllerSetDescription
3725
+ * @summary Updates the group description.
3726
+ * @request PUT:/api/{session}/groups/{id}/description
3727
+ * @secure
3728
+ */
3729
+ groupsControllerSetDescription: (session: any, id: string, data: DescriptionRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3730
+ /**
3731
+ * @description Returns "true" if the subject was properly updated. This can return "false" if the user does not have the necessary permissions.
3732
+ *
3733
+ * @tags 👥 Groups
3734
+ * @name GroupsControllerSetSubject
3735
+ * @summary Updates the group subject
3736
+ * @request PUT:/api/{session}/groups/{id}/subject
3737
+ * @secure
3738
+ */
3739
+ groupsControllerSetSubject: (session: any, id: string, data: SubjectRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3740
+ /**
3741
+ * @description You can allow only admins to edit group info (title, description, photo).
3742
+ *
3743
+ * @tags 👥 Groups
3744
+ * @name GroupsControllerSetInfoAdminOnly
3745
+ * @summary Updates the group "info admin only" settings.
3746
+ * @request PUT:/api/{session}/groups/{id}/settings/security/info-admin-only
3747
+ * @secure
3748
+ */
3749
+ groupsControllerSetInfoAdminOnly: (session: any, id: string, data: SettingsSecurityChangeInfo, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3750
+ /**
3751
+ * @description You can allow only admins to edit group info (title, description, photo).
3752
+ *
3753
+ * @tags 👥 Groups
3754
+ * @name GroupsControllerGetInfoAdminOnly
3755
+ * @summary Get the group's 'info admin only' settings.
3756
+ * @request GET:/api/{session}/groups/{id}/settings/security/info-admin-only
3757
+ * @secure
3758
+ */
3759
+ groupsControllerGetInfoAdminOnly: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<SettingsSecurityChangeInfo, any, {}>>;
3760
+ /**
3761
+ * @description Updates the group settings to only allow admins to send messages.
3762
+ *
3763
+ * @tags 👥 Groups
3764
+ * @name GroupsControllerSetMessagesAdminOnly
3765
+ * @summary Update settings - who can send messages
3766
+ * @request PUT:/api/{session}/groups/{id}/settings/security/messages-admin-only
3767
+ * @secure
3768
+ */
3769
+ groupsControllerSetMessagesAdminOnly: (session: any, id: string, data: SettingsSecurityChangeInfo, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3770
+ /**
3771
+ * @description The group settings to only allow admins to send messages.
3772
+ *
3773
+ * @tags 👥 Groups
3774
+ * @name GroupsControllerGetMessagesAdminOnly
3775
+ * @summary Get settings - who can send messages
3776
+ * @request GET:/api/{session}/groups/{id}/settings/security/messages-admin-only
3777
+ * @secure
3778
+ */
3779
+ groupsControllerGetMessagesAdminOnly: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<SettingsSecurityChangeInfo, any, {}>>;
3780
+ /**
3781
+ * No description
3782
+ *
3783
+ * @tags 👥 Groups
3784
+ * @name GroupsControllerGetInviteCode
3785
+ * @summary Gets the invite code for the group.
3786
+ * @request GET:/api/{session}/groups/{id}/invite-code
3787
+ * @secure
3788
+ */
3789
+ groupsControllerGetInviteCode: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<string, any, {}>>;
3790
+ /**
3791
+ * No description
3792
+ *
3793
+ * @tags 👥 Groups
3794
+ * @name GroupsControllerRevokeInviteCode
3795
+ * @summary Invalidates the current group invite code and generates a new one.
3796
+ * @request POST:/api/{session}/groups/{id}/invite-code/revoke
3797
+ * @secure
3798
+ */
3799
+ groupsControllerRevokeInviteCode: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<string, any, {}>>;
3800
+ /**
3801
+ * No description
3802
+ *
3803
+ * @tags 👥 Groups
3804
+ * @name GroupsControllerGetParticipants
3805
+ * @summary Get participants
3806
+ * @request GET:/api/{session}/groups/{id}/participants
3807
+ * @secure
3808
+ */
3809
+ groupsControllerGetParticipants: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3810
+ /**
3811
+ * No description
3812
+ *
3813
+ * @tags 👥 Groups
3814
+ * @name GroupsControllerGetGroupParticipants
3815
+ * @summary Get group participants.
3816
+ * @request GET:/api/{session}/groups/{id}/participants/v2
3817
+ * @secure
3818
+ */
3819
+ groupsControllerGetGroupParticipants: (session: any, id: string, params?: RequestParams) => Promise<AxiosResponse<GroupParticipant[], any, {}>>;
3820
+ /**
3821
+ * No description
3822
+ *
3823
+ * @tags 👥 Groups
3824
+ * @name GroupsControllerAddParticipants
3825
+ * @summary Add participants
3826
+ * @request POST:/api/{session}/groups/{id}/participants/add
3827
+ * @secure
3828
+ */
3829
+ groupsControllerAddParticipants: (session: any, id: string, data: ParticipantsRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3830
+ /**
3831
+ * No description
3832
+ *
3833
+ * @tags 👥 Groups
3834
+ * @name GroupsControllerRemoveParticipants
3835
+ * @summary Remove participants
3836
+ * @request POST:/api/{session}/groups/{id}/participants/remove
3837
+ * @secure
3838
+ */
3839
+ groupsControllerRemoveParticipants: (session: any, id: string, data: ParticipantsRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3840
+ /**
3841
+ * No description
3842
+ *
3843
+ * @tags 👥 Groups
3844
+ * @name GroupsControllerPromoteToAdmin
3845
+ * @summary Promote participants to admin users.
3846
+ * @request POST:/api/{session}/groups/{id}/admin/promote
3847
+ * @secure
3848
+ */
3849
+ groupsControllerPromoteToAdmin: (session: any, id: string, data: ParticipantsRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3850
+ /**
3851
+ * No description
3852
+ *
3853
+ * @tags 👥 Groups
3854
+ * @name GroupsControllerDemoteToAdmin
3855
+ * @summary Demotes participants to regular users.
3856
+ * @request POST:/api/{session}/groups/{id}/admin/demote
3857
+ * @secure
3858
+ */
3859
+ groupsControllerDemoteToAdmin: (session: any, id: string, data: ParticipantsRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3860
+ }
3861
+
3862
+ declare class Labels<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3863
+ /**
3864
+ * No description
3865
+ *
3866
+ * @tags 🏷️ Labels
3867
+ * @name LabelsControllerGetAll
3868
+ * @summary Get all labels
3869
+ * @request GET:/api/{session}/labels
3870
+ * @secure
3871
+ */
3872
+ labelsControllerGetAll: (session: any, params?: RequestParams) => Promise<AxiosResponse<Label[], any, {}>>;
3873
+ /**
3874
+ * No description
3875
+ *
3876
+ * @tags 🏷️ Labels
3877
+ * @name LabelsControllerCreate
3878
+ * @summary Create a new label
3879
+ * @request POST:/api/{session}/labels
3880
+ * @secure
3881
+ */
3882
+ labelsControllerCreate: (session: any, data: LabelBody, params?: RequestParams) => Promise<AxiosResponse<Label, any, {}>>;
3883
+ /**
3884
+ * No description
3885
+ *
3886
+ * @tags 🏷️ Labels
3887
+ * @name LabelsControllerUpdate
3888
+ * @summary Update a label
3889
+ * @request PUT:/api/{session}/labels/{labelId}
3890
+ * @secure
3891
+ */
3892
+ labelsControllerUpdate: (session: any, labelId: string, data: LabelBody, params?: RequestParams) => Promise<AxiosResponse<Label, any, {}>>;
3893
+ /**
3894
+ * No description
3895
+ *
3896
+ * @tags 🏷️ Labels
3897
+ * @name LabelsControllerDelete
3898
+ * @summary Delete a label
3899
+ * @request DELETE:/api/{session}/labels/{labelId}
3900
+ * @secure
3901
+ */
3902
+ labelsControllerDelete: (session: any, labelId: string, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
3903
+ /**
3904
+ * No description
3905
+ *
3906
+ * @tags 🏷️ Labels
3907
+ * @name LabelsControllerGetChatLabels
3908
+ * @summary Get labels for the chat
3909
+ * @request GET:/api/{session}/labels/chats/{chatId}
3910
+ * @secure
3911
+ */
3912
+ labelsControllerGetChatLabels: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<Label[], any, {}>>;
3913
+ /**
3914
+ * No description
3915
+ *
3916
+ * @tags 🏷️ Labels
3917
+ * @name LabelsControllerPutChatLabels
3918
+ * @summary Save labels for the chat
3919
+ * @request PUT:/api/{session}/labels/chats/{chatId}
3920
+ * @secure
3921
+ */
3922
+ labelsControllerPutChatLabels: (session: any, chatId: string, data: SetLabelsRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3923
+ /**
3924
+ * No description
3925
+ *
3926
+ * @tags 🏷️ Labels
3927
+ * @name LabelsControllerGetChatsByLabel
3928
+ * @summary Get chats by label
3929
+ * @request GET:/api/{session}/labels/{labelId}/chats
3930
+ * @secure
3931
+ */
3932
+ labelsControllerGetChatsByLabel: (session: any, labelId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
3933
+ }
3934
+
3935
+ declare class Media<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3936
+ /**
3937
+ * No description
3938
+ *
3939
+ * @tags 🖼️ Media
3940
+ * @name MediaControllerConvertVoice
3941
+ * @summary Convert voice to WhatsApp format (opus)
3942
+ * @request POST:/api/{session}/media/convert/voice
3943
+ * @secure
3944
+ */
3945
+ mediaControllerConvertVoice: (session: any, data: VoiceFileDTO, params?: RequestParams) => Promise<AxiosResponse<File, any, {}>>;
3946
+ /**
3947
+ * No description
3948
+ *
3949
+ * @tags 🖼️ Media
3950
+ * @name MediaControllerConvertVideo
3951
+ * @summary Convert video to WhatsApp format (mp4)
3952
+ * @request POST:/api/{session}/media/convert/video
3953
+ * @secure
3954
+ */
3955
+ mediaControllerConvertVideo: (session: any, data: VideoFileDTO, params?: RequestParams) => Promise<AxiosResponse<File, any, {}>>;
3956
+ }
3957
+
3958
+ declare class Observability<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
3959
+ /**
3960
+ * @description Check if the server is alive and responding to requests.
3961
+ *
3962
+ * @tags 🔍 Observability
3963
+ * @name PingControllerPing
3964
+ * @summary Ping the server
3965
+ * @request GET:/ping
3966
+ */
3967
+ pingControllerPing: (params?: RequestParams) => Promise<AxiosResponse<PingResponse, any, {}>>;
3968
+ /**
3969
+ * @description Perform all health checks and return the server's health status.
3970
+ *
3971
+ * @tags 🔍 Observability
3972
+ * @name HealthControllerCheck
3973
+ * @summary Check the health of the server
3974
+ * @request GET:/health
3975
+ * @secure
3976
+ */
3977
+ healthControllerCheck: (params?: RequestParams) => Promise<AxiosResponse<{
3978
+ /** @example "ok" */
3979
+ status?: string;
3980
+ /** @example {"database":{"status":"up"}} */
3981
+ info?: Record<string, {
3982
+ status: string;
3983
+ [key: string]: any;
3984
+ }>;
3985
+ /** @example {} */
3986
+ error?: Record<string, {
3987
+ status: string;
3988
+ [key: string]: any;
3989
+ }>;
3990
+ /** @example {"database":{"status":"up"}} */
3991
+ details?: Record<string, {
3992
+ status: string;
3993
+ [key: string]: any;
3994
+ }>;
3995
+ }, any, {}>>;
3996
+ /**
3997
+ * No description
3998
+ *
3999
+ * @tags 🔍 Observability
4000
+ * @name ServerControllerGet
4001
+ * @summary Get the version of the server
4002
+ * @request GET:/api/server/version
4003
+ * @secure
4004
+ */
4005
+ serverControllerGet: (params?: RequestParams) => Promise<AxiosResponse<WAHAEnvironment, any, {}>>;
4006
+ /**
4007
+ * No description
4008
+ *
4009
+ * @tags 🔍 Observability
4010
+ * @name ServerControllerEnvironment
4011
+ * @summary Get the server environment
4012
+ * @request GET:/api/server/environment
4013
+ * @secure
4014
+ */
4015
+ serverControllerEnvironment: (query?: {
4016
+ /**
4017
+ * Include all environment variables
4018
+ * @default false
4019
+ * @example false
4020
+ */
4021
+ all?: boolean;
4022
+ }, params?: RequestParams) => Promise<AxiosResponse<object, any, {}>>;
4023
+ /**
4024
+ * No description
4025
+ *
4026
+ * @tags 🔍 Observability
4027
+ * @name ServerControllerStatus
4028
+ * @summary Get the server status
4029
+ * @request GET:/api/server/status
4030
+ * @secure
4031
+ */
4032
+ serverControllerStatus: (params?: RequestParams) => Promise<AxiosResponse<ServerStatusResponse, any, {}>>;
4033
+ /**
4034
+ * @description If you're using docker, after calling this endpoint Docker will start a new container, so you can use this endpoint to restart the server
4035
+ *
4036
+ * @tags 🔍 Observability
4037
+ * @name ServerControllerStop
4038
+ * @summary Stop (and restart) the server
4039
+ * @request POST:/api/server/stop
4040
+ * @secure
4041
+ */
4042
+ serverControllerStop: (data: StopRequest, params?: RequestParams) => Promise<AxiosResponse<StopResponse, any, {}>>;
4043
+ /**
4044
+ * @description Uses the Node.js inspector profiler to capture a .cpuprofile
4045
+ *
4046
+ * @tags 🔍 Observability
4047
+ * @name ServerDebugControllerCpuProfile
4048
+ * @summary Collect and return a CPU profile for the current nodejs process
4049
+ * @request GET:/api/server/debug/cpu
4050
+ * @secure
4051
+ */
4052
+ serverDebugControllerCpuProfile: (query?: {
4053
+ /**
4054
+ * How many seconds to sample CPU
4055
+ * @min 1
4056
+ * @default 30
4057
+ * @example 30
4058
+ */
4059
+ seconds?: number;
4060
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4061
+ /**
4062
+ * @description Return a heapsnapshot of the server's memory
4063
+ *
4064
+ * @tags 🔍 Observability
4065
+ * @name ServerDebugControllerHeapsnapshot
4066
+ * @summary Return a heapsnapshot for the current nodejs process
4067
+ * @request GET:/api/server/debug/heapsnapshot
4068
+ * @secure
4069
+ */
4070
+ serverDebugControllerHeapsnapshot: (params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4071
+ /**
4072
+ * @description Uses https://pptr.dev/api/puppeteer.tracing
4073
+ *
4074
+ * @tags 🔍 Observability
4075
+ * @name ServerDebugControllerBrowserTrace
4076
+ * @summary Collect and get a trace.json for Chrome DevTools
4077
+ * @request GET:/api/server/debug/browser/trace/{session}
4078
+ * @secure
4079
+ */
4080
+ serverDebugControllerBrowserTrace: (session: any, query: {
4081
+ /**
4082
+ * How many seconds to trace
4083
+ * @default 30
4084
+ * @example 30
4085
+ */
4086
+ seconds: number;
4087
+ /**
4088
+ * Categories to trace (all by default)
4089
+ * @default ["*"]
4090
+ * @example ["*"]
4091
+ */
4092
+ categories: string[];
4093
+ }, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4094
+ /**
4095
+ * @description Use 'GET /api/server/version' instead
4096
+ *
4097
+ * @tags 🔍 Observability
4098
+ * @name VersionControllerGet
4099
+ * @summary Get the server version
4100
+ * @request GET:/api/version
4101
+ * @deprecated
4102
+ * @secure
4103
+ */
4104
+ versionControllerGet: (params?: RequestParams) => Promise<AxiosResponse<WAHAEnvironment, any, {}>>;
4105
+ }
4106
+
4107
+ declare class Presence<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
4108
+ /**
4109
+ * No description
4110
+ *
4111
+ * @tags ✅ Presence
4112
+ * @name PresenceControllerSetPresence
4113
+ * @summary Set session presence
4114
+ * @request POST:/api/{session}/presence
4115
+ * @secure
4116
+ */
4117
+ presenceControllerSetPresence: (session: any, data: WAHASessionPresence, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4118
+ /**
4119
+ * No description
4120
+ *
4121
+ * @tags ✅ Presence
4122
+ * @name PresenceControllerGetPresenceAll
4123
+ * @summary Get all subscribed presence information.
4124
+ * @request GET:/api/{session}/presence
4125
+ * @secure
4126
+ */
4127
+ presenceControllerGetPresenceAll: (session: any, params?: RequestParams) => Promise<AxiosResponse<WAHAChatPresences[], any, {}>>;
4128
+ /**
4129
+ * No description
4130
+ *
4131
+ * @tags ✅ Presence
4132
+ * @name PresenceControllerGetPresence
4133
+ * @summary Get the presence for the chat id. If it hasn't been subscribed - it also subscribes to it.
4134
+ * @request GET:/api/{session}/presence/{chatId}
4135
+ * @secure
4136
+ */
4137
+ presenceControllerGetPresence: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<WAHAChatPresences, any, {}>>;
4138
+ /**
4139
+ * No description
4140
+ *
4141
+ * @tags ✅ Presence
4142
+ * @name PresenceControllerSubscribe
4143
+ * @summary Subscribe to presence events for the chat.
4144
+ * @request POST:/api/{session}/presence/{chatId}/subscribe
4145
+ * @secure
4146
+ */
4147
+ presenceControllerSubscribe: (session: any, chatId: string, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4148
+ }
4149
+
4150
+ declare class Profile<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
4151
+ /**
4152
+ * No description
4153
+ *
4154
+ * @tags 🆔 Profile
4155
+ * @name ProfileControllerGetMyProfile
4156
+ * @summary Get my profile
4157
+ * @request GET:/api/{session}/profile
4158
+ * @secure
4159
+ */
4160
+ profileControllerGetMyProfile: (session: any, params?: RequestParams) => Promise<AxiosResponse<MyProfile, any, {}>>;
4161
+ /**
4162
+ * No description
4163
+ *
4164
+ * @tags 🆔 Profile
4165
+ * @name ProfileControllerSetProfileName
4166
+ * @summary Set my profile name
4167
+ * @request PUT:/api/{session}/profile/name
4168
+ * @secure
4169
+ */
4170
+ profileControllerSetProfileName: (session: any, data: ProfileNameRequest, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
4171
+ /**
4172
+ * No description
4173
+ *
4174
+ * @tags 🆔 Profile
4175
+ * @name ProfileControllerSetProfileStatus
4176
+ * @summary Set profile status (About)
4177
+ * @request PUT:/api/{session}/profile/status
4178
+ * @secure
4179
+ */
4180
+ profileControllerSetProfileStatus: (session: any, data: ProfileStatusRequest, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
4181
+ /**
4182
+ * No description
4183
+ *
4184
+ * @tags 🆔 Profile
4185
+ * @name ProfileControllerSetProfilePicture
4186
+ * @summary Set profile picture
4187
+ * @request PUT:/api/{session}/profile/picture
4188
+ * @secure
4189
+ */
4190
+ profileControllerSetProfilePicture: (session: any, data: ProfilePictureRequest, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
4191
+ /**
4192
+ * No description
4193
+ *
4194
+ * @tags 🆔 Profile
4195
+ * @name ProfileControllerDeleteProfilePicture
4196
+ * @summary Delete profile picture
4197
+ * @request DELETE:/api/{session}/profile/picture
4198
+ * @secure
4199
+ */
4200
+ profileControllerDeleteProfilePicture: (session: any, params?: RequestParams) => Promise<AxiosResponse<Result, any, {}>>;
4201
+ }
4202
+
4203
+ declare class Screenshot<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
4204
+ /**
4205
+ * No description
4206
+ *
4207
+ * @tags 🖼️ Screenshot
4208
+ * @name ScreenshotControllerScreenshot
4209
+ * @request GET:/api/screenshot
4210
+ * @secure
4211
+ */
4212
+ screenshotControllerScreenshot: (query: {
4213
+ /** @default "default" */
4214
+ session: string;
4215
+ }, params?: RequestParams) => Promise<AxiosResponse<File, any, {}>>;
4216
+ }
4217
+
4218
+ declare class Sessions<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
4219
+ /**
4220
+ * No description
4221
+ *
4222
+ * @tags 🖥️ Sessions
4223
+ * @name SessionsControllerList
4224
+ * @summary List all sessions
4225
+ * @request GET:/api/sessions
4226
+ * @secure
4227
+ */
4228
+ sessionsControllerList: (query?: {
4229
+ /** Expand additional session details. */
4230
+ expand?: "apps"[];
4231
+ /**
4232
+ * Return all sessions, including those that are in the STOPPED state.
4233
+ * @example false
4234
+ */
4235
+ all?: boolean;
4236
+ }, params?: RequestParams) => Promise<AxiosResponse<SessionInfo[], any, {}>>;
4237
+ /**
4238
+ * @description Create session a new session (and start it at the same time if required).
4239
+ *
4240
+ * @tags 🖥️ Sessions
4241
+ * @name SessionsControllerCreate
4242
+ * @summary Create a session
4243
+ * @request POST:/api/sessions
4244
+ * @secure
4245
+ */
4246
+ sessionsControllerCreate: (data: SessionCreateRequest, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4247
+ /**
4248
+ * No description
4249
+ *
4250
+ * @tags 🖥️ Sessions
4251
+ * @name SessionsControllerGet
4252
+ * @summary Get session information
4253
+ * @request GET:/api/sessions/{session}
4254
+ * @secure
4255
+ */
4256
+ sessionsControllerGet: (session: any, query?: {
4257
+ /** Expand additional session details. */
4258
+ expand?: "apps"[];
4259
+ }, params?: RequestParams) => Promise<AxiosResponse<SessionInfo, any, {}>>;
4260
+ /**
4261
+ * No description
4262
+ *
4263
+ * @tags 🖥️ Sessions
4264
+ * @name SessionsControllerUpdate
4265
+ * @summary Update a session
4266
+ * @request PUT:/api/sessions/{session}
4267
+ * @secure
4268
+ */
4269
+ sessionsControllerUpdate: (session: any, data: SessionUpdateRequest, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4270
+ /**
4271
+ * @description Delete the session with the given name. Stop and logout as well. Idempotent operation.
4272
+ *
4273
+ * @tags 🖥️ Sessions
4274
+ * @name SessionsControllerDelete
4275
+ * @summary Delete the session
4276
+ * @request DELETE:/api/sessions/{session}
4277
+ * @secure
4278
+ */
4279
+ sessionsControllerDelete: (session: any, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4280
+ /**
4281
+ * No description
4282
+ *
4283
+ * @tags 🖥️ Sessions
4284
+ * @name SessionsControllerGetMe
4285
+ * @summary Get information about the authenticated account
4286
+ * @request GET:/api/sessions/{session}/me
4287
+ * @secure
4288
+ */
4289
+ sessionsControllerGetMe: (session: any, params?: RequestParams) => Promise<AxiosResponse<MeInfo, any, {}>>;
4290
+ /**
4291
+ * @description Start the session with the given name. The session must exist. Idempotent operation.
4292
+ *
4293
+ * @tags 🖥️ Sessions
4294
+ * @name SessionsControllerStart
4295
+ * @summary Start the session
4296
+ * @request POST:/api/sessions/{session}/start
4297
+ * @secure
4298
+ */
4299
+ sessionsControllerStart: (session: any, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4300
+ /**
4301
+ * @description Stop the session with the given name. Idempotent operation.
4302
+ *
4303
+ * @tags 🖥️ Sessions
4304
+ * @name SessionsControllerStop
4305
+ * @summary Stop the session
4306
+ * @request POST:/api/sessions/{session}/stop
4307
+ * @secure
4308
+ */
4309
+ sessionsControllerStop: (session: any, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4310
+ /**
4311
+ * @description Logout the session, restart a session if it was not STOPPED
4312
+ *
4313
+ * @tags 🖥️ Sessions
4314
+ * @name SessionsControllerLogout
4315
+ * @summary Logout from the session
4316
+ * @request POST:/api/sessions/{session}/logout
4317
+ * @secure
4318
+ */
4319
+ sessionsControllerLogout: (session: any, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4320
+ /**
4321
+ * @description Restart the session with the given name.
4322
+ *
4323
+ * @tags 🖥️ Sessions
4324
+ * @name SessionsControllerRestart
4325
+ * @summary Restart the session
4326
+ * @request POST:/api/sessions/{session}/restart
4327
+ * @secure
4328
+ */
4329
+ sessionsControllerRestart: (session: any, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4330
+ /**
4331
+ * @description Create session (if not exists) or update a config (if exists) and start it.
4332
+ *
4333
+ * @tags 🖥️ Sessions
4334
+ * @name SessionsControllerDepracatedStart
4335
+ * @summary Upsert and Start session
4336
+ * @request POST:/api/sessions/start
4337
+ * @deprecated
4338
+ * @secure
4339
+ */
4340
+ sessionsControllerDepracatedStart: (data: SessionStartDeprecatedRequest, params?: RequestParams) => Promise<AxiosResponse<SessionDTO, any, {}>>;
4341
+ /**
4342
+ * @description Stop session and Logout by default.
4343
+ *
4344
+ * @tags 🖥️ Sessions
4345
+ * @name SessionsControllerDeprecatedStop
4346
+ * @summary Stop (and Logout if asked) session
4347
+ * @request POST:/api/sessions/stop
4348
+ * @deprecated
4349
+ * @secure
4350
+ */
4351
+ sessionsControllerDeprecatedStop: (data: SessionStopDeprecatedRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4352
+ /**
4353
+ * @description Stop, Logout and Delete session.
4354
+ *
4355
+ * @tags 🖥️ Sessions
4356
+ * @name SessionsControllerDeprecatedLogout
4357
+ * @summary Logout and Delete session.
4358
+ * @request POST:/api/sessions/logout
4359
+ * @deprecated
4360
+ * @secure
4361
+ */
4362
+ sessionsControllerDeprecatedLogout: (data: SessionLogoutDeprecatedRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4363
+ }
4364
+
4365
+ declare class Status<SecurityDataType = unknown> extends HttpClient<SecurityDataType> {
4366
+ /**
4367
+ * No description
4368
+ *
4369
+ * @tags 🟢 Status
4370
+ * @name StatusControllerSendTextStatus
4371
+ * @summary Send text status
4372
+ * @request POST:/api/{session}/status/text
4373
+ * @secure
4374
+ */
4375
+ statusControllerSendTextStatus: (session: any, data: TextStatus, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4376
+ /**
4377
+ * No description
4378
+ *
4379
+ * @tags 🟢 Status
4380
+ * @name StatusControllerSendImageStatus
4381
+ * @summary Send image status
4382
+ * @request POST:/api/{session}/status/image
4383
+ * @secure
4384
+ */
4385
+ statusControllerSendImageStatus: (session: any, data: ImageStatus, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4386
+ /**
4387
+ * No description
4388
+ *
4389
+ * @tags 🟢 Status
4390
+ * @name StatusControllerSendVoiceStatus
4391
+ * @summary Send voice status
4392
+ * @request POST:/api/{session}/status/voice
4393
+ * @secure
4394
+ */
4395
+ statusControllerSendVoiceStatus: (session: any, data: VoiceStatus, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4396
+ /**
4397
+ * No description
4398
+ *
4399
+ * @tags 🟢 Status
4400
+ * @name StatusControllerSendVideoStatus
4401
+ * @summary Send video status
4402
+ * @request POST:/api/{session}/status/video
4403
+ * @secure
4404
+ */
4405
+ statusControllerSendVideoStatus: (session: any, data: VideoStatus, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4406
+ /**
4407
+ * No description
4408
+ *
4409
+ * @tags 🟢 Status
4410
+ * @name StatusControllerDeleteStatus
4411
+ * @summary DELETE sent status
4412
+ * @request POST:/api/{session}/status/delete
4413
+ * @secure
4414
+ */
4415
+ statusControllerDeleteStatus: (session: any, data: DeleteStatusRequest, params?: RequestParams) => Promise<AxiosResponse<void, any, {}>>;
4416
+ /**
4417
+ * No description
4418
+ *
4419
+ * @tags 🟢 Status
4420
+ * @name StatusControllerGetNewMessageId
4421
+ * @summary Generate message ID you can use to batch contacts
4422
+ * @request GET:/api/{session}/status/new-message-id
4423
+ * @secure
4424
+ */
4425
+ statusControllerGetNewMessageId: (session: any, params?: RequestParams) => Promise<AxiosResponse<NewMessageIDResponse, any, {}>>;
4426
+ }
4427
+
4428
+ declare class WahaClient {
4429
+ apps: Apps;
4430
+ auth: Auth;
4431
+ calls: Calls;
4432
+ channels: Channels;
4433
+ chats: Chats;
4434
+ chatting: Chatting;
4435
+ contacts: Contacts;
4436
+ events: Events;
4437
+ groups: Groups;
4438
+ labels: Labels;
4439
+ media: Media;
4440
+ observability: Observability;
4441
+ presence: Presence;
4442
+ profile: Profile;
4443
+ screenshot: Screenshot;
4444
+ sessions: Sessions;
4445
+ status: Status;
4446
+ constructor(baseUrl: string, token?: string);
4447
+ constructor(config: ApiConfig);
4448
+ }
4449
+
4450
+ export { Apps, Auth, Calls, Channels, Chats, Chatting, Contacts, Events, Groups, HttpClient, Labels, Media, Observability, Presence, Profile, Screenshot, Sessions, Status, WahaClient };
4451
+ export type { App, Base64File, BinaryFile, Button, CallData, CallsAppChannelConfig, CallsAppConfig, Channel, ChannelCategory, ChannelCountry, ChannelListResult, ChannelMessage, ChannelPagination, ChannelPublicInfo, ChannelSearchByText, ChannelSearchByView, ChannelView, ChatArchiveEvent, ChatPictureResponse, ChatRequest, ChatSummary, ChatWootAppConfig, ChatWootCommandsConfig, ChatWootConversationsConfig, Contact, ContactRequest, ContactUpdateBody, CountResponse, CreateChannelRequest, CreateGroupRequest, CustomHeader, DeleteStatusRequest, DescriptionRequest, EditMessageRequest, EnginePayload, EventLocation, EventMessage, EventMessageRequest, EventResponse, EventResponsePayload, FileContent, FileURL, GroupId, GroupInfo, GroupParticipant, GroupV2JoinEvent, GroupV2LeaveEvent, GroupV2ParticipantsEvent, GroupV2UpdateEvent, HmacConfiguration, IgnoreConfig, ImageStatus, JoinGroupRequest, JoinGroupResponse, Label, LabelBody, LabelChatAssociation, LabelID, LidToPhoneNumber, LinkPreviewData, MeInfo, MessageButtonReply, MessageContactVcardRequest, MessageDestination, MessageFileRequest, MessageForwardRequest, MessageImageRequest, MessageLinkCustomPreviewRequest, MessageLinkPreviewRequest, MessageLocationRequest, MessagePoll, MessagePollRequest, MessagePollVoteRequest, MessageReactionRequest, MessageReplyRequest, MessageStarRequest, MessageTextRequest, MessageVideoRequest, MessageVoiceRequest, MyProfile, NewMessageIDResponse, NowebConfig, NowebStoreConfig, OverviewBodyRequest, OverviewFilter, OverviewPaginationParams, Participant, ParticipantsRequest, PinMessageRequest, PingResponse, PollVote, PollVotePayload, ProfileNameRequest, ProfilePictureRequest, ProfileStatusRequest, ProxyConfig, QRCodeValue, ReadChatMessagesResponse, RejectCallRequest, RemoteFile, ReplyToMessage, RequestCodeRequest, Result, RetriesConfiguration, Row, S3MediaData, Section, SendButtonsRequest, SendListMessage, SendListRequest, SendSeenRequest, ServerStatusResponse, SessionConfig, SessionCreateRequest, SessionDTO, SessionInfo, SessionLogoutDeprecatedRequest, SessionStartDeprecatedRequest, SessionStatusPoint, SessionStopDeprecatedRequest, SessionUpdateRequest, SetLabelsRequest, SettingsSecurityChangeInfo, StopRequest, StopResponse, SubjectRequest, TextStatus, VCardContact, VideoBinaryFile, VideoFileDTO, VideoRemoteFile, VideoStatus, VoiceBinaryFile, VoiceFileDTO, VoiceRemoteFile, VoiceStatus, WAHAChatPresences, WAHAEnvironment, WAHAPresenceData, WAHASessionPresence, WAHAWebhookCallAccepted, WAHAWebhookCallReceived, WAHAWebhookCallRejected, WAHAWebhookChatArchive, WAHAWebhookEngineEvent, WAHAWebhookEventResponse, WAHAWebhookEventResponseFailed, WAHAWebhookGroupJoin, WAHAWebhookGroupLeave, WAHAWebhookLabelChatAdded, WAHAWebhookLabelChatDeleted, WAHAWebhookLabelDeleted, WAHAWebhookLabelUpsert, WAHAWebhookMessage, WAHAWebhookMessageAck, WAHAWebhookMessageAny, WAHAWebhookMessageEdited, WAHAWebhookMessageReaction, WAHAWebhookMessageRevoked, WAHAWebhookPollVote, WAHAWebhookPollVoteFailed, WAHAWebhookPresenceUpdate, WAHAWebhookSessionStatus, WAHAWebhookStateChange, WALocation, WAMedia, WAMessage, WAMessageAckBody, WAMessageEditedBody, WAMessageReaction, WAMessageRevokedBody, WANumberExistResult, WAReaction, WASessionStatusBody, WebhookConfig, WebhookGroupV2Join, WebhookGroupV2Leave, WebhookGroupV2Participants, WebhookGroupV2Update, WebjsConfig, WorkerInfo };