seyfert 1.5.0 → 2.0.0

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 (427) hide show
  1. package/LICENSE +21 -190
  2. package/README.md +18 -10
  3. package/lib/api/Router.js +2 -2
  4. package/lib/api/Routes/applications.d.ts +23 -1
  5. package/lib/api/Routes/channels.d.ts +1 -1
  6. package/lib/api/Routes/gateway.d.ts +1 -1
  7. package/lib/api/Routes/guilds.d.ts +5 -2
  8. package/lib/api/Routes/interactions.d.ts +1 -1
  9. package/lib/api/Routes/invites.d.ts +1 -1
  10. package/lib/api/Routes/stage-instances.d.ts +1 -1
  11. package/lib/api/Routes/stickers.d.ts +2 -2
  12. package/lib/api/Routes/users.d.ts +1 -1
  13. package/lib/api/Routes/voice.d.ts +1 -1
  14. package/lib/api/Routes/webhooks.d.ts +2 -2
  15. package/lib/api/api.d.ts +2 -2
  16. package/lib/api/api.js +2 -14
  17. package/lib/api/bucket.d.ts +0 -1
  18. package/lib/api/shared.d.ts +0 -1
  19. package/lib/api/utils/constants.d.ts +2 -5
  20. package/lib/api/utils/constants.js +3 -7
  21. package/lib/api/utils/utils.d.ts +1 -2
  22. package/lib/api/utils/utils.js +2 -3
  23. package/lib/builders/ActionRow.d.ts +1 -1
  24. package/lib/builders/ActionRow.js +3 -3
  25. package/lib/builders/Attachment.d.ts +2 -3
  26. package/lib/builders/Attachment.js +12 -13
  27. package/lib/builders/Base.d.ts +2 -2
  28. package/lib/builders/Base.js +1 -1
  29. package/lib/builders/Button.d.ts +7 -7
  30. package/lib/builders/Button.js +11 -9
  31. package/lib/builders/Embed.d.ts +1 -1
  32. package/lib/builders/Modal.d.ts +1 -1
  33. package/lib/builders/Modal.js +2 -2
  34. package/lib/builders/Poll.d.ts +2 -2
  35. package/lib/builders/Poll.js +5 -6
  36. package/lib/builders/SelectMenu.d.ts +1 -1
  37. package/lib/builders/SelectMenu.js +17 -18
  38. package/lib/builders/index.d.ts +1 -1
  39. package/lib/builders/index.js +10 -11
  40. package/lib/cache/adapters/default.d.ts +16 -9
  41. package/lib/cache/adapters/default.js +42 -31
  42. package/lib/cache/adapters/index.d.ts +0 -1
  43. package/lib/cache/adapters/index.js +0 -1
  44. package/lib/cache/adapters/limited.d.ts +17 -12
  45. package/lib/cache/adapters/limited.js +80 -36
  46. package/lib/cache/adapters/types.d.ts +6 -7
  47. package/lib/cache/adapters/workeradapter.d.ts +6 -6
  48. package/lib/cache/adapters/workeradapter.js +13 -0
  49. package/lib/cache/index.d.ts +18 -9
  50. package/lib/cache/index.js +319 -21
  51. package/lib/cache/resources/bans.d.ts +9 -6
  52. package/lib/cache/resources/bans.js +13 -4
  53. package/lib/cache/resources/channels.d.ts +6 -4
  54. package/lib/cache/resources/channels.js +13 -7
  55. package/lib/cache/resources/default/base.d.ts +7 -7
  56. package/lib/cache/resources/default/base.js +2 -2
  57. package/lib/cache/resources/default/guild-based.d.ts +6 -6
  58. package/lib/cache/resources/default/guild-based.js +6 -6
  59. package/lib/cache/resources/default/guild-related.d.ts +7 -7
  60. package/lib/cache/resources/default/guild-related.js +10 -8
  61. package/lib/cache/resources/emojis.d.ts +15 -6
  62. package/lib/cache/resources/emojis.js +13 -4
  63. package/lib/cache/resources/guilds.d.ts +9 -6
  64. package/lib/cache/resources/guilds.js +27 -6
  65. package/lib/cache/resources/members.d.ts +9 -6
  66. package/lib/cache/resources/members.js +22 -6
  67. package/lib/cache/resources/messages.d.ts +11 -7
  68. package/lib/cache/resources/messages.js +19 -7
  69. package/lib/cache/resources/overwrites.d.ts +11 -2
  70. package/lib/cache/resources/overwrites.js +9 -0
  71. package/lib/cache/resources/presence.d.ts +3 -2
  72. package/lib/cache/resources/roles.d.ts +9 -6
  73. package/lib/cache/resources/roles.js +13 -4
  74. package/lib/cache/resources/stage-instances.d.ts +2 -2
  75. package/lib/cache/resources/stickers.d.ts +9 -6
  76. package/lib/cache/resources/stickers.js +13 -4
  77. package/lib/cache/resources/threads.d.ts +9 -6
  78. package/lib/cache/resources/threads.js +13 -4
  79. package/lib/cache/resources/users.d.ts +9 -6
  80. package/lib/cache/resources/users.js +13 -4
  81. package/lib/cache/resources/voice-states.d.ts +11 -8
  82. package/lib/cache/resources/voice-states.js +15 -4
  83. package/lib/client/base.d.ts +28 -20
  84. package/lib/client/base.js +58 -56
  85. package/lib/client/client.d.ts +7 -16
  86. package/lib/client/client.js +29 -31
  87. package/lib/client/collectors.d.ts +10 -10
  88. package/lib/client/collectors.js +26 -1
  89. package/lib/client/httpclient.d.ts +8 -13
  90. package/lib/client/httpclient.js +27 -218
  91. package/lib/client/index.d.ts +1 -0
  92. package/lib/client/index.js +1 -0
  93. package/lib/client/transformers.d.ts +68 -0
  94. package/lib/client/transformers.js +99 -0
  95. package/lib/client/types.d.ts +5 -0
  96. package/lib/client/types.js +2 -0
  97. package/lib/client/workerclient.d.ts +14 -14
  98. package/lib/client/workerclient.js +112 -66
  99. package/lib/commands/applications/chat.d.ts +35 -34
  100. package/lib/commands/applications/chat.js +5 -9
  101. package/lib/commands/applications/chatcontext.d.ts +17 -17
  102. package/lib/commands/applications/chatcontext.js +5 -5
  103. package/lib/commands/applications/menu.d.ts +2 -3
  104. package/lib/commands/applications/menu.js +2 -5
  105. package/lib/commands/applications/menucontext.d.ts +14 -13
  106. package/lib/commands/applications/menucontext.js +9 -9
  107. package/lib/commands/applications/options.d.ts +1 -1
  108. package/lib/commands/applications/options.js +20 -21
  109. package/lib/commands/applications/shared.d.ts +3 -1
  110. package/lib/commands/decorators.d.ts +38 -20
  111. package/lib/commands/decorators.js +17 -18
  112. package/lib/commands/handle.d.ts +64 -0
  113. package/lib/commands/handle.js +685 -0
  114. package/lib/commands/handler.d.ts +27 -18
  115. package/lib/commands/handler.js +290 -164
  116. package/lib/commands/optionresolver.d.ts +13 -13
  117. package/lib/commands/optionresolver.js +23 -28
  118. package/lib/common/bot/watcher.d.ts +4 -33
  119. package/lib/common/bot/watcher.js +0 -109
  120. package/lib/common/index.d.ts +1 -0
  121. package/lib/common/index.js +1 -0
  122. package/lib/common/it/colors.js +48 -49
  123. package/lib/common/it/formatter.d.ts +32 -0
  124. package/lib/common/it/formatter.js +42 -0
  125. package/lib/common/it/logger.d.ts +0 -1
  126. package/lib/common/it/logger.js +3 -3
  127. package/lib/common/it/utils.d.ts +15 -2
  128. package/lib/common/it/utils.js +78 -17
  129. package/lib/common/shorters/application.d.ts +56 -0
  130. package/lib/common/shorters/application.js +81 -0
  131. package/lib/common/shorters/bans.d.ts +4 -5
  132. package/lib/common/shorters/bans.js +3 -3
  133. package/lib/common/shorters/channels.d.ts +7 -6
  134. package/lib/common/shorters/channels.js +19 -15
  135. package/lib/common/shorters/emojis.d.ts +5 -6
  136. package/lib/common/shorters/emojis.js +5 -5
  137. package/lib/common/shorters/guilds.d.ts +18 -16
  138. package/lib/common/shorters/guilds.js +31 -26
  139. package/lib/common/shorters/interaction.d.ts +6 -6
  140. package/lib/common/shorters/interaction.js +3 -2
  141. package/lib/common/shorters/members.d.ts +29 -12
  142. package/lib/common/shorters/members.js +55 -16
  143. package/lib/common/shorters/messages.d.ts +7 -8
  144. package/lib/common/shorters/messages.js +8 -7
  145. package/lib/common/shorters/reactions.d.ts +3 -3
  146. package/lib/common/shorters/reactions.js +11 -11
  147. package/lib/common/shorters/roles.d.ts +9 -7
  148. package/lib/common/shorters/roles.js +26 -7
  149. package/lib/common/shorters/templates.d.ts +7 -8
  150. package/lib/common/shorters/templates.js +7 -7
  151. package/lib/common/shorters/threads.d.ts +6 -7
  152. package/lib/common/shorters/threads.js +6 -9
  153. package/lib/common/shorters/users.d.ts +4 -4
  154. package/lib/common/shorters/users.js +8 -4
  155. package/lib/common/shorters/webhook.d.ts +10 -10
  156. package/lib/common/shorters/webhook.js +10 -9
  157. package/lib/common/types/resolvables.d.ts +2 -2
  158. package/lib/common/types/util.d.ts +3 -1
  159. package/lib/common/types/write.d.ts +1 -1
  160. package/lib/components/ActionRow.d.ts +1 -1
  161. package/lib/components/BaseComponent.d.ts +1 -1
  162. package/lib/components/BaseComponent.js +1 -1
  163. package/lib/components/BaseSelectMenuComponent.d.ts +1 -1
  164. package/lib/components/ButtonComponent.d.ts +17 -7
  165. package/lib/components/ButtonComponent.js +19 -2
  166. package/lib/components/ChannelSelectMenuComponent.d.ts +3 -3
  167. package/lib/components/MentionableSelectMenuComponent.d.ts +2 -2
  168. package/lib/components/RoleSelectMenuComponent.d.ts +2 -2
  169. package/lib/components/StringSelectMenuComponent.d.ts +2 -2
  170. package/lib/components/TextInputComponent.d.ts +2 -2
  171. package/lib/components/UserSelectMenuComponent.d.ts +2 -2
  172. package/lib/components/componentcommand.js +2 -2
  173. package/lib/components/componentcontext.d.ts +10 -9
  174. package/lib/components/componentcontext.js +8 -8
  175. package/lib/components/handler.d.ts +15 -14
  176. package/lib/components/handler.js +89 -93
  177. package/lib/components/index.d.ts +3 -3
  178. package/lib/components/index.js +12 -10
  179. package/lib/components/modalcontext.d.ts +12 -11
  180. package/lib/components/modalcontext.js +2 -2
  181. package/lib/deps/mixer.d.ts +8 -0
  182. package/lib/deps/mixer.js +66 -0
  183. package/lib/events/handler.d.ts +35 -13
  184. package/lib/events/handler.js +58 -25
  185. package/lib/events/hooks/application_command.d.ts +2 -2
  186. package/lib/events/hooks/auto_moderation.d.ts +6 -7
  187. package/lib/events/hooks/auto_moderation.js +4 -4
  188. package/lib/events/hooks/channel.d.ts +2 -2
  189. package/lib/events/hooks/channel.js +4 -7
  190. package/lib/events/hooks/custom.d.ts +3 -3
  191. package/lib/events/hooks/dispatch.d.ts +3 -4
  192. package/lib/events/hooks/dispatch.js +2 -2
  193. package/lib/events/hooks/entitlement.d.ts +5 -37
  194. package/lib/events/hooks/entitlement.js +7 -7
  195. package/lib/events/hooks/guild.d.ts +125 -125
  196. package/lib/events/hooks/guild.js +13 -15
  197. package/lib/events/hooks/integration.d.ts +27 -28
  198. package/lib/events/hooks/integration.js +3 -3
  199. package/lib/events/hooks/interactions.d.ts +2 -2
  200. package/lib/events/hooks/invite.d.ts +18 -17
  201. package/lib/events/hooks/message.d.ts +69 -54
  202. package/lib/events/hooks/message.js +4 -8
  203. package/lib/events/hooks/presence.d.ts +17 -16
  204. package/lib/events/hooks/stage.d.ts +4 -4
  205. package/lib/events/hooks/thread.d.ts +132 -63
  206. package/lib/events/hooks/thread.js +4 -4
  207. package/lib/events/hooks/typing.d.ts +28 -6
  208. package/lib/events/hooks/typing.js +2 -2
  209. package/lib/events/hooks/user.d.ts +3 -3
  210. package/lib/events/hooks/user.js +2 -2
  211. package/lib/events/hooks/voice.d.ts +28 -3
  212. package/lib/events/hooks/voice.js +8 -4
  213. package/lib/events/hooks/webhook.d.ts +1 -1
  214. package/lib/index.d.ts +5 -14
  215. package/lib/index.js +7 -12
  216. package/lib/langs/handler.d.ts +14 -10
  217. package/lib/langs/handler.js +40 -9
  218. package/lib/structures/AutoModerationRule.d.ts +4 -4
  219. package/lib/structures/AutoModerationRule.js +1 -2
  220. package/lib/structures/ClientUser.d.ts +1 -1
  221. package/lib/structures/Entitlement.d.ts +10 -0
  222. package/lib/structures/Entitlement.js +16 -0
  223. package/lib/structures/Guild.d.ts +33 -34
  224. package/lib/structures/Guild.js +5 -2
  225. package/lib/structures/GuildBan.d.ts +6 -6
  226. package/lib/structures/GuildBan.js +2 -1
  227. package/lib/structures/GuildEmoji.d.ts +4 -4
  228. package/lib/structures/GuildEmoji.js +3 -2
  229. package/lib/structures/GuildMember.d.ts +20 -17
  230. package/lib/structures/GuildMember.js +18 -8
  231. package/lib/structures/GuildPreview.d.ts +1 -1
  232. package/lib/structures/GuildRole.d.ts +5 -3
  233. package/lib/structures/GuildRole.js +8 -1
  234. package/lib/structures/GuildTemplate.d.ts +2 -2
  235. package/lib/structures/GuildTemplate.js +1 -1
  236. package/lib/structures/Interaction.d.ts +53 -36
  237. package/lib/structures/Interaction.js +127 -91
  238. package/lib/structures/Message.d.ts +29 -30
  239. package/lib/structures/Message.js +8 -9
  240. package/lib/structures/Poll.d.ts +4 -3
  241. package/lib/structures/Poll.js +6 -2
  242. package/lib/structures/Sticker.d.ts +7 -7
  243. package/lib/structures/Sticker.js +7 -7
  244. package/lib/structures/User.d.ts +5 -4
  245. package/lib/structures/User.js +2 -1
  246. package/lib/structures/VoiceState.d.ts +15 -11
  247. package/lib/structures/VoiceState.js +35 -17
  248. package/lib/structures/Webhook.d.ts +6 -7
  249. package/lib/structures/Webhook.js +6 -7
  250. package/lib/structures/channels.d.ts +11 -10
  251. package/lib/structures/channels.js +70 -65
  252. package/lib/structures/extra/BaseGuild.d.ts +1 -1
  253. package/lib/structures/extra/BaseGuild.js +3 -3
  254. package/lib/structures/extra/BitField.d.ts +1 -1
  255. package/lib/structures/extra/BitField.js +3 -2
  256. package/lib/structures/extra/DiscordBase.js +2 -2
  257. package/lib/structures/extra/Permissions.d.ts +3 -1
  258. package/lib/structures/extra/Permissions.js +8 -3
  259. package/lib/types/gateway.d.ts +1537 -0
  260. package/lib/types/gateway.js +4 -0
  261. package/lib/types/index.d.ts +9 -1
  262. package/lib/types/index.js +28 -1
  263. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.d.ts +5 -0
  264. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/attachment.js +2 -0
  265. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.d.ts +22 -0
  266. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/base.js +2 -0
  267. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.d.ts +4 -0
  268. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/boolean.js +2 -0
  269. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.d.ts +7 -0
  270. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/channel.js +2 -0
  271. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.d.ts +17 -0
  272. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/integer.js +2 -0
  273. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.d.ts +5 -0
  274. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/mentionable.js +2 -0
  275. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.d.ts +17 -0
  276. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/number.js +2 -0
  277. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.d.ts +5 -0
  278. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/role.js +2 -0
  279. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.d.ts +25 -0
  280. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/shared.js +20 -0
  281. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.d.ts +17 -0
  282. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/string.js +2 -0
  283. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.d.ts +11 -0
  284. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommand.js +2 -0
  285. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.d.ts +11 -0
  286. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/subcommandGroup.js +2 -0
  287. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.d.ts +5 -0
  288. package/lib/types/payloads/_interactions/_applicationCommands/_chatInput/user.js +2 -0
  289. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.d.ts +60 -0
  290. package/lib/types/payloads/_interactions/_applicationCommands/chatInput.js +29 -0
  291. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.d.ts +65 -0
  292. package/lib/types/payloads/_interactions/_applicationCommands/contextMenu.js +2 -0
  293. package/lib/types/payloads/_interactions/_applicationCommands/internals.d.ts +8 -0
  294. package/lib/types/payloads/_interactions/_applicationCommands/internals.js +2 -0
  295. package/lib/types/payloads/_interactions/_applicationCommands/permissions.d.ts +54 -0
  296. package/lib/types/payloads/_interactions/_applicationCommands/permissions.js +20 -0
  297. package/lib/types/payloads/_interactions/applicationCommands.d.ts +153 -0
  298. package/lib/types/payloads/_interactions/applicationCommands.js +61 -0
  299. package/lib/types/payloads/_interactions/autocomplete.d.ts +10 -0
  300. package/lib/types/payloads/_interactions/autocomplete.js +2 -0
  301. package/lib/types/payloads/_interactions/base.d.ts +197 -0
  302. package/lib/types/payloads/_interactions/base.js +2 -0
  303. package/lib/types/payloads/_interactions/messageComponents.d.ts +41 -0
  304. package/lib/types/payloads/_interactions/messageComponents.js +2 -0
  305. package/lib/types/payloads/_interactions/modalSubmit.d.ts +35 -0
  306. package/lib/types/payloads/_interactions/modalSubmit.js +2 -0
  307. package/lib/types/payloads/_interactions/ping.d.ts +3 -0
  308. package/lib/types/payloads/_interactions/ping.js +2 -0
  309. package/lib/types/payloads/_interactions/responses.d.ts +112 -0
  310. package/lib/types/payloads/_interactions/responses.js +54 -0
  311. package/lib/types/payloads/application.d.ts +292 -0
  312. package/lib/types/payloads/application.js +117 -0
  313. package/lib/types/payloads/auditLog.d.ts +644 -0
  314. package/lib/types/payloads/auditLog.js +80 -0
  315. package/lib/types/payloads/autoModeration.d.ts +219 -0
  316. package/lib/types/payloads/autoModeration.js +87 -0
  317. package/lib/types/payloads/channel.d.ts +1708 -0
  318. package/lib/types/payloads/channel.js +372 -0
  319. package/lib/types/payloads/emoji.d.ts +48 -0
  320. package/lib/types/payloads/emoji.js +5 -0
  321. package/lib/types/payloads/gateway.d.ts +373 -0
  322. package/lib/types/payloads/gateway.js +82 -0
  323. package/lib/types/payloads/guild.d.ts +1060 -0
  324. package/lib/types/payloads/guild.js +324 -0
  325. package/lib/types/payloads/guildScheduledEvent.d.ts +138 -0
  326. package/lib/types/payloads/guildScheduledEvent.js +32 -0
  327. package/lib/types/payloads/index.d.ts +64 -0
  328. package/lib/types/payloads/index.js +37 -0
  329. package/lib/types/payloads/interactions.d.ts +24 -0
  330. package/lib/types/payloads/interactions.js +23 -0
  331. package/lib/types/payloads/invite.d.ts +121 -0
  332. package/lib/types/payloads/invite.js +23 -0
  333. package/lib/types/payloads/monetization.d.ts +150 -0
  334. package/lib/types/payloads/monetization.js +79 -0
  335. package/lib/types/payloads/oauth2.d.ts +131 -0
  336. package/lib/types/payloads/oauth2.js +135 -0
  337. package/lib/types/payloads/permissions.d.ts +97 -0
  338. package/lib/types/payloads/permissions.js +16 -0
  339. package/lib/types/payloads/poll.d.ts +104 -0
  340. package/lib/types/payloads/poll.js +16 -0
  341. package/lib/types/payloads/stageInstance.d.ts +77 -0
  342. package/lib/types/payloads/stageInstance.js +19 -0
  343. package/lib/types/payloads/sticker.d.ts +123 -0
  344. package/lib/types/payloads/sticker.js +30 -0
  345. package/lib/types/payloads/teams.d.ts +78 -0
  346. package/lib/types/payloads/teams.js +23 -0
  347. package/lib/types/payloads/template.d.ts +62 -0
  348. package/lib/types/payloads/template.js +5 -0
  349. package/lib/types/payloads/user.d.ts +337 -0
  350. package/lib/types/payloads/user.js +167 -0
  351. package/lib/types/payloads/voice.d.ts +89 -0
  352. package/lib/types/payloads/voice.js +5 -0
  353. package/lib/types/payloads/webhook.d.ts +76 -0
  354. package/lib/types/payloads/webhook.js +21 -0
  355. package/lib/types/rest/application.d.ts +57 -0
  356. package/lib/types/rest/application.js +2 -0
  357. package/lib/types/rest/auditLog.d.ts +30 -0
  358. package/lib/types/rest/auditLog.js +2 -0
  359. package/lib/types/rest/autoModeration.d.ts +66 -0
  360. package/lib/types/rest/autoModeration.js +2 -0
  361. package/lib/types/rest/channel.d.ts +712 -0
  362. package/lib/types/rest/channel.js +11 -0
  363. package/lib/types/rest/emoji.d.ts +54 -0
  364. package/lib/types/rest/emoji.js +2 -0
  365. package/lib/types/rest/gateway.d.ts +9 -0
  366. package/lib/types/rest/gateway.js +2 -0
  367. package/lib/types/rest/guild.d.ts +865 -0
  368. package/lib/types/rest/guild.js +2 -0
  369. package/lib/types/rest/guildScheduledEvent.d.ts +126 -0
  370. package/lib/types/rest/guildScheduledEvent.js +2 -0
  371. package/lib/types/rest/index.d.ts +296 -0
  372. package/lib/types/rest/index.js +292 -0
  373. package/lib/types/rest/interactions.d.ts +194 -0
  374. package/lib/types/rest/interactions.js +2 -0
  375. package/lib/types/rest/invite.d.ts +24 -0
  376. package/lib/types/rest/invite.js +2 -0
  377. package/lib/types/rest/monetization.d.ts +82 -0
  378. package/lib/types/rest/monetization.js +11 -0
  379. package/lib/types/rest/oauth2.d.ts +172 -0
  380. package/lib/types/rest/oauth2.js +2 -0
  381. package/lib/types/rest/poll.d.ts +44 -0
  382. package/lib/types/rest/poll.js +2 -0
  383. package/lib/types/rest/stageInstance.d.ts +58 -0
  384. package/lib/types/rest/stageInstance.js +2 -0
  385. package/lib/types/rest/sticker.d.ts +77 -0
  386. package/lib/types/rest/sticker.js +2 -0
  387. package/lib/types/rest/template.d.ts +62 -0
  388. package/lib/types/rest/template.js +2 -0
  389. package/lib/types/rest/user.d.ts +120 -0
  390. package/lib/types/rest/user.js +2 -0
  391. package/lib/types/rest/voice.d.ts +17 -0
  392. package/lib/types/rest/voice.js +2 -0
  393. package/lib/types/rest/webhook.d.ts +250 -0
  394. package/lib/types/rest/webhook.js +2 -0
  395. package/lib/types/utils/index.d.ts +797 -0
  396. package/lib/types/utils/index.js +799 -0
  397. package/lib/websocket/SharedTypes.d.ts +4 -3
  398. package/lib/websocket/SharedTypes.js +1 -1
  399. package/lib/websocket/constants/index.d.ts +0 -1
  400. package/lib/websocket/discord/basesocket.d.ts +7 -7
  401. package/lib/websocket/discord/basesocket.js +34 -22
  402. package/lib/websocket/discord/events/memberUpdate.d.ts +1 -6
  403. package/lib/websocket/discord/events/memberUpdate.js +2 -1
  404. package/lib/websocket/discord/events/presenceUpdate.d.ts +5 -18
  405. package/lib/websocket/discord/events/presenceUpdate.js +5 -6
  406. package/lib/websocket/discord/shard.d.ts +8 -8
  407. package/lib/websocket/discord/shard.js +59 -47
  408. package/lib/websocket/discord/sharder.d.ts +6 -5
  409. package/lib/websocket/discord/sharder.js +11 -10
  410. package/lib/websocket/discord/shared.d.ts +13 -5
  411. package/lib/websocket/discord/socket/custom.d.ts +52 -0
  412. package/lib/websocket/discord/socket/custom.js +283 -0
  413. package/lib/websocket/discord/worker.d.ts +5 -10
  414. package/lib/websocket/discord/workermanager.d.ts +8 -15
  415. package/lib/websocket/discord/workermanager.js +35 -39
  416. package/lib/websocket/structures/index.d.ts +0 -1
  417. package/lib/websocket/structures/index.js +1 -1
  418. package/lib/websocket/structures/timeout.d.ts +0 -1
  419. package/package.json +65 -74
  420. package/lib/cache/adapters/redis.d.ts +0 -37
  421. package/lib/cache/adapters/redis.js +0 -218
  422. package/lib/client/oninteractioncreate.d.ts +0 -4
  423. package/lib/client/oninteractioncreate.js +0 -198
  424. package/lib/client/onmessagecreate.d.ts +0 -13
  425. package/lib/client/onmessagecreate.js +0 -410
  426. package/lib/structures/extra/functions.d.ts +0 -12
  427. package/lib/structures/extra/functions.js +0 -70
