@alannxd/baileys 6.0.1 → 6.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/WAProto/fix-import.js +29 -0
  2. package/WAProto/index.js +65432 -137443
  3. package/lib/Defaults/baileys-version.json +1 -1
  4. package/lib/Defaults/index.d.ts +53 -0
  5. package/lib/Defaults/index.js +6 -6
  6. package/lib/Signal/Group/ciphertext-message.d.ts +9 -0
  7. package/lib/Signal/Group/group-session-builder.d.ts +14 -0
  8. package/lib/Signal/Group/group_cipher.d.ts +17 -0
  9. package/lib/Signal/Group/index.d.ts +11 -0
  10. package/lib/Signal/Group/keyhelper.d.ts +10 -0
  11. package/lib/Signal/Group/queue-job.d.ts +1 -0
  12. package/lib/Signal/Group/sender-chain-key.d.ts +13 -0
  13. package/lib/Signal/Group/sender-key-distribution-message.d.ts +16 -0
  14. package/lib/Signal/Group/sender-key-message.d.ts +18 -0
  15. package/lib/Signal/Group/sender-key-name.d.ts +17 -0
  16. package/lib/Signal/Group/sender-key-record.d.ts +30 -0
  17. package/lib/Signal/Group/sender-key-state.d.ts +38 -0
  18. package/lib/Signal/Group/sender-message-key.d.ts +11 -0
  19. package/lib/Signal/libsignal.d.ts +3 -0
  20. package/lib/Socket/Client/abstract-socket-client.d.ts +17 -0
  21. package/lib/Socket/Client/index.d.ts +3 -0
  22. package/lib/Socket/Client/mobile-socket-client.d.ts +13 -0
  23. package/lib/Socket/Client/web-socket-client.d.ts +12 -0
  24. package/lib/Socket/business.d.ts +171 -0
  25. package/lib/Socket/chats.d.ts +267 -0
  26. package/lib/Socket/chats.js +39 -48
  27. package/lib/Socket/communities.d.ts +180 -0
  28. package/lib/Socket/communities.js +421 -0
  29. package/lib/Socket/groups.d.ts +115 -0
  30. package/lib/Socket/groups.js +64 -0
  31. package/lib/Socket/index.d.ts +173 -0
  32. package/lib/Socket/luxu.d.ts +266 -0
  33. package/lib/Socket/luxu.js +541 -0
  34. package/lib/Socket/messages-recv.d.ts +161 -0
  35. package/lib/Socket/messages-send.d.ts +183 -0
  36. package/lib/Socket/messages-send.js +410 -157
  37. package/lib/Socket/newsletter.d.ts +134 -0
  38. package/lib/Socket/newsletter.js +14 -133
  39. package/lib/Socket/registration.d.ts +267 -0
  40. package/lib/Socket/socket.d.ts +44 -0
  41. package/lib/Socket/socket.js +73 -2
  42. package/lib/Socket/usync.d.ts +36 -0
  43. package/lib/Store/index.d.ts +3 -0
  44. package/lib/Store/make-cache-manager-store.d.ts +13 -0
  45. package/lib/Store/make-in-memory-store.d.ts +118 -0
  46. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  47. package/lib/Store/object-repository.d.ts +10 -0
  48. package/lib/Types/Auth.d.ts +110 -0
  49. package/lib/Types/Call.d.ts +13 -0
  50. package/lib/Types/Chat.d.ts +102 -0
  51. package/lib/Types/Contact.d.ts +19 -0
  52. package/lib/Types/Events.d.ts +157 -0
  53. package/lib/Types/GroupMetadata.d.ts +55 -0
  54. package/lib/Types/Label.d.ts +35 -0
  55. package/lib/Types/LabelAssociation.d.ts +29 -0
  56. package/lib/Types/Message.d.ts +273 -0
  57. package/lib/Types/Newsletter.d.ts +103 -0
  58. package/lib/Types/Product.d.ts +78 -0
  59. package/lib/Types/Signal.d.ts +57 -0
  60. package/lib/Types/Socket.d.ts +111 -0
  61. package/lib/Types/State.d.ts +27 -0
  62. package/lib/Types/USync.d.ts +25 -0
  63. package/lib/Types/index.d.ts +57 -0
  64. package/lib/Utils/auth-utils.d.ts +18 -0
  65. package/lib/Utils/baileys-event-stream.d.ts +16 -0
  66. package/lib/Utils/business.d.ts +22 -0
  67. package/lib/Utils/chat-utils.d.ts +71 -0
  68. package/lib/Utils/crypto.d.ts +41 -0
  69. package/lib/Utils/decode-wa-message.d.ts +19 -0
  70. package/lib/Utils/event-buffer.d.ts +35 -0
  71. package/lib/Utils/generics.d.ts +92 -0
  72. package/lib/Utils/generics.js +5 -80
  73. package/lib/Utils/history.d.ts +15 -0
  74. package/lib/Utils/index.d.ts +17 -0
  75. package/lib/Utils/link-preview.d.ts +21 -0
  76. package/lib/Utils/logger.d.ts +4 -0
  77. package/lib/Utils/lt-hash.d.ts +12 -0
  78. package/lib/Utils/make-mutex.d.ts +7 -0
  79. package/lib/Utils/messages-media.d.ts +116 -0
  80. package/lib/Utils/messages.d.ts +77 -0
  81. package/lib/Utils/messages.js +45 -5
  82. package/lib/Utils/noise-handler.d.ts +21 -0
  83. package/lib/Utils/process-message.d.ts +41 -0
  84. package/lib/Utils/signal.d.ts +32 -0
  85. package/lib/Utils/use-multi-file-auth-state.d.ts +13 -0
  86. package/lib/Utils/validate-connection.d.ts +11 -0
  87. package/lib/Utils/validate-connection.js +2 -2
  88. package/lib/WABinary/constants.d.ts +30 -0
  89. package/lib/WABinary/decode.d.ts +7 -0
  90. package/lib/WABinary/encode.d.ts +3 -0
  91. package/lib/WABinary/generic-utils.d.ts +17 -0
  92. package/lib/WABinary/index.d.ts +5 -0
  93. package/lib/WABinary/jid-utils.d.ts +31 -0
  94. package/lib/WABinary/types.d.ts +18 -0
  95. package/lib/WAM/BinaryInfo.d.ts +17 -0
  96. package/lib/WAM/constants.d.ts +38 -0
  97. package/lib/WAM/encode.d.ts +3 -0
  98. package/lib/WAM/index.d.ts +3 -0
  99. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +9 -0
  100. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +22 -0
  101. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +12 -0
  102. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +12 -0
  103. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +25 -0
  104. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +8 -0
  105. package/lib/WAUSync/Protocols/index.d.ts +4 -0
  106. package/lib/WAUSync/USyncQuery.d.ts +28 -0
  107. package/lib/WAUSync/USyncUser.d.ts +12 -0
  108. package/lib/index.d.ts +12 -0
  109. package/lib/index.js +0 -1
  110. package/package.json +103 -104
  111. package/lib/Socket/dugong.js +0 -637
