elynn-baileys 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (886) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +2372 -0
  3. package/WAProto/index.d.ts +15871 -0
  4. package/WAProto/index.js +115447 -0
  5. package/elynn/config.js +12 -0
  6. package/elynn/plugins/README.md +24 -0
  7. package/elynn/plugins/ai/deepseekr1.js +27 -0
  8. package/elynn/plugins/ai/gita.js +16 -0
  9. package/elynn/plugins/ai/glm47flash.js +27 -0
  10. package/elynn/plugins/ai/gptoss120b.js +27 -0
  11. package/elynn/plugins/ai/qwq32b.js +27 -0
  12. package/elynn/plugins/berita/antara.js +18 -0
  13. package/elynn/plugins/berita/cnbcindonesia.js +18 -0
  14. package/elynn/plugins/berita/cnn.js +18 -0
  15. package/elynn/plugins/berita/kompas.js +18 -0
  16. package/elynn/plugins/berita/liputan6.js +18 -0
  17. package/elynn/plugins/berita/merdeka.js +18 -0
  18. package/elynn/plugins/berita/sindonews.js +18 -0
  19. package/elynn/plugins/berita/tribunnews.js +18 -0
  20. package/elynn/plugins/downloader/douyin.js +19 -0
  21. package/elynn/plugins/downloader/facebook.js +19 -0
  22. package/elynn/plugins/downloader/github.js +25 -0
  23. package/elynn/plugins/downloader/lahelu.js +19 -0
  24. package/elynn/plugins/downloader/snackvideo.js +19 -0
  25. package/elynn/plugins/downloader/soundcloud.js +19 -0
  26. package/elynn/plugins/downloader/tiktok.js +19 -0
  27. package/elynn/plugins/downloader/tiktokhd.js +19 -0
  28. package/elynn/plugins/downloader/twitter.js +19 -0
  29. package/elynn/plugins/downloader/ummy.js +26 -0
  30. package/elynn/plugins/index.cjs +26 -0
  31. package/elynn/plugins/index.js +232 -0
  32. package/elynn/plugins/info/bmkg.js +25 -0
  33. package/elynn/plugins/info/cuaca.js +23 -0
  34. package/elynn/plugins/info/jadwaltv.js +21 -0
  35. package/elynn/plugins/maker/brat.js +45 -0
  36. package/elynn/plugins/maker/bratvid.js +52 -0
  37. package/elynn/plugins/search/8font.js +18 -0
  38. package/elynn/plugins/search/applemusic.js +18 -0
  39. package/elynn/plugins/search/bimg.js +19 -0
  40. package/elynn/plugins/search/brave.js +24 -0
  41. package/elynn/plugins/search/duckduckgo.js +18 -0
  42. package/elynn/plugins/search/lahelu.js +18 -0
  43. package/elynn/plugins/search/mangatoon.js +18 -0
  44. package/elynn/plugins/search/mcpedl.js +18 -0
  45. package/elynn/plugins/search/myinstants.js +18 -0
  46. package/elynn/plugins/search/otakotaku.js +18 -0
  47. package/elynn/plugins/search/pinterest.js +19 -0
  48. package/elynn/plugins/search/resep.js +18 -0
  49. package/elynn/plugins/search/seegore.js +19 -0
  50. package/elynn/plugins/search/soundcloud.js +18 -0
  51. package/elynn/plugins/search/youtube.js +18 -0
  52. package/elynn/plugins/stalk/github.js +28 -0
  53. package/elynn/plugins/stalk/pinterest.js +27 -0
  54. package/elynn/plugins/stalk/threads.js +24 -0
  55. package/elynn/plugins/stalk/tiktok.js +27 -0
  56. package/elynn/plugins/stalk/twitter.js +27 -0
  57. package/elynn/plugins/stalk/youtube.js +27 -0
  58. package/engine-requirements.js +45 -0
  59. package/lib/Defaults/index.d.ts +145 -0
  60. package/lib/Defaults/index.d.ts.map +1 -0
  61. package/lib/Defaults/index.js +152 -0
  62. package/lib/Defaults/index.js.map +1 -0
  63. package/lib/Discord/Client.cjs +274 -0
  64. package/lib/Discord/Client.d.ts +98 -0
  65. package/lib/Discord/Client.js +274 -0
  66. package/lib/Discord/Constants.cjs +1842 -0
  67. package/lib/Discord/Constants.d.ts +1514 -0
  68. package/lib/Discord/Constants.js +1842 -0
  69. package/lib/Discord/connect-dc.js +5 -0
  70. package/lib/Discord/esm-bridge.mjs +128 -0
  71. package/lib/Discord/gateway/Dispatcher.cjs +86 -0
  72. package/lib/Discord/gateway/Dispatcher.d.ts +17 -0
  73. package/lib/Discord/gateway/Dispatcher.js +86 -0
  74. package/lib/Discord/gateway/Shard.cjs +723 -0
  75. package/lib/Discord/gateway/Shard.d.ts +87 -0
  76. package/lib/Discord/gateway/Shard.js +723 -0
  77. package/lib/Discord/gateway/ShardManager.cjs +350 -0
  78. package/lib/Discord/gateway/ShardManager.d.ts +31 -0
  79. package/lib/Discord/gateway/ShardManager.js +350 -0
  80. package/lib/Discord/gateway/compression/base.cjs +14 -0
  81. package/lib/Discord/gateway/compression/base.d.ts +6 -0
  82. package/lib/Discord/gateway/compression/base.js +14 -0
  83. package/lib/Discord/gateway/compression/config.cjs +47 -0
  84. package/lib/Discord/gateway/compression/config.d.ts +17 -0
  85. package/lib/Discord/gateway/compression/config.js +47 -0
  86. package/lib/Discord/gateway/compression/pako.cjs +45 -0
  87. package/lib/Discord/gateway/compression/pako.d.ts +16 -0
  88. package/lib/Discord/gateway/compression/pako.js +45 -0
  89. package/lib/Discord/gateway/compression/zlib-native.cjs +50 -0
  90. package/lib/Discord/gateway/compression/zlib-native.d.ts +10 -0
  91. package/lib/Discord/gateway/compression/zlib-native.js +50 -0
  92. package/lib/Discord/gateway/compression/zlib-sync.cjs +32 -0
  93. package/lib/Discord/gateway/compression/zlib-sync.d.ts +8 -0
  94. package/lib/Discord/gateway/compression/zlib-sync.js +32 -0
  95. package/lib/Discord/gateway/compression/zstd-napi.cjs +74 -0
  96. package/lib/Discord/gateway/compression/zstd-napi.d.ts +9 -0
  97. package/lib/Discord/gateway/compression/zstd-napi.js +74 -0
  98. package/lib/Discord/gateway/compression/zstd-native.cjs +48 -0
  99. package/lib/Discord/gateway/compression/zstd-native.d.ts +9 -0
  100. package/lib/Discord/gateway/compression/zstd-native.js +48 -0
  101. package/lib/Discord/gateway/events.cjs +956 -0
  102. package/lib/Discord/gateway/events.d.ts +75 -0
  103. package/lib/Discord/gateway/events.js +956 -0
  104. package/lib/Discord/index.cjs +228 -0
  105. package/lib/Discord/index.d.ts +98 -0
  106. package/lib/Discord/index.js +228 -0
  107. package/lib/Discord/rest/Bucket.cjs +77 -0
  108. package/lib/Discord/rest/Bucket.d.ts +32 -0
  109. package/lib/Discord/rest/Bucket.js +77 -0
  110. package/lib/Discord/rest/DiscordHTTPError.cjs +66 -0
  111. package/lib/Discord/rest/DiscordHTTPError.d.ts +15 -0
  112. package/lib/Discord/rest/DiscordHTTPError.js +66 -0
  113. package/lib/Discord/rest/DiscordRESTError.cjs +88 -0
  114. package/lib/Discord/rest/DiscordRESTError.d.ts +18 -0
  115. package/lib/Discord/rest/DiscordRESTError.js +88 -0
  116. package/lib/Discord/rest/OAuthHelper.cjs +220 -0
  117. package/lib/Discord/rest/OAuthHelper.d.ts +61 -0
  118. package/lib/Discord/rest/OAuthHelper.js +220 -0
  119. package/lib/Discord/rest/RESTManager.cjs +119 -0
  120. package/lib/Discord/rest/RESTManager.d.ts +42 -0
  121. package/lib/Discord/rest/RESTManager.js +119 -0
  122. package/lib/Discord/rest/RequestHandler.cjs +323 -0
  123. package/lib/Discord/rest/RequestHandler.d.ts +27 -0
  124. package/lib/Discord/rest/RequestHandler.js +323 -0
  125. package/lib/Discord/rest/SequentialBucket.cjs +74 -0
  126. package/lib/Discord/rest/SequentialBucket.d.ts +24 -0
  127. package/lib/Discord/rest/SequentialBucket.js +74 -0
  128. package/lib/Discord/routes/Applications.cjs +618 -0
  129. package/lib/Discord/routes/Applications.d.ts +230 -0
  130. package/lib/Discord/routes/Applications.js +618 -0
  131. package/lib/Discord/routes/Channels.cjs +1191 -0
  132. package/lib/Discord/routes/Channels.d.ts +428 -0
  133. package/lib/Discord/routes/Channels.js +1192 -0
  134. package/lib/Discord/routes/Guilds.cjs +1785 -0
  135. package/lib/Discord/routes/Guilds.d.ts +644 -0
  136. package/lib/Discord/routes/Guilds.js +1785 -0
  137. package/lib/Discord/routes/Interactions.cjs +205 -0
  138. package/lib/Discord/routes/Interactions.d.ts +74 -0
  139. package/lib/Discord/routes/Interactions.js +205 -0
  140. package/lib/Discord/routes/Lobbies.cjs +190 -0
  141. package/lib/Discord/routes/Lobbies.d.ts +70 -0
  142. package/lib/Discord/routes/Lobbies.js +190 -0
  143. package/lib/Discord/routes/Miscellaneous.cjs +113 -0
  144. package/lib/Discord/routes/Miscellaneous.d.ts +36 -0
  145. package/lib/Discord/routes/Miscellaneous.js +113 -0
  146. package/lib/Discord/routes/OAuth.cjs +343 -0
  147. package/lib/Discord/routes/OAuth.d.ts +107 -0
  148. package/lib/Discord/routes/OAuth.js +343 -0
  149. package/lib/Discord/routes/Users.cjs +100 -0
  150. package/lib/Discord/routes/Users.d.ts +32 -0
  151. package/lib/Discord/routes/Users.js +100 -0
  152. package/lib/Discord/routes/Webhooks.cjs +301 -0
  153. package/lib/Discord/routes/Webhooks.d.ts +126 -0
  154. package/lib/Discord/routes/Webhooks.js +301 -0
  155. package/lib/Discord/structures/AnnouncementChannel.cjs +46 -0
  156. package/lib/Discord/structures/AnnouncementChannel.d.ts +34 -0
  157. package/lib/Discord/structures/AnnouncementChannel.js +46 -0
  158. package/lib/Discord/structures/AnnouncementThreadChannel.cjs +28 -0
  159. package/lib/Discord/structures/AnnouncementThreadChannel.d.ts +17 -0
  160. package/lib/Discord/structures/AnnouncementThreadChannel.js +28 -0
  161. package/lib/Discord/structures/Application.cjs +477 -0
  162. package/lib/Discord/structures/Application.d.ts +166 -0
  163. package/lib/Discord/structures/Application.js +477 -0
  164. package/lib/Discord/structures/ApplicationCommand.cjs +146 -0
  165. package/lib/Discord/structures/ApplicationCommand.d.ts +75 -0
  166. package/lib/Discord/structures/ApplicationCommand.js +146 -0
  167. package/lib/Discord/structures/Attachment.cjs +78 -0
  168. package/lib/Discord/structures/Attachment.d.ts +43 -0
  169. package/lib/Discord/structures/Attachment.js +78 -0
  170. package/lib/Discord/structures/AuditLogEntry.cjs +54 -0
  171. package/lib/Discord/structures/AuditLogEntry.d.ts +25 -0
  172. package/lib/Discord/structures/AuditLogEntry.js +54 -0
  173. package/lib/Discord/structures/AutoModerationRule.cjs +140 -0
  174. package/lib/Discord/structures/AutoModerationRule.d.ts +48 -0
  175. package/lib/Discord/structures/AutoModerationRule.js +140 -0
  176. package/lib/Discord/structures/AutocompleteInteraction.cjs +120 -0
  177. package/lib/Discord/structures/AutocompleteInteraction.d.ts +61 -0
  178. package/lib/Discord/structures/AutocompleteInteraction.js +120 -0
  179. package/lib/Discord/structures/Base.cjs +58 -0
  180. package/lib/Discord/structures/Base.d.ts +19 -0
  181. package/lib/Discord/structures/Base.js +58 -0
  182. package/lib/Discord/structures/BaseEntitlement.cjs +49 -0
  183. package/lib/Discord/structures/BaseEntitlement.d.ts +20 -0
  184. package/lib/Discord/structures/BaseEntitlement.js +49 -0
  185. package/lib/Discord/structures/CategoryChannel.cjs +106 -0
  186. package/lib/Discord/structures/CategoryChannel.d.ts +40 -0
  187. package/lib/Discord/structures/CategoryChannel.js +106 -0
  188. package/lib/Discord/structures/Channel.cjs +92 -0
  189. package/lib/Discord/structures/Channel.d.ts +19 -0
  190. package/lib/Discord/structures/Channel.js +92 -0
  191. package/lib/Discord/structures/ClientApplication.cjs +273 -0
  192. package/lib/Discord/structures/ClientApplication.d.ts +189 -0
  193. package/lib/Discord/structures/ClientApplication.js +273 -0
  194. package/lib/Discord/structures/CommandInteraction.cjs +324 -0
  195. package/lib/Discord/structures/CommandInteraction.d.ts +166 -0
  196. package/lib/Discord/structures/CommandInteraction.js +324 -0
  197. package/lib/Discord/structures/ComponentInteraction.cjs +338 -0
  198. package/lib/Discord/structures/ComponentInteraction.d.ts +180 -0
  199. package/lib/Discord/structures/ComponentInteraction.js +338 -0
  200. package/lib/Discord/structures/Entitlement.cjs +27 -0
  201. package/lib/Discord/structures/Entitlement.d.ts +11 -0
  202. package/lib/Discord/structures/Entitlement.js +27 -0
  203. package/lib/Discord/structures/ExtendedUser.cjs +58 -0
  204. package/lib/Discord/structures/ExtendedUser.d.ts +25 -0
  205. package/lib/Discord/structures/ExtendedUser.js +58 -0
  206. package/lib/Discord/structures/ForumChannel.cjs +20 -0
  207. package/lib/Discord/structures/ForumChannel.d.ts +11 -0
  208. package/lib/Discord/structures/ForumChannel.js +20 -0
  209. package/lib/Discord/structures/GroupChannel.cjs +172 -0
  210. package/lib/Discord/structures/GroupChannel.d.ts +60 -0
  211. package/lib/Discord/structures/GroupChannel.js +172 -0
  212. package/lib/Discord/structures/Guild.cjs +1415 -0
  213. package/lib/Discord/structures/Guild.d.ts +687 -0
  214. package/lib/Discord/structures/Guild.js +1415 -0
  215. package/lib/Discord/structures/GuildChannel.cjs +90 -0
  216. package/lib/Discord/structures/GuildChannel.d.ts +36 -0
  217. package/lib/Discord/structures/GuildChannel.js +90 -0
  218. package/lib/Discord/structures/GuildPreview.cjs +153 -0
  219. package/lib/Discord/structures/GuildPreview.d.ts +49 -0
  220. package/lib/Discord/structures/GuildPreview.js +153 -0
  221. package/lib/Discord/structures/GuildScheduledEvent.cjs +188 -0
  222. package/lib/Discord/structures/GuildScheduledEvent.d.ts +59 -0
  223. package/lib/Discord/structures/GuildScheduledEvent.js +188 -0
  224. package/lib/Discord/structures/GuildTemplate.cjs +118 -0
  225. package/lib/Discord/structures/GuildTemplate.d.ts +48 -0
  226. package/lib/Discord/structures/GuildTemplate.js +118 -0
  227. package/lib/Discord/structures/Integration.cjs +157 -0
  228. package/lib/Discord/structures/Integration.d.ts +53 -0
  229. package/lib/Discord/structures/Integration.js +157 -0
  230. package/lib/Discord/structures/Interaction.cjs +91 -0
  231. package/lib/Discord/structures/Interaction.d.ts +39 -0
  232. package/lib/Discord/structures/Interaction.js +91 -0
  233. package/lib/Discord/structures/InteractionResolvedChannel.cjs +46 -0
  234. package/lib/Discord/structures/InteractionResolvedChannel.d.ts +27 -0
  235. package/lib/Discord/structures/InteractionResolvedChannel.js +46 -0
  236. package/lib/Discord/structures/Invite.cjs +240 -0
  237. package/lib/Discord/structures/Invite.d.ts +132 -0
  238. package/lib/Discord/structures/Invite.js +240 -0
  239. package/lib/Discord/structures/InviteGuild.cjs +130 -0
  240. package/lib/Discord/structures/InviteGuild.d.ts +54 -0
  241. package/lib/Discord/structures/InviteGuild.js +130 -0
  242. package/lib/Discord/structures/InviteRole.cjs +110 -0
  243. package/lib/Discord/structures/InviteRole.d.ts +53 -0
  244. package/lib/Discord/structures/InviteRole.js +110 -0
  245. package/lib/Discord/structures/Lobby.cjs +88 -0
  246. package/lib/Discord/structures/Lobby.d.ts +54 -0
  247. package/lib/Discord/structures/Lobby.js +88 -0
  248. package/lib/Discord/structures/LobbyMember.cjs +33 -0
  249. package/lib/Discord/structures/LobbyMember.d.ts +15 -0
  250. package/lib/Discord/structures/LobbyMember.js +33 -0
  251. package/lib/Discord/structures/MediaChannel.cjs +20 -0
  252. package/lib/Discord/structures/MediaChannel.d.ts +11 -0
  253. package/lib/Discord/structures/MediaChannel.js +20 -0
  254. package/lib/Discord/structures/Member.cjs +325 -0
  255. package/lib/Discord/structures/Member.d.ts +140 -0
  256. package/lib/Discord/structures/Member.js +325 -0
  257. package/lib/Discord/structures/Message.cjs +627 -0
  258. package/lib/Discord/structures/Message.d.ts +223 -0
  259. package/lib/Discord/structures/Message.js +627 -0
  260. package/lib/Discord/structures/ModalSubmitInteraction.cjs +295 -0
  261. package/lib/Discord/structures/ModalSubmitInteraction.d.ts +138 -0
  262. package/lib/Discord/structures/ModalSubmitInteraction.js +295 -0
  263. package/lib/Discord/structures/OAuthApplication.cjs +244 -0
  264. package/lib/Discord/structures/OAuthApplication.d.ts +77 -0
  265. package/lib/Discord/structures/OAuthApplication.js +244 -0
  266. package/lib/Discord/structures/OAuthGuild.cjs +107 -0
  267. package/lib/Discord/structures/OAuthGuild.d.ts +43 -0
  268. package/lib/Discord/structures/OAuthGuild.js +107 -0
  269. package/lib/Discord/structures/PartialApplication.cjs +101 -0
  270. package/lib/Discord/structures/PartialApplication.d.ts +29 -0
  271. package/lib/Discord/structures/PartialApplication.js +101 -0
  272. package/lib/Discord/structures/Permission.cjs +66 -0
  273. package/lib/Discord/structures/Permission.d.ts +21 -0
  274. package/lib/Discord/structures/Permission.js +66 -0
  275. package/lib/Discord/structures/PermissionOverwrite.cjs +50 -0
  276. package/lib/Discord/structures/PermissionOverwrite.d.ts +25 -0
  277. package/lib/Discord/structures/PermissionOverwrite.js +50 -0
  278. package/lib/Discord/structures/PingInteraction.cjs +27 -0
  279. package/lib/Discord/structures/PingInteraction.d.ts +15 -0
  280. package/lib/Discord/structures/PingInteraction.js +27 -0
  281. package/lib/Discord/structures/Poll.cjs +77 -0
  282. package/lib/Discord/structures/Poll.d.ts +27 -0
  283. package/lib/Discord/structures/Poll.js +77 -0
  284. package/lib/Discord/structures/PrimaryGuild.cjs +92 -0
  285. package/lib/Discord/structures/PrimaryGuild.d.ts +23 -0
  286. package/lib/Discord/structures/PrimaryGuild.js +92 -0
  287. package/lib/Discord/structures/PrivateChannel.cjs +139 -0
  288. package/lib/Discord/structures/PrivateChannel.d.ts +102 -0
  289. package/lib/Discord/structures/PrivateChannel.js +139 -0
  290. package/lib/Discord/structures/PrivateThreadChannel.cjs +28 -0
  291. package/lib/Discord/structures/PrivateThreadChannel.d.ts +17 -0
  292. package/lib/Discord/structures/PrivateThreadChannel.js +28 -0
  293. package/lib/Discord/structures/PublicThreadChannel.cjs +38 -0
  294. package/lib/Discord/structures/PublicThreadChannel.d.ts +20 -0
  295. package/lib/Discord/structures/PublicThreadChannel.js +38 -0
  296. package/lib/Discord/structures/Role.cjs +156 -0
  297. package/lib/Discord/structures/Role.d.ts +56 -0
  298. package/lib/Discord/structures/Role.js +156 -0
  299. package/lib/Discord/structures/SKU.cjs +70 -0
  300. package/lib/Discord/structures/SKU.d.ts +33 -0
  301. package/lib/Discord/structures/SKU.js +70 -0
  302. package/lib/Discord/structures/Soundboard.cjs +74 -0
  303. package/lib/Discord/structures/Soundboard.d.ts +42 -0
  304. package/lib/Discord/structures/Soundboard.js +74 -0
  305. package/lib/Discord/structures/StageChannel.cjs +45 -0
  306. package/lib/Discord/structures/StageChannel.d.ts +31 -0
  307. package/lib/Discord/structures/StageChannel.js +45 -0
  308. package/lib/Discord/structures/StageInstance.cjs +95 -0
  309. package/lib/Discord/structures/StageInstance.d.ts +35 -0
  310. package/lib/Discord/structures/StageInstance.js +95 -0
  311. package/lib/Discord/structures/Subscription.cjs +39 -0
  312. package/lib/Discord/structures/Subscription.d.ts +25 -0
  313. package/lib/Discord/structures/Subscription.js +39 -0
  314. package/lib/Discord/structures/Team.cjs +86 -0
  315. package/lib/Discord/structures/Team.d.ts +28 -0
  316. package/lib/Discord/structures/Team.js +86 -0
  317. package/lib/Discord/structures/TestEntitlement.cjs +22 -0
  318. package/lib/Discord/structures/TestEntitlement.d.ts +10 -0
  319. package/lib/Discord/structures/TestEntitlement.js +22 -0
  320. package/lib/Discord/structures/TextChannel.cjs +48 -0
  321. package/lib/Discord/structures/TextChannel.d.ts +34 -0
  322. package/lib/Discord/structures/TextChannel.js +48 -0
  323. package/lib/Discord/structures/TextableChannel.cjs +281 -0
  324. package/lib/Discord/structures/TextableChannel.d.ts +167 -0
  325. package/lib/Discord/structures/TextableChannel.js +281 -0
  326. package/lib/Discord/structures/TextableVoiceChannel.cjs +79 -0
  327. package/lib/Discord/structures/TextableVoiceChannel.d.ts +34 -0
  328. package/lib/Discord/structures/TextableVoiceChannel.js +79 -0
  329. package/lib/Discord/structures/ThreadChannel.cjs +300 -0
  330. package/lib/Discord/structures/ThreadChannel.d.ts +170 -0
  331. package/lib/Discord/structures/ThreadChannel.js +300 -0
  332. package/lib/Discord/structures/ThreadOnlyChannel.cjs +231 -0
  333. package/lib/Discord/structures/ThreadOnlyChannel.d.ts +95 -0
  334. package/lib/Discord/structures/ThreadOnlyChannel.js +231 -0
  335. package/lib/Discord/structures/ThreadableChannel.cjs +59 -0
  336. package/lib/Discord/structures/ThreadableChannel.d.ts +35 -0
  337. package/lib/Discord/structures/ThreadableChannel.js +59 -0
  338. package/lib/Discord/structures/UnavailableGuild.cjs +22 -0
  339. package/lib/Discord/structures/UnavailableGuild.d.ts +10 -0
  340. package/lib/Discord/structures/UnavailableGuild.js +22 -0
  341. package/lib/Discord/structures/User.cjs +240 -0
  342. package/lib/Discord/structures/User.d.ts +90 -0
  343. package/lib/Discord/structures/User.js +240 -0
  344. package/lib/Discord/structures/VoiceChannel.cjs +36 -0
  345. package/lib/Discord/structures/VoiceChannel.d.ts +19 -0
  346. package/lib/Discord/structures/VoiceChannel.js +36 -0
  347. package/lib/Discord/structures/VoiceState.cjs +141 -0
  348. package/lib/Discord/structures/VoiceState.d.ts +49 -0
  349. package/lib/Discord/structures/VoiceState.js +141 -0
  350. package/lib/Discord/structures/Webhook.cjs +240 -0
  351. package/lib/Discord/structures/Webhook.d.ts +126 -0
  352. package/lib/Discord/structures/Webhook.js +240 -0
  353. package/lib/Discord/types/applications.d.ts +695 -0
  354. package/lib/Discord/types/audit-log.d.ts +116 -0
  355. package/lib/Discord/types/auto-moderation.d.ts +99 -0
  356. package/lib/Discord/types/channels.d.ts +1570 -0
  357. package/lib/Discord/types/client.d.ts +250 -0
  358. package/lib/Discord/types/events.d.ts +224 -0
  359. package/lib/Discord/types/gateway-raw.d.ts +585 -0
  360. package/lib/Discord/types/gateway.d.ts +401 -0
  361. package/lib/Discord/types/guild-template.d.ts +25 -0
  362. package/lib/Discord/types/guilds.d.ts +987 -0
  363. package/lib/Discord/types/index.d.ts +24 -0
  364. package/lib/Discord/types/interactions.d.ts +524 -0
  365. package/lib/Discord/types/invites.d.ts +117 -0
  366. package/lib/Discord/types/json.d.ts +833 -0
  367. package/lib/Discord/types/lobbies.d.ts +31 -0
  368. package/lib/Discord/types/misc.d.ts +25 -0
  369. package/lib/Discord/types/namespaced.d.ts +22 -0
  370. package/lib/Discord/types/oauth.d.ts +206 -0
  371. package/lib/Discord/types/request-handler.d.ts +54 -0
  372. package/lib/Discord/types/scheduled-events.d.ts +87 -0
  373. package/lib/Discord/types/shared.d.ts +24 -0
  374. package/lib/Discord/types/users.d.ts +104 -0
  375. package/lib/Discord/types/voice.d.ts +45 -0
  376. package/lib/Discord/types/webhooks.d.ts +75 -0
  377. package/lib/Discord/util/Collection.cjs +77 -0
  378. package/lib/Discord/util/Collection.d.ts +47 -0
  379. package/lib/Discord/util/Collection.js +77 -0
  380. package/lib/Discord/util/Errors.cjs +84 -0
  381. package/lib/Discord/util/Errors.d.ts +43 -0
  382. package/lib/Discord/util/Errors.js +84 -0
  383. package/lib/Discord/util/QueryBuilder.cjs +20 -0
  384. package/lib/Discord/util/QueryBuilder.d.ts +4 -0
  385. package/lib/Discord/util/QueryBuilder.js +20 -0
  386. package/lib/Discord/util/Routes.cjs +293 -0
  387. package/lib/Discord/util/Routes.d.ts +145 -0
  388. package/lib/Discord/util/Routes.js +293 -0
  389. package/lib/Discord/util/SimpleCollection.cjs +82 -0
  390. package/lib/Discord/util/SimpleCollection.d.ts +12 -0
  391. package/lib/Discord/util/SimpleCollection.js +82 -0
  392. package/lib/Discord/util/Time.cjs +93 -0
  393. package/lib/Discord/util/Time.d.ts +39 -0
  394. package/lib/Discord/util/Time.js +93 -0
  395. package/lib/Discord/util/TypedCollection.cjs +81 -0
  396. package/lib/Discord/util/TypedCollection.d.ts +24 -0
  397. package/lib/Discord/util/TypedCollection.js +81 -0
  398. package/lib/Discord/util/TypedEmitter.cjs +20 -0
  399. package/lib/Discord/util/TypedEmitter.d.ts +18 -0
  400. package/lib/Discord/util/TypedEmitter.js +20 -0
  401. package/lib/Discord/util/Util.cjs +906 -0
  402. package/lib/Discord/util/Util.d.ts +66 -0
  403. package/lib/Discord/util/Util.js +906 -0
  404. package/lib/Discord/util/interactions/InteractionOptionsWrapper.cjs +211 -0
  405. package/lib/Discord/util/interactions/InteractionOptionsWrapper.d.ts +170 -0
  406. package/lib/Discord/util/interactions/InteractionOptionsWrapper.js +211 -0
  407. package/lib/Discord/util/interactions/MessageInteractionResponse.cjs +29 -0
  408. package/lib/Discord/util/interactions/MessageInteractionResponse.d.ts +27 -0
  409. package/lib/Discord/util/interactions/MessageInteractionResponse.js +29 -0
  410. package/lib/Discord/util/interactions/ModalSubmitInteractionComponentsWrapper.cjs +101 -0
  411. package/lib/Discord/util/interactions/ModalSubmitInteractionComponentsWrapper.d.ts +157 -0
  412. package/lib/Discord/util/interactions/ModalSubmitInteractionComponentsWrapper.js +101 -0
  413. package/lib/Discord/util/interactions/SelectMenuValuesWrapper.cjs +81 -0
  414. package/lib/Discord/util/interactions/SelectMenuValuesWrapper.d.ts +59 -0
  415. package/lib/Discord/util/interactions/SelectMenuValuesWrapper.js +81 -0
  416. package/lib/Discord/util/interactions/shared.cjs +20 -0
  417. package/lib/Discord/util/interactions/shared.d.ts +7 -0
  418. package/lib/Discord/util/interactions/shared.js +20 -0
  419. package/lib/Discord/util/warning.cjs +34 -0
  420. package/lib/Discord/util/warning.d.ts +6 -0
  421. package/lib/Discord/util/warning.js +34 -0
  422. package/lib/Signal/Group/ciphertext-message.d.ts +10 -0
  423. package/lib/Signal/Group/ciphertext-message.d.ts.map +1 -0
  424. package/lib/Signal/Group/ciphertext-message.js +12 -0
  425. package/lib/Signal/Group/ciphertext-message.js.map +1 -0
  426. package/lib/Signal/Group/group-session-builder.d.ts +8 -0
  427. package/lib/Signal/Group/group-session-builder.d.ts.map +1 -0
  428. package/lib/Signal/Group/group-session-builder.js +30 -0
  429. package/lib/Signal/Group/group-session-builder.js.map +1 -0
  430. package/lib/Signal/Group/group_cipher.d.ts +11 -0
  431. package/lib/Signal/Group/group_cipher.d.ts.map +1 -0
  432. package/lib/Signal/Group/group_cipher.js +82 -0
  433. package/lib/Signal/Group/group_cipher.js.map +1 -0
  434. package/lib/Signal/Group/index.d.ts +12 -0
  435. package/lib/Signal/Group/index.d.ts.map +1 -0
  436. package/lib/Signal/Group/index.js +12 -0
  437. package/lib/Signal/Group/index.js.map +1 -0
  438. package/lib/Signal/Group/keyhelper.d.ts +7 -0
  439. package/lib/Signal/Group/keyhelper.d.ts.map +1 -0
  440. package/lib/Signal/Group/keyhelper.js +18 -0
  441. package/lib/Signal/Group/keyhelper.js.map +1 -0
  442. package/lib/Signal/Group/sender-chain-key.d.ts +14 -0
  443. package/lib/Signal/Group/sender-chain-key.d.ts.map +1 -0
  444. package/lib/Signal/Group/sender-chain-key.js +26 -0
  445. package/lib/Signal/Group/sender-chain-key.js.map +1 -0
  446. package/lib/Signal/Group/sender-key-distribution-message.d.ts +17 -0
  447. package/lib/Signal/Group/sender-key-distribution-message.d.ts.map +1 -0
  448. package/lib/Signal/Group/sender-key-distribution-message.js +63 -0
  449. package/lib/Signal/Group/sender-key-distribution-message.js.map +1 -0
  450. package/lib/Signal/Group/sender-key-message.d.ts +19 -0
  451. package/lib/Signal/Group/sender-key-message.d.ts.map +1 -0
  452. package/lib/Signal/Group/sender-key-message.js +66 -0
  453. package/lib/Signal/Group/sender-key-message.js.map +1 -0
  454. package/lib/Signal/Group/sender-key-name.d.ts +12 -0
  455. package/lib/Signal/Group/sender-key-name.d.ts.map +1 -0
  456. package/lib/Signal/Group/sender-key-name.js +48 -0
  457. package/lib/Signal/Group/sender-key-name.js.map +1 -0
  458. package/lib/Signal/Group/sender-key-record.d.ts +13 -0
  459. package/lib/Signal/Group/sender-key-record.d.ts.map +1 -0
  460. package/lib/Signal/Group/sender-key-record.js +41 -0
  461. package/lib/Signal/Group/sender-key-record.js.map +1 -0
  462. package/lib/Signal/Group/sender-key-state.d.ts +17 -0
  463. package/lib/Signal/Group/sender-key-state.d.ts.map +1 -0
  464. package/lib/Signal/Group/sender-key-state.js +84 -0
  465. package/lib/Signal/Group/sender-key-state.js.map +1 -0
  466. package/lib/Signal/Group/sender-message-key.d.ts +12 -0
  467. package/lib/Signal/Group/sender-message-key.d.ts.map +1 -0
  468. package/lib/Signal/Group/sender-message-key.js +26 -0
  469. package/lib/Signal/Group/sender-message-key.js.map +1 -0
  470. package/lib/Signal/libsignal.d.ts +55 -0
  471. package/lib/Signal/libsignal.d.ts.map +1 -0
  472. package/lib/Signal/libsignal.js +431 -0
  473. package/lib/Signal/libsignal.js.map +1 -0
  474. package/lib/Signal/lid-mapping.d.ts +21 -0
  475. package/lib/Signal/lid-mapping.d.ts.map +1 -0
  476. package/lib/Signal/lid-mapping.js +277 -0
  477. package/lib/Signal/lid-mapping.js.map +1 -0
  478. package/lib/Socket/Client/index.d.ts +3 -0
  479. package/lib/Socket/Client/index.d.ts.map +1 -0
  480. package/lib/Socket/Client/index.js +3 -0
  481. package/lib/Socket/Client/index.js.map +1 -0
  482. package/lib/Socket/Client/types.d.ts +6 -0
  483. package/lib/Socket/Client/types.d.ts.map +1 -0
  484. package/lib/Socket/Client/types.js +11 -0
  485. package/lib/Socket/Client/types.js.map +1 -0
  486. package/lib/Socket/Client/websocket.d.ts +13 -0
  487. package/lib/Socket/Client/websocket.d.ts.map +1 -0
  488. package/lib/Socket/Client/websocket.js +54 -0
  489. package/lib/Socket/Client/websocket.js.map +1 -0
  490. package/lib/Socket/business.d.ts +395 -0
  491. package/lib/Socket/business.d.ts.map +1 -0
  492. package/lib/Socket/business.js +380 -0
  493. package/lib/Socket/business.js.map +1 -0
  494. package/lib/Socket/chats.d.ts +137 -0
  495. package/lib/Socket/chats.d.ts.map +1 -0
  496. package/lib/Socket/chats.js +1214 -0
  497. package/lib/Socket/chats.js.map +1 -0
  498. package/lib/Socket/communities.d.ts +562 -0
  499. package/lib/Socket/communities.d.ts.map +1 -0
  500. package/lib/Socket/communities.js +432 -0
  501. package/lib/Socket/communities.js.map +1 -0
  502. package/lib/Socket/groups.d.ts +286 -0
  503. package/lib/Socket/groups.d.ts.map +1 -0
  504. package/lib/Socket/groups.js +348 -0
  505. package/lib/Socket/groups.js.map +1 -0
  506. package/lib/Socket/index.d.ts +530 -0
  507. package/lib/Socket/index.d.ts.map +1 -0
  508. package/lib/Socket/index.js +12 -0
  509. package/lib/Socket/index.js.map +1 -0
  510. package/lib/Socket/messages-recv.d.ts +334 -0
  511. package/lib/Socket/messages-recv.d.ts.map +1 -0
  512. package/lib/Socket/messages-recv.js +1765 -0
  513. package/lib/Socket/messages-recv.js.map +1 -0
  514. package/lib/Socket/messages-send.d.ts +330 -0
  515. package/lib/Socket/messages-send.d.ts.map +1 -0
  516. package/lib/Socket/messages-send.js +1368 -0
  517. package/lib/Socket/messages-send.js.map +1 -0
  518. package/lib/Socket/mex.d.ts +2 -0
  519. package/lib/Socket/mex.d.ts.map +1 -0
  520. package/lib/Socket/mex.js +42 -0
  521. package/lib/Socket/mex.js.map +1 -0
  522. package/lib/Socket/newsletter.d.ts +283 -0
  523. package/lib/Socket/newsletter.d.ts.map +1 -0
  524. package/lib/Socket/newsletter.js +226 -0
  525. package/lib/Socket/newsletter.js.map +1 -0
  526. package/lib/Socket/socket.d.ts +61 -0
  527. package/lib/Socket/socket.d.ts.map +1 -0
  528. package/lib/Socket/socket.js +972 -0
  529. package/lib/Socket/socket.js.map +1 -0
  530. package/lib/Store/index.d.ts +4 -0
  531. package/lib/Store/index.d.ts.map +1 -0
  532. package/lib/Store/index.js +4 -0
  533. package/lib/Store/index.js.map +1 -0
  534. package/lib/Store/make-in-memory-store.d.ts +63 -0
  535. package/lib/Store/make-in-memory-store.d.ts.map +1 -0
  536. package/lib/Store/make-in-memory-store.js +471 -0
  537. package/lib/Store/make-in-memory-store.js.map +1 -0
  538. package/lib/Store/make-ordered-dictionary.d.ts +13 -0
  539. package/lib/Store/make-ordered-dictionary.d.ts.map +1 -0
  540. package/lib/Store/make-ordered-dictionary.js +79 -0
  541. package/lib/Store/make-ordered-dictionary.js.map +1 -0
  542. package/lib/Store/object-repository.d.ts +11 -0
  543. package/lib/Store/object-repository.d.ts.map +1 -0
  544. package/lib/Store/object-repository.js +24 -0
  545. package/lib/Store/object-repository.js.map +1 -0
  546. package/lib/Telegram/button.js +147 -0
  547. package/lib/Telegram/cli.mjs +105 -0
  548. package/lib/Telegram/composer.js +582 -0
  549. package/lib/Telegram/context.js +855 -0
  550. package/lib/Telegram/core/helpers/args.js +57 -0
  551. package/lib/Telegram/core/helpers/check.js +55 -0
  552. package/lib/Telegram/core/helpers/compact.js +16 -0
  553. package/lib/Telegram/core/helpers/deunionize.js +12 -0
  554. package/lib/Telegram/core/helpers/formatting.js +91 -0
  555. package/lib/Telegram/core/helpers/util.js +50 -0
  556. package/lib/Telegram/core/network/client.js +330 -0
  557. package/lib/Telegram/core/network/error.js +21 -0
  558. package/lib/Telegram/core/network/multipart-stream.js +71 -0
  559. package/lib/Telegram/core/network/polling.js +87 -0
  560. package/lib/Telegram/core/network/webhook.js +54 -0
  561. package/lib/Telegram/core/types/typegram.js +27 -0
  562. package/lib/Telegram/elynn-telegraf.js +256 -0
  563. package/lib/Telegram/esm-bridge.mjs +21 -0
  564. package/lib/Telegram/filters.js +69 -0
  565. package/lib/Telegram/format.js +58 -0
  566. package/lib/Telegram/future.js +140 -0
  567. package/lib/Telegram/index.js +59 -0
  568. package/lib/Telegram/input.js +61 -0
  569. package/lib/Telegram/markup.js +121 -0
  570. package/lib/Telegram/middleware.js +2 -0
  571. package/lib/Telegram/package.json +3 -0
  572. package/lib/Telegram/reactions.js +84 -0
  573. package/lib/Telegram/router.js +46 -0
  574. package/lib/Telegram/scenes/base.js +39 -0
  575. package/lib/Telegram/scenes/context.js +104 -0
  576. package/lib/Telegram/scenes/index.js +21 -0
  577. package/lib/Telegram/scenes/stage.js +49 -0
  578. package/lib/Telegram/scenes/wizard/context.js +31 -0
  579. package/lib/Telegram/scenes/wizard/index.js +45 -0
  580. package/lib/Telegram/scenes.js +17 -0
  581. package/lib/Telegram/session.js +166 -0
  582. package/lib/Telegram/telegram-types.js +6 -0
  583. package/lib/Telegram/telegram.js +945 -0
  584. package/lib/Telegram/types.js +2 -0
  585. package/lib/Telegram/utils.js +5 -0
  586. package/lib/Types/Auth.d.ts +2 -0
  587. package/lib/Types/Auth.d.ts.map +1 -0
  588. package/lib/Types/Auth.js +2 -0
  589. package/lib/Types/Auth.js.map +1 -0
  590. package/lib/Types/Bussines.d.ts +2 -0
  591. package/lib/Types/Bussines.d.ts.map +1 -0
  592. package/lib/Types/Bussines.js +2 -0
  593. package/lib/Types/Bussines.js.map +1 -0
  594. package/lib/Types/Call.d.ts +2 -0
  595. package/lib/Types/Call.d.ts.map +1 -0
  596. package/lib/Types/Call.js +2 -0
  597. package/lib/Types/Call.js.map +1 -0
  598. package/lib/Types/Chat.d.ts +2 -0
  599. package/lib/Types/Chat.d.ts.map +1 -0
  600. package/lib/Types/Chat.js +8 -0
  601. package/lib/Types/Chat.js.map +1 -0
  602. package/lib/Types/Contact.d.ts +2 -0
  603. package/lib/Types/Contact.d.ts.map +1 -0
  604. package/lib/Types/Contact.js +2 -0
  605. package/lib/Types/Contact.js.map +1 -0
  606. package/lib/Types/Events.d.ts +2 -0
  607. package/lib/Types/Events.d.ts.map +1 -0
  608. package/lib/Types/Events.js +2 -0
  609. package/lib/Types/Events.js.map +1 -0
  610. package/lib/Types/GroupMetadata.d.ts +2 -0
  611. package/lib/Types/GroupMetadata.d.ts.map +1 -0
  612. package/lib/Types/GroupMetadata.js +2 -0
  613. package/lib/Types/GroupMetadata.js.map +1 -0
  614. package/lib/Types/Label.d.ts +3 -0
  615. package/lib/Types/Label.d.ts.map +1 -0
  616. package/lib/Types/Label.js +25 -0
  617. package/lib/Types/Label.js.map +1 -0
  618. package/lib/Types/LabelAssociation.d.ts +3 -0
  619. package/lib/Types/LabelAssociation.d.ts.map +1 -0
  620. package/lib/Types/LabelAssociation.js +7 -0
  621. package/lib/Types/LabelAssociation.js.map +1 -0
  622. package/lib/Types/Message.d.ts +12 -0
  623. package/lib/Types/Message.d.ts.map +1 -0
  624. package/lib/Types/Message.js +18 -0
  625. package/lib/Types/Message.js.map +1 -0
  626. package/lib/Types/Mex.d.ts +3 -0
  627. package/lib/Types/Mex.d.ts.map +1 -0
  628. package/lib/Types/Mex.js +39 -0
  629. package/lib/Types/Mex.js.map +1 -0
  630. package/lib/Types/Product.d.ts +2 -0
  631. package/lib/Types/Product.d.ts.map +1 -0
  632. package/lib/Types/Product.js +2 -0
  633. package/lib/Types/Product.js.map +1 -0
  634. package/lib/Types/RichType.d.ts +3 -0
  635. package/lib/Types/RichType.d.ts.map +1 -0
  636. package/lib/Types/RichType.js +23 -0
  637. package/lib/Types/RichType.js.map +1 -0
  638. package/lib/Types/Signal.d.ts +2 -0
  639. package/lib/Types/Signal.d.ts.map +1 -0
  640. package/lib/Types/Signal.js +2 -0
  641. package/lib/Types/Signal.js.map +1 -0
  642. package/lib/Types/Socket.d.ts +2 -0
  643. package/lib/Types/Socket.d.ts.map +1 -0
  644. package/lib/Types/Socket.js +2 -0
  645. package/lib/Types/Socket.js.map +1 -0
  646. package/lib/Types/State.d.ts +6 -0
  647. package/lib/Types/State.d.ts.map +1 -0
  648. package/lib/Types/State.js +56 -0
  649. package/lib/Types/State.js.map +1 -0
  650. package/lib/Types/USync.d.ts +2 -0
  651. package/lib/Types/USync.d.ts.map +1 -0
  652. package/lib/Types/USync.js +2 -0
  653. package/lib/Types/USync.js.map +1 -0
  654. package/lib/Types/index.d.ts +14 -0
  655. package/lib/Types/index.d.ts.map +1 -0
  656. package/lib/Types/index.js +26 -0
  657. package/lib/Types/index.js.map +1 -0
  658. package/lib/Utils/auth-utils.d.ts +58 -0
  659. package/lib/Utils/auth-utils.d.ts.map +1 -0
  660. package/lib/Utils/auth-utils.js +302 -0
  661. package/lib/Utils/auth-utils.js.map +1 -0
  662. package/lib/Utils/browser-utils.d.ts +9 -0
  663. package/lib/Utils/browser-utils.d.ts.map +1 -0
  664. package/lib/Utils/browser-utils.js +36 -0
  665. package/lib/Utils/browser-utils.js.map +1 -0
  666. package/lib/Utils/business.d.ts +50 -0
  667. package/lib/Utils/business.d.ts.map +1 -0
  668. package/lib/Utils/business.js +231 -0
  669. package/lib/Utils/business.js.map +1 -0
  670. package/lib/Utils/chat-utils.d.ts +409 -0
  671. package/lib/Utils/chat-utils.d.ts.map +1 -0
  672. package/lib/Utils/chat-utils.js +872 -0
  673. package/lib/Utils/chat-utils.js.map +1 -0
  674. package/lib/Utils/companion-reg-client-utils.d.ts +5 -0
  675. package/lib/Utils/companion-reg-client-utils.d.ts.map +1 -0
  676. package/lib/Utils/companion-reg-client-utils.js +46 -0
  677. package/lib/Utils/companion-reg-client-utils.js.map +1 -0
  678. package/lib/Utils/crypto.d.ts +40 -0
  679. package/lib/Utils/crypto.d.ts.map +1 -0
  680. package/lib/Utils/crypto.js +119 -0
  681. package/lib/Utils/crypto.js.map +1 -0
  682. package/lib/Utils/decode-wa-message.d.ts +84 -0
  683. package/lib/Utils/decode-wa-message.d.ts.map +1 -0
  684. package/lib/Utils/decode-wa-message.js +325 -0
  685. package/lib/Utils/decode-wa-message.js.map +1 -0
  686. package/lib/Utils/event-buffer.d.ts +13 -0
  687. package/lib/Utils/event-buffer.d.ts.map +1 -0
  688. package/lib/Utils/event-buffer.js +622 -0
  689. package/lib/Utils/event-buffer.js.map +1 -0
  690. package/lib/Utils/generics.d.ts +64 -0
  691. package/lib/Utils/generics.d.ts.map +1 -0
  692. package/lib/Utils/generics.js +395 -0
  693. package/lib/Utils/generics.js.map +1 -0
  694. package/lib/Utils/history.d.ts +76 -0
  695. package/lib/Utils/history.d.ts.map +1 -0
  696. package/lib/Utils/history.js +134 -0
  697. package/lib/Utils/history.js.map +1 -0
  698. package/lib/Utils/identity-change-handler.d.ts +14 -0
  699. package/lib/Utils/identity-change-handler.d.ts.map +1 -0
  700. package/lib/Utils/identity-change-handler.js +50 -0
  701. package/lib/Utils/identity-change-handler.js.map +1 -0
  702. package/lib/Utils/index.d.ts +25 -0
  703. package/lib/Utils/index.d.ts.map +1 -0
  704. package/lib/Utils/index.js +27 -0
  705. package/lib/Utils/index.js.map +1 -0
  706. package/lib/Utils/link-preview.d.ts +13 -0
  707. package/lib/Utils/link-preview.d.ts.map +1 -0
  708. package/lib/Utils/link-preview.js +85 -0
  709. package/lib/Utils/link-preview.js.map +1 -0
  710. package/lib/Utils/logger.d.ts +3 -0
  711. package/lib/Utils/logger.d.ts.map +1 -0
  712. package/lib/Utils/logger.js +3 -0
  713. package/lib/Utils/logger.js.map +1 -0
  714. package/lib/Utils/lt-hash.d.ts +7 -0
  715. package/lib/Utils/lt-hash.d.ts.map +1 -0
  716. package/lib/Utils/lt-hash.js +8 -0
  717. package/lib/Utils/lt-hash.js.map +1 -0
  718. package/lib/Utils/make-mutex.d.ts +7 -0
  719. package/lib/Utils/make-mutex.d.ts.map +1 -0
  720. package/lib/Utils/make-mutex.js +33 -0
  721. package/lib/Utils/make-mutex.js.map +1 -0
  722. package/lib/Utils/message-retry-manager.d.ts +80 -0
  723. package/lib/Utils/message-retry-manager.d.ts.map +1 -0
  724. package/lib/Utils/message-retry-manager.js +265 -0
  725. package/lib/Utils/message-retry-manager.js.map +1 -0
  726. package/lib/Utils/messages-media.d.ts +137 -0
  727. package/lib/Utils/messages-media.d.ts.map +1 -0
  728. package/lib/Utils/messages-media.js +843 -0
  729. package/lib/Utils/messages-media.js.map +1 -0
  730. package/lib/Utils/messages.d.ts +46 -0
  731. package/lib/Utils/messages.d.ts.map +1 -0
  732. package/lib/Utils/messages.js +1878 -0
  733. package/lib/Utils/messages.js.map +1 -0
  734. package/lib/Utils/noise-handler.d.ts +21 -0
  735. package/lib/Utils/noise-handler.d.ts.map +1 -0
  736. package/lib/Utils/noise-handler.js +201 -0
  737. package/lib/Utils/noise-handler.js.map +1 -0
  738. package/lib/Utils/offline-node-processor.d.ts +10 -0
  739. package/lib/Utils/offline-node-processor.d.ts.map +1 -0
  740. package/lib/Utils/offline-node-processor.js +40 -0
  741. package/lib/Utils/offline-node-processor.js.map +1 -0
  742. package/lib/Utils/pre-key-manager.d.ts +26 -0
  743. package/lib/Utils/pre-key-manager.d.ts.map +1 -0
  744. package/lib/Utils/pre-key-manager.js +106 -0
  745. package/lib/Utils/pre-key-manager.js.map +1 -0
  746. package/lib/Utils/process-message.d.ts +84 -0
  747. package/lib/Utils/process-message.d.ts.map +1 -0
  748. package/lib/Utils/process-message.js +745 -0
  749. package/lib/Utils/process-message.js.map +1 -0
  750. package/lib/Utils/reporting-utils.d.ts +13 -0
  751. package/lib/Utils/reporting-utils.d.ts.map +1 -0
  752. package/lib/Utils/reporting-utils.js +258 -0
  753. package/lib/Utils/reporting-utils.js.map +1 -0
  754. package/lib/Utils/rich-message-utils.d.ts +49 -0
  755. package/lib/Utils/rich-message-utils.d.ts.map +1 -0
  756. package/lib/Utils/rich-message-utils.js +400 -0
  757. package/lib/Utils/rich-message-utils.js.map +1 -0
  758. package/lib/Utils/session-guard.js +148 -0
  759. package/lib/Utils/signal.d.ts +83 -0
  760. package/lib/Utils/signal.d.ts.map +1 -0
  761. package/lib/Utils/signal.js +201 -0
  762. package/lib/Utils/signal.js.map +1 -0
  763. package/lib/Utils/stanza-ack.d.ts +17 -0
  764. package/lib/Utils/stanza-ack.d.ts.map +1 -0
  765. package/lib/Utils/stanza-ack.js +38 -0
  766. package/lib/Utils/stanza-ack.js.map +1 -0
  767. package/lib/Utils/sync-action-utils.d.ts +3 -0
  768. package/lib/Utils/sync-action-utils.d.ts.map +1 -0
  769. package/lib/Utils/sync-action-utils.js +49 -0
  770. package/lib/Utils/sync-action-utils.js.map +1 -0
  771. package/lib/Utils/tc-token-utils.d.ts +30 -0
  772. package/lib/Utils/tc-token-utils.d.ts.map +1 -0
  773. package/lib/Utils/tc-token-utils.js +163 -0
  774. package/lib/Utils/tc-token-utils.js.map +1 -0
  775. package/lib/Utils/text-sticker.js +149 -0
  776. package/lib/Utils/use-multi-file-auth-state.d.ts +11 -0
  777. package/lib/Utils/use-multi-file-auth-state.d.ts.map +1 -0
  778. package/lib/Utils/use-multi-file-auth-state.js +121 -0
  779. package/lib/Utils/use-multi-file-auth-state.js.map +1 -0
  780. package/lib/Utils/use-single-file-auth-state.d.ts +11 -0
  781. package/lib/Utils/use-single-file-auth-state.d.ts.map +1 -0
  782. package/lib/Utils/use-single-file-auth-state.js +109 -0
  783. package/lib/Utils/use-single-file-auth-state.js.map +1 -0
  784. package/lib/Utils/use-sqlite-auth-state.d.ts +11 -0
  785. package/lib/Utils/use-sqlite-auth-state.d.ts.map +1 -0
  786. package/lib/Utils/use-sqlite-auth-state.js +109 -0
  787. package/lib/Utils/use-sqlite-auth-state.js.map +1 -0
  788. package/lib/Utils/validate-connection.d.ts +44 -0
  789. package/lib/Utils/validate-connection.d.ts.map +1 -0
  790. package/lib/Utils/validate-connection.js +203 -0
  791. package/lib/Utils/validate-connection.js.map +1 -0
  792. package/lib/WABinary/constants.d.ts +62 -0
  793. package/lib/WABinary/constants.d.ts.map +1 -0
  794. package/lib/WABinary/constants.js +1467 -0
  795. package/lib/WABinary/constants.js.map +1 -0
  796. package/lib/WABinary/decode.d.ts +10 -0
  797. package/lib/WABinary/decode.d.ts.map +1 -0
  798. package/lib/WABinary/decode.js +262 -0
  799. package/lib/WABinary/decode.js.map +1 -0
  800. package/lib/WABinary/encode.d.ts +3 -0
  801. package/lib/WABinary/encode.d.ts.map +1 -0
  802. package/lib/WABinary/encode.js +220 -0
  803. package/lib/WABinary/encode.js.map +1 -0
  804. package/lib/WABinary/generic-utils.d.ts +77 -0
  805. package/lib/WABinary/generic-utils.d.ts.map +1 -0
  806. package/lib/WABinary/generic-utils.js +226 -0
  807. package/lib/WABinary/generic-utils.js.map +1 -0
  808. package/lib/WABinary/index.d.ts +6 -0
  809. package/lib/WABinary/index.d.ts.map +1 -0
  810. package/lib/WABinary/index.js +6 -0
  811. package/lib/WABinary/index.js.map +1 -0
  812. package/lib/WABinary/jid-utils.d.ts +29 -0
  813. package/lib/WABinary/jid-utils.d.ts.map +1 -0
  814. package/lib/WABinary/jid-utils.js +96 -0
  815. package/lib/WABinary/jid-utils.js.map +1 -0
  816. package/lib/WABinary/types.d.ts +2 -0
  817. package/lib/WABinary/types.d.ts.map +1 -0
  818. package/lib/WABinary/types.js +2 -0
  819. package/lib/WABinary/types.js.map +1 -0
  820. package/lib/WAM/BinaryInfo.d.ts +8 -0
  821. package/lib/WAM/BinaryInfo.d.ts.map +1 -0
  822. package/lib/WAM/BinaryInfo.js +10 -0
  823. package/lib/WAM/BinaryInfo.js.map +1 -0
  824. package/lib/WAM/constants.d.ts +34927 -0
  825. package/lib/WAM/constants.d.ts.map +1 -0
  826. package/lib/WAM/constants.js +22853 -0
  827. package/lib/WAM/constants.js.map +1 -0
  828. package/lib/WAM/encode.d.ts +2 -0
  829. package/lib/WAM/encode.d.ts.map +1 -0
  830. package/lib/WAM/encode.js +150 -0
  831. package/lib/WAM/encode.js.map +1 -0
  832. package/lib/WAM/index.d.ts +4 -0
  833. package/lib/WAM/index.d.ts.map +1 -0
  834. package/lib/WAM/index.js +4 -0
  835. package/lib/WAM/index.js.map +1 -0
  836. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts +37 -0
  837. package/lib/WAUSync/Protocols/USyncContactProtocol.d.ts.map +1 -0
  838. package/lib/WAUSync/Protocols/USyncContactProtocol.js +52 -0
  839. package/lib/WAUSync/Protocols/USyncContactProtocol.js.map +1 -0
  840. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts +23 -0
  841. package/lib/WAUSync/Protocols/USyncDeviceProtocol.d.ts.map +1 -0
  842. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js +54 -0
  843. package/lib/WAUSync/Protocols/USyncDeviceProtocol.js.map +1 -0
  844. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts +13 -0
  845. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.d.ts.map +1 -0
  846. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js +27 -0
  847. package/lib/WAUSync/Protocols/USyncDisappearingModeProtocol.js.map +1 -0
  848. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts +13 -0
  849. package/lib/WAUSync/Protocols/USyncStatusProtocol.d.ts.map +1 -0
  850. package/lib/WAUSync/Protocols/USyncStatusProtocol.js +38 -0
  851. package/lib/WAUSync/Protocols/USyncStatusProtocol.js.map +1 -0
  852. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts +10 -0
  853. package/lib/WAUSync/Protocols/USyncUsernameProtocol.d.ts.map +1 -0
  854. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js +25 -0
  855. package/lib/WAUSync/Protocols/USyncUsernameProtocol.js.map +1 -0
  856. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts +39 -0
  857. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.d.ts.map +1 -0
  858. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js +51 -0
  859. package/lib/WAUSync/Protocols/UsyncBotProfileProtocol.js.map +1 -0
  860. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts +15 -0
  861. package/lib/WAUSync/Protocols/UsyncLIDProtocol.d.ts.map +1 -0
  862. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js +29 -0
  863. package/lib/WAUSync/Protocols/UsyncLIDProtocol.js.map +1 -0
  864. package/lib/WAUSync/Protocols/index.d.ts +6 -0
  865. package/lib/WAUSync/Protocols/index.d.ts.map +1 -0
  866. package/lib/WAUSync/Protocols/index.js +6 -0
  867. package/lib/WAUSync/Protocols/index.js.map +1 -0
  868. package/lib/WAUSync/USyncQuery.d.ts +21 -0
  869. package/lib/WAUSync/USyncQuery.d.ts.map +1 -0
  870. package/lib/WAUSync/USyncQuery.js +98 -0
  871. package/lib/WAUSync/USyncQuery.js.map +1 -0
  872. package/lib/WAUSync/USyncUser.d.ts +17 -0
  873. package/lib/WAUSync/USyncUser.d.ts.map +1 -0
  874. package/lib/WAUSync/USyncUser.js +31 -0
  875. package/lib/WAUSync/USyncUser.js.map +1 -0
  876. package/lib/WAUSync/index.d.ts +4 -0
  877. package/lib/WAUSync/index.d.ts.map +1 -0
  878. package/lib/WAUSync/index.js +4 -0
  879. package/lib/WAUSync/index.js.map +1 -0
  880. package/lib/index.d.ts +201 -0
  881. package/lib/index.d.ts.map +1 -0
  882. package/lib/index.js +314 -0
  883. package/lib/index.js.map +1 -0
  884. package/lib/plugins/loader.cjs +26 -0
  885. package/lib/plugins/loader.js +94 -0
  886. package/package.json +148 -0