@@ -0,0 +1,1537 @@
1
+ import type { Snowflake, ChannelType, GatewayDispatchEvents, GatewayOpcodes } from './index';
2
+ import type { GatewayPresenceUpdate } from './payloads/gateway';
3
+ import type { APIApplication, APIApplicationCommandPermission, APIAutoModerationRule, APIAutoModerationAction, APIChannel, APIEmoji, APIGuild, APIGuildIntegration, APIGuildMember, APIGuildScheduledEvent, APIInteraction, APIMessage, APIRole, APIStageInstance, APISticker, APIThreadChannel, APIThreadMember, APIUnavailableGuild, APIUser, GatewayActivity, GatewayPresenceUpdate as RawGatewayPresenceUpdate, GatewayThreadListSync as RawGatewayThreadListSync, GatewayThreadMembersUpdate as RawGatewayThreadMembersUpdate, APIVoiceState, InviteTargetType, PresenceUpdateStatus, AutoModerationRuleTriggerType, APIAuditLogEntry, APIEntitlement, APIPartialEmoji } from './payloads/index';
4
+ import type { ReactionType } from './rest/index';
5
+ import type { AnimationTypes, Nullable } from './utils';
6
+ /**
7
+ * https://discord.com/developers/docs/topics/gateway#connecting-gateway-url-query-string-params
8
+ */
9
+ export interface GatewayURLQuery {
10
+ v: string;
11
+ encoding: 'etf' | 'json';
12
+ compress?: 'zlib-stream';
13
+ }
14
+ /**
15
+ * Types extracted from https://discord.com/developers/docs/topics/gateway
16
+ */
17
+ export type GatewaySendPayload = GatewayHeartbeat | GatewayIdentify | GatewayRequestGuildMembers | GatewayResume | GatewayUpdatePresence | GatewayVoiceStateUpdate;
18
+ export type GatewayReceivePayload = GatewayDispatchPayload | GatewayHeartbeatAck | GatewayHeartbeatRequest | GatewayHello | GatewayInvalidSession | GatewayReconnect;
19
+ export type GatewayDispatchPayload = GatewayApplicationCommandPermissionsUpdateDispatch | GatewayAutoModerationActionExecutionDispatch | GatewayAutoModerationRuleCreateDispatch | GatewayAutoModerationRuleDeleteDispatch | GatewayAutoModerationRuleModifyDispatch | GatewayChannelModifyDispatch | GatewayChannelPinsUpdateDispatch | GatewayEntitlementModifyDispatch | GatewayGuildAuditLogEntryCreateDispatch | GatewayGuildBanModifyDispatch | GatewayGuildCreateDispatch | GatewayGuildDeleteDispatch | GatewayGuildEmojisUpdateDispatch | GatewayGuildIntegrationsUpdateDispatch | GatewayGuildMemberAddDispatch | GatewayGuildMemberRemoveDispatch | GatewayGuildMembersChunkDispatch | GatewayGuildMemberUpdateDispatch | GatewayGuildModifyDispatch | GatewayGuildRoleDeleteDispatch | GatewayGuildRoleModifyDispatch | GatewayGuildScheduledEventCreateDispatch | GatewayGuildScheduledEventDeleteDispatch | GatewayGuildScheduledEventUpdateDispatch | GatewayGuildScheduledEventUserAddDispatch | GatewayGuildScheduledEventUserRemoveDispatch | GatewayGuildStickersUpdateDispatch | GatewayIntegrationCreateDispatch | GatewayIntegrationDeleteDispatch | GatewayIntegrationUpdateDispatch | GatewayInteractionCreateDispatch | GatewayInviteCreateDispatch | GatewayInviteDeleteDispatch | GatewayMessageCreateDispatch | GatewayMessageDeleteBulkDispatch | GatewayMessageDeleteDispatch | GatewayMessagePollVoteAddDispatch | GatewayMessagePollVoteRemoveDispatch | GatewayMessageReactionAddDispatch | GatewayMessageReactionRemoveAllDispatch | GatewayMessageReactionRemoveDispatch | GatewayMessageReactionRemoveEmojiDispatch | GatewayMessageUpdateDispatch | GatewayPresenceUpdateDispatch | GatewayReadyDispatch | GatewayResumedDispatch | GatewayStageInstanceCreateDispatch | GatewayStageInstanceDeleteDispatch | GatewayStageInstanceUpdateDispatch | GatewayThreadCreateDispatch | GatewayThreadDeleteDispatch | GatewayThreadListSyncDispatch | GatewayThreadMembersUpdateDispatch | GatewayThreadMemberUpdateDispatch | GatewayThreadUpdateDispatch | GatewayTypingStartDispatch | GatewayUserUpdateDispatch | GatewayVoiceServerUpdateDispatch | GatewayVoiceStateUpdateDispatch | GatewayWebhooksUpdateDispatch;
20
+ /**
21
+ * https://discord.com/developers/docs/topics/gateway-events#hello
22
+ */
23
+ export interface GatewayHello extends NonDispatchPayload {
24
+ op: GatewayOpcodes.Hello;
25
+ d: GatewayHelloData;
26
+ }
27
+ /**
28
+ * https://discord.com/developers/docs/topics/gateway-events#hello
29
+ */
30
+ export interface GatewayHelloData {
31
+ /**
32
+ * The interval (in milliseconds) the client should heartbeat with
33
+ */
34
+ heartbeat_interval: number;
35
+ }
36
+ /**
37
+ * https://discord.com/developers/docs/topics/gateway#sending-heartbeats
38
+ */
39
+ export interface GatewayHeartbeatRequest extends NonDispatchPayload {
40
+ op: GatewayOpcodes.Heartbeat;
41
+ d: never;
42
+ }
43
+ /**
44
+ * https://discord.com/developers/docs/topics/gateway-events#heartbeat
45
+ */
46
+ export interface GatewayHeartbeatAck extends NonDispatchPayload {
47
+ op: GatewayOpcodes.HeartbeatAck;
48
+ d: never;
49
+ }
50
+ /**
51
+ * https://discord.com/developers/docs/topics/gateway-events#invalid-session
52
+ */
53
+ export interface GatewayInvalidSession extends NonDispatchPayload {
54
+ op: GatewayOpcodes.InvalidSession;
55
+ d: GatewayInvalidSessionData;
56
+ }
57
+ /**
58
+ * https://discord.com/developers/docs/topics/gateway-events#invalid-session
59
+ */
60
+ export type GatewayInvalidSessionData = boolean;
61
+ /**
62
+ * https://discord.com/developers/docs/topics/gateway-events#reconnect
63
+ */
64
+ export interface GatewayReconnect extends NonDispatchPayload {
65
+ op: GatewayOpcodes.Reconnect;
66
+ d: never;
67
+ }
68
+ /**
69
+ * https://discord.com/developers/docs/topics/gateway-events#ready
70
+ */
71
+ export type GatewayReadyDispatch = DataPayload<GatewayDispatchEvents.Ready, GatewayReadyDispatchData>;
72
+ /**
73
+ * https://discord.com/developers/docs/topics/gateway-events#ready
74
+ */
75
+ export interface GatewayReadyDispatchData {
76
+ /**
77
+ * Gateway version
78
+ *
79
+ * See https://discord.com/developers/docs/reference#api-versioning
80
+ */
81
+ v: number;
82
+ /**
83
+ * Information about the user including email
84
+ *
85
+ * See https://discord.com/developers/docs/resources/user#user-object
86
+ */
87
+ user: APIUser;
88
+ /**
89
+ * The guilds the user is in
90
+ *
91
+ * See https://discord.com/developers/docs/resources/guild#unavailable-guild-object
92
+ */
93
+ guilds: APIUnavailableGuild[];
94
+ /**
95
+ * Used for resuming connections
96
+ */
97
+ session_id: string;
98
+ /**
99
+ * Gateway url for resuming connections
100
+ */
101
+ resume_gateway_url: string;
102
+ /**
103
+ * The shard information associated with this session, if sent when identifying
104
+ *
105
+ * See https://discord.com/developers/docs/topics/gateway#sharding
106
+ */
107
+ shard?: [shard_id: number, shard_count: number];
108
+ /**
109
+ * Contains `id` and `flags`
110
+ *
111
+ * See https://discord.com/developers/docs/resources/application#application-object
112
+ */
113
+ application: Pick<APIApplication, 'flags' | 'id'>;
114
+ }
115
+ /**
116
+ * https://discord.com/developers/docs/topics/gateway-events#resumed
117
+ */
118
+ export type GatewayResumedDispatch = DataPayload<GatewayDispatchEvents.Resumed, never>;
119
+ /**
120
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create
121
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update
122
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete
123
+ */
124
+ export type GatewayAutoModerationRuleModifyDispatch = DataPayload<GatewayDispatchEvents.AutoModerationRuleCreate | GatewayDispatchEvents.AutoModerationRuleDelete | GatewayDispatchEvents.AutoModerationRuleUpdate, GatewayAutoModerationRuleModifyDispatchData>;
125
+ /**
126
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create
127
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update
128
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete
129
+ */
130
+ export type GatewayAutoModerationRuleModifyDispatchData = APIAutoModerationRule;
131
+ /**
132
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create
133
+ */
134
+ export type GatewayAutoModerationRuleCreateDispatch = GatewayAutoModerationRuleModifyDispatch;
135
+ /**
136
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-create
137
+ */
138
+ export type GatewayAutoModerationRuleCreateDispatchData = GatewayAutoModerationRuleModifyDispatchData;
139
+ /**
140
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update
141
+ */
142
+ export type GatewayAutoModerationRuleUpdateDispatch = GatewayAutoModerationRuleModifyDispatch;
143
+ /**
144
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-update
145
+ */
146
+ export type GatewayAutoModerationRuleUpdateDispatchData = GatewayAutoModerationRuleModifyDispatchData;
147
+ /**
148
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete
149
+ */
150
+ export type GatewayAutoModerationRuleDeleteDispatch = GatewayAutoModerationRuleModifyDispatch;
151
+ /**
152
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-rule-delete
153
+ */
154
+ export type GatewayAutoModerationRuleDeleteDispatchData = GatewayAutoModerationRuleModifyDispatchData;
155
+ /**
156
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution
157
+ */
158
+ export type GatewayAutoModerationActionExecutionDispatch = DataPayload<GatewayDispatchEvents.AutoModerationActionExecution, GatewayAutoModerationActionExecutionDispatchData>;
159
+ /**
160
+ * https://discord.com/developers/docs/topics/gateway-events#auto-moderation-action-execution
161
+ */
162
+ export interface GatewayAutoModerationActionExecutionDispatchData {
163
+ /**
164
+ * The id of the guild in which action was executed
165
+ */
166
+ guild_id: Snowflake;
167
+ /**
168
+ * The action which was executed
169
+ */
170
+ action: APIAutoModerationAction;
171
+ /**
172
+ * The id of the rule which action belongs to
173
+ */
174
+ rule_id: Snowflake;
175
+ /**
176
+ * The trigger type of rule which was triggered
177
+ */
178
+ rule_trigger_type: AutoModerationRuleTriggerType;
179
+ /**
180
+ * The id of the user which generated the content which triggered the rule
181
+ */
182
+ user_id: Snowflake;
183
+ /**
184
+ * The id of the channel in which user content was posted
185
+ */
186
+ channel_id?: Snowflake;
187
+ /**
188
+ * The id of any user message which content belongs to
189
+ *
190
+ * This field will not be present if message was blocked by AutoMod or content was not part of any message
191
+ */
192
+ message_id?: Snowflake;
193
+ /**
194
+ * The id of any system auto moderation messages posted as a result of this action
195
+ *
196
+ * This field will not be present if this event does not correspond to an action with type {@link AutoModerationActionType.SendAlertMessage}
197
+ */
198
+ alert_system_message_id?: Snowflake;
199
+ /**
200
+ * The user generated text content
201
+ *
202
+ * `MESSAGE_CONTENT` (`1 << 15`) gateway intent is required to receive non-empty values from this field
203
+ */
204
+ content: string;
205
+ /**
206
+ * The word or phrase configured in the rule that triggered the rule
207
+ */
208
+ matched_keyword: string | null;
209
+ /**
210
+ * The substring in content that triggered the rule
211
+ *
212
+ * `MESSAGE_CONTENT` (`1 << 15`) gateway intent is required to receive non-empty values from this field
213
+ */
214
+ matched_content: string | null;
215
+ }
216
+ /**
217
+ * https://discord.com/developers/docs/topics/gateway-events#application-command-permissions-update
218
+ */
219
+ export type GatewayApplicationCommandPermissionsUpdateDispatch = DataPayload<GatewayDispatchEvents.ApplicationCommandPermissionsUpdate, GatewayApplicationCommandPermissionsUpdateDispatchData>;
220
+ /**
221
+ * https://discord.com/developers/docs/topics/gateway-events#application-command-permissions-update
222
+ */
223
+ export interface GatewayApplicationCommandPermissionsUpdateDispatchData {
224
+ /**
225
+ * ID of the command or the application ID
226
+ */
227
+ id: Snowflake;
228
+ /**
229
+ * ID of the application the command belongs to
230
+ */
231
+ application_id: Snowflake;
232
+ /**
233
+ * ID of the guild
234
+ */
235
+ guild_id: Snowflake;
236
+ /**
237
+ * Permissions for the command in the guild, max of 100
238
+ */
239
+ permissions: APIApplicationCommandPermission[];
240
+ }
241
+ /**
242
+ * https://discord.com/developers/docs/topics/gateway-events#channel-create
243
+ * https://discord.com/developers/docs/topics/gateway-events#channel-update
244
+ * https://discord.com/developers/docs/topics/gateway-events#channel-delete
245
+ */
246
+ export type GatewayChannelModifyDispatch = DataPayload<GatewayDispatchEvents.ChannelCreate | GatewayDispatchEvents.ChannelDelete | GatewayDispatchEvents.ChannelUpdate, GatewayChannelModifyDispatchData>;
247
+ /**
248
+ * https://discord.com/developers/docs/topics/gateway-events#channel-create
249
+ * https://discord.com/developers/docs/topics/gateway-events#channel-update
250
+ * https://discord.com/developers/docs/topics/gateway-events#channel-delete
251
+ */
252
+ export type GatewayChannelModifyDispatchData = APIChannel;
253
+ /**
254
+ * https://discord.com/developers/docs/topics/gateway-events#channel-create
255
+ */
256
+ export type GatewayChannelCreateDispatch = GatewayChannelModifyDispatch;
257
+ /**
258
+ * https://discord.com/developers/docs/topics/gateway-events#channel-create
259
+ */
260
+ export type GatewayChannelCreateDispatchData = GatewayChannelModifyDispatchData;
261
+ /**
262
+ * https://discord.com/developers/docs/topics/gateway-events#channel-update
263
+ */
264
+ export type GatewayChannelUpdateDispatch = GatewayChannelModifyDispatch;
265
+ /**
266
+ * https://discord.com/developers/docs/topics/gateway-events#channel-update
267
+ */
268
+ export type GatewayChannelUpdateDispatchData = GatewayChannelModifyDispatchData;
269
+ /**
270
+ * https://discord.com/developers/docs/topics/gateway-events#channel-delete
271
+ */
272
+ export type GatewayChannelDeleteDispatch = GatewayChannelModifyDispatch;
273
+ /**
274
+ * https://discord.com/developers/docs/topics/gateway-events#channel-delete
275
+ */
276
+ export type GatewayChannelDeleteDispatchData = GatewayChannelModifyDispatchData;
277
+ /**
278
+ * https://discord.com/developers/docs/topics/gateway-events#channel-pins-update
279
+ */
280
+ export type GatewayChannelPinsUpdateDispatch = DataPayload<GatewayDispatchEvents.ChannelPinsUpdate, GatewayChannelPinsUpdateDispatchData>;
281
+ /**
282
+ * https://discord.com/developers/docs/topics/gateway-events#channel-pins-update
283
+ */
284
+ export interface GatewayChannelPinsUpdateDispatchData {
285
+ /**
286
+ * The id of the guild
287
+ */
288
+ guild_id?: Snowflake;
289
+ /**
290
+ * The id of the channel
291
+ */
292
+ channel_id: Snowflake;
293
+ /**
294
+ * The time at which the most recent pinned message was pinned
295
+ */
296
+ last_pin_timestamp?: string | null;
297
+ }
298
+ /**
299
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-create
300
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-update
301
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete
302
+ */
303
+ export type GatewayEntitlementModifyDispatchData = APIEntitlement;
304
+ /**
305
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-create
306
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-update
307
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete
308
+ */
309
+ export type GatewayEntitlementModifyDispatch = DataPayload<GatewayDispatchEvents.EntitlementCreate | GatewayDispatchEvents.EntitlementDelete | GatewayDispatchEvents.EntitlementUpdate, GatewayEntitlementModifyDispatchData>;
310
+ /**
311
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-create
312
+ */
313
+ export type GatewayEntitlementCreateDispatchData = GatewayEntitlementModifyDispatchData;
314
+ /**
315
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-create
316
+ */
317
+ export type GatewayEntitlementCreateDispatch = GatewayEntitlementModifyDispatch;
318
+ /**
319
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-update
320
+ */
321
+ export type GatewayEntitlementUpdateDispatchData = GatewayEntitlementModifyDispatchData;
322
+ /**
323
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-update
324
+ */
325
+ export type GatewayEntitlementUpdateDispatch = GatewayEntitlementModifyDispatch;
326
+ /**
327
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete
328
+ */
329
+ export type GatewayEntitlementDeleteDispatchData = GatewayEntitlementModifyDispatchData;
330
+ /**
331
+ * https://discord.com/developers/docs/topics/gateway-events#entitlement-delete
332
+ */
333
+ export type GatewayEntitlementDeleteDispatch = GatewayEntitlementModifyDispatch;
334
+ /**
335
+ * https://discord.com/developers/docs/topics/gateway-events#guild-create
336
+ */
337
+ export type GatewayGuildModifyDispatch = DataPayload<GatewayDispatchEvents.GuildUpdate, GatewayGuildModifyDispatchData>;
338
+ /**
339
+ * https://discord.com/developers/docs/topics/gateway-events#guild-update
340
+ */
341
+ export type GatewayGuildModifyDispatchData = APIGuild;
342
+ /**
343
+ * https://discord.com/developers/docs/topics/gateway-events#guild-create
344
+ */
345
+ export type GatewayGuildCreateDispatch = DataPayload<GatewayDispatchEvents.GuildCreate, GatewayGuildCreateDispatchData>;
346
+ /**
347
+ * https://discord.com/developers/docs/topics/gateway-events#guild-create
348
+ * https://discord.com/developers/docs/topics/gateway-events#guild-create-guild-create-extra-fields
349
+ */
350
+ export interface GatewayGuildCreateDispatchData extends APIGuild {
351
+ /**
352
+ * When this guild was joined at
353
+ *
354
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
355
+ */
356
+ joined_at: string;
357
+ /**
358
+ * `true` if this is considered a large guild
359
+ *
360
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
361
+ */
362
+ large: boolean;
363
+ /**
364
+ * `true` if this guild is unavailable due to an outage
365
+ */
366
+ unavailable?: boolean;
367
+ /**
368
+ * Total number of members in this guild
369
+ *
370
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
371
+ */
372
+ member_count: number;
373
+ /**
374
+ * States of members currently in voice channels; lacks the `guild_id` key
375
+ *
376
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
377
+ *
378
+ * See https://discord.com/developers/docs/resources/voice#voice-state-object
379
+ */
380
+ voice_states: Omit<APIVoiceState, 'guild_id'>[];
381
+ /**
382
+ * Users in the guild
383
+ *
384
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
385
+ *
386
+ * See https://discord.com/developers/docs/resources/guild#guild-member-object
387
+ */
388
+ members: APIGuildMember[];
389
+ /**
390
+ * Channels in the guild
391
+ *
392
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
393
+ *
394
+ * See https://discord.com/developers/docs/resources/channel#channel-object
395
+ */
396
+ channels: APIChannel[];
397
+ /**
398
+ * Threads in the guild
399
+ *
400
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
401
+ *
402
+ * See https://discord.com/developers/docs/resources/channel#channel-object
403
+ */
404
+ threads: APIChannel[];
405
+ /**
406
+ * Presences of the members in the guild, will only include non-offline members if the size is greater than `large_threshold`
407
+ *
408
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
409
+ *
410
+ * See https://discord.com/developers/docs/topics/gateway-events#presence-update
411
+ */
412
+ presences: GatewayPresenceUpdate[];
413
+ /**
414
+ * The stage instances in the guild
415
+ *
416
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
417
+ *
418
+ * See https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-stage-instance-structure
419
+ */
420
+ stage_instances: APIStageInstance[];
421
+ /**
422
+ * The scheduled events in the guild
423
+ *
424
+ * **This field is only sent within the [GUILD_CREATE](https://discord.com/developers/docs/topics/gateway-events#guild-create) event**
425
+ *
426
+ * https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object
427
+ */
428
+ guild_scheduled_events: APIGuildScheduledEvent[];
429
+ }
430
+ /**
431
+ * https://discord.com/developers/docs/topics/gateway-events#guild-update
432
+ */
433
+ export type GatewayGuildUpdateDispatch = GatewayGuildModifyDispatch;
434
+ /**
435
+ * https://discord.com/developers/docs/topics/gateway-events#guild-update
436
+ */
437
+ export type GatewayGuildUpdateDispatchData = GatewayGuildModifyDispatchData;
438
+ /**
439
+ * https://discord.com/developers/docs/topics/gateway-events#guild-delete
440
+ */
441
+ export type GatewayGuildDeleteDispatch = DataPayload<GatewayDispatchEvents.GuildDelete, GatewayGuildDeleteDispatchData>;
442
+ /**
443
+ * https://discord.com/developers/docs/topics/gateway-events#guild-delete
444
+ */
445
+ export type GatewayGuildDeleteDispatchData = APIUnavailableGuild;
446
+ /**
447
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add
448
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove
449
+ */
450
+ export type GatewayGuildBanModifyDispatch = DataPayload<GatewayDispatchEvents.GuildBanAdd | GatewayDispatchEvents.GuildBanRemove, GatewayGuildBanModifyDispatchData>;
451
+ /**
452
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add
453
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove
454
+ */
455
+ export interface GatewayGuildBanModifyDispatchData {
456
+ /**
457
+ * ID of the guild
458
+ */
459
+ guild_id: Snowflake;
460
+ /**
461
+ * The banned user
462
+ *
463
+ * See https://discord.com/developers/docs/resources/user#user-object
464
+ */
465
+ user: APIUser;
466
+ }
467
+ /**
468
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add
469
+ */
470
+ export type GatewayGuildBanAddDispatch = GatewayGuildBanModifyDispatch;
471
+ /**
472
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-add
473
+ */
474
+ export type GatewayGuildBanAddDispatchData = GatewayGuildBanModifyDispatchData;
475
+ /**
476
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove
477
+ */
478
+ export type GatewayGuildBanRemoveDispatch = GatewayGuildBanModifyDispatch;
479
+ /**
480
+ * https://discord.com/developers/docs/topics/gateway-events#guild-ban-remove
481
+ */
482
+ export type GatewayGuildBanRemoveDispatchData = GatewayGuildBanModifyDispatchData;
483
+ /**
484
+ * https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update
485
+ */
486
+ export type GatewayGuildEmojisUpdateDispatch = DataPayload<GatewayDispatchEvents.GuildEmojisUpdate, GatewayGuildEmojisUpdateDispatchData>;
487
+ /**
488
+ * https://discord.com/developers/docs/topics/gateway-events#guild-emojis-update
489
+ */
490
+ export interface GatewayGuildEmojisUpdateDispatchData {
491
+ /**
492
+ * ID of the guild
493
+ */
494
+ guild_id: Snowflake;
495
+ /**
496
+ * Array of emojis
497
+ *
498
+ * See https://discord.com/developers/docs/resources/emoji#emoji-object
499
+ */
500
+ emojis: APIEmoji[];
501
+ }
502
+ /**
503
+ * https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update
504
+ */
505
+ export type GatewayGuildStickersUpdateDispatch = DataPayload<GatewayDispatchEvents.GuildStickersUpdate, GatewayGuildStickersUpdateDispatchData>;
506
+ /**
507
+ * https://discord.com/developers/docs/topics/gateway-events#guild-stickers-update
508
+ */
509
+ export interface GatewayGuildStickersUpdateDispatchData {
510
+ /**
511
+ * ID of the guild
512
+ */
513
+ guild_id: Snowflake;
514
+ /**
515
+ * Array of stickers
516
+ *
517
+ * See https://discord.com/developers/docs/resources/sticker#sticker-object
518
+ */
519
+ stickers: APISticker[];
520
+ }
521
+ /**
522
+ * https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update
523
+ */
524
+ export type GatewayGuildIntegrationsUpdateDispatch = DataPayload<GatewayDispatchEvents.GuildIntegrationsUpdate, GatewayGuildIntegrationsUpdateDispatchData>;
525
+ /**
526
+ * https://discord.com/developers/docs/topics/gateway-events#guild-integrations-update
527
+ */
528
+ export interface GatewayGuildIntegrationsUpdateDispatchData {
529
+ /**
530
+ * ID of the guild whose integrations were updated
531
+ */
532
+ guild_id: Snowflake;
533
+ }
534
+ /**
535
+ * https://discord.com/developers/docs/topics/gateway-events#guild-member-add
536
+ */
537
+ export type GatewayGuildMemberAddDispatch = DataPayload<GatewayDispatchEvents.GuildMemberAdd, GatewayGuildMemberAddDispatchData>;
538
+ /**
539
+ * https://discord.com/developers/docs/topics/gateway-events#guild-member-add
540
+ */
541
+ export interface GatewayGuildMemberAddDispatchData extends APIGuildMember {
542
+ /**
543
+ * The id of the guild
544
+ */
545
+ guild_id: Snowflake;
546
+ }
547
+ /**
548
+ * https://discord.com/developers/docs/topics/gateway-events#guild-member-remove
549
+ */
550
+ export type GatewayGuildMemberRemoveDispatch = DataPayload<GatewayDispatchEvents.GuildMemberRemove, GatewayGuildMemberRemoveDispatchData>;
551
+ /**
552
+ * https://discord.com/developers/docs/topics/gateway-events#guild-member-remove
553
+ */
554
+ export interface GatewayGuildMemberRemoveDispatchData {
555
+ /**
556
+ * The id of the guild
557
+ */
558
+ guild_id: Snowflake;
559
+ /**
560
+ * The user who was removed
561
+ *
562
+ * See https://discord.com/developers/docs/resources/user#user-object
563
+ */
564
+ user: APIUser;
565
+ }
566
+ /**
567
+ * https://discord.com/developers/docs/topics/gateway-events#guild-member-update
568
+ */
569
+ export type GatewayGuildMemberUpdateDispatch = DataPayload<GatewayDispatchEvents.GuildMemberUpdate, GatewayGuildMemberUpdateDispatchData>;
570
+ /**
571
+ * https://discord.com/developers/docs/topics/gateway-events#guild-member-update
572
+ */
573
+ export type GatewayGuildMemberUpdateDispatchData = Nullable<Pick<APIGuildMember, 'joined_at'>> & Omit<APIGuildMember, 'deaf' | 'joined_at' | 'mute' | 'user'> & Partial<Pick<APIGuildMember, 'deaf' | 'mute'>> & Required<Pick<APIGuildMember, 'user'>> & {
574
+ /**
575
+ * The id of the guild
576
+ */
577
+ guild_id: Snowflake;
578
+ };
579
+ /**
580
+ * https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
581
+ */
582
+ export type GatewayGuildMembersChunkDispatch = DataPayload<GatewayDispatchEvents.GuildMembersChunk, GatewayGuildMembersChunkDispatchData>;
583
+ /**
584
+ * https://discord.com/developers/docs/topics/gateway-events#update-presence
585
+ */
586
+ export type GatewayGuildMembersChunkPresence = Omit<RawGatewayPresenceUpdate, 'guild_id'>;
587
+ /**
588
+ * https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
589
+ */
590
+ export interface GatewayGuildMembersChunkDispatchData {
591
+ /**
592
+ * The id of the guild
593
+ */
594
+ guild_id: Snowflake;
595
+ /**
596
+ * Set of guild members
597
+ *
598
+ * See https://discord.com/developers/docs/resources/guild#guild-member-object
599
+ */
600
+ members: APIGuildMember[];
601
+ /**
602
+ * The chunk index in the expected chunks for this response (`0 <= chunk_index < chunk_count`)
603
+ */
604
+ chunk_index: number;
605
+ /**
606
+ * The total number of expected chunks for this response
607
+ */
608
+ chunk_count: number;
609
+ /**
610
+ * If passing an invalid id to `REQUEST_GUILD_MEMBERS`, it will be returned here
611
+ */
612
+ not_found?: unknown[];
613
+ /**
614
+ * If passing true to `REQUEST_GUILD_MEMBERS`, presences of the returned members will be here
615
+ *
616
+ * See https://discord.com/developers/docs/topics/gateway-events#update-presence
617
+ */
618
+ presences?: GatewayGuildMembersChunkPresence[];
619
+ /**
620
+ * The nonce used in the Guild Members Request
621
+ *
622
+ * See https://discord.com/developers/docs/topics/gateway-events#request-guild-members
623
+ */
624
+ nonce?: string;
625
+ }
626
+ /**
627
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-create
628
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-update
629
+ */
630
+ export type GatewayGuildRoleModifyDispatch = DataPayload<GatewayDispatchEvents.GuildRoleCreate | GatewayDispatchEvents.GuildRoleUpdate, GatewayGuildRoleModifyDispatchData>;
631
+ /**
632
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-create
633
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-update
634
+ */
635
+ export interface GatewayGuildRoleModifyDispatchData {
636
+ /**
637
+ * The id of the guild
638
+ */
639
+ guild_id: Snowflake;
640
+ /**
641
+ * The role created or updated
642
+ *
643
+ * See https://discord.com/developers/docs/topics/permissions#role-object
644
+ */
645
+ role: APIRole;
646
+ }
647
+ /**
648
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-create
649
+ */
650
+ export type GatewayGuildRoleCreateDispatch = GatewayGuildRoleModifyDispatch;
651
+ /**
652
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-create
653
+ */
654
+ export type GatewayGuildRoleCreateDispatchData = GatewayGuildRoleModifyDispatchData;
655
+ /**
656
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-update
657
+ */
658
+ export type GatewayGuildRoleUpdateDispatch = GatewayGuildRoleModifyDispatch;
659
+ /**
660
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-update
661
+ */
662
+ export type GatewayGuildRoleUpdateDispatchData = GatewayGuildRoleModifyDispatchData;
663
+ /**
664
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-delete
665
+ */
666
+ export type GatewayGuildRoleDeleteDispatch = DataPayload<GatewayDispatchEvents.GuildRoleDelete, GatewayGuildRoleDeleteDispatchData>;
667
+ /**
668
+ * https://discord.com/developers/docs/topics/gateway-events#guild-role-delete
669
+ */
670
+ export interface GatewayGuildRoleDeleteDispatchData {
671
+ /**
672
+ * The id of the guild
673
+ */
674
+ guild_id: Snowflake;
675
+ /**
676
+ * The id of the role
677
+ */
678
+ role_id: Snowflake;
679
+ }
680
+ export type GatewayGuildScheduledEventCreateDispatch = DataPayload<GatewayDispatchEvents.GuildScheduledEventCreate, GatewayGuildScheduledEventCreateDispatchData>;
681
+ export type GatewayGuildScheduledEventCreateDispatchData = APIGuildScheduledEvent;
682
+ export type GatewayGuildScheduledEventUpdateDispatch = DataPayload<GatewayDispatchEvents.GuildScheduledEventUpdate, GatewayGuildScheduledEventUpdateDispatchData>;
683
+ export type GatewayGuildScheduledEventUpdateDispatchData = APIGuildScheduledEvent;
684
+ export type GatewayGuildScheduledEventDeleteDispatch = DataPayload<GatewayDispatchEvents.GuildScheduledEventDelete, GatewayGuildScheduledEventDeleteDispatchData>;
685
+ export type GatewayGuildScheduledEventDeleteDispatchData = APIGuildScheduledEvent;
686
+ export type GatewayGuildScheduledEventUserAddDispatch = DataPayload<GatewayDispatchEvents.GuildScheduledEventUserAdd, GatewayGuildScheduledEventUserAddDispatchData>;
687
+ export interface GatewayGuildScheduledEventUserAddDispatchData {
688
+ guild_scheduled_event_id: Snowflake;
689
+ user_id: Snowflake;
690
+ guild_id: Snowflake;
691
+ }
692
+ export type GatewayGuildScheduledEventUserRemoveDispatch = DataPayload<GatewayDispatchEvents.GuildScheduledEventUserRemove, GatewayGuildScheduledEventUserAddDispatchData>;
693
+ export interface GatewayGuildScheduledEventUserRemoveDispatchData {
694
+ guild_scheduled_event_id: Snowflake;
695
+ user_id: Snowflake;
696
+ guild_id: Snowflake;
697
+ }
698
+ /**
699
+ * https://discord.com/developers/docs/topics/gateway-events#integration-create
700
+ */
701
+ export type GatewayIntegrationCreateDispatch = DataPayload<GatewayDispatchEvents.IntegrationCreate, GatewayIntegrationCreateDispatchData>;
702
+ /**
703
+ * https://discord.com/developers/docs/topics/gateway-events#integration-create
704
+ */
705
+ export type GatewayIntegrationCreateDispatchData = APIGuildIntegration & {
706
+ guild_id: Snowflake;
707
+ };
708
+ /**
709
+ * https://discord.com/developers/docs/topics/gateway-events#integration-update
710
+ */
711
+ export type GatewayIntegrationUpdateDispatch = DataPayload<GatewayDispatchEvents.IntegrationUpdate, GatewayIntegrationUpdateDispatchData>;
712
+ /**
713
+ * https://discord.com/developers/docs/topics/gateway-events#integration-update
714
+ */
715
+ export type GatewayIntegrationUpdateDispatchData = APIGuildIntegration & {
716
+ guild_id: Snowflake;
717
+ };
718
+ /**
719
+ * https://discord.com/developers/docs/topics/gateway-events#integration-update
720
+ */
721
+ export type GatewayIntegrationDeleteDispatch = DataPayload<GatewayDispatchEvents.IntegrationDelete, GatewayIntegrationDeleteDispatchData>;
722
+ /**
723
+ * https://discord.com/developers/docs/topics/gateway-events#integration-delete
724
+ */
725
+ export interface GatewayIntegrationDeleteDispatchData {
726
+ /**
727
+ * Integration id
728
+ */
729
+ id: Snowflake;
730
+ /**
731
+ * ID of the guild
732
+ */
733
+ guild_id: Snowflake;
734
+ /**
735
+ * ID of the bot/OAuth2 application for this Discord integration
736
+ */
737
+ application_id?: Snowflake;
738
+ }
739
+ /**
740
+ * https://discord.com/developers/docs/topics/gateway-events#interaction-create
741
+ */
742
+ export type GatewayInteractionCreateDispatch = DataPayload<GatewayDispatchEvents.InteractionCreate, GatewayInteractionCreateDispatchData>;
743
+ /**
744
+ * https://discord.com/developers/docs/topics/gateway-events#interaction-create
745
+ */
746
+ export type GatewayInteractionCreateDispatchData = APIInteraction;
747
+ /**
748
+ * https://discord.com/developers/docs/topics/gateway-events#invite-create
749
+ */
750
+ export type GatewayInviteCreateDispatch = DataPayload<GatewayDispatchEvents.InviteCreate, GatewayInviteCreateDispatchData>;
751
+ /**
752
+ * https://discord.com/developers/docs/topics/gateway-events#invite-create
753
+ */
754
+ export interface GatewayInviteCreateDispatchData {
755
+ /**
756
+ * The channel the invite is for
757
+ */
758
+ channel_id: Snowflake;
759
+ /**
760
+ * The unique invite code
761
+ *
762
+ * See https://discord.com/developers/docs/resources/invite#invite-object
763
+ */
764
+ code: string;
765
+ /**
766
+ * The time at which the invite was created
767
+ */
768
+ created_at: number;
769
+ /**
770
+ * The guild of the invite
771
+ */
772
+ guild_id?: Snowflake;
773
+ /**
774
+ * The user that created the invite
775
+ *
776
+ * See https://discord.com/developers/docs/resources/user#user-object
777
+ */
778
+ inviter?: APIUser;
779
+ /**
780
+ * How long the invite is valid for (in seconds)
781
+ */
782
+ max_age: number;
783
+ /**
784
+ * The maximum number of times the invite can be used
785
+ */
786
+ max_uses: number;
787
+ /**
788
+ * The type of target for this voice channel invite
789
+ *
790
+ * See https://discord.com/developers/docs/resources/invite#invite-object-invite-target-types
791
+ */
792
+ target_type?: InviteTargetType;
793
+ /**
794
+ * The user whose stream to display for this voice channel stream invite
795
+ *
796
+ * See https://discord.com/developers/docs/resources/user#user-object
797
+ */
798
+ target_user?: APIUser;
799
+ /**
800
+ * The embedded application to open for this voice channel embedded application invite
801
+ */
802
+ target_application?: Partial<APIApplication>;
803
+ /**
804
+ * Whether or not the invite is temporary (invited users will be kicked on disconnect unless they're assigned a role)
805
+ */
806
+ temporary: boolean;
807
+ /**
808
+ * How many times the invite has been used (always will be `0`)
809
+ */
810
+ uses: 0;
811
+ }
812
+ /**
813
+ * https://discord.com/developers/docs/topics/gateway-events#invite-delete
814
+ */
815
+ export type GatewayInviteDeleteDispatch = DataPayload<GatewayDispatchEvents.InviteDelete, GatewayInviteDeleteDispatchData>;
816
+ /**
817
+ * https://discord.com/developers/docs/topics/gateway-events#invite-delete
818
+ */
819
+ export interface GatewayInviteDeleteDispatchData {
820
+ /**
821
+ * The channel of the invite
822
+ */
823
+ channel_id: Snowflake;
824
+ /**
825
+ * The guild of the invite
826
+ */
827
+ guild_id?: Snowflake;
828
+ /**
829
+ * The unique invite code
830
+ *
831
+ * See https://discord.com/developers/docs/resources/invite#invite-object
832
+ */
833
+ code: string;
834
+ }
835
+ /**
836
+ * https://discord.com/developers/docs/topics/gateway-events#message-create
837
+ */
838
+ export type GatewayMessageCreateDispatch = DataPayload<GatewayDispatchEvents.MessageCreate, GatewayMessageCreateDispatchData>;
839
+ /**
840
+ * https://discord.com/developers/docs/topics/gateway-events#message-create
841
+ */
842
+ export type GatewayMessageCreateDispatchData = GatewayMessageEventExtraFields & Omit<APIMessage, 'mentions'>;
843
+ /**
844
+ * https://discord.com/developers/docs/topics/gateway-events#message-update
845
+ */
846
+ export type GatewayMessageUpdateDispatch = DataPayload<GatewayDispatchEvents.MessageUpdate, GatewayMessageUpdateDispatchData>;
847
+ /**
848
+ * https://discord.com/developers/docs/topics/gateway-events#message-update
849
+ */
850
+ export type GatewayMessageUpdateDispatchData = Omit<GatewayMessageCreateDispatchData, 'tts'> & {
851
+ tts: false;
852
+ };
853
+ export interface GatewayMessageEventExtraFields {
854
+ /**
855
+ * ID of the guild the message was sent in
856
+ */
857
+ guild_id?: Snowflake;
858
+ /**
859
+ * Member properties for this message's author
860
+ *
861
+ * The member object exists in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events
862
+ * from text-based guild channels
863
+ *
864
+ * See https://discord.com/developers/docs/resources/guild#guild-member-object
865
+ */
866
+ member?: Omit<APIGuildMember, 'user'>;
867
+ /**
868
+ * Users specifically mentioned in the message
869
+ *
870
+ * The `member` field is only present in `MESSAGE_CREATE` and `MESSAGE_UPDATE` events
871
+ * from text-based guild channels
872
+ *
873
+ * See https://discord.com/developers/docs/resources/user#user-object
874
+ * See https://discord.com/developers/docs/resources/guild#guild-member-object
875
+ */
876
+ mentions: (APIUser & {
877
+ member?: Omit<APIGuildMember, 'user'>;
878
+ })[];
879
+ }
880
+ /**
881
+ * https://discord.com/developers/docs/topics/gateway-events#message-delete
882
+ */
883
+ export type GatewayMessageDeleteDispatch = DataPayload<GatewayDispatchEvents.MessageDelete, GatewayMessageDeleteDispatchData>;
884
+ /**
885
+ * https://discord.com/developers/docs/topics/gateway-events#message-delete
886
+ */
887
+ export interface GatewayMessageDeleteDispatchData {
888
+ /**
889
+ * The id of the message
890
+ */
891
+ id: Snowflake;
892
+ /**
893
+ * The id of the channel
894
+ */
895
+ channel_id: Snowflake;
896
+ /**
897
+ * The id of the guild
898
+ */
899
+ guild_id?: Snowflake;
900
+ }
901
+ /**
902
+ * https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk
903
+ */
904
+ export type GatewayMessageDeleteBulkDispatch = DataPayload<GatewayDispatchEvents.MessageDeleteBulk, GatewayMessageDeleteBulkDispatchData>;
905
+ /**
906
+ * https://discord.com/developers/docs/topics/gateway-events#message-delete-bulk
907
+ */
908
+ export interface GatewayMessageDeleteBulkDispatchData {
909
+ /**
910
+ * The ids of the messages
911
+ */
912
+ ids: Snowflake[];
913
+ /**
914
+ * The id of the channel
915
+ */
916
+ channel_id: Snowflake;
917
+ /**
918
+ * The id of the guild
919
+ */
920
+ guild_id?: Snowflake;
921
+ }
922
+ /**
923
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-add
924
+ */
925
+ export type GatewayMessageReactionAddDispatch = ReactionData<GatewayDispatchEvents.MessageReactionAdd>;
926
+ /**
927
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-add
928
+ */
929
+ export type GatewayMessageReactionAddDispatchData = GatewayMessageReactionAddDispatch['d'];
930
+ /**
931
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove
932
+ */
933
+ export type GatewayMessageReactionRemoveDispatch = ReactionData<GatewayDispatchEvents.MessageReactionRemove, 'burst_colors' | 'member' | 'message_author_id'>;
934
+ /**
935
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove
936
+ */
937
+ export type GatewayMessageReactionRemoveDispatchData = GatewayMessageReactionRemoveDispatch['d'];
938
+ /**
939
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all
940
+ */
941
+ export type GatewayMessageReactionRemoveAllDispatch = DataPayload<GatewayDispatchEvents.MessageReactionRemoveAll, GatewayMessageReactionRemoveAllDispatchData>;
942
+ /**
943
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-all
944
+ */
945
+ export type GatewayMessageReactionRemoveAllDispatchData = MessageReactionRemoveData;
946
+ /**
947
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji
948
+ */
949
+ export type GatewayMessageReactionRemoveEmojiDispatch = DataPayload<GatewayDispatchEvents.MessageReactionRemoveEmoji, GatewayMessageReactionRemoveEmojiDispatchData>;
950
+ /**
951
+ * https://discord.com/developers/docs/topics/gateway-events#message-reaction-remove-emoji
952
+ */
953
+ export interface GatewayMessageReactionRemoveEmojiDispatchData extends MessageReactionRemoveData {
954
+ /**
955
+ * The emoji that was removed
956
+ */
957
+ emoji: APIEmoji;
958
+ }
959
+ /**
960
+ * https://discord.com/developers/docs/topics/gateway-events#presence-update
961
+ */
962
+ export type GatewayPresenceUpdateDispatch = DataPayload<GatewayDispatchEvents.PresenceUpdate, GatewayPresenceUpdateDispatchData>;
963
+ /**
964
+ * https://discord.com/developers/docs/topics/gateway-events#presence-update
965
+ */
966
+ export type GatewayPresenceUpdateDispatchData = RawGatewayPresenceUpdate;
967
+ /**
968
+ * https://discord.com/developers/docs/topics/gateway-events#stage-instance-create
969
+ */
970
+ export type GatewayStageInstanceCreateDispatch = DataPayload<GatewayDispatchEvents.StageInstanceCreate, GatewayStageInstanceCreateDispatchData>;
971
+ /**
972
+ * https://discord.com/developers/docs/topics/gateway-events#stage-instance-create
973
+ */
974
+ export type GatewayStageInstanceCreateDispatchData = APIStageInstance;
975
+ /**
976
+ * https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete
977
+ */
978
+ export type GatewayStageInstanceDeleteDispatch = DataPayload<GatewayDispatchEvents.StageInstanceDelete, GatewayStageInstanceDeleteDispatchData>;
979
+ /**
980
+ * https://discord.com/developers/docs/topics/gateway-events#stage-instance-delete
981
+ */
982
+ export type GatewayStageInstanceDeleteDispatchData = APIStageInstance;
983
+ /**
984
+ * https://discord.com/developers/docs/topics/gateway-events#stage-instance-update
985
+ */
986
+ export type GatewayStageInstanceUpdateDispatch = DataPayload<GatewayDispatchEvents.StageInstanceUpdate, GatewayStageInstanceUpdateDispatchData>;
987
+ /**
988
+ * https://discord.com/developers/docs/topics/gateway-events#stage-instance-update
989
+ */
990
+ export type GatewayStageInstanceUpdateDispatchData = APIStageInstance;
991
+ /**
992
+ * https://discord.com/developers/docs/topics/gateway-events#thread-list-sync
993
+ */
994
+ export type GatewayThreadListSyncDispatch = DataPayload<GatewayDispatchEvents.ThreadListSync, GatewayThreadListSyncDispatchData>;
995
+ /**
996
+ * https://discord.com/developers/docs/topics/gateway-events#thread-list-sync
997
+ */
998
+ export type GatewayThreadListSyncDispatchData = RawGatewayThreadListSync;
999
+ /**
1000
+ * https://discord.com/developers/docs/topics/gateway-events#thread-members-update
1001
+ */
1002
+ export type GatewayThreadMembersUpdateDispatch = DataPayload<GatewayDispatchEvents.ThreadMembersUpdate, GatewayThreadMembersUpdateDispatchData>;
1003
+ /**
1004
+ * https://discord.com/developers/docs/topics/gateway-events#thread-members-update
1005
+ */
1006
+ export type GatewayThreadMembersUpdateDispatchData = RawGatewayThreadMembersUpdate;
1007
+ /**
1008
+ * https://discord.com/developers/docs/topics/gateway-events#thread-member-update
1009
+ */
1010
+ export type GatewayThreadMemberUpdateDispatch = DataPayload<GatewayDispatchEvents.ThreadMemberUpdate, GatewayThreadMemberUpdateDispatchData>;
1011
+ /**
1012
+ * https://discord.com/developers/docs/topics/gateway-events#thread-member-update
1013
+ */
1014
+ export type GatewayThreadMemberUpdateDispatchData = APIThreadMember & {
1015
+ guild_id: Snowflake;
1016
+ };
1017
+ /**
1018
+ * @deprecated This type doesn't accurately reflect the Discord API.
1019
+ * Use {@apilink GatewayThreadCreateDispatch},
1020
+ * {@apilink GatewayThreadUpdateDispatch}, or
1021
+ * {@apilink GatewayThreadDeleteDispatch} instead.
1022
+ * https://discord.com/developers/docs/topics/gateway-events#thread-create
1023
+ * https://discord.com/developers/docs/topics/gateway-events#thread-update
1024
+ * https://discord.com/developers/docs/topics/gateway-events#thread-delete
1025
+ */
1026
+ export type GatewayThreadModifyDispatch = DataPayload<GatewayDispatchEvents.ThreadCreate | GatewayDispatchEvents.ThreadDelete | GatewayDispatchEvents.ThreadUpdate, GatewayChannelModifyDispatchData>;
1027
+ /**
1028
+ * https://discord.com/developers/docs/topics/gateway-events#thread-create
1029
+ */
1030
+ export type GatewayThreadCreateDispatch = DataPayload<GatewayDispatchEvents.ThreadCreate, GatewayThreadCreateDispatchData>;
1031
+ /**
1032
+ * https://discord.com/developers/docs/topics/gateway-events#thread-create
1033
+ */
1034
+ export interface GatewayThreadCreateDispatchData extends APIThreadChannel {
1035
+ /**
1036
+ * Whether the thread is newly created or not.
1037
+ */
1038
+ newly_created?: true;
1039
+ }
1040
+ /**
1041
+ * https://discord.com/developers/docs/topics/gateway-events#thread-update
1042
+ */
1043
+ export type GatewayThreadUpdateDispatch = DataPayload<GatewayDispatchEvents.ThreadUpdate, GatewayThreadUpdateDispatchData>;
1044
+ /**
1045
+ * https://discord.com/developers/docs/topics/gateway-events#thread-update
1046
+ */
1047
+ export type GatewayThreadUpdateDispatchData = APIThreadChannel;
1048
+ /**
1049
+ * https://discord.com/developers/docs/topics/gateway-events#thread-delete
1050
+ */
1051
+ export type GatewayThreadDeleteDispatch = DataPayload<GatewayDispatchEvents.ThreadDelete, GatewayThreadDeleteDispatchData>;
1052
+ /**
1053
+ * https://discord.com/developers/docs/topics/gateway-events#thread-delete
1054
+ */
1055
+ export interface GatewayThreadDeleteDispatchData {
1056
+ /**
1057
+ * The id of the channel
1058
+ */
1059
+ id: Snowflake;
1060
+ /**
1061
+ * The id of the guild
1062
+ */
1063
+ guild_id: Snowflake;
1064
+ /**
1065
+ * The id of the parent channel of the thread
1066
+ */
1067
+ parent_id: Snowflake;
1068
+ /**
1069
+ * The type of the channel
1070
+ *
1071
+ * See https://discord.com/developers/docs/resources/channel#channel-object-channel-types
1072
+ */
1073
+ type: ChannelType;
1074
+ }
1075
+ /**
1076
+ * https://discord.com/developers/docs/topics/gateway-events#typing-start
1077
+ */
1078
+ export type GatewayTypingStartDispatch = DataPayload<GatewayDispatchEvents.TypingStart, GatewayTypingStartDispatchData>;
1079
+ /**
1080
+ * https://discord.com/developers/docs/topics/gateway-events#typing-start
1081
+ */
1082
+ export interface GatewayTypingStartDispatchData {
1083
+ /**
1084
+ * The id of the channel
1085
+ */
1086
+ channel_id: Snowflake;
1087
+ /**
1088
+ * The id of the guild
1089
+ */
1090
+ guild_id?: Snowflake;
1091
+ /**
1092
+ * The id of the user
1093
+ */
1094
+ user_id: Snowflake;
1095
+ /**
1096
+ * Unix time (in seconds) of when the user started typing
1097
+ */
1098
+ timestamp: number;
1099
+ /**
1100
+ * The member who started typing if this happened in a guild
1101
+ *
1102
+ * See https://discord.com/developers/docs/resources/guild#guild-member-object
1103
+ */
1104
+ member?: APIGuildMember;
1105
+ }
1106
+ /**
1107
+ * https://discord.com/developers/docs/topics/gateway-events#user-update
1108
+ */
1109
+ export type GatewayUserUpdateDispatch = DataPayload<GatewayDispatchEvents.UserUpdate, GatewayUserUpdateDispatchData>;
1110
+ /**
1111
+ * https://discord.com/developers/docs/topics/gateway-events#user-update
1112
+ */
1113
+ export type GatewayUserUpdateDispatchData = APIUser;
1114
+ /**
1115
+ * https://discord.com/developers/docs/topics/gateway-events#voice-channel-effect-send
1116
+ */
1117
+ export type GatewayVoiceChannelEffectSendDispach = DataPayload<GatewayDispatchEvents.VoiceChannelEffectSend, GatewayVoiceChannelEffectSendDispachData>;
1118
+ /**
1119
+ * https://discord.com/developers/docs/topics/gateway-events#voice-channel-effect-send-voice-channel-effect-send-event-fields
1120
+ */
1121
+ export type GatewayVoiceChannelEffectSendDispachData = GatewayVoiceChannelEffectSendSoundboard | GatewayVoiceChannelEffectSendReaction;
1122
+ export type _GatewayVoiceChannelEffectSendDispachData = {
1123
+ /** ID of the channel the effect was sent in */
1124
+ channel_id: string;
1125
+ /** ID of the guild the effect was sent in */
1126
+ guild_id: string;
1127
+ /** ID of the user who sent the effect */
1128
+ user_id: string;
1129
+ /** The emoji sent, for emoji reaction and soundboard effects */
1130
+ emoji?: APIPartialEmoji | null;
1131
+ /** The type of emoji animation, for emoji reaction and soundboard effects */
1132
+ animation_type?: AnimationTypes | null;
1133
+ /** The ID of the emoji animation, for emoji reaction and soundboard effects */
1134
+ animation_id?: number;
1135
+ /** The ID of the soundboard sound, for soundboard effects */
1136
+ sound_id: string | number;
1137
+ /** The volume of the soundboard sound, from 0 to 1, for soundboard effects */
1138
+ sound_volume?: number;
1139
+ };
1140
+ export type GatewayVoiceChannelEffectSendReaction = Omit<_GatewayVoiceChannelEffectSendDispachData, 'sound_id' | 'sound_volume'>;
1141
+ export type GatewayVoiceChannelEffectSendSoundboard = _GatewayVoiceChannelEffectSendDispachData;
1142
+ /**
1143
+ * https://discord.com/developers/docs/topics/gateway-events#voice-state-update
1144
+ */
1145
+ export type GatewayVoiceStateUpdateDispatch = DataPayload<GatewayDispatchEvents.VoiceStateUpdate, GatewayVoiceStateUpdateDispatchData>;
1146
+ /**
1147
+ * https://discord.com/developers/docs/topics/gateway-events#voice-state-update
1148
+ */
1149
+ export type GatewayVoiceStateUpdateDispatchData = APIVoiceState;
1150
+ /**
1151
+ * https://discord.com/developers/docs/topics/gateway-events#voice-server-update
1152
+ */
1153
+ export type GatewayVoiceServerUpdateDispatch = DataPayload<GatewayDispatchEvents.VoiceServerUpdate, GatewayVoiceServerUpdateDispatchData>;
1154
+ /**
1155
+ * https://discord.com/developers/docs/topics/gateway-events#voice-server-update
1156
+ */
1157
+ export interface GatewayVoiceServerUpdateDispatchData {
1158
+ /**
1159
+ * Voice connection token
1160
+ */
1161
+ token: string;
1162
+ /**
1163
+ * The guild this voice server update is for
1164
+ */
1165
+ guild_id: Snowflake;
1166
+ /**
1167
+ * The voice server host
1168
+ *
1169
+ * A `null` endpoint means that the voice server allocated has gone away and is trying to be reallocated.
1170
+ * You should attempt to disconnect from the currently connected voice server, and not attempt to reconnect
1171
+ * until a new voice server is allocated
1172
+ */
1173
+ endpoint: string | null;
1174
+ }
1175
+ /**
1176
+ * https://discord.com/developers/docs/topics/gateway-events#webhooks-update
1177
+ */
1178
+ export type GatewayWebhooksUpdateDispatch = DataPayload<GatewayDispatchEvents.WebhooksUpdate, GatewayWebhooksUpdateDispatchData>;
1179
+ /**
1180
+ * https://discord.com/developers/docs/topics/gateway-events#webhooks-update
1181
+ */
1182
+ export interface GatewayWebhooksUpdateDispatchData {
1183
+ /**
1184
+ * The id of the guild
1185
+ */
1186
+ guild_id: Snowflake;
1187
+ /**
1188
+ * The id of the channel
1189
+ */
1190
+ channel_id: Snowflake;
1191
+ }
1192
+ /**
1193
+ * https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
1194
+ */
1195
+ export type GatewayGuildAuditLogEntryCreateDispatch = DataPayload<GatewayDispatchEvents.GuildAuditLogEntryCreate, GatewayGuildAuditLogEntryCreateDispatchData>;
1196
+ /**
1197
+ * https://discord.com/developers/docs/topics/gateway-events#guild-audit-log-entry-create
1198
+ */
1199
+ export interface GatewayGuildAuditLogEntryCreateDispatchData extends APIAuditLogEntry {
1200
+ /**
1201
+ * ID of the guild
1202
+ */
1203
+ guild_id: Snowflake;
1204
+ }
1205
+ /**
1206
+ * https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-add
1207
+ */
1208
+ export type GatewayMessagePollVoteAddDispatch = DataPayload<GatewayDispatchEvents.MessagePollVoteAdd, GatewayMessagePollVoteDispatchData>;
1209
+ /**
1210
+ * https://discord.com/developers/docs/topics/gateway-events#message-poll-vote-remove
1211
+ */
1212
+ export type GatewayMessagePollVoteRemoveDispatch = DataPayload<GatewayDispatchEvents.MessagePollVoteRemove, GatewayMessagePollVoteDispatchData>;
1213
+ export interface GatewayMessagePollVoteDispatchData {
1214
+ /**
1215
+ * ID of the user
1216
+ */
1217
+ user_id: Snowflake;
1218
+ /**
1219
+ * ID of the channel
1220
+ */
1221
+ channel_id: Snowflake;
1222
+ /**
1223
+ * ID of the message
1224
+ */
1225
+ message_id: Snowflake;
1226
+ /**
1227
+ * ID of the guild
1228
+ */
1229
+ guild_id?: Snowflake;
1230
+ /**
1231
+ * ID of the answer
1232
+ */
1233
+ answer_id: number;
1234
+ }
1235
+ /**
1236
+ * https://discord.com/developers/docs/topics/gateway#sending-heartbeats
1237
+ */
1238
+ export interface GatewayHeartbeat {
1239
+ op: GatewayOpcodes.Heartbeat;
1240
+ d: GatewayHeartbeatData;
1241
+ }
1242
+ /**
1243
+ * https://discord.com/developers/docs/topics/gateway#sending-heartbeats
1244
+ */
1245
+ export type GatewayHeartbeatData = number | null;
1246
+ /**
1247
+ * https://discord.com/developers/docs/topics/gateway-events#identify
1248
+ */
1249
+ export interface GatewayIdentify {
1250
+ op: GatewayOpcodes.Identify;
1251
+ d: GatewayIdentifyData;
1252
+ }
1253
+ /**
1254
+ * https://discord.com/developers/docs/topics/gateway-events#identify
1255
+ */
1256
+ export interface GatewayIdentifyData {
1257
+ /**
1258
+ * Authentication token
1259
+ */
1260
+ token: string;
1261
+ /**
1262
+ * Connection properties
1263
+ *
1264
+ * See https://discord.com/developers/docs/topics/gateway-events#identify-identify-connection-properties
1265
+ */
1266
+ properties: GatewayIdentifyProperties;
1267
+ /**
1268
+ * Whether this connection supports compression of packets
1269
+ *
1270
+ * @default false
1271
+ */
1272
+ compress?: boolean;
1273
+ /**
1274
+ * Value between 50 and 250, total number of members where the gateway will stop sending
1275
+ * offline members in the guild member list
1276
+ *
1277
+ * @default 50
1278
+ */
1279
+ large_threshold?: number;
1280
+ /**
1281
+ * Used for Guild Sharding
1282
+ *
1283
+ * See https://discord.com/developers/docs/topics/gateway#sharding
1284
+ */
1285
+ shard?: [shard_id: number, shard_count: number];
1286
+ /**
1287
+ * Presence structure for initial presence information
1288
+ *
1289
+ * See https://discord.com/developers/docs/topics/gateway-events#update-presence
1290
+ */
1291
+ presence?: GatewayPresenceUpdateData;
1292
+ /**
1293
+ * The Gateway Intents you wish to receive
1294
+ *
1295
+ * See https://discord.com/developers/docs/topics/gateway#gateway-intents
1296
+ */
1297
+ intents: number;
1298
+ }
1299
+ /**
1300
+ * https://discord.com/developers/docs/topics/gateway-events#identify-identify-connection-properties
1301
+ */
1302
+ export interface GatewayIdentifyProperties {
1303
+ /**
1304
+ * Your operating system
1305
+ */
1306
+ os: string;
1307
+ /**
1308
+ * Your library name
1309
+ */
1310
+ browser: string;
1311
+ /**
1312
+ * Your library name
1313
+ */
1314
+ device: string;
1315
+ }
1316
+ /**
1317
+ * https://discord.com/developers/docs/topics/gateway-events#resume
1318
+ */
1319
+ export interface GatewayResume {
1320
+ op: GatewayOpcodes.Resume;
1321
+ d: GatewayResumeData;
1322
+ }
1323
+ /**
1324
+ * https://discord.com/developers/docs/topics/gateway-events#resume
1325
+ */
1326
+ export interface GatewayResumeData {
1327
+ /**
1328
+ * Session token
1329
+ */
1330
+ token: string;
1331
+ /**
1332
+ * Session id
1333
+ */
1334
+ session_id: string;
1335
+ /**
1336
+ * Last sequence number received
1337
+ */
1338
+ seq: number;
1339
+ }
1340
+ /**
1341
+ * https://discord.com/developers/docs/topics/gateway-events#request-guild-members
1342
+ */
1343
+ export interface GatewayRequestGuildMembers {
1344
+ op: GatewayOpcodes.RequestGuildMembers;
1345
+ d: GatewayRequestGuildMembersData;
1346
+ }
1347
+ export interface GatewayRequestGuildMembersDataBase {
1348
+ /**
1349
+ * ID of the guild to get members for
1350
+ */
1351
+ guild_id: Snowflake;
1352
+ /**
1353
+ * Used to specify if we want the presences of the matched members
1354
+ */
1355
+ presences?: boolean;
1356
+ /**
1357
+ * Nonce to identify the Guild Members Chunk response
1358
+ *
1359
+ * Nonce can only be up to 32 bytes. If you send an invalid nonce it will be ignored and the reply member_chunk(s) will not have a `nonce` set.
1360
+ *
1361
+ * See https://discord.com/developers/docs/topics/gateway-events#guild-members-chunk
1362
+ */
1363
+ nonce?: string;
1364
+ }
1365
+ export interface GatewayRequestGuildMembersDataWithUserIds extends GatewayRequestGuildMembersDataBase {
1366
+ /**
1367
+ * Used to specify which users you wish to fetch
1368
+ */
1369
+ user_ids: Snowflake | Snowflake[];
1370
+ }
1371
+ export interface GatewayRequestGuildMembersDataWithQuery extends GatewayRequestGuildMembersDataBase {
1372
+ /**
1373
+ * String that username starts with, or an empty string to return all members
1374
+ */
1375
+ query: string;
1376
+ /**
1377
+ * Maximum number of members to send matching the `query`;
1378
+ * a limit of `0` can be used with an empty string `query` to return all members
1379
+ */
1380
+ limit: number;
1381
+ }
1382
+ /**
1383
+ * https://discord.com/developers/docs/topics/gateway-events#request-guild-members
1384
+ */
1385
+ export type GatewayRequestGuildMembersData = GatewayRequestGuildMembersDataWithQuery | GatewayRequestGuildMembersDataWithUserIds;
1386
+ /**
1387
+ * https://discord.com/developers/docs/topics/gateway-events#update-voice-state
1388
+ */
1389
+ export interface GatewayVoiceStateUpdate {
1390
+ op: GatewayOpcodes.VoiceStateUpdate;
1391
+ d: GatewayVoiceStateUpdateData;
1392
+ }
1393
+ /**
1394
+ * https://discord.com/developers/docs/topics/gateway-events#update-voice-state
1395
+ */
1396
+ export interface GatewayVoiceStateUpdateData {
1397
+ /**
1398
+ * ID of the guild
1399
+ */
1400
+ guild_id: Snowflake;
1401
+ /**
1402
+ * ID of the voice channel client wants to join (`null` if disconnecting)
1403
+ */
1404
+ channel_id: Snowflake | null;
1405
+ /**
1406
+ * Is the client muted
1407
+ */
1408
+ self_mute: boolean;
1409
+ /**
1410
+ * Is the client deafened
1411
+ */
1412
+ self_deaf: boolean;
1413
+ }
1414
+ /**
1415
+ * https://discord.com/developers/docs/topics/gateway-events#update-presence
1416
+ */
1417
+ export interface GatewayUpdatePresence {
1418
+ op: GatewayOpcodes.PresenceUpdate;
1419
+ d: GatewayPresenceUpdateData;
1420
+ }
1421
+ /**
1422
+ * https://discord.com/developers/docs/topics/gateway-events#update-presence-gateway-presence-update-structure
1423
+ */
1424
+ export interface GatewayPresenceUpdateData {
1425
+ /**
1426
+ * Unix time (in milliseconds) of when the client went idle, or `null` if the client is not idle
1427
+ */
1428
+ since: number | null;
1429
+ /**
1430
+ * The user's activities
1431
+ *
1432
+ * See https://discord.com/developers/docs/topics/gateway-events#activity-object
1433
+ */
1434
+ activities: GatewayActivityUpdateData[];
1435
+ /**
1436
+ * The user's new status
1437
+ *
1438
+ * See https://discord.com/developers/docs/topics/gateway-events#update-presence-status-types
1439
+ */
1440
+ status: PresenceUpdateStatus;
1441
+ /**
1442
+ * Whether or not the client is afk
1443
+ */
1444
+ afk: boolean;
1445
+ }
1446
+ /**
1447
+ * https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-structure
1448
+ */
1449
+ export type GatewayActivityUpdateData = Pick<GatewayActivity, 'name' | 'state' | 'type' | 'url'>;
1450
+ interface BasePayload {
1451
+ /**
1452
+ * Opcode for the payload
1453
+ */
1454
+ op: GatewayOpcodes;
1455
+ /**
1456
+ * Event data
1457
+ */
1458
+ d?: unknown;
1459
+ /**
1460
+ * Sequence number, used for resuming sessions and heartbeats
1461
+ */
1462
+ s: number;
1463
+ /**
1464
+ * The event name for this payload
1465
+ */
1466
+ t?: string;
1467
+ }
1468
+ type NonDispatchPayload = Omit<BasePayload, 's' | 't'> & {
1469
+ t: null;
1470
+ s: null;
1471
+ };
1472
+ interface DataPayload<Event extends GatewayDispatchEvents, D = unknown> extends BasePayload {
1473
+ op: GatewayOpcodes.Dispatch;
1474
+ t: Event;
1475
+ d: D;
1476
+ }
1477
+ type ReactionData<E extends GatewayDispatchEvents, O extends string = never> = DataPayload<E, Omit<{
1478
+ /**
1479
+ * The id of the user
1480
+ */
1481
+ user_id: Snowflake;
1482
+ /**
1483
+ * The id of the channel
1484
+ */
1485
+ channel_id: Snowflake;
1486
+ /**
1487
+ * The id of the message
1488
+ */
1489
+ message_id: Snowflake;
1490
+ /**
1491
+ * The id of the guild
1492
+ */
1493
+ guild_id?: Snowflake;
1494
+ /**
1495
+ * The member who reacted if this happened in a guild
1496
+ *
1497
+ * See https://discord.com/developers/docs/resources/guild#guild-member-object
1498
+ */
1499
+ member?: APIGuildMember;
1500
+ /**
1501
+ * The emoji used to react
1502
+ *
1503
+ * See https://discord.com/developers/docs/resources/emoji#emoji-object
1504
+ */
1505
+ emoji: APIEmoji;
1506
+ /**
1507
+ * The id of the user that posted the message that was reacted to
1508
+ */
1509
+ message_author_id?: Snowflake;
1510
+ /**
1511
+ * True if this is a super-reaction
1512
+ */
1513
+ burst: boolean;
1514
+ /**
1515
+ * Colors used for super-reaction animation in "#rrggbb" format
1516
+ */
1517
+ burst_colors: string[];
1518
+ /**
1519
+ * The type of reaction
1520
+ */
1521
+ type: ReactionType;
1522
+ }, O>>;
1523
+ interface MessageReactionRemoveData {
1524
+ /**
1525
+ * The id of the channel
1526
+ */
1527
+ channel_id: Snowflake;
1528
+ /**
1529
+ * The id of the message
1530
+ */
1531
+ message_id: Snowflake;
1532
+ /**
1533
+ * The id of the guild
1534
+ */
1535
+ guild_id?: Snowflake;
1536
+ }
1537
+ export {};