@@ -0,0 +1,173 @@
1
+ /// <reference types="node" />
2
+ import { UserFacingSocketConfig } from '../Types';
3
+ declare const makeWASocket: (config: UserFacingSocketConfig) => {
4
+ register: (code: string) => Promise<import("./registration").ExistsResponse>;
5
+ requestRegistrationCode: (registrationOptions?: import("./registration").RegistrationOptions | undefined) => Promise<import("./registration").ExistsResponse>;
6
+ logger: import("pino").Logger<import("pino").LoggerOptions>;
7
+ getOrderDetails: (orderId: string, tokenBase64: string) => Promise<import("../Types").OrderDetails>;
8
+ getCatalog: ({ jid, limit, cursor }: import("../Types").GetCatalogOptions) => Promise<{
9
+ products: import("../Types").Product[];
10
+ nextPageCursor: string | undefined;
11
+ }>;
12
+ getCollections: (jid?: string | undefined, limit?: number) => Promise<{
13
+ collections: import("../Types").CatalogCollection[];
14
+ }>;
15
+ productCreate: (create: import("../Types").ProductCreate) => Promise<import("../Types").Product>;
16
+ productDelete: (productIds: string[]) => Promise<{
17
+ deleted: number;
18
+ }>;
19
+ productUpdate: (productId: string, update: import("../Types").ProductUpdate) => Promise<import("../Types").Product>;
20
+ sendMessageAck: ({ tag, attrs, content }: import("../index").BinaryNode) => Promise<void>;
21
+ sendRetryRequest: (node: import("../index").BinaryNode, forceIncludeKeys?: boolean) => Promise<void>;
22
+ offerCall: (toJid: string, isVideo?: boolean) => Promise<{
23
+ id: string;
24
+ to: string;
25
+ }>;
26
+ rejectCall: (callId: string, callFrom: string) => Promise<void>;
27
+ getPrivacyTokens: (jids: string[]) => Promise<import("../index").BinaryNode>;
28
+ assertSessions: (jids: string[], force: boolean) => Promise<boolean>;
29
+ relayMessage: (jid: string, message: import("../Types").WAProto.IMessage, { messageId: msgId, participant, additionalAttributes, additionalNodes, useUserDevicesCache, cachedGroupMetadata, statusJidList }: import("../Types").MessageRelayOptions) => Promise<string>;
30
+ sendReceipt: (jid: string, participant: string | undefined, messageIds: string[], type: import("../Types").MessageReceiptType) => Promise<void>;
31
+ sendReceipts: (keys: import("../Types").WAProto.IMessageKey[], type: import("../Types").MessageReceiptType) => Promise<void>;
32
+ getButtonArgs: (message: import("../Types").WAProto.IMessage) => {
33
+ [key: string]: string;
34
+ };
35
+ readMessages: (keys: import("../Types").WAProto.IMessageKey[]) => Promise<void>;
36
+ refreshMediaConn: (forceGet?: boolean) => Promise<import("../Types").MediaConnInfo>;
37
+ getUSyncDevices: (jids: string[], useCache: boolean, ignoreZeroDevices: boolean) => Promise<import("../index").JidWithDevice[]>;
38
+ createParticipantNodes: (jids: string[], message: import("../Types").WAProto.IMessage, extraAttrs?: {
39
+ [key: string]: string;
40
+ } | undefined) => Promise<{
41
+ nodes: import("../index").BinaryNode[];
42
+ shouldIncludeDeviceIdentity: boolean;
43
+ }>;
44
+ waUploadToServer: import("../Types").WAMediaUploadFunction;
45
+ fetchPrivacySettings: (force?: boolean) => Promise<{
46
+ [_: string]: string;
47
+ }>;
48
+ updateMediaMessage: (message: import("../Types").WAProto.IWebMessageInfo) => Promise<import("../Types").WAProto.IWebMessageInfo>;
49
+ sendMessage: (jid: string, content: import("../Types").AnyMessageContent, options?: import("../Types").MiscMessageGenerationOptions) => Promise<import("../Types").WAProto.WebMessageInfo | undefined>;
50
+ subscribeNewsletterUpdates: (jid: string) => Promise<{
51
+ duration: string;
52
+ }>;
53
+ newsletterReactionMode: (jid: string, mode: import("../Types").NewsletterReactionMode) => Promise<void>;
54
+ newsletterUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
55
+ newsletterUpdateName: (jid: string, name: string) => Promise<void>;
56
+ newsletterUpdatePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
57
+ newsletterRemovePicture: (jid: string) => Promise<void>;
58
+ newsletterUnfollow: (jid: string) => Promise<void>;
59
+ newsletterFollow: (jid: string) => Promise<void>;
60
+ newsletterUnmute: (jid: string) => Promise<void>;
61
+ newsletterMute: (jid: string) => Promise<void>;
62
+ newsletterAction: (jid: string, type: "mute" | "follow" | "unfollow" | "unmute") => Promise<void>;
63
+ newsletterCreate: (name: string, description: string, reaction_codes: string) => Promise<import("../Types").NewsletterMetadata>;
64
+ newsletterMetadata: (type: "invite" | "jid", key: string, role?: import("../Types").NewsletterViewRole | undefined) => Promise<import("../Types").NewsletterMetadata>;
65
+ newsletterAdminCount: (jid: string) => Promise<number>;
66
+ newsletterChangeOwner: (jid: string, user: string) => Promise<void>;
67
+ newsletterDemote: (jid: string, user: string) => Promise<void>;
68
+ newsletterDelete: (jid: string) => Promise<void>;
69
+ newsletterReactMessage: (jid: string, serverId: string, code?: string | undefined) => Promise<void>;
70
+ newsletterFetchMessages: (type: "invite" | "jid", key: string, count: number, after?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
71
+ newsletterFetchUpdates: (jid: string, count: number, after?: number | undefined, since?: number | undefined) => Promise<import("../Types").NewsletterFetchedUpdate[]>;
72
+ groupMetadata: (jid: string) => Promise<import("../Types").GroupMetadata>;
73
+ groupCreate: (subject: string, participants: string[]) => Promise<import("../Types").GroupMetadata>;
74
+ groupLeave: (id: string) => Promise<void>;
75
+ groupUpdateSubject: (jid: string, subject: string) => Promise<void>;
76
+ groupRequestParticipantsList: (jid: string) => Promise<{
77
+ [key: string]: string;
78
+ }[]>;
79
+ groupRequestParticipantsUpdate: (jid: string, participants: string[], action: "reject" | "approve") => Promise<{
80
+ status: string;
81
+ jid: string;
82
+ }[]>;
83
+ groupParticipantsUpdate: (jid: string, participants: string[], action: import("../Types").ParticipantAction) => Promise<{
84
+ status: string;
85
+ jid: string;
86
+ content: import("../index").BinaryNode;
87
+ }[]>;
88
+ groupUpdateDescription: (jid: string, description?: string | undefined) => Promise<void>;
89
+ groupInviteCode: (jid: string) => Promise<string | undefined>;
90
+ groupRevokeInvite: (jid: string) => Promise<string | undefined>;
91
+ groupAcceptInvite: (code: string) => Promise<string | undefined>;
92
+ groupAcceptInviteV4: (key: string | import("../Types").WAProto.IMessageKey, inviteMessage: import("../Types").WAProto.Message.IGroupInviteMessage) => Promise<string>;
93
+ groupGetInviteInfo: (code: string) => Promise<import("../Types").GroupMetadata>;
94
+ groupToggleEphemeral: (jid: string, ephemeralExpiration: number) => Promise<void>;
95
+ groupSettingUpdate: (jid: string, setting: "announcement" | "locked" | "not_announcement" | "unlocked") => Promise<void>;
96
+ groupMemberAddMode: (jid: string, mode: "all_member_add" | "admin_add") => Promise<void>;
97
+ groupJoinApprovalMode: (jid: string, mode: "on" | "off") => Promise<void>;
98
+ groupFetchAllParticipating: () => Promise<{
99
+ [_: string]: import("../Types").GroupMetadata;
100
+ }>;
101
+ processingMutex: {
102
+ mutex<T>(code: () => T | Promise<T>): Promise<T>;
103
+ };
104
+ upsertMessage: (msg: import("../Types").WAProto.IWebMessageInfo, type: import("../Types").MessageUpsertType) => Promise<void>;
105
+ appPatch: (patchCreate: import("../Types").WAPatchCreate) => Promise<void>;
106
+ sendPresenceUpdate: (type: import("../Types").WAPresence, toJid?: string | undefined) => Promise<void>;
107
+ presenceSubscribe: (toJid: string, tcToken?: Buffer | undefined) => Promise<void>;
108
+ profilePictureUrl: (jid: string, type?: "image" | "preview", timeoutMs?: number | undefined) => Promise<string | undefined>;
109
+ onWhatsApp: (...jids: string[]) => Promise<{
110
+ jid: string;
111
+ exists: unknown;
112
+ lid: unknown;
113
+ }[] | undefined>;
114
+ fetchBlocklist: () => Promise<string[]>;
115
+ fetchStatus: (jid: string) => Promise<{
116
+ status: string | undefined;
117
+ setAt: Date;
118
+ } | undefined>;
119
+ updateProfilePicture: (jid: string, content: import("../Types").WAMediaUpload) => Promise<void>;
120
+ removeProfilePicture: (jid: string) => Promise<void>;
121
+ updateProfileStatus: (status: string) => Promise<void>;
122
+ updateProfileName: (name: string) => Promise<void>;
123
+ updateBlockStatus: (jid: string, action: "block" | "unblock") => Promise<void>;
124
+ updateLastSeenPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
125
+ updateOnlinePrivacy: (value: import("../Types").WAPrivacyOnlineValue) => Promise<void>;
126
+ updateProfilePicturePrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
127
+ updateStatusPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
128
+ updateReadReceiptsPrivacy: (value: import("../Types").WAReadReceiptsValue) => Promise<void>;
129
+ updateGroupsAddPrivacy: (value: import("../Types").WAPrivacyValue) => Promise<void>;
130
+ updateDefaultDisappearingMode: (duration: number) => Promise<void>;
131
+ getBusinessProfile: (jid: string) => Promise<void | import("../Types").WABusinessProfile>;
132
+ resyncAppState: (collections: readonly ("critical_block" | "critical_unblock_low" | "regular_high" | "regular_low" | "regular")[], isInitialSync: boolean) => Promise<void>;
133
+ chatModify: (mod: import("../Types").ChatModification, jid: string) => Promise<void>;
134
+ cleanDirtyBits: (type: "account_sync" | "groups", fromTimestamp?: string | number | undefined) => Promise<void>;
135
+ addChatLabel: (jid: string, labelId: string) => Promise<void>;
136
+ removeChatLabel: (jid: string, labelId: string) => Promise<void>;
137
+ addMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
138
+ removeMessageLabel: (jid: string, messageId: string, labelId: string) => Promise<void>;
139
+ star: (jid: string, messages: {
140
+ id: string;
141
+ fromMe?: boolean | undefined;
142
+ }[], star: boolean) => Promise<void>;
143
+ type: "md";
144
+ ws: any;
145
+ ev: import("../Types").BaileysEventEmitter & {
146
+ process(handler: (events: Partial<import("../Types").BaileysEventMap>) => void | Promise<void>): () => void;
147
+ buffer(): void;
148
+ createBufferedFunction<A extends any[], T_1>(work: (...args: A) => Promise<T_1>): (...args: A) => Promise<T_1>;
149
+ flush(force?: boolean | undefined): boolean;
150
+ isBuffering(): boolean;
151
+ };
152
+ authState: {
153
+ creds: import("../Types").AuthenticationCreds;
154
+ keys: import("../Types").SignalKeyStoreWithTransaction;
155
+ };
156
+ signalRepository: import("../Types").SignalRepository;
157
+ user: import("../Types").Contact | undefined;
158
+ generateMessageTag: () => string;
159
+ query: (node: import("../index").BinaryNode, timeoutMs?: number | undefined) => Promise<import("../index").BinaryNode>;
160
+ waitForMessage: <T_2>(msgId: string, timeoutMs?: number | undefined) => Promise<T_2>;
161
+ waitForSocketOpen: () => Promise<void>;
162
+ sendRawMessage: (data: Uint8Array | Buffer) => Promise<void>;
163
+ sendNode: (frame: import("../index").BinaryNode) => Promise<void>;
164
+ logout: (msg?: string | undefined) => Promise<void>;
165
+ end: (error: Error | undefined) => void;
166
+ onUnexpectedError: (err: Error | import("@hapi/boom").Boom<any>, msg: string) => void;
167
+ uploadPreKeys: (count?: number) => Promise<void>;
168
+ uploadPreKeysToServerIfRequired: () => Promise<void>;
169
+ requestPairingCode: (phoneNumber: string) => Promise<string>;
170
+ waitForConnectionUpdate: (check: (u: Partial<import("../Types").ConnectionState>) => boolean | undefined, timeoutMs?: number | undefined) => Promise<void>;
171
+ sendWAMBuffer: (wamBuffer: Buffer) => Promise<import("../index").BinaryNode>;
172
+ };
173
+ export default makeWASocket;
@@ -0,0 +1,266 @@
1
+ import { proto } from '../../WAProto';
2
+
3
+ declare namespace imup {
4
+ interface MediaUploadOptions {
5
+ fileEncSha256?: Buffer;
6
+ mediaType?: string;
7
+ newsletter?: boolean;
8
+ }
9
+
10
+ type WAMediaUploadFunction = (
11
+ stream: Buffer | NodeJS.ReadableStream,
12
+ options?: MediaUploadOptions
13
+ ) => Promise<{ url: string; directPath: string }>;
14
+
15
+ interface WAMessageContentGenerationOptions {
16
+ upload?: WAMediaUploadFunction;
17
+ mediaCache?: any;
18
+ options?: any;
19
+ logger?: any;
20
+ }
21
+
22
+ interface StickerMessage {
23
+ url: string;
24
+ fileSha256: Buffer | string;
25
+ fileEncSha256: Buffer | string;
26
+ mediaKey: Buffer | string;
27
+ mimetype: string;
28
+ directPath: string;
29
+ fileLength: number | string;
30
+ mediaKeyTimestamp: number | string;
31
+ isAnimated?: boolean;
32
+ stickerSentTs?: number | string;
33
+ isAvatar?: boolean;
34
+ isAiSticker?: boolean;
35
+ isLottie?: boolean;
36
+ }
37
+
38
+ interface PaymentMessage {
39
+ amount: number;
40
+ currency?: string;
41
+ from?: string;
42
+ expiry?: number;
43
+ sticker?: { stickerMessage: StickerMessage };
44
+ note?: string;
45
+ background?: {
46
+ id?: string;
47
+ fileLength?: string;
48
+ width?: number;
49
+ height?: number;
50
+ mimetype?: string;
51
+ placeholderArgb?: number;
52
+ textArgb?: number;
53
+ subtextArgb?: number;
54
+ };
55
+ }
56
+
57
+ interface ProductMessage {
58
+ title: string;
59
+ description: string;
60
+ thumbnail: Buffer | { url: string };
61
+ productId: string;
62
+ retailerId: string;
63
+ url: string;
64
+ body?: string;
65
+ footer?: string;
66
+ buttons?: proto.Message.InteractiveMessage.INativeFlowButton[];
67
+ priceAmount1000?: number | null;
68
+ currencyCode?: string;
69
+ }
70
+
71
+ interface InteractiveMessage {
72
+ title: string;
73
+ footer?: string;
74
+ thumbnail?: string;
75
+ image?: string | Buffer | { url: string };
76
+ video?: string | Buffer | { url: string };
77
+ document?: Buffer;
78
+ mimetype?: string;
79
+ fileName?: string;
80
+ jpegThumbnail?: Buffer;
81
+ contextInfo?: {
82
+ mentionedJid?: string[];
83
+ forwardingScore?: number;
84
+ isForwarded?: boolean;
85
+ forwardedNewsletterMessageInfo?: proto.Message.ContextInfo.ForwardedNewsletterMessageInfo;
86
+ externalAdReply?: {
87
+ title?: string;
88
+ body?: string;
89
+ mediaType?: number;
90
+ thumbnailUrl?: string;
91
+ mediaUrl?: string;
92
+ sourceUrl?: string;
93
+ showAdAttribution?: boolean;
94
+ renderLargerThumbnail?: boolean;
95
+ [key: string]: any;
96
+ };
97
+ [key: string]: any;
98
+ };
99
+ externalAdReply?: {
100
+ title?: string;
101
+ body?: string;
102
+ mediaType?: number;
103
+ thumbnailUrl?: string;
104
+ mediaUrl?: string;
105
+ sourceUrl?: string;
106
+ showAdAttribution?: boolean;
107
+ renderLargerThumbnail?: boolean;
108
+ [key: string]: any;
109
+ };
110
+ buttons?: proto.Message.InteractiveMessage.INativeFlowButton[];
111
+ nativeFlowMessage?: {
112
+ messageParamsJson?: string;
113
+ buttons?: proto.Message.InteractiveMessage.INativeFlowButton[];
114
+ [key: string]: any;
115
+ };
116
+ }
117
+
118
+ interface AlbumItem {
119
+ image?: { url: string; caption?: string };
120
+ video?: { url: string; caption?: string };
121
+ }
122
+
123
+ interface EventMessageLocation {
124
+ degreesLatitude: number;
125
+ degreesLongitude: number;
126
+ name: string;
127
+ }
128
+
129
+ interface EventMessage {
130
+ isCanceled?: boolean;
131
+ name: string;
132
+ description: string;
133
+ location?: EventMessageLocation;
134
+ joinLink?: string;
135
+ startTime?: string | number;
136
+ endTime?: string | number;
137
+ extraGuestsAllowed?: boolean;
138
+ }
139
+
140
+ interface PollVote {
141
+ optionName: string;
142
+ optionVoteCount: string | number;
143
+ }
144
+
145
+ interface PollResultMessage {
146
+ name: string;
147
+ pollVotes: PollVote[];
148
+ newsletter?: {
149
+ newsletterName: string;
150
+ newsletterJid: string;
151
+ };
152
+ }
153
+
154
+ interface OrderMessage {
155
+ thumbnail?: Buffer | string,
156
+ itemCount?: string | number,
157
+ message: string,
158
+ orderTitle: string,
159
+ totalAmount1000?: string | number,
160
+ totalCurrencyCode?: string
161
+ }
162
+
163
+ interface GroupStatus {
164
+ message?: any;
165
+ image?: string | Buffer | { url: string };
166
+ video?: string | Buffer | { url: string };
167
+ text?: string;
168
+ caption?: string;
169
+ document?: string | Buffer | { url: string };
170
+ [key: string]: any;
171
+ }
172
+
173
+ interface GroupLabel {
174
+ labelText: string;
175
+ }
176
+
177
+ interface MessageContent {
178
+ requestPaymentMessage?: PaymentMessage;
179
+ productMessage?: ProductMessage;
180
+ interactiveMessage?: InteractiveMessage;
181
+ albumMessage?: AlbumItem[];
182
+ eventMessage?: EventMessage;
183
+ pollResultMessage?: PollResultMessage;
184
+ groupStatus?: GroupStatus;
185
+ orderMessage?: OrderMessage;
186
+ groupLabel?: GroupLabel;
187
+ sender?: string;
188
+ }
189
+
190
+ interface MessageOptions {
191
+ quoted?: proto.IWebMessageInfo;
192
+ filter?: boolean;
193
+ }
194
+
195
+ interface Utils {
196
+ prepareWAMessageMedia: (media: any, options: WAMessageContentGenerationOptions) => Promise<any>;
197
+ generateWAMessageContent: (content: any, options: WAMessageContentGenerationOptions) => Promise<any>;
198
+ generateWAMessageFromContent: (jid: string, content: any, options?: any) => Promise<any>;
199
+ generateWAMessage: (jid: string, content: any, options?: any) => Promise<any>;
200
+ generateMessageID: () => string;
201
+ }
202
+ }
203
+
204
+ declare class imup {
205
+ constructor(
206
+ utils: imup.Utils,
207
+ waUploadToServer: imup.WAMediaUploadFunction,
208
+ relayMessageFn?: (jid: string, content: any, options?: any) => Promise<any>
209
+ );
210
+
211
+ detectType(content: imup.MessageContent): 'PAYMENT' | 'PRODUCT' | 'INTERACTIVE' | 'ALBUM' | 'EVENT' | 'POLL_RESULT' | 'GROUP_STATUS' | 'ORDER' | 'GROUP_LABEL' |null;
212
+
213
+ handlePayment(
214
+ content: { requestPaymentMessage: imup.PaymentMessage },
215
+ quoted?: proto.IWebMessageInfo
216
+ ): Promise<{ requestPaymentMessage: proto.Message.RequestPaymentMessage }>;
217
+
218
+ handleProduct(
219
+ content: { productMessage: imup.ProductMessage },
220
+ jid: string,
221
+ quoted?: proto.IWebMessageInfo
222
+ ): Promise<{ viewOnceMessage: proto.Message.ViewOnceMessage }>;
223
+
224
+ handleInteractive(
225
+ content: { interactiveMessage: imup.InteractiveMessage },
226
+ jid: string,
227
+ quoted?: proto.IWebMessageInfo
228
+ ): Promise<{ interactiveMessage: proto.Message.InteractiveMessage }>;
229
+
230
+ handleAlbum(
231
+ content: { albumMessage: imup.AlbumItem[] },
232
+ jid: string,
233
+ quoted?: proto.IWebMessageInfo
234
+ ): Promise<any>;
235
+
236
+ handleEvent(
237
+ content: { eventMessage: imup.EventMessage },
238
+ jid: string,
239
+ quoted?: proto.IWebMessageInfo
240
+ ): Promise<any>;
241
+
242
+ handlePollResult(
243
+ content: { pollResultMessage: imup.PollResultMessage },
244
+ jid: string,
245
+ quoted?: proto.IWebMessageInfo
246
+ ): Promise<any>;
247
+
248
+ handleOrderMessage(
249
+ content: { orderMessage: imup.OrderMessage },
250
+ jid: string,
251
+ quoted?: proto.IWebMessageInfo
252
+ ): Promise<any>;
253
+
254
+ handleGroupStory(
255
+ content: { groupStatus: imup.GroupStatus },
256
+ jid: string,
257
+ quoted?: proto.IWebMessageInfo
258
+ ): Promise<any>;
259
+
260
+ handleGbLabel(
261
+ content: { groupLabel: imup.GroupLabel },
262
+ jid: string,
263
+ ): Promise<any>;
264
+ }
265
+
266
+ export = imup;