@@ -0,0 +1,1570 @@
1
+ /** @module Types/Channels */
2
+ import type * as Types from "./namespaced";
3
+ import type {
4
+ ButtonStyles,
5
+ ChannelTypes,
6
+ ComponentTypes,
7
+ InteractionTypes,
8
+ MessageActivityTypes,
9
+ MessageTypes,
10
+ OverwriteTypes,
11
+ SelectMenuTypes,
12
+ SortOrderTypes,
13
+ StickerFormatTypes,
14
+ TextInputStyles,
15
+ ThreadAutoArchiveDuration,
16
+ VideoQualityModes,
17
+ ForumLayoutTypes,
18
+ ChannelTypeMap,
19
+ PrivateChannelTypes,
20
+ NotImplementedChannelTypes,
21
+ GuildChannelTypes,
22
+ ThreadChannelTypes,
23
+ GuildChannelsWithoutThreadsTypes,
24
+ EditableChannelTypes,
25
+ TextableChannelTypes,
26
+ TextableGuildChannelTypes,
27
+ TextableChannelsWithoutThreadsTypes,
28
+ TextableGuildChannelsWithoutThreadsTypes,
29
+ VoiceChannelTypes,
30
+ InteractionChannelTypes,
31
+ InviteChannelTypes,
32
+ ImplementedChannelTypes,
33
+ ThreadOnlyChannelTypes,
34
+ ReactionType,
35
+ PollLayoutType,
36
+ SeparatorSpacingSize,
37
+ GuildInviteChannelTypes,
38
+ DMInviteChannelTypes,
39
+ MessageReferenceType
40
+ } from "../Constants";
41
+ import type Member from "../structures/Member";
42
+ import type AnnouncementChannel from "../structures/AnnouncementChannel";
43
+ import type AnnouncementThreadChannel from "../structures/AnnouncementThreadChannel";
44
+ import type PrivateThreadChannel from "../structures/PrivateThreadChannel";
45
+ import type PublicThreadChannel from "../structures/PublicThreadChannel";
46
+ import type TextChannel from "../structures/TextChannel";
47
+ import type User from "../structures/User";
48
+ import type ForumChannel from "../structures/ForumChannel";
49
+ import type Message from "../structures/Message";
50
+ import type Guild from "../structures/Guild";
51
+ import type Invite from "../structures/Invite";
52
+ import type Attachment from "../structures/Attachment";
53
+ import type GuildChannel from "../structures/GuildChannel";
54
+ import type CategoryChannel from "../structures/CategoryChannel";
55
+ import type MediaChannel from "../structures/MediaChannel";
56
+
57
+ export interface RawChannel {
58
+ application_id?: string;
59
+ applied_tags?: Array<string>;
60
+ available_tags?: Array<RawForumTag>;
61
+ bitrate?: number;
62
+ default_auto_archive_duration?: ThreadAutoArchiveDuration;
63
+ default_forum_layout?: ForumLayoutTypes;
64
+ default_reaction_emoji?: {
65
+ emoji_id: string | null;
66
+ emoji_name: string | null;
67
+ } | null;
68
+ default_sort_order?: SortOrderTypes | null;
69
+ default_thread_rate_limit_per_user?: number;
70
+ flags?: number;
71
+ guild_id?: string;
72
+ icon?: string | null;
73
+ icon_emoji?: IconEmoji;
74
+ id: string;
75
+ last_message_id?: string | null;
76
+ last_pin_timestamp?: string | null;
77
+ managed?: boolean;
78
+ member?: RawChannelThreadMember;
79
+ member_count?: number;
80
+ message_count?: number;
81
+ name?: string | null;
82
+ newly_created?: boolean;
83
+ nsfw?: boolean;
84
+ owner_id?: string;
85
+ parent_id?: string | null;
86
+ permission_overwrites?: Array<RawOverwrite>;
87
+ permissions?: string;
88
+ position?: number;
89
+ rate_limit_per_user?: number;
90
+ recipients?: Array<Types.Users.RawUser>;
91
+ rtc_region?: string | null;
92
+ status?: string | null;
93
+ thread_metadata?: RawThreadMetadata;
94
+ topic?: string | null;
95
+ total_message_sent?: number;
96
+ type: ChannelTypes;
97
+ user_limit?: number;
98
+ video_quality_mode?: VideoQualityModes;
99
+ }
100
+ export interface RawGuildChannel extends Required<Pick<RawChannel, "id" | "guild_id" | "parent_id">> { name: string; type: GuildChannels; }
101
+ export interface RawPrivateChannel extends Required<Pick<RawChannel, "id" | "last_message_id" | "recipients">> { type: ChannelTypes.DM; }
102
+ // nicks is undocumented, creating a group dm DOES work, and they show in the client, so we're supporting them
103
+ export interface RawGroupChannel extends Required<Pick<RawChannel, "id" | "recipients" | "application_id" | "icon" | "owner_id" | "nsfw" | "last_message_id">> { managed: boolean; name: string; nicks?: Array<Record<"id" | "nick", string>>; type: ChannelTypes.GROUP_DM; }
104
+ export interface RawTextChannel extends Omit<RawGuildChannel, "type">, Required<Pick<RawChannel, "default_auto_archive_duration" | "last_message_id" | "last_pin_timestamp" | "rate_limit_per_user" | "topic" | "nsfw" | "permission_overwrites" | "position">> { type: ChannelTypes.GUILD_TEXT; }
105
+ export interface RawCategoryChannel extends Omit<RawGuildChannel, "type">, Required<Pick<RawChannel, "permission_overwrites" | "position">> { type: ChannelTypes.GUILD_CATEGORY; }
106
+ export interface RawAnnouncementChannel extends Omit<RawTextChannel, "type"> { type: ChannelTypes.GUILD_ANNOUNCEMENT; }
107
+ export interface RawVoiceChannel extends Omit<RawGuildChannel, "type">, Required<Pick<RawChannel, "bitrate" | "user_limit" | "video_quality_mode" | "rtc_region" | "nsfw" | "topic" | "permission_overwrites" | "position" | "last_message_id" | "rate_limit_per_user" | "status">> { type: ChannelTypes.GUILD_VOICE; }
108
+ export interface RawStageChannel extends Omit<RawVoiceChannel, "type"> { type: ChannelTypes.GUILD_STAGE_VOICE; }
109
+ export type RawThreadChannel = RawAnnouncementThreadChannel | RawPublicThreadChannel | RawPrivateThreadChannel;
110
+ export interface RawAnnouncementThreadChannel extends Required<Pick<RawChannel, "id" | "guild_id" | "parent_id" | "owner_id" | "last_message_id" | "thread_metadata" | "message_count" | "member_count" | "rate_limit_per_user" | "flags" | "total_message_sent" | "newly_created" | "member">> { name: string; parent_id: string; type: ChannelTypes.ANNOUNCEMENT_THREAD; }
111
+ export interface RawPublicThreadChannel extends Omit<RawAnnouncementThreadChannel, "type">, Required<Pick<RawChannel, "applied_tags">> { type: ChannelTypes.PUBLIC_THREAD; }
112
+ export interface RawPrivateThreadChannel extends Omit<RawAnnouncementThreadChannel, "type" | "member"> { member: RawChannel["member"]; type: ChannelTypes.PRIVATE_THREAD; }
113
+ export interface RawThreadOnlyChannel extends Omit<RawGuildChannel, "type">, Required<Pick<RawChannel, "position" | "topic" | "flags" | "permission_overwrites" | "rate_limit_per_user" | "nsfw" | "available_tags" | "default_reaction_emoji" | "last_message_id" | "default_sort_order" | "default_thread_rate_limit_per_user" | "default_auto_archive_duration" | "default_forum_layout">> { type: ThreadOnlyChannels; }
114
+ export interface RawForumChannel extends Omit<RawThreadOnlyChannel, "type"> { type: ChannelTypes.GUILD_FORUM; }
115
+ export interface RawMediaChannel extends Omit<RawThreadOnlyChannel, "type"> { type: ChannelTypes.GUILD_MEDIA; }
116
+
117
+ export interface PartialChannel extends Pick<RawChannel, "id" | "name" | "type"> {}
118
+ export interface RawInteractionResolvedChannel extends Omit<Required<Pick<RawChannel, "id" | "type">>, "name">, Pick<RawChannel, "thread_metadata" | "parent_id" | "permissions"> { name: string | null; }
119
+
120
+ export interface RawOverwrite {
121
+ allow: string;
122
+ deny: string;
123
+ id: string;
124
+ type: OverwriteTypes;
125
+ }
126
+
127
+ export interface Overwrite {
128
+ allow: string | bigint;
129
+ deny: string | bigint;
130
+ id: string;
131
+ type: OverwriteTypes;
132
+ }
133
+
134
+ export interface OverwriteOptions {
135
+ /** The permissions to allow. */
136
+ allow?: string | bigint | null;
137
+ /** The permissions to deny. */
138
+ deny?: string | bigint | null;
139
+ /** The ID of the user or role to apply the permissions to. */
140
+ id: string;
141
+ /** `0` for role, `1` for user. */
142
+ type: OverwriteTypes;
143
+ }
144
+
145
+ export interface RawThreadMetadata {
146
+ archive_timestamp: string;
147
+ archived: boolean;
148
+ auto_archive_duration: ThreadAutoArchiveDuration;
149
+ create_timestamp?: string | null;
150
+ invitable?: boolean;
151
+ locked: boolean;
152
+ }
153
+
154
+ export interface RawThreadMember {
155
+ flags: number;
156
+ id: string;
157
+ join_timestamp: string;
158
+ member?: Types.Guilds.RawMember;
159
+ user_id: string;
160
+ }
161
+ export type RawChannelThreadMember = Pick<RawThreadMember, "flags" | "join_timestamp">;
162
+
163
+ export interface ThreadMember extends UncachedThreadMember {
164
+ /** The flags for this thread member. Used for notifications. */
165
+ flags: number;
166
+ /** The time at which this member joined the thread. */
167
+ joinTimestamp: Date;
168
+ /** The guild member associated with this thread member, if fetched with `withMember` set to true. */
169
+ member?: Member;
170
+ }
171
+
172
+ export interface GetThreadMembersOptions {
173
+ /** Get members after this member id. */
174
+ after?: string;
175
+ /** The maximum number of thread members returned, defaults to 100. */
176
+ limit?: number;
177
+ /** If the results should include a `member` object. This also enables pagination. */
178
+ withMember?: boolean;
179
+ }
180
+
181
+ export interface UncachedThreadMember {
182
+ /** The ID of the thread this member is for. */
183
+ id: string;
184
+ /** The ID of the associated user. */
185
+ userID: string;
186
+ }
187
+
188
+ export interface GatewayThreadMember {
189
+ flags: number;
190
+ joinTimestamp: Date;
191
+ }
192
+ export interface EditGroupDMOptions {
193
+ /** [Group DM] The icon of the channel. */
194
+ icon?: string | Buffer;
195
+ /** The name of the channel. */
196
+ name?: string;
197
+ }
198
+
199
+ export interface EditGuildChannelOptions {
200
+ /** [Forum Thread] The ID of the forum available tags applied on the channel. A maximum of 5 can be applied. */
201
+ appliedTags?: Array<string>;
202
+ /** [Thread] If the thread is archived. */
203
+ archived?: boolean;
204
+ /** [Thread] The duration after which the thread will be archived. */
205
+ autoArchiveDuration?: ThreadAutoArchiveDuration;
206
+ /** [Forum] The {@link Types/Channels.ForumTag | tags} available in the channel. A maximum of 20 can be present. */
207
+ availableTags?: Array<Omit<ForumTag, "id"> & {
208
+ /** The ID of this tag. Omit if you want to create a new tag. */
209
+ id?: string;
210
+ }>;
211
+ /** [Stage, Voice] The bitrate of the channel. Minimum 8000. */
212
+ bitrate?: number | null;
213
+ /** [Announcement, Text] The default auto archive duration for threads made in this channel. */
214
+ defaultAutoArchiveDuration?: ThreadAutoArchiveDuration | null;
215
+ /** [Forum] The default forum layout used to display threads. */
216
+ defaultForumLayout?: ForumLayoutTypes;
217
+ /** [Forum] The default reaction emoji for threads. */
218
+ defaultReactionEmoji?: ForumEmoji | null;
219
+ /** [Forum] The default sort order mode used to sort forum threads. */
220
+ defaultSortOrder?: SortOrderTypes;
221
+ /** [Text, Forum] The default reaction emoji for threads. */
222
+ defaultThreadRateLimitPerUser?: number;
223
+ /** [Forum, Forum Thread] The {@link Constants.ChannelFlags | Channel Flags} to set on the channel. */
224
+ flags?: number;
225
+ /** [Private Thread] If non-moderators can add other non-moderators to the thread. */
226
+ invitable?: boolean;
227
+ /** [Thread] If the thread should be locked. */
228
+ locked?: boolean;
229
+ /** The name of the channel. */
230
+ name?: string;
231
+ /** [Announcement, Text, Voice] If the channel is age gated. */
232
+ nsfw?: string | null;
233
+ /** [Announcement, Forum, Text, Voice] The id of the parent category channel. */
234
+ parentID?: string | null;
235
+ /** Channel or category specific permissions. */
236
+ permissionOverwrites?: Array<OverwriteOptions> | null;
237
+ /** The position of the channel in the channel list. */
238
+ position?: number | null;
239
+ /** [Forum, Text, Thread] The seconds between sending messages for users. Between 0 and 21600. */
240
+ rateLimitPerUser?: number | null;
241
+ /** The reason to be displayed in the audit log. */
242
+ reason?: string;
243
+ /** [Stage, Voice] The voice region id of the channel, null for automatic. */
244
+ rtcRegion?: string | null;
245
+ /** [Announcement, Forum, Text, Voice] The topic of the channel. In forum channels, this is the `Guidelines` section. */
246
+ topic?: string | null;
247
+ /** [Announcement, Text] Provide the opposite type to convert the channel. */
248
+ type?: ChannelTypes.GUILD_TEXT | ChannelTypes.GUILD_ANNOUNCEMENT;
249
+ /** [Voice] The maximum amount of users in the channel. `0` is unlimited, values range 1-99. */
250
+ userLimit?: number | null;
251
+ /** [Voice] The [video quality mode](https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes) of the channel. */
252
+ videoQualityMode?: VideoQualityModes | null;
253
+ }
254
+
255
+ export interface EditChannelOptions extends EditGroupDMOptions, EditGuildChannelOptions {}
256
+ export interface EditAnyGuildChannelOptions extends Pick<EditGuildChannelOptions, "name" | "position" | "permissionOverwrites" | "reason"> {}
257
+ export interface EditTextChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "topic" | "nsfw" | "rateLimitPerUser" | "parentID" | "defaultAutoArchiveDuration"> { type?: ChannelTypes.GUILD_ANNOUNCEMENT; }
258
+ export interface EditAnnouncementChannelOptions extends Omit<EditTextChannelOptions, "rateLimitPerUser" | "type"> { type?: ChannelTypes.GUILD_TEXT; }
259
+ export interface EditVoiceChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "nsfw" | "bitrate" | "userLimit" | "parentID" | "rtcRegion" | "videoQualityMode"> {}
260
+ export interface EditStageChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "bitrate" | "rtcRegion"> {}
261
+ export interface EditThreadChannelOptions extends EditPublicThreadChannelOptions, EditPrivateThreadChannelOptions {}
262
+ export interface EditPublicThreadChannelOptions extends Pick<EditGuildChannelOptions, "name" | "archived" | "autoArchiveDuration" | "locked" | "rateLimitPerUser" | "flags" | "appliedTags"> {}
263
+ export interface EditPrivateThreadChannelOptions extends EditPublicThreadChannelOptions, Pick<EditGuildChannelOptions, "invitable"> {}
264
+ export interface EditForumChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "availableTags" | "defaultReactionEmoji" | "defaultSortOrder" |"defaultThreadRateLimitPerUser" | "flags" | "nsfw" | "rateLimitPerUser" | "topic" | "defaultForumLayout"> {}
265
+ export interface EditMediaChannelOptions extends EditAnyGuildChannelOptions, Pick<EditGuildChannelOptions, "availableTags" | "defaultReactionEmoji" | "defaultSortOrder" |"defaultThreadRateLimitPerUser" | "flags" | "nsfw" | "rateLimitPerUser" | "topic"> {}
266
+
267
+ /* eslint-disable @typescript-eslint/member-ordering */
268
+ export interface EditChannelOptionsMap {
269
+ [ChannelTypes.GUILD_TEXT]: EditTextChannelOptions;
270
+ [ChannelTypes.DM]: never;
271
+ [ChannelTypes.GUILD_VOICE]: EditVoiceChannelOptions;
272
+ [ChannelTypes.GROUP_DM]: EditGroupDMOptions;
273
+ [ChannelTypes.GUILD_CATEGORY]: EditAnyGuildChannelOptions;
274
+ [ChannelTypes.GUILD_ANNOUNCEMENT]: EditAnnouncementChannelOptions;
275
+ [ChannelTypes.ANNOUNCEMENT_THREAD]: EditPublicThreadChannelOptions;
276
+ [ChannelTypes.PUBLIC_THREAD]: EditPublicThreadChannelOptions;
277
+ [ChannelTypes.PRIVATE_THREAD]: EditPrivateThreadChannelOptions;
278
+ [ChannelTypes.GUILD_STAGE_VOICE]: EditStageChannelOptions;
279
+ [ChannelTypes.GUILD_DIRECTORY]: never;
280
+ [ChannelTypes.GUILD_FORUM]: EditForumChannelOptions;
281
+ [ChannelTypes.GUILD_MEDIA]: EditMediaChannelOptions;
282
+ }
283
+ /* eslint-enable @typescript-eslint/member-ordering */
284
+
285
+ export interface AddGroupRecipientOptions {
286
+ /** The access token of the user to add. */
287
+ accessToken: string;
288
+ /** The nickname of the user to add. */
289
+ nick?: string;
290
+ /** The id of the user to add. */
291
+ userID: string;
292
+ }
293
+
294
+ // make sure to add to ExecuteWebhookOptions & InteractionContent
295
+ export interface CreateMessageOptions {
296
+ /** An object that specifies the allowed mentions in this message. */
297
+ allowedMentions?: AllowedMentions;
298
+ /** An array of [partial attachments](https://discord.com/developers/docs/resources/channel#attachment-object) related to the sent files. */
299
+ attachments?: Array<MessageAttachment>;
300
+ /** An array of [components](https://discord.com/developers/docs/interactions/message-components) to send. `snake_case` keys should be converted to `camelCase`, or passed through {@link Util.rawMessageComponents | Util#rawMessageComponents}. Note that the {@link Constants~MessageFlags.IS_COMPONENTS_V2 | IS_COMPONENTS_V2} flag must be provided to use any of the v2 components, and with this enabled `content`, `embeds`, and `stickerIDs` cannot be used. */
301
+ components?: Array<MessageComponent>;
302
+ /** The content of the message. */
303
+ content?: string;
304
+ /** An array of [embeds](https://discord.com/developers/docs/resources/channel#embed-object) to send. `snake_case` keys should be converted to `camelCase`, or passed through {@link Util.rawEmbeds | Util#rawEmbeds}. */
305
+ embeds?: Array<EmbedOptions>;
306
+ /** If Discord should enforce the unique nonce. This prevents duplicate messages being sent within a few minutes. */
307
+ enforceNonce?: boolean;
308
+ /** The files to send. */
309
+ files?: Array<Types.RequestHandler.File>;
310
+ /** The {@link Constants.MessageFlags | Message Flags} to send with the message. */
311
+ flags?: number;
312
+ /** Reply to a message. */
313
+ messageReference?: MessageReference;
314
+ /** A unique number or string used to dedupe this message. `enforceNonce` must be set to true for Discord to dedupe message sends. */
315
+ nonce?: string | number;
316
+ /**
317
+ * A poll to send. Messages with a poll cannot be edited.
318
+ * @note As of [4/18/24](https://github.com/discord/discord-api-docs/pull/6746#issuecomment-2064810908), `attachments` cannot be sent with polls.
319
+ */
320
+ poll?: MessagePollOptions;
321
+ /** The IDs of up to 3 stickers from the current guild to send. */
322
+ stickerIDs?: Array<string>;
323
+ /** If the message should be spoken aloud. */
324
+ tts?: boolean;
325
+ }
326
+
327
+ export interface EmbedOptionsBase {
328
+ color?: number;
329
+ description?: string;
330
+ timestamp?: string;
331
+ title?: string;
332
+ url?: string;
333
+ }
334
+
335
+ export interface RawEmbedOptions extends EmbedOptionsBase {
336
+ author?: RawEmbedAuthorOptions;
337
+ fields?: Array<EmbedField>;
338
+ footer?: RawEmbedFooterOptions;
339
+ image?: EmbedImageOptions;
340
+ thumbnail?: EmbedImageOptions;
341
+ }
342
+
343
+ export interface EmbedOptions extends EmbedOptionsBase {
344
+ author?: EmbedAuthorOptions;
345
+ fields?: Array<EmbedField>;
346
+ footer?: EmbedFooterOptions;
347
+ image?: EmbedImageOptions;
348
+ thumbnail?: EmbedImageOptions;
349
+ }
350
+
351
+ export interface EmbedBase extends EmbedOptionsBase {
352
+ type?: EmbedType;
353
+ }
354
+
355
+ export interface RawEmbed extends EmbedBase {
356
+ author?: RawEmbedAuthor;
357
+ fields?: Array<EmbedField>;
358
+ /** The {@link Constants.EmbedFlags | Embed Flags} for the embed. */
359
+ flags?: number;
360
+ footer?: RawEmbedFooter;
361
+ image?: RawEmbedImage;
362
+ provider?: EmbedProvider;
363
+ thumbnail?: RawEmbedImage;
364
+ video?: RawEmbedVideo;
365
+ }
366
+
367
+ export interface Embed extends EmbedBase {
368
+ author?: EmbedAuthor;
369
+ fields?: Array<EmbedField>;
370
+ /** The {@link Constants.EmbedFlags | Embed Flags} for the embed. */
371
+ flags?: number;
372
+ footer?: EmbedFooter;
373
+ image?: EmbedImage;
374
+ provider?: EmbedProvider;
375
+ thumbnail?: EmbedImage;
376
+ video?: EmbedVideo;
377
+ }
378
+
379
+ export type EmbedType = "rich" | "image" | "video" | "gifv" | "article" | "link" | "poll_result";
380
+
381
+ export interface EmbedAuthorBase {
382
+ name: string;
383
+ url?: string;
384
+ }
385
+
386
+ export interface RawEmbedAuthor extends EmbedAuthorBase {
387
+ icon_url?: string;
388
+ proxy_icon_url?: string;
389
+ }
390
+
391
+ export interface EmbedAuthor extends EmbedAuthorOptions {
392
+ iconURL?: string;
393
+ proxyIconURL?: string;
394
+ }
395
+
396
+ export interface RawEmbedAuthorOptions extends EmbedAuthorBase {
397
+ icon_url?: string;
398
+ }
399
+
400
+ export interface EmbedAuthorOptions extends EmbedAuthorBase {
401
+ iconURL?: string;
402
+ }
403
+
404
+ export interface EmbedFooterBase {
405
+ text: string;
406
+ }
407
+
408
+ export interface RawEmbedFooterOptions extends EmbedFooterBase {
409
+ icon_url?: string;
410
+ }
411
+
412
+ export interface EmbedFooterOptions extends EmbedFooterBase {
413
+ iconURL?: string;
414
+ }
415
+
416
+ export interface RawEmbedFooter extends EmbedFooterBase {
417
+ /** The {@link Constants~EmbedMediaFlags | Embed Media Flags} for the media. */
418
+ flags?: number;
419
+ icon_url?: string;
420
+ proxy_icon_url?: string;
421
+ }
422
+
423
+ export interface EmbedFooter extends EmbedFooterOptions {
424
+ /** The {@link Constants~EmbedMediaFlags | Embed Media Flags} for the media. */
425
+ flags?: number;
426
+ iconURL?: string;
427
+ proxyIconURL?: string;
428
+ }
429
+
430
+ export interface EmbedImageBase {
431
+ height?: number;
432
+ width?: number;
433
+ }
434
+
435
+ export interface RawEmbedImage extends EmbedImageBase, EmbedImageOptions {
436
+ /** The {@link Constants~EmbedMediaFlags | Embed Media Flags} for the media. */
437
+ flags?: number;
438
+ proxy_url?: string;
439
+ }
440
+
441
+ export interface EmbedImage extends EmbedImageBase, EmbedImageOptions {
442
+ /** The {@link Constants~EmbedMediaFlags | Embed Media Flags} for the media. */
443
+ flags?: number;
444
+ proxyURL?: string;
445
+ }
446
+
447
+ export interface EmbedImageOptions {
448
+ url: string;
449
+ }
450
+
451
+ export interface EmbedField {
452
+ inline?: boolean;
453
+ name: string;
454
+ value: string;
455
+ }
456
+
457
+ export interface EmbedVideoBase {
458
+ height?: number;
459
+ url?: string;
460
+ width?: number;
461
+ }
462
+
463
+ export interface RawEmbedVideo extends EmbedVideoBase {
464
+ proxy_url?: string;
465
+ }
466
+
467
+ export interface EmbedVideo extends EmbedVideoBase {
468
+ proxyURL?: string;
469
+ }
470
+
471
+ export interface EmbedProvider {
472
+ name?: string;
473
+ url?: string;
474
+ }
475
+
476
+ export interface AllowedMentions {
477
+ /** If `@everyone`/`@here` mentions should be allowed. */
478
+ everyone?: boolean;
479
+ /** If the replied user (`messageReference`) should be mentioned. */
480
+ repliedUser?: boolean;
481
+ /** An array of role ids that are allowed to be mentioned, or a boolean value to allow all or none. */
482
+ roles?: boolean | Array<string>;
483
+ /** An array of user ids that are allowed to be mentioned, or a boolean value to allow all or none. */
484
+ users?: boolean | Array<string>;
485
+ }
486
+
487
+ export interface MessageReference {
488
+ /** The ID of the channel the replied message is in. */
489
+ channelID?: string;
490
+ /** If creating the message should fail if the message to reply to does not exist. */
491
+ failIfNotExists?: boolean;
492
+ /** The ID of the guild the replied message is in. */
493
+ guildID?: string;
494
+ /** The ID of the message to reply to. */
495
+ messageID?: string;
496
+ /** Determines how associated data is populated. `FORWARD` can only be used for basic messages. {@link Constants~MessageTypes.DEFAULT | DEFAULT}, {@link Constants~MessageTypes.REPLY | REPLY}, {@link Constants~MessageTypes.CONTEXT_MENU_COMMAND | CONTEXT_MENU_COMMAND}, {@link Constants~MessageTypes.DEFAULT | DEFAULT}*/
497
+ type?: MessageReferenceType;
498
+ }
499
+
500
+ export interface RawAttachment {
501
+ application?: Types.Applications.RESTApplication;
502
+ clip_created_at?: string;
503
+ clip_participants?: Array<Types.Users.RawUser>;
504
+ content_type?: string;
505
+ description?: string;
506
+ duration_secs?: number;
507
+ ephemeral?: boolean;
508
+ filename: string;
509
+ flags?: number;
510
+ height?: number;
511
+ id: string;
512
+ proxy_url: string;
513
+ size: number;
514
+ title?: string;
515
+ url: string;
516
+ waveform?: string | null;
517
+ width?: number;
518
+ }
519
+ // @TODO verify what can be sent with `attachments` in message creation/deletion, this is an assumption
520
+ export interface MessageAttachment extends Partial<Pick<RawAttachment, "description" | "filename">> {
521
+ /** The id of the attachment to edit, or the index of `files` to reference. */
522
+ id?: string | number;
523
+ }
524
+
525
+ export interface RawAllowedMentions {
526
+ parse: Array<"everyone" | "roles" | "users">;
527
+ replied_user?: boolean;
528
+ roles?: Array<string>;
529
+ users?: Array<string>;
530
+ }
531
+
532
+ export interface RawMessage {
533
+ activity?: MessageActivity;
534
+ application?: Types.Applications.RawApplication; // @TODO specific properties sent
535
+ application_id?: string;
536
+ attachments: Array<RawAttachment>;
537
+ author: Types.Users.RawUser; // this can be an invalid user if `webhook_id` is set
538
+ call?: RawCall;
539
+ channel_id: string;
540
+ components?: Array<RawMessageComponent>;
541
+ content: string;
542
+ edited_timestamp: string | null;
543
+ embeds: Array<RawEmbed>;
544
+ flags?: number;
545
+ guild_id?: string;
546
+ id: string;
547
+ /** @deprecated */
548
+ interaction?: RawMessageInteraction;
549
+ interaction_metadata?: RawMessageInteractionMetadata;
550
+ member?: Types.Guilds.RawMember;
551
+ mention_channels?: Array<ChannelMention>;
552
+ mention_everyone: boolean;
553
+ mention_roles: Array<string>;
554
+ mentions: Array<Types.Users.RawUserWithMember>;
555
+ message_reference?: RawMessageReference;
556
+ message_snapshots?: Array<RawMessageSnapshot>;
557
+ nonce?: number | string;
558
+ pinned: boolean;
559
+ poll?: RawPoll;
560
+ position?: number;
561
+ reactions?: Array<RawMessageReaction>;
562
+ referenced_message?: RawMessage | null;
563
+ role_subscription_data?: RawRoleSubscriptionData;
564
+ // stickers exists, but is deprecated
565
+ sticker_items?: Array<StickerItem>;
566
+ thread?: RawAnnouncementThreadChannel | RawPublicThreadChannel | RawPrivateThreadChannel;
567
+ timestamp: string;
568
+ tts: boolean;
569
+ type: MessageTypes;
570
+ webhook_id?: string;
571
+ }
572
+
573
+ export interface RawSoundboard {
574
+ available: boolean;
575
+ emoji_id: string | null;
576
+ emoji_name: string | null;
577
+ guild_id?: string;
578
+ name: string;
579
+ sound_id: string;
580
+ user?: Types.Users.RawUser;
581
+ volume: number;
582
+ }
583
+
584
+ export interface RawCall {
585
+ ended_timestamp?: string | null;
586
+ participants: Array<string>;
587
+ }
588
+
589
+ export interface Call {
590
+ endedTimestamp: Date | null;
591
+ participants: Array<string>;
592
+ }
593
+
594
+ export interface ChannelMention {
595
+ guild_id: string;
596
+ id: string;
597
+ name: string;
598
+ type: ChannelTypes;
599
+ }
600
+
601
+ export interface MessageReactionCountDetails {
602
+ burst: number;
603
+ normal: number;
604
+ }
605
+
606
+ export interface RawMessageReaction {
607
+ burst_colors: Array<string>;
608
+ count: number;
609
+ count_details: MessageReactionCountDetails;
610
+ emoji: Types.Guilds.PartialEmoji;
611
+ me: boolean;
612
+ me_burst: boolean;
613
+ }
614
+
615
+ export interface MessageReaction {
616
+ burstColors: Array<string>;
617
+ count: number;
618
+ countDetails: MessageReactionCountDetails;
619
+ emoji: Types.Guilds.PartialEmoji;
620
+ me: boolean;
621
+ meBurst: boolean;
622
+ }
623
+
624
+ export interface MessageActivity {
625
+ party_id?: string;
626
+ type: MessageActivityTypes;
627
+ }
628
+
629
+
630
+ export interface RawMessageReference {
631
+ channel_id: string;
632
+ fail_if_not_exists: boolean;
633
+ guild_id: string;
634
+ message_id: string;
635
+ }
636
+
637
+ export interface RawMessageInteraction {
638
+ id: string;
639
+ member?: Types.Guilds.RawMember;
640
+ name: string;
641
+ type: InteractionTypes;
642
+ user: Types.Users.RawUser;
643
+ }
644
+
645
+ /** @deprecated */
646
+ export interface MessageInteraction {
647
+ id: string;
648
+ member?: Member;
649
+ name: string;
650
+ type: InteractionTypes;
651
+ user: User;
652
+ }
653
+
654
+ export interface RawMessageInteractionMetadata {
655
+ authorizing_integration_owners: Types.Interactions.AuthorizingIntegrationOwners;
656
+ id: string;
657
+ interacted_message_id?: string;
658
+ name?: string;
659
+ original_response_message_id?: string;
660
+ target_message_id?: string;
661
+ target_user?: Types.Users.RawUser;
662
+ triggering_interaction_metadata?: Omit<RawMessageInteractionMetadata, "triggering_interaction_metadata">;
663
+ type: InteractionTypes;
664
+ user: Types.Users.RawUser;
665
+ }
666
+
667
+ export interface MessageInteractionMetadata {
668
+ /** Details about the authorizing user or server for the installation(s) relevant to the interaction. See [Discord's docs](https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-authorizing-integration-owners-object) for more information. */
669
+ authorizingIntegrationOwners: Types.Interactions.AuthorizingIntegrationOwners;
670
+ id: string;
671
+ /** The ID of the message that contained interactive component, present only on messages created from component interactions. */
672
+ interactedMessageID?: string;
673
+ /** Name of the command, including subcommands and subcommand groups, present only on messages created from application command interactions. */
674
+ name?: string;
675
+ /** The ID of the original response message, present only on follow-up messages. */
676
+ originalResponseMessageID?: string;
677
+ /** The message the command was run on, present only on messages created from application command interactions. */
678
+ targetMessageID?: string;
679
+ /** The user the command was run on, present only on messages created from application command interactions. */
680
+ targetUser?: User;
681
+ /** Metadata for the interaction that was used to open the modal, present only on modal submit interactions. */
682
+ triggeringInteractionMetadata?: Omit<MessageInteractionMetadata, "triggeringInteractionMetadata" | "name">;
683
+ type: InteractionTypes;
684
+ /** The user that triggered the reaction. */
685
+ user: User;
686
+ }
687
+
688
+ export interface ApplicationCommandMessageInteractionMetadata extends Omit<MessageInteractionMetadata, "triggeringInteractionMetadata" | "name" | "interactedMessageID" | "type">, Required<Pick<MessageInteractionMetadata, "name">> {
689
+ type: InteractionTypes.APPLICATION_COMMAND;
690
+ }
691
+
692
+ export interface ComponentMessageInteractionMetadata extends Omit<MessageInteractionMetadata, "triggeringInteractionMetadata" | "name" | "interactedMessageID" | "targetMessageID" | "targetUser" | "type">, Required<Pick<MessageInteractionMetadata, "interactedMessageID">> {
693
+ type: InteractionTypes.MESSAGE_COMPONENT;
694
+ }
695
+
696
+ export interface ModalSubmitMessageInteractionMetadata extends Omit<MessageInteractionMetadata, "triggeringInteractionMetadata" | "name" | "interactedMessageID" | "targetMessageID" | "targetUser" | "type"> {
697
+ triggeringInteractionMetadata: ApplicationCommandMessageInteractionMetadata | ComponentMessageInteractionMetadata;
698
+ type: InteractionTypes.MODAL_SUBMIT;
699
+ }
700
+
701
+ export type AnyMessageInteractionMetadata = ApplicationCommandMessageInteractionMetadata | ComponentMessageInteractionMetadata | ModalSubmitMessageInteractionMetadata;
702
+
703
+
704
+ export interface StickerItem {
705
+ format_type: StickerFormatTypes;
706
+ id: string;
707
+ name: string;
708
+ }
709
+
710
+ export type NotImplementedChannels = typeof NotImplementedChannelTypes[number];
711
+ export type ImplementedChannels = typeof ImplementedChannelTypes[number];
712
+ export type GuildChannels = typeof GuildChannelTypes[number];
713
+ export type ThreadChannels = typeof ThreadChannelTypes[number];
714
+ export type GuildChannelsWithoutThreads = typeof GuildChannelsWithoutThreadsTypes[number];
715
+ export type PrivateChannels = typeof PrivateChannelTypes[number];
716
+ export type EditableChannels = typeof EditableChannelTypes[number];
717
+ export type TextableChannels = typeof TextableChannelTypes[number];
718
+ export type TextableGuildChannels = typeof TextableGuildChannelTypes[number];
719
+ export type TextableChannelsWithoutThreads = typeof TextableChannelsWithoutThreadsTypes[number];
720
+ export type TextableGuildChannelsWithoutThreads = typeof TextableGuildChannelsWithoutThreadsTypes[number];
721
+ export type VoiceChannels = typeof VoiceChannelTypes[number];
722
+ export type GuildInviteChannels = typeof GuildInviteChannelTypes[number];
723
+ export type DMInviteChannels = typeof DMInviteChannelTypes[number];
724
+ export type InviteChannels = typeof InviteChannelTypes[number];
725
+ export type InteractionChannels = typeof InteractionChannelTypes[number];
726
+ export type ThreadOnlyChannels = typeof ThreadOnlyChannelTypes[number];
727
+
728
+ export type AnyChannel = ChannelTypeMap[ChannelTypes];
729
+ export type AnyNotImplementedChannel = ChannelTypeMap[NotImplementedChannels];
730
+ export type AnyImplementedChannel = ChannelTypeMap[ImplementedChannels];
731
+ export type AnyGuildChannel = ChannelTypeMap[GuildChannels];
732
+ export type AnyThreadChannel = ChannelTypeMap[ThreadChannels];
733
+ export type AnyGuildChannelWithoutThreads = ChannelTypeMap[GuildChannelsWithoutThreads];
734
+ export type AnyPrivateChannel = ChannelTypeMap[PrivateChannels];
735
+ export type AnyEditableChannel = ChannelTypeMap[EditableChannels];
736
+ export type AnyTextableChannel = ChannelTypeMap[TextableChannels];
737
+ export type AnyTextableGuildChannel = ChannelTypeMap[TextableGuildChannels];
738
+ export type AnyTextableChannelWithoutThreads = ChannelTypeMap[TextableChannelsWithoutThreads];
739
+ export type AnyTextableGuildChannelWithoutThreads = ChannelTypeMap[TextableGuildChannelsWithoutThreads];
740
+ export type AnyVoiceChannel = ChannelTypeMap[VoiceChannels];
741
+ export type AnyGuildInviteChannel = ChannelTypeMap[GuildInviteChannels];
742
+ export type AnyDMInviteChannel = ChannelTypeMap[DMInviteChannels];
743
+ export type AnyInviteChannel = ChannelTypeMap[InviteChannels];
744
+ export type AnyInteractionChannel = ChannelTypeMap[InteractionChannels];
745
+ export type AnyThreadOnlyChannel = ChannelTypeMap[ThreadOnlyChannels];
746
+
747
+ export interface PartialInviteChannel {
748
+ id: string;
749
+ name: string | null;
750
+ recipients?: Array<Record<"username", string>>;
751
+ type: InviteChannels;
752
+ }
753
+
754
+ export interface PartialGuildInviteChannel extends Omit<PartialInviteChannel, "name" | "type" | "recipients"> {
755
+ name: string;
756
+ type: GuildInviteChannels;
757
+ }
758
+
759
+ export interface PartialDMInviteChannel extends Omit<PartialInviteChannel, "type"> {
760
+ type: DMInviteChannels;
761
+ }
762
+
763
+ export type PossiblyUncachedInvite = Invite | UncachedInvite;
764
+ export interface UncachedInvite {
765
+ channel?: AnyInviteChannel | Types.Shared.Uncached;
766
+ code: string;
767
+ guild?: Guild | Types.Shared.Uncached;
768
+ }
769
+
770
+ export interface GetChannelMessagesOptions<T extends AnyTextableChannel | Types.Shared.Uncached = AnyTextableChannel | Types.Shared.Uncached> {
771
+ /** Get messages after this message ID. IDs don't need to be valid, an ID can be generated for any timestamp via {@link Base.generateID | Base#generateID}. */
772
+ after?: string;
773
+ /** Get messages around this message ID. IDs don't need to be valid, an ID can be generated for any timestamp via {@link Base.generateID | Base#generateID}. */
774
+ around?: string;
775
+ /** Get messages before this message ID. IDs don't need to be valid, an ID can be generated for any timestamp via {@link Base.generateID | Base#generateID}. */
776
+ before?: string;
777
+ /** The maximum amount of messages to get. Defaults to 100. Use Infinity if you wish to get as many messages as possible. */
778
+ limit?: number;
779
+ /**
780
+ * A function used to reject certain messages. If `"break"` is returned, further iteration of messages will stop and the previously allowed messages will be returned.
781
+ * @param message The message to filter.
782
+ */
783
+ filter?(message: Message<T>): boolean | "break" | PromiseLike<boolean | "break">;
784
+ }
785
+
786
+ export interface GetChannelMessagesIteratorOptions<T extends AnyTextableChannel | Types.Shared.Uncached = AnyTextableChannel | Types.Shared.Uncached> {
787
+ /** Get messages after this message ID. IDs don't need to be valid, an ID can be generated for any timestamp via {@link Base.generateID | Base#generateID}. */
788
+ after?: string;
789
+ /** Get messages before this message ID. IDs don't need to be valid, an ID can be generated for any timestamp via {@link Base.generateID | Base#generateID}. */
790
+ before?: string;
791
+ /** The maximum amount of messages to get. Defaults to 100. Use Infinity if you wish to get as many messages as possible. */
792
+ limit?: number;
793
+ /**
794
+ * A function used to reject certain messages. If `"break"` is returned, the iterator will immediately exit and yield the previously allowed messages.
795
+ * @param message The message to filter.
796
+ */
797
+ filter?(message: Message<T>): boolean | "break" | PromiseLike<boolean | "break">;
798
+ }
799
+
800
+ export interface MessagesIterator<T extends AnyTextableChannel | Types.Shared.Uncached = AnyTextableChannel | Types.Shared.Uncached> extends AsyncIterable<Array<Message<T>>> {
801
+ /** The most recent "last" message seen by the iterator, used for future requests. */
802
+ lastMessage?: string;
803
+ /** The current limit of remaining messages to get. */
804
+ limit: number;
805
+ }
806
+
807
+ export interface GetReactionsOptions {
808
+ /** The ID of the user to get reactions after. */
809
+ after?: string;
810
+ /** The maximum amount of reactions to get. Defaults to 100. Use Infinity if you wish to get as many reactions as possible. */
811
+ limit?: number;
812
+ /** The type of reactions to get. Defaults to normal. */
813
+ type?: ReactionType;
814
+ }
815
+
816
+ export interface SendSoundboardSoundOptions {
817
+ /** The ID of the soundboard sound to send. */
818
+ soundID: string;
819
+ /** The ID of the guild the soundboard sound is from. */
820
+ sourceGuildID?: string;
821
+ }
822
+
823
+ export interface EditMessageOptions extends Types.Shared.Nullable<Pick<CreateMessageOptions, "content" | "embeds" | "allowedMentions" | "components" | "attachments" | "files" | "flags">> {}
824
+
825
+ export interface EditPermissionOptions {
826
+ /** The permissions to allow. */
827
+ allow?: bigint | string;
828
+ /** The permissions to deny. */
829
+ deny?: bigint | string;
830
+ /** The reason for editing the permission. */
831
+ reason?: string;
832
+ /** The type of the permission overwrite. */
833
+ type: OverwriteTypes;
834
+ }
835
+
836
+ export interface RawFollowedChannel {
837
+ channel_id: string;
838
+ webhook_id: string;
839
+ }
840
+
841
+ export interface FollowedChannel {
842
+ channelID: string;
843
+ webhookID: string;
844
+ }
845
+
846
+ export interface StartThreadFromMessageOptions {
847
+ /** The duration of no activity after which this thread will be automatically archived. */
848
+ autoArchiveDuration?: ThreadAutoArchiveDuration;
849
+ /** The name of the thread. */
850
+ name: string;
851
+ /** The amount of seconds a user has to wait before sending another message. */
852
+ rateLimitPerUser?: number | null;
853
+ /** The reason for creating the thread. */
854
+ reason?: string;
855
+ }
856
+
857
+ export interface StartThreadWithoutMessageOptions extends StartThreadFromMessageOptions {
858
+ /** [Private Thread Only] If non-moderators can add other non-moderators to the thread. */
859
+ invitable?: boolean;
860
+ /** The type of thread to create. */
861
+ type: ThreadChannels;
862
+ }
863
+
864
+ export interface StartThreadInThreadOnlyChannelOptions extends StartThreadFromMessageOptions {
865
+ /** [Forum Channel Only] The IDs of up to 5 tags from the forum to apply to the thread. */
866
+ appliedTags?: Array<string>;
867
+ /** The message to start the thread with. */
868
+ message: ThreadOnlyChannelThreadStarterMessageOptions;
869
+ }
870
+
871
+ export type ThreadOnlyChannelThreadStarterMessageOptions = Pick<CreateMessageOptions, "content" | "embeds" | "allowedMentions" | "components" | "stickerIDs" | "attachments" | "flags" | "files">;
872
+
873
+ export interface GetArchivedThreadsOptions {
874
+ /** A **timestamp** to get threads before. */
875
+ before?: string;
876
+ /** The maximum amount of threads to get. */
877
+ limit?: number;
878
+ }
879
+
880
+ export interface RawArchivedThreads<T extends RawAnnouncementThreadChannel | RawPublicThreadChannel | RawPrivateThreadChannel> {
881
+ has_more: boolean;
882
+ members: Array<RawThreadMember>;
883
+ threads: Array<T>;
884
+ }
885
+
886
+ export interface ArchivedThreads<T extends AnnouncementThreadChannel | PublicThreadChannel | PrivateThreadChannel> {
887
+ hasMore: boolean;
888
+ members: Array<ThreadMember>;
889
+ threads: Array<T>;
890
+ }
891
+
892
+ export interface ThreadMetadata {
893
+ archiveTimestamp: Date;
894
+ archived: boolean;
895
+ autoArchiveDuration: ThreadAutoArchiveDuration;
896
+ createTimestamp: Date | null;
897
+ locked: boolean;
898
+ }
899
+
900
+ export interface PrivateThreadMetadata extends ThreadMetadata {
901
+ invitable: boolean;
902
+ }
903
+
904
+ export interface RawForumTag {
905
+ emoji_id: string | null;
906
+ emoji_name: string | null;
907
+ id: string;
908
+ moderated: boolean;
909
+ name: string;
910
+ }
911
+
912
+ export interface ForumTag {
913
+ /** The emoji for this tag. */
914
+ emoji: ForumEmoji | null;
915
+ /** The ID of this tag. */
916
+ id: string;
917
+ /** If this tag can only be used by moderators. */
918
+ moderated: boolean;
919
+ /** The name of this tag. */
920
+ name: string;
921
+ }
922
+
923
+ export interface ForumEmoji {
924
+ /** The ID of this emoji if custom, null otherwise. */
925
+ id: string | null;
926
+ /** The unicode codepoint of this emoji if default, null otherwise. */
927
+ name: string | null;
928
+ }
929
+
930
+ export type PossiblyUncachedMessage = Message | UncachedEventMessage;
931
+ export type PossiblyUncachedThread = AnyThreadChannel | UncachedEventThread;
932
+ export type MinimalPossiblyUncachedThread = AnyThreadChannel | MinimalPossiblyUncachedEventThread;
933
+
934
+ export interface UncachedEventMessage extends Types.Shared.Uncached {
935
+ channel: AnyTextableChannel | Types.Shared.Uncached;
936
+ channelID: string;
937
+ guild?: Guild;
938
+ guildID?: string;
939
+ }
940
+
941
+ export interface UncachedEventThread extends Pick<AnyThreadChannel, "type">, Types.Shared.Uncached {
942
+ guild?: Guild;
943
+ guildID?: string;
944
+ parent?: ThreadParentChannel | Types.Shared.Uncached;
945
+ parentID: string;
946
+ }
947
+
948
+ export interface MinimalPossiblyUncachedEventThread extends Types.Shared.Uncached {
949
+ guild?: Guild;
950
+ guildID: string;
951
+ }
952
+
953
+ export interface PurgeOptions<T extends AnyTextableGuildChannel | Types.Shared.Uncached> {
954
+ /** The ID of the message to purge after. */
955
+ after?: string;
956
+ /** The ID of the message to purge around. */
957
+ around?: string;
958
+ /** The ID of the message to purge before. */
959
+ before?: string;
960
+ /** The limit of messages to purge. `0` will return immediately, use `Infinity` for no limit. */
961
+ limit: number;
962
+ /** The reason for purging the messages. */
963
+ reason?: string;
964
+ /**
965
+ * A function used to reject certain messages. If `"break"` is returned, further iteration of messages will stop and purging will begin immediately.
966
+ * @param message The message to filter.
967
+ */
968
+ filter?(message: Message<T>): boolean | "break" | PromiseLike<boolean | "break">;
969
+ }
970
+
971
+ export type ThreadParentChannel = TextChannel | AnnouncementChannel | ForumChannel;
972
+
973
+ export interface RawRoleSubscriptionData {
974
+ is_renewal: boolean;
975
+ role_subscription_listing_id: string;
976
+ tier_name: string;
977
+ total_months_subscribed: number;
978
+ }
979
+
980
+ export interface RoleSubscriptionData {
981
+ isRenewal: boolean;
982
+ roleSubscriptionListingID: string;
983
+ tierName: string;
984
+ totalMonthsSubscribed: number;
985
+ }
986
+
987
+ export interface MessagePollOptions {
988
+ /** If multiple votes can be selected. */
989
+ allowMultiselect: boolean;
990
+ /** The answers for this poll. Up to 10 can be specified. */
991
+ answers: Array<PollAnswerOption>;
992
+ /** The duration of this poll in hours. Up to 7 days (168 hours) */
993
+ duration: number;
994
+ layoutType?: PollLayoutType;
995
+ /** The question for the poll. */
996
+ question: PollQuestion;
997
+ }
998
+
999
+ export interface GetPollAnswerUsersOptions {
1000
+ /** Get members after this member id. */
1001
+ after?: string;
1002
+ /** The maximum number of users returned, defaults to 100. */
1003
+ limit?: number;
1004
+ }
1005
+
1006
+ export interface RawPoll {
1007
+ allow_multiselect: boolean;
1008
+ answers: Array<RawPollAnswer>;
1009
+ expiry: string;
1010
+ layout_type: PollLayoutType;
1011
+ question: PollQuestion;
1012
+ results?: RawPollResults;
1013
+ }
1014
+
1015
+ export interface RawPollAnswer {
1016
+ answer_id: number;
1017
+ poll_media: PollMedia;
1018
+ }
1019
+
1020
+ export interface RawPollResults {
1021
+ answer_counts: Array<RawPollAnswerCount>;
1022
+ is_finalized: boolean;
1023
+ }
1024
+
1025
+ export interface PollMedia {
1026
+ /** The emoji to dispaly. */
1027
+ emoji?: Types.Guilds.NullablePartialEmoji;
1028
+ // @FIXME: Discord has said this is currently always nonnull, but not to depend on that in the future (https://github.com/discord/discord-api-docs/pull/6746)
1029
+ /** The text. */
1030
+ text: string;
1031
+ }
1032
+
1033
+ export interface PollQuestion extends Pick<PollMedia, "text"> {}
1034
+
1035
+ export interface PollAnswer {
1036
+ /** The id of this answer in relation to `results.answerCounts.id`. */
1037
+ answerID: number;
1038
+ /** The media object for this answer. */
1039
+ pollMedia: PollMedia;
1040
+ }
1041
+
1042
+ export interface PollAnswerOption extends Pick<PollAnswer, "pollMedia"> {}
1043
+
1044
+ export interface RawPollAnswerCount {
1045
+ count: number;
1046
+ id: number;
1047
+ me_voted: boolean;
1048
+ }
1049
+
1050
+ export interface PollResults {
1051
+ /** The counts for each answer. */
1052
+ answerCounts: Array<PollAnswerCount>;
1053
+ /** If the poll has been finalized. */
1054
+ isFinalized: boolean;
1055
+ }
1056
+
1057
+ export interface PollAnswerCount {
1058
+ /** The count for this answer. */
1059
+ count: number;
1060
+ /** The id of this answer in relation to `answers.answerID`. */
1061
+ id: number;
1062
+ /** If the current user has voted for this answer. */
1063
+ meVoted: boolean;
1064
+ /** The IDs of the users that voted. This will always be out of sync unless you either {@link Poll#getAnswerUsers | fetch the answer voters over REST}, or if the poll was created after the bot started, and stays in the cache. */
1065
+ users: Array<string>;
1066
+ }
1067
+
1068
+ export interface EventReaction {
1069
+ burst: boolean;
1070
+ burstColors?: Array<string>;
1071
+ emoji: Types.Guilds.PartialEmoji;
1072
+ type: ReactionType;
1073
+ }
1074
+
1075
+ export interface RawMessageSnapshotMessage extends Pick<RawMessage, "type" | "content" | "embeds" | "attachments" | "timestamp" | "edited_timestamp" | "flags" | "mentions" | "mention_roles" | "sticker_items" | "components"> {}
1076
+
1077
+ export interface RawMessageSnapshot {
1078
+ message: RawMessageSnapshotMessage;
1079
+ }
1080
+ export interface MessageSnapshotMessage {
1081
+ attachments: Array<Attachment>;
1082
+ components: Array<MessageComponent>;
1083
+ content: string;
1084
+ editedTimestamp: Date | null;
1085
+ embeds: Array<Embed>;
1086
+ flags: number;
1087
+ mentions: Omit<MessageMentions, "everyone" | "members">;
1088
+ stickerItems: Array<StickerItem>;
1089
+ timestamp: Date;
1090
+ type: MessageTypes;
1091
+ }
1092
+
1093
+ export interface MessageSnapshot {
1094
+ message: MessageSnapshotMessage;
1095
+ }
1096
+
1097
+ export interface MessageMentions {
1098
+ /** The ids of the channels mentioned in this message. */
1099
+ channels: Array<string>;
1100
+ /** If @everyone/@here is mentioned in this message. */
1101
+ everyone: boolean;
1102
+ /** The members mentioned in this message. */
1103
+ members: Array<Member>;
1104
+ /** The ids of the roles mentioned in this message. */
1105
+ roles: Array<string>;
1106
+ /** The users mentioned in this message. */
1107
+ users: Array<User>;
1108
+ }
1109
+
1110
+
1111
+ export interface MessagePollResults {
1112
+ questionText: string;
1113
+ totalVotes: number;
1114
+ victorAnswerID?: number;
1115
+ victorAnswerText?: string;
1116
+ victorAnswerVotes: number;
1117
+ }
1118
+
1119
+ export interface RawTextDisplayComponent extends Omit<TextDisplayComponent, "id"> {}
1120
+ export interface RawSeparatorComponent extends Omit<SeparatorComponent, "id"> {}
1121
+
1122
+ export interface RawSectionComponent extends BaseComponent {
1123
+ accessory: RawThumbnailComponent | RawButtonComponent;
1124
+ components: Array<RawTextDisplayComponent>;
1125
+ type: ComponentTypes.SECTION;
1126
+ }
1127
+
1128
+ export type RawComponent = AnyRawMessageComponent | AnyRawModalComponent;
1129
+ export type AnyRawMessageComponent = RawMessageComponent | RawMessageActionRowComponent | RawThumbnailComponent;
1130
+ export type AnyRawModalComponent = RawModalComponent | RawModalActionRowComponent | RawModalLabelComponent;
1131
+ export type AnyRawBaseComponent = RawMessageComponent | RawModalComponent;
1132
+ export type RawMessageActionRowComponent = RawButtonComponent | RawSelectMenuComponent;
1133
+ export type RawMessageComponent = RawMessageActionRow | RawSectionComponent | RawTextDisplayComponent | RawMediaGalleryComponent | RawSeparatorComponent | RawFileComponent | RawContainerComponent;
1134
+ /** @deprecated */
1135
+ export type RawModalActionRowComponent = RawTextInput;
1136
+ export type RawModalLabelComponent = RawCheckboxComponent | RawCheckboxGroupComponent | RawRadioGroupComponent | RawSelectMenuComponent | RawTextInput | RawModalFileUploadComponent;
1137
+ export type RawModalComponent = RawModalActionRow | RawModalLabel | RawTextDisplayComponent;
1138
+ export type RawButtonComponent = RawTextButton | URLButton | RawPremiumButton;
1139
+ export type RawSelectMenuComponent = RawStringSelectMenu | RawUserSelectMenu | RawRoleSelectMenu | RawMentionableSelectMenu | RawChannelSelectMenu;
1140
+
1141
+ export type ToComponentFromRaw<T extends RawComponent> =
1142
+ T extends RawMessageActionRow ? MessageActionRow :
1143
+ T extends RawModalActionRow ? ModalActionRow :
1144
+ T extends RawTextButton ? TextButton :
1145
+ T extends URLButton ? URLButton :
1146
+ T extends RawStringSelectMenu ? StringSelectMenu :
1147
+ T extends RawUserSelectMenu ? UserSelectMenu :
1148
+ T extends RawRoleSelectMenu ? RoleSelectMenu :
1149
+ T extends RawMentionableSelectMenu ? MentionableSelectMenu :
1150
+ T extends RawChannelSelectMenu ? ChannelSelectMenu :
1151
+ T extends RawTextInput ? TextInput :
1152
+ T extends RawSectionComponent ? SectionComponent :
1153
+ T extends RawTextDisplayComponent ? TextDisplayComponent :
1154
+ T extends RawThumbnailComponent ? ThumbnailComponent :
1155
+ T extends RawMediaGalleryComponent ? MediaGalleryComponent :
1156
+ T extends RawSeparatorComponent ? SeparatorComponent :
1157
+ T extends RawFileComponent ? FileComponent :
1158
+ T extends RawContainerComponent ? ContainerComponent :
1159
+ T extends RawModalLabel ? ModalLabel :
1160
+ T extends RawModalFileUploadComponent ? ModalFileUploadComponent :
1161
+ T extends RawRadioGroupComponent ? RadioGroupComponent :
1162
+ T extends RawCheckboxComponent ? CheckboxComponent :
1163
+ T extends RawCheckboxGroupComponent ? CheckboxGroupComponent :
1164
+ never;
1165
+ export type ToRawFromComponent<T extends Component> =
1166
+ T extends MessageActionRow ? RawMessageActionRow :
1167
+ T extends ModalActionRow ? RawModalActionRow :
1168
+ T extends TextButton ? RawTextButton :
1169
+ T extends URLButton ? URLButton :
1170
+ T extends StringSelectMenu ? RawStringSelectMenu :
1171
+ T extends UserSelectMenu ? RawUserSelectMenu :
1172
+ T extends RoleSelectMenu ? RawRoleSelectMenu :
1173
+ T extends MentionableSelectMenu ? RawMentionableSelectMenu :
1174
+ T extends ChannelSelectMenu ? RawChannelSelectMenu :
1175
+ T extends TextInput ? RawTextInput :
1176
+ T extends SectionComponent ? RawSectionComponent :
1177
+ T extends TextDisplayComponent ? RawTextDisplayComponent :
1178
+ T extends ThumbnailComponent ? RawThumbnailComponent :
1179
+ T extends MediaGalleryComponent ? RawMediaGalleryComponent :
1180
+ T extends SeparatorComponent ? RawSeparatorComponent :
1181
+ T extends FileComponent ? RawFileComponent :
1182
+ T extends ContainerComponent ? RawContainerComponent :
1183
+ T extends ModalLabel ? RawModalLabel :
1184
+ T extends ModalFileUploadComponent ? RawModalFileUploadComponent :
1185
+ T extends RadioGroupComponent ? RawRadioGroupComponent :
1186
+ T extends CheckboxComponent ? RawCheckboxComponent :
1187
+ T extends CheckboxGroupComponent ? RawCheckboxGroupComponent :
1188
+ never;
1189
+
1190
+ export interface RawActionRowBase<T extends RawComponent> {
1191
+ components: Array<T>;
1192
+ type: ComponentTypes.ACTION_ROW;
1193
+ }
1194
+
1195
+ export interface RawMessageActionRow extends RawActionRowBase<RawMessageActionRowComponent> {}
1196
+ /** @deprecated */
1197
+ export interface RawModalActionRow extends RawActionRowBase<RawModalActionRowComponent> {}
1198
+ export type ActionRowToRaw<T extends MessageActionRow | ModalActionRow> =
1199
+ T extends MessageActionRow ? RawMessageActionRow :
1200
+ T extends ModalActionRow ? RawModalActionRow : never;
1201
+
1202
+ export type Component = AnyMessageComponent | AnyModalComponent;
1203
+ export type AnyMessageComponent = MessageComponent | MessageActionRowComponent | ThumbnailComponent;
1204
+ export type AnyModalComponent = ModalComponent | ModalActionRowComponent | ModalLabelComponent;
1205
+ export type AnyBaseComponent = MessageComponent | ModalComponent;
1206
+ export type MessageActionRowComponent = ButtonComponent | SelectMenuComponent;
1207
+ export type MessageComponent = MessageActionRow | SectionComponent | TextDisplayComponent | MediaGalleryComponent | SeparatorComponent | FileComponent | ContainerComponent;
1208
+ /** @deprecated */
1209
+ export type ModalActionRowComponent = TextInput;
1210
+ /** a child of a label component */
1211
+ export type ModalLabelComponent = CheckboxComponent | CheckboxGroupComponent | RadioGroupComponent | SelectMenuComponent | TextInput | ModalFileUploadComponent;
1212
+ export type ModalComponent = ModalActionRow | ModalLabel | TextDisplayComponent;
1213
+ export type ButtonComponent = TextButton | URLButton | PremiumButton;
1214
+ export type SelectMenuComponent = StringSelectMenu | UserSelectMenu | RoleSelectMenu | MentionableSelectMenu | ChannelSelectMenu;
1215
+
1216
+ export interface RadioGroupComponent extends BaseComponent {
1217
+ customID: string;
1218
+ id?: number;
1219
+ options: Array<RadioGroupOption>;
1220
+ required?: boolean;
1221
+ type: ComponentTypes.RADIO_GROUP;
1222
+ }
1223
+
1224
+ export interface RawRadioGroupComponent extends BaseComponent {
1225
+ custom_id: string;
1226
+ id?: number;
1227
+ options: Array<RawRadioGroupOption>;
1228
+ required?: boolean;
1229
+ type: ComponentTypes.RADIO_GROUP;
1230
+ }
1231
+
1232
+ export interface RadioGroupOption {
1233
+ default?: boolean;
1234
+ description?: string;
1235
+ label: string;
1236
+ value: string;
1237
+ }
1238
+
1239
+ export interface RawRadioGroupOption {
1240
+ default?: boolean;
1241
+ description?: string;
1242
+ label: string;
1243
+ value: string;
1244
+ }
1245
+
1246
+ export interface CheckboxComponent extends BaseComponent {
1247
+ customID: string;
1248
+ default?: boolean;
1249
+ id?: number;
1250
+ type: ComponentTypes.CHECKBOX;
1251
+ }
1252
+
1253
+ export interface RawCheckboxComponent extends BaseComponent {
1254
+ custom_id: string;
1255
+ default?: boolean;
1256
+ id?: number;
1257
+ type: ComponentTypes.CHECKBOX;
1258
+ }
1259
+
1260
+ export interface CheckboxGroupComponent extends BaseComponent {
1261
+ customID: string;
1262
+ id?: number;
1263
+ maxValues?: number;
1264
+ minValues?: number;
1265
+ options: Array<CheckboxGroupOption>;
1266
+ required?: boolean;
1267
+ type: ComponentTypes.CHECKBOX_GROUP;
1268
+ }
1269
+
1270
+ export interface RawCheckboxGroupComponent extends BaseComponent {
1271
+ custom_id: string;
1272
+ id?: number;
1273
+ max_values?: number;
1274
+ min_values?: number;
1275
+ options: Array<RawCheckboxGroupOption>;
1276
+ required?: boolean;
1277
+ type: ComponentTypes.CHECKBOX_GROUP;
1278
+ }
1279
+
1280
+ export interface CheckboxGroupOption {
1281
+ default?: boolean;
1282
+ description?: string;
1283
+ label: string;
1284
+ value: string;
1285
+ }
1286
+
1287
+ export interface RawCheckboxGroupOption {
1288
+ default?: boolean;
1289
+ description?: string;
1290
+ label: string;
1291
+ value: string;
1292
+ }
1293
+
1294
+ export interface BaseComponent {
1295
+ /** Autoincremented number if not provided */
1296
+ id?: number;
1297
+ type: ComponentTypes;
1298
+ }
1299
+
1300
+ export interface ActionRowBase<T extends Component> extends BaseComponent {
1301
+ components: Array<T>;
1302
+ type: ComponentTypes.ACTION_ROW;
1303
+ }
1304
+
1305
+ export interface MessageActionRow extends ActionRowBase<MessageActionRowComponent> {}
1306
+ /** @deprecated */
1307
+ export interface ModalActionRow extends ActionRowBase<ModalActionRowComponent> {}
1308
+
1309
+ export interface ButtonBase extends BaseComponent {
1310
+ disabled?: boolean;
1311
+ emoji?: Types.Guilds.NullablePartialEmoji;
1312
+ label?: string;
1313
+ style: ButtonStyles;
1314
+ type: ComponentTypes.BUTTON;
1315
+ }
1316
+
1317
+ export interface RawTextButton extends ButtonBase {
1318
+ custom_id: string;
1319
+ style: ButtonStyles.PRIMARY | ButtonStyles.SECONDARY | ButtonStyles.SUCCESS | ButtonStyles.DANGER;
1320
+ }
1321
+
1322
+ export interface TextButton extends ButtonBase {
1323
+ customID: string;
1324
+ style: ButtonStyles.PRIMARY | ButtonStyles.SECONDARY | ButtonStyles.SUCCESS | ButtonStyles.DANGER;
1325
+ }
1326
+
1327
+ export interface URLButton extends ButtonBase {
1328
+ style: ButtonStyles.LINK;
1329
+ url: string;
1330
+ }
1331
+
1332
+ export interface RawPremiumButton extends Omit<ButtonBase, "label" | "emoji"> {
1333
+ sku_id: string;
1334
+ style: ButtonStyles.PREMIUM;
1335
+ }
1336
+
1337
+ export interface PremiumButton extends Omit<ButtonBase, "label" | "emoji"> {
1338
+ skuID: string;
1339
+ style: ButtonStyles.PREMIUM;
1340
+ }
1341
+
1342
+ export interface RawSelectMenuBase<T extends SelectMenuTypes> {
1343
+ custom_id: string;
1344
+ disabled?: boolean;
1345
+ max_values?: number;
1346
+ min_values?: number;
1347
+ placeholder?: string;
1348
+ required?: boolean;
1349
+ type: T;
1350
+ }
1351
+
1352
+ export interface RawStringSelectMenuOptions {
1353
+ options: Array<SelectOption>;
1354
+ }
1355
+
1356
+ export interface RawChannelSelectMenuOptions {
1357
+ channel_types: Array<ChannelTypes>;
1358
+ }
1359
+
1360
+ export interface RawStringSelectMenu extends RawSelectMenuBase<ComponentTypes.STRING_SELECT>, RawStringSelectMenuOptions {}
1361
+ export interface RawUserSelectMenu extends RawSelectMenuBase<ComponentTypes.USER_SELECT>, DefaultValuesRaw {}
1362
+ export interface RawRoleSelectMenu extends RawSelectMenuBase<ComponentTypes.ROLE_SELECT>, DefaultValuesRaw {}
1363
+ export interface RawMentionableSelectMenu extends RawSelectMenuBase<ComponentTypes.MENTIONABLE_SELECT>, DefaultValuesRaw {}
1364
+ export interface RawChannelSelectMenu extends RawSelectMenuBase<ComponentTypes.CHANNEL_SELECT>, RawChannelSelectMenuOptions, DefaultValuesRaw {}
1365
+
1366
+
1367
+ export interface SelectMenuBase<T extends SelectMenuTypes> extends BaseComponent {
1368
+ customID: string;
1369
+ disabled?: boolean;
1370
+ maxValues?: number;
1371
+ minValues?: number;
1372
+ placeholder?: string;
1373
+ required?: boolean;
1374
+ type: T;
1375
+ }
1376
+
1377
+ interface DefaultValuesRaw {
1378
+ default_values?: Array<Types.Interactions.SelectMenuDefaultValue>;
1379
+ }
1380
+
1381
+ interface DefaultValues {
1382
+ defaultValues?: Array<Types.Interactions.SelectMenuDefaultValue>;
1383
+ }
1384
+
1385
+ export interface StringSelectMenuOptions {
1386
+ options: Array<SelectOption>;
1387
+ }
1388
+
1389
+ export interface ChannelSelectMenuOptions {
1390
+ channelTypes: Array<ChannelTypes>;
1391
+ }
1392
+
1393
+ export interface StringSelectMenu extends SelectMenuBase<ComponentTypes.STRING_SELECT>, StringSelectMenuOptions {}
1394
+ export interface UserSelectMenu extends SelectMenuBase<ComponentTypes.USER_SELECT>, DefaultValues {}
1395
+ export interface RoleSelectMenu extends SelectMenuBase<ComponentTypes.ROLE_SELECT>, DefaultValues {}
1396
+ export interface MentionableSelectMenu extends SelectMenuBase<ComponentTypes.MENTIONABLE_SELECT>, DefaultValues {}
1397
+ export interface ChannelSelectMenu extends SelectMenuBase<ComponentTypes.CHANNEL_SELECT>, ChannelSelectMenuOptions, DefaultValues {}
1398
+
1399
+ export interface SelectOption {
1400
+ default?: boolean;
1401
+ description?: string;
1402
+ emoji?: Types.Guilds.NullablePartialEmoji;
1403
+ label: string;
1404
+ value: string;
1405
+ }
1406
+
1407
+ export interface RawTextInput {
1408
+ custom_id: string;
1409
+ /** @deprecated */
1410
+ label?: string;
1411
+ max_length?: number;
1412
+ min_length?: number;
1413
+ placeholder?: string;
1414
+ required?: boolean;
1415
+ style: TextInputStyles;
1416
+ type: ComponentTypes.TEXT_INPUT;
1417
+ value?: string;
1418
+ }
1419
+
1420
+ export interface TextInput extends BaseComponent {
1421
+ customID: string;
1422
+ /** @deprecated */
1423
+ label?: string;
1424
+ maxLength?: number;
1425
+ minLength?: number;
1426
+ placeholder?: string;
1427
+ required?: boolean;
1428
+ style: TextInputStyles;
1429
+ type: ComponentTypes.TEXT_INPUT;
1430
+ value?: string;
1431
+ }
1432
+
1433
+ export interface RawUnfurledMediaItem {
1434
+ attachment_id?: string;
1435
+ content_type?: string;
1436
+ height?: number;
1437
+ proxy_url?: string;
1438
+ url: string;
1439
+ width?: number;
1440
+ }
1441
+
1442
+ export interface UnfurledMediaItem {
1443
+ attachmentID?: string;
1444
+ contentType?: string;
1445
+ height?: number;
1446
+ proxyURL?: string;
1447
+ url: string;
1448
+ width?: number;
1449
+ }
1450
+
1451
+ export interface SectionComponent extends BaseComponent {
1452
+ accessory: ThumbnailComponent | ButtonComponent;
1453
+ components: Array<TextDisplayComponent>;
1454
+ type: ComponentTypes.SECTION;
1455
+ }
1456
+
1457
+ export interface TextDisplayComponent extends BaseComponent {
1458
+ content: string;
1459
+ type: ComponentTypes.TEXT_DISPLAY;
1460
+ }
1461
+
1462
+ export interface ThumbnailComponent extends BaseComponent {
1463
+ description?: string | null;
1464
+ media: UnfurledMediaItem;
1465
+ spoiler?: boolean;
1466
+ type: ComponentTypes.THUMBNAIL;
1467
+ }
1468
+
1469
+ export interface RawThumbnailComponent extends Omit<BaseComponent, "id"> {
1470
+ description?: string | null;
1471
+ media: RawUnfurledMediaItem;
1472
+ spoiler?: boolean;
1473
+ type: ComponentTypes.THUMBNAIL;
1474
+ }
1475
+
1476
+ export interface RawMediaGalleryItem {
1477
+ description?: string | null;
1478
+ media: RawUnfurledMediaItem;
1479
+ spoiler?: boolean;
1480
+ }
1481
+
1482
+ export interface MediaGalleryItem {
1483
+ description?: string | null;
1484
+ media: UnfurledMediaItem;
1485
+ spoiler?: boolean;
1486
+ }
1487
+
1488
+ export interface MediaGalleryComponent extends BaseComponent {
1489
+ items: Array<MediaGalleryItem>;
1490
+ type: ComponentTypes.MEDIA_GALLERY;
1491
+ }
1492
+
1493
+ export interface RawMediaGalleryComponent extends Omit<BaseComponent, "id"> {
1494
+ items: Array<RawMediaGalleryItem>;
1495
+ type: ComponentTypes.MEDIA_GALLERY;
1496
+ }
1497
+
1498
+ export interface SeparatorComponent extends BaseComponent {
1499
+ divider?: boolean;
1500
+ spacing?: SeparatorSpacingSize;
1501
+ type: ComponentTypes.SEPARATOR;
1502
+ }
1503
+
1504
+ export interface FileComponent extends BaseComponent {
1505
+ // The UnfurledMediaItem ONLY supports attachment://<filename> references
1506
+ file: UnfurledMediaItem;
1507
+ spoiler?: boolean;
1508
+ type: ComponentTypes.FILE;
1509
+ }
1510
+
1511
+ export interface RawFileComponent extends Omit<BaseComponent, "id"> {
1512
+ // The RawUnfurledMediaItem ONLY supports attachment://<filename> references
1513
+ file: RawUnfurledMediaItem;
1514
+ spoiler?: boolean;
1515
+ type: ComponentTypes.FILE;
1516
+ }
1517
+
1518
+ export interface ContainerComponent extends BaseComponent {
1519
+ accentColor?: number;
1520
+ components: Array<MessageActionRow | TextDisplayComponent | SectionComponent | MediaGalleryComponent | SeparatorComponent | FileComponent>;
1521
+ spoiler?: boolean;
1522
+ type: ComponentTypes.CONTAINER;
1523
+ }
1524
+
1525
+ export interface RawContainerComponent extends Omit<BaseComponent, "id"> {
1526
+ accent_color?: number;
1527
+ components: Array<RawMessageActionRow | RawTextDisplayComponent | RawSectionComponent | RawMediaGalleryComponent | RawSeparatorComponent | RawFileComponent>;
1528
+ spoiler?: boolean;
1529
+ type: ComponentTypes.CONTAINER;
1530
+ }
1531
+
1532
+ export interface ModalLabel extends BaseComponent {
1533
+ component: ModalLabelComponent;
1534
+ description?: string;
1535
+ label: string;
1536
+ type: ComponentTypes.LABEL;
1537
+ }
1538
+
1539
+ export interface RawModalLabel extends Omit<BaseComponent, "id"> {
1540
+ component: RawModalLabelComponent;
1541
+ description?: string;
1542
+ label: string;
1543
+ type: ComponentTypes.LABEL;
1544
+ }
1545
+
1546
+ export interface ModalFileUploadComponent extends BaseComponent {
1547
+ customID: string;
1548
+ maxValues?: number;
1549
+ minValues?: number;
1550
+ required?: boolean;
1551
+ type: ComponentTypes.FILE_UPLOAD;
1552
+ }
1553
+
1554
+ export interface RawModalFileUploadComponent extends BaseComponent {
1555
+ custom_id: string;
1556
+ max_values?: number;
1557
+ min_values?: number;
1558
+ required?: boolean;
1559
+ type: ComponentTypes.FILE_UPLOAD;
1560
+ }
1561
+
1562
+ export interface IconEmoji {
1563
+ id: string | null;
1564
+ name: string | null;
1565
+ }
1566
+
1567
+ export type ParentChannelType<CH extends GuildChannel> =
1568
+ CH extends ThreadChannels ? TextChannel | AnnouncementChannel | ForumChannel | MediaChannel :
1569
+ CH extends Exclude<GuildChannels, ThreadChannels | ForumChannel | MediaChannel> ? CategoryChannel :
1570
+ TextChannel | AnnouncementChannel | ForumChannel | MediaChannel | CategoryChannel;