@discordjs/builders 1.3.0-dev.1661213491-2ecb862.0 → 1.3.0-dev.1662250243-d08a57c.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 (243) hide show
  1. package/dist/index.d.ts +1583 -40
  2. package/dist/index.js +1567 -0
  3. package/dist/index.js.map +1 -0
  4. package/dist/index.mjs +1486 -46
  5. package/dist/index.mjs.map +1 -1
  6. package/package.json +13 -20
  7. package/dist/components/ActionRow.cjs +0 -32
  8. package/dist/components/ActionRow.cjs.map +0 -1
  9. package/dist/components/ActionRow.d.ts +0 -40
  10. package/dist/components/ActionRow.d.ts.map +0 -1
  11. package/dist/components/ActionRow.mjs +0 -28
  12. package/dist/components/ActionRow.mjs.map +0 -1
  13. package/dist/components/Assertions.cjs +0 -77
  14. package/dist/components/Assertions.cjs.map +0 -1
  15. package/dist/components/Assertions.d.ts +0 -48
  16. package/dist/components/Assertions.d.ts.map +0 -1
  17. package/dist/components/Assertions.mjs +0 -57
  18. package/dist/components/Assertions.mjs.map +0 -1
  19. package/dist/components/Component.cjs +0 -12
  20. package/dist/components/Component.cjs.map +0 -1
  21. package/dist/components/Component.d.ts +0 -24
  22. package/dist/components/Component.d.ts.map +0 -1
  23. package/dist/components/Component.mjs +0 -8
  24. package/dist/components/Component.mjs.map +0 -1
  25. package/dist/components/Components.cjs +0 -31
  26. package/dist/components/Components.cjs.map +0 -1
  27. package/dist/components/Components.d.ts +0 -21
  28. package/dist/components/Components.d.ts.map +0 -1
  29. package/dist/components/Components.mjs +0 -27
  30. package/dist/components/Components.mjs.map +0 -1
  31. package/dist/components/button/Button.cjs +0 -52
  32. package/dist/components/button/Button.cjs.map +0 -1
  33. package/dist/components/button/Button.d.ts +0 -85
  34. package/dist/components/button/Button.d.ts.map +0 -1
  35. package/dist/components/button/Button.mjs +0 -48
  36. package/dist/components/button/Button.mjs.map +0 -1
  37. package/dist/components/selectMenu/SelectMenu.cjs +0 -69
  38. package/dist/components/selectMenu/SelectMenu.cjs.map +0 -1
  39. package/dist/components/selectMenu/SelectMenu.d.ts +0 -62
  40. package/dist/components/selectMenu/SelectMenu.d.ts.map +0 -1
  41. package/dist/components/selectMenu/SelectMenu.mjs +0 -65
  42. package/dist/components/selectMenu/SelectMenu.mjs.map +0 -1
  43. package/dist/components/selectMenu/SelectMenuOption.cjs +0 -40
  44. package/dist/components/selectMenu/SelectMenuOption.cjs.map +0 -1
  45. package/dist/components/selectMenu/SelectMenuOption.d.ts +0 -44
  46. package/dist/components/selectMenu/SelectMenuOption.d.ts.map +0 -1
  47. package/dist/components/selectMenu/SelectMenuOption.mjs +0 -36
  48. package/dist/components/selectMenu/SelectMenuOption.mjs.map +0 -1
  49. package/dist/components/textInput/Assertions.cjs +0 -31
  50. package/dist/components/textInput/Assertions.cjs.map +0 -1
  51. package/dist/components/textInput/Assertions.d.ts +0 -10
  52. package/dist/components/textInput/Assertions.d.ts.map +0 -1
  53. package/dist/components/textInput/Assertions.mjs +0 -20
  54. package/dist/components/textInput/Assertions.mjs.map +0 -1
  55. package/dist/components/textInput/TextInput.cjs +0 -67
  56. package/dist/components/textInput/TextInput.cjs.map +0 -1
  57. package/dist/components/textInput/TextInput.d.ts +0 -66
  58. package/dist/components/textInput/TextInput.d.ts.map +0 -1
  59. package/dist/components/textInput/TextInput.mjs +0 -59
  60. package/dist/components/textInput/TextInput.mjs.map +0 -1
  61. package/dist/index.cjs +0 -129
  62. package/dist/index.cjs.map +0 -1
  63. package/dist/index.d.ts.map +0 -1
  64. package/dist/interactions/contextMenuCommands/Assertions.cjs +0 -44
  65. package/dist/interactions/contextMenuCommands/Assertions.cjs.map +0 -1
  66. package/dist/interactions/contextMenuCommands/Assertions.d.ts +0 -8
  67. package/dist/interactions/contextMenuCommands/Assertions.d.ts.map +0 -1
  68. package/dist/interactions/contextMenuCommands/Assertions.mjs +0 -35
  69. package/dist/interactions/contextMenuCommands/Assertions.mjs.map +0 -1
  70. package/dist/interactions/contextMenuCommands/ContextMenuCommandBuilder.cjs +0 -73
  71. package/dist/interactions/contextMenuCommands/ContextMenuCommandBuilder.cjs.map +0 -1
  72. package/dist/interactions/contextMenuCommands/ContextMenuCommandBuilder.d.ts +0 -94
  73. package/dist/interactions/contextMenuCommands/ContextMenuCommandBuilder.d.ts.map +0 -1
  74. package/dist/interactions/contextMenuCommands/ContextMenuCommandBuilder.mjs +0 -69
  75. package/dist/interactions/contextMenuCommands/ContextMenuCommandBuilder.mjs.map +0 -1
  76. package/dist/interactions/modals/Assertions.cjs +0 -21
  77. package/dist/interactions/modals/Assertions.cjs.map +0 -1
  78. package/dist/interactions/modals/Assertions.d.ts +0 -5
  79. package/dist/interactions/modals/Assertions.d.ts.map +0 -1
  80. package/dist/interactions/modals/Assertions.mjs +0 -15
  81. package/dist/interactions/modals/Assertions.mjs.map +0 -1
  82. package/dist/interactions/modals/Modal.cjs +0 -47
  83. package/dist/interactions/modals/Modal.cjs.map +0 -1
  84. package/dist/interactions/modals/Modal.d.ts +0 -38
  85. package/dist/interactions/modals/Modal.d.ts.map +0 -1
  86. package/dist/interactions/modals/Modal.mjs +0 -43
  87. package/dist/interactions/modals/Modal.mjs.map +0 -1
  88. package/dist/interactions/slashCommands/Assertions.cjs +0 -74
  89. package/dist/interactions/slashCommands/Assertions.cjs.map +0 -1
  90. package/dist/interactions/slashCommands/Assertions.d.ts +0 -18
  91. package/dist/interactions/slashCommands/Assertions.d.ts.map +0 -1
  92. package/dist/interactions/slashCommands/Assertions.mjs +0 -58
  93. package/dist/interactions/slashCommands/Assertions.mjs.map +0 -1
  94. package/dist/interactions/slashCommands/SlashCommandBuilder.cjs +0 -75
  95. package/dist/interactions/slashCommands/SlashCommandBuilder.cjs.map +0 -1
  96. package/dist/interactions/slashCommands/SlashCommandBuilder.d.ts +0 -100
  97. package/dist/interactions/slashCommands/SlashCommandBuilder.d.ts.map +0 -1
  98. package/dist/interactions/slashCommands/SlashCommandBuilder.mjs +0 -73
  99. package/dist/interactions/slashCommands/SlashCommandBuilder.mjs.map +0 -1
  100. package/dist/interactions/slashCommands/SlashCommandSubcommands.cjs +0 -72
  101. package/dist/interactions/slashCommands/SlashCommandSubcommands.cjs.map +0 -1
  102. package/dist/interactions/slashCommands/SlashCommandSubcommands.d.ts +0 -56
  103. package/dist/interactions/slashCommands/SlashCommandSubcommands.d.ts.map +0 -1
  104. package/dist/interactions/slashCommands/SlashCommandSubcommands.mjs +0 -70
  105. package/dist/interactions/slashCommands/SlashCommandSubcommands.mjs.map +0 -1
  106. package/dist/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.cjs +0 -9
  107. package/dist/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.cjs.map +0 -1
  108. package/dist/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.d.ts +0 -17
  109. package/dist/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.d.ts.map +0 -1
  110. package/dist/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.mjs +0 -5
  111. package/dist/interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin.mjs.map +0 -1
  112. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionBase.cjs +0 -27
  113. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionBase.cjs.map +0 -1
  114. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionBase.d.ts +0 -15
  115. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionBase.d.ts.map +0 -1
  116. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionBase.mjs +0 -23
  117. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionBase.mjs.map +0 -1
  118. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.cjs +0 -30
  119. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.cjs.map +0 -1
  120. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.d.ts +0 -14
  121. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.d.ts.map +0 -1
  122. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.mjs +0 -26
  123. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin.mjs.map +0 -1
  124. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.cjs +0 -57
  125. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.cjs.map +0 -1
  126. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.d.ts +0 -19
  127. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.d.ts.map +0 -1
  128. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.mjs +0 -53
  129. package/dist/interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin.mjs.map +0 -1
  130. package/dist/interactions/slashCommands/mixins/NameAndDescription.cjs +0 -69
  131. package/dist/interactions/slashCommands/mixins/NameAndDescription.cjs.map +0 -1
  132. package/dist/interactions/slashCommands/mixins/NameAndDescription.d.ts +0 -46
  133. package/dist/interactions/slashCommands/mixins/NameAndDescription.d.ts.map +0 -1
  134. package/dist/interactions/slashCommands/mixins/NameAndDescription.mjs +0 -65
  135. package/dist/interactions/slashCommands/mixins/NameAndDescription.mjs.map +0 -1
  136. package/dist/interactions/slashCommands/mixins/SharedSlashCommandOptions.cjs +0 -55
  137. package/dist/interactions/slashCommands/mixins/SharedSlashCommandOptions.cjs.map +0 -1
  138. package/dist/interactions/slashCommands/mixins/SharedSlashCommandOptions.d.ts +0 -69
  139. package/dist/interactions/slashCommands/mixins/SharedSlashCommandOptions.d.ts.map +0 -1
  140. package/dist/interactions/slashCommands/mixins/SharedSlashCommandOptions.mjs +0 -51
  141. package/dist/interactions/slashCommands/mixins/SharedSlashCommandOptions.mjs.map +0 -1
  142. package/dist/interactions/slashCommands/options/attachment.cjs +0 -20
  143. package/dist/interactions/slashCommands/options/attachment.cjs.map +0 -1
  144. package/dist/interactions/slashCommands/options/attachment.d.ts +0 -7
  145. package/dist/interactions/slashCommands/options/attachment.d.ts.map +0 -1
  146. package/dist/interactions/slashCommands/options/attachment.mjs +0 -16
  147. package/dist/interactions/slashCommands/options/attachment.mjs.map +0 -1
  148. package/dist/interactions/slashCommands/options/boolean.cjs +0 -20
  149. package/dist/interactions/slashCommands/options/boolean.cjs.map +0 -1
  150. package/dist/interactions/slashCommands/options/boolean.d.ts +0 -7
  151. package/dist/interactions/slashCommands/options/boolean.d.ts.map +0 -1
  152. package/dist/interactions/slashCommands/options/boolean.mjs +0 -16
  153. package/dist/interactions/slashCommands/options/boolean.mjs.map +0 -1
  154. package/dist/interactions/slashCommands/options/channel.cjs +0 -34
  155. package/dist/interactions/slashCommands/options/channel.cjs.map +0 -1
  156. package/dist/interactions/slashCommands/options/channel.d.ts +0 -10
  157. package/dist/interactions/slashCommands/options/channel.d.ts.map +0 -1
  158. package/dist/interactions/slashCommands/options/channel.mjs +0 -32
  159. package/dist/interactions/slashCommands/options/channel.mjs.map +0 -1
  160. package/dist/interactions/slashCommands/options/integer.cjs +0 -50
  161. package/dist/interactions/slashCommands/options/integer.cjs.map +0 -1
  162. package/dist/interactions/slashCommands/options/integer.d.ts +0 -19
  163. package/dist/interactions/slashCommands/options/integer.d.ts.map +0 -1
  164. package/dist/interactions/slashCommands/options/integer.mjs +0 -48
  165. package/dist/interactions/slashCommands/options/integer.mjs.map +0 -1
  166. package/dist/interactions/slashCommands/options/mentionable.cjs +0 -20
  167. package/dist/interactions/slashCommands/options/mentionable.cjs.map +0 -1
  168. package/dist/interactions/slashCommands/options/mentionable.d.ts +0 -7
  169. package/dist/interactions/slashCommands/options/mentionable.d.ts.map +0 -1
  170. package/dist/interactions/slashCommands/options/mentionable.mjs +0 -16
  171. package/dist/interactions/slashCommands/options/mentionable.mjs.map +0 -1
  172. package/dist/interactions/slashCommands/options/number.cjs +0 -50
  173. package/dist/interactions/slashCommands/options/number.cjs.map +0 -1
  174. package/dist/interactions/slashCommands/options/number.d.ts +0 -19
  175. package/dist/interactions/slashCommands/options/number.d.ts.map +0 -1
  176. package/dist/interactions/slashCommands/options/number.mjs +0 -48
  177. package/dist/interactions/slashCommands/options/number.mjs.map +0 -1
  178. package/dist/interactions/slashCommands/options/role.cjs +0 -20
  179. package/dist/interactions/slashCommands/options/role.cjs.map +0 -1
  180. package/dist/interactions/slashCommands/options/role.d.ts +0 -7
  181. package/dist/interactions/slashCommands/options/role.d.ts.map +0 -1
  182. package/dist/interactions/slashCommands/options/role.mjs +0 -16
  183. package/dist/interactions/slashCommands/options/role.mjs.map +0 -1
  184. package/dist/interactions/slashCommands/options/string.cjs +0 -50
  185. package/dist/interactions/slashCommands/options/string.cjs.map +0 -1
  186. package/dist/interactions/slashCommands/options/string.d.ts +0 -24
  187. package/dist/interactions/slashCommands/options/string.d.ts.map +0 -1
  188. package/dist/interactions/slashCommands/options/string.mjs +0 -48
  189. package/dist/interactions/slashCommands/options/string.mjs.map +0 -1
  190. package/dist/interactions/slashCommands/options/user.cjs +0 -20
  191. package/dist/interactions/slashCommands/options/user.cjs.map +0 -1
  192. package/dist/interactions/slashCommands/options/user.d.ts +0 -7
  193. package/dist/interactions/slashCommands/options/user.d.ts.map +0 -1
  194. package/dist/interactions/slashCommands/options/user.mjs +0 -16
  195. package/dist/interactions/slashCommands/options/user.mjs.map +0 -1
  196. package/dist/messages/embed/Assertions.cjs +0 -62
  197. package/dist/messages/embed/Assertions.cjs.map +0 -1
  198. package/dist/messages/embed/Assertions.d.ts +0 -50
  199. package/dist/messages/embed/Assertions.d.ts.map +0 -1
  200. package/dist/messages/embed/Assertions.mjs +0 -41
  201. package/dist/messages/embed/Assertions.mjs.map +0 -1
  202. package/dist/messages/embed/Embed.cjs +0 -101
  203. package/dist/messages/embed/Embed.cjs.map +0 -1
  204. package/dist/messages/embed/Embed.d.ts +0 -163
  205. package/dist/messages/embed/Embed.d.ts.map +0 -1
  206. package/dist/messages/embed/Embed.mjs +0 -97
  207. package/dist/messages/embed/Embed.mjs.map +0 -1
  208. package/dist/messages/formatters.cjs +0 -102
  209. package/dist/messages/formatters.cjs.map +0 -1
  210. package/dist/messages/formatters.d.ts +0 -246
  211. package/dist/messages/formatters.d.ts.map +0 -1
  212. package/dist/messages/formatters.mjs +0 -79
  213. package/dist/messages/formatters.mjs.map +0 -1
  214. package/dist/util/componentUtil.cjs +0 -10
  215. package/dist/util/componentUtil.cjs.map +0 -1
  216. package/dist/util/componentUtil.d.ts +0 -3
  217. package/dist/util/componentUtil.d.ts.map +0 -1
  218. package/dist/util/componentUtil.mjs +0 -6
  219. package/dist/util/componentUtil.mjs.map +0 -1
  220. package/dist/util/equatable.cjs +0 -10
  221. package/dist/util/equatable.cjs.map +0 -1
  222. package/dist/util/equatable.d.ts +0 -18
  223. package/dist/util/equatable.d.ts.map +0 -1
  224. package/dist/util/equatable.mjs +0 -6
  225. package/dist/util/equatable.mjs.map +0 -1
  226. package/dist/util/jsonEncodable.cjs +0 -10
  227. package/dist/util/jsonEncodable.cjs.map +0 -1
  228. package/dist/util/jsonEncodable.d.ts +0 -17
  229. package/dist/util/jsonEncodable.d.ts.map +0 -1
  230. package/dist/util/jsonEncodable.mjs +0 -6
  231. package/dist/util/jsonEncodable.mjs.map +0 -1
  232. package/dist/util/normalizeArray.cjs +0 -12
  233. package/dist/util/normalizeArray.cjs.map +0 -1
  234. package/dist/util/normalizeArray.d.ts +0 -3
  235. package/dist/util/normalizeArray.d.ts.map +0 -1
  236. package/dist/util/normalizeArray.mjs +0 -8
  237. package/dist/util/normalizeArray.mjs.map +0 -1
  238. package/dist/util/validation.cjs +0 -13
  239. package/dist/util/validation.cjs.map +0 -1
  240. package/dist/util/validation.d.ts +0 -4
  241. package/dist/util/validation.d.ts.map +0 -1
  242. package/dist/util/validation.mjs +0 -7
  243. package/dist/util/validation.mjs.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,40 +1,1583 @@
1
- export * as EmbedAssertions from './messages/embed/Assertions';
2
- export * from './messages/embed/Embed';
3
- export * from './messages/formatters';
4
- export * as ComponentAssertions from './components/Assertions';
5
- export * from './components/ActionRow';
6
- export * from './components/button/Button';
7
- export * from './components/Component';
8
- export * from './components/Components';
9
- export * from './components/textInput/TextInput';
10
- export * as TextInputAssertions from './components/textInput/Assertions';
11
- export * from './interactions/modals/Modal';
12
- export * as ModalAssertions from './interactions/modals/Assertions';
13
- export * from './components/selectMenu/SelectMenu';
14
- export * from './components/selectMenu/SelectMenuOption';
15
- export * as SlashCommandAssertions from './interactions/slashCommands/Assertions';
16
- export * from './interactions/slashCommands/SlashCommandBuilder';
17
- export * from './interactions/slashCommands/SlashCommandSubcommands';
18
- export * from './interactions/slashCommands/options/boolean';
19
- export * from './interactions/slashCommands/options/channel';
20
- export * from './interactions/slashCommands/options/integer';
21
- export * from './interactions/slashCommands/options/mentionable';
22
- export * from './interactions/slashCommands/options/number';
23
- export * from './interactions/slashCommands/options/role';
24
- export * from './interactions/slashCommands/options/attachment';
25
- export * from './interactions/slashCommands/options/string';
26
- export * from './interactions/slashCommands/options/user';
27
- export * from './interactions/slashCommands/mixins/ApplicationCommandNumericOptionMinMaxValueMixin';
28
- export * from './interactions/slashCommands/mixins/ApplicationCommandOptionBase';
29
- export * from './interactions/slashCommands/mixins/ApplicationCommandOptionChannelTypesMixin';
30
- export * from './interactions/slashCommands/mixins/ApplicationCommandOptionWithChoicesAndAutocompleteMixin';
31
- export * from './interactions/slashCommands/mixins/NameAndDescription';
32
- export * from './interactions/slashCommands/mixins/SharedSlashCommandOptions';
33
- export * as ContextMenuCommandAssertions from './interactions/contextMenuCommands/Assertions';
34
- export * from './interactions/contextMenuCommands/ContextMenuCommandBuilder';
35
- export * from './util/jsonEncodable';
36
- export * from './util/equatable';
37
- export * from './util/componentUtil';
38
- export * from './util/normalizeArray';
39
- export * from './util/validation';
40
- //# sourceMappingURL=index.d.ts.map
1
+ import * as _sapphire_shapeshift from '@sapphire/shapeshift';
2
+ import { APIEmbedField, APIEmbedAuthor, APIEmbedFooter, APIEmbedImage, APIEmbed, APISelectMenuOption, APIMessageComponentEmoji, ButtonStyle, APIActionRowComponent, APIActionRowComponentTypes, APIBaseComponent, ComponentType, APIButtonComponent, APISelectMenuComponent, APITextInputComponent, TextInputStyle, APIMessageActionRowComponent, APIModalActionRowComponent, APIModalComponent, APIMessageComponent, APIModalInteractionResponseCallbackData, LocalizationMap, LocaleString, ApplicationCommandOptionType, APIApplicationCommandBasicOption, APIApplicationCommandAttachmentOption, APIApplicationCommandBooleanOption, ChannelType, APIApplicationCommandChannelOption, APIApplicationCommandOptionChoice, APIApplicationCommandIntegerOption, APIApplicationCommandMentionableOption, APIApplicationCommandNumberOption, APIApplicationCommandRoleOption, APIApplicationCommandStringOption, APIApplicationCommandUserOption, APIApplicationCommandSubcommandGroupOption, APIApplicationCommandSubcommandOption, Permissions, RESTPostAPIChatInputApplicationCommandsJSONBody, APIApplicationCommandOption, Locale, RESTPostAPIContextMenuApplicationCommandsJSONBody, ApplicationCommandType } from 'discord-api-types/v10';
3
+ import { URL } from 'node:url';
4
+ import { Snowflake } from 'discord-api-types/globals';
5
+
6
+ declare const fieldNamePredicate: _sapphire_shapeshift.StringValidator<string>;
7
+ declare const fieldValuePredicate: _sapphire_shapeshift.StringValidator<string>;
8
+ declare const fieldInlinePredicate: _sapphire_shapeshift.UnionValidator<boolean | undefined>;
9
+ declare const embedFieldPredicate: _sapphire_shapeshift.ObjectValidator<{
10
+ name: string;
11
+ value: string;
12
+ inline: boolean | undefined;
13
+ }, _sapphire_shapeshift.UndefinedToOptional<{
14
+ name: string;
15
+ value: string;
16
+ inline: boolean | undefined;
17
+ }>>;
18
+ declare const embedFieldsArrayPredicate: _sapphire_shapeshift.ArrayValidator<_sapphire_shapeshift.UndefinedToOptional<{
19
+ name: string;
20
+ value: string;
21
+ inline: boolean | undefined;
22
+ }>[], _sapphire_shapeshift.UndefinedToOptional<{
23
+ name: string;
24
+ value: string;
25
+ inline: boolean | undefined;
26
+ }>>;
27
+ declare const fieldLengthPredicate: _sapphire_shapeshift.NumberValidator<number>;
28
+ declare function validateFieldLength(amountAdding: number, fields?: APIEmbedField[]): void;
29
+ declare const authorNamePredicate: _sapphire_shapeshift.UnionValidator<string | null>;
30
+ declare const imageURLPredicate: _sapphire_shapeshift.UnionValidator<string | null | undefined>;
31
+ declare const urlPredicate: _sapphire_shapeshift.UnionValidator<string | null | undefined>;
32
+ declare const embedAuthorPredicate: _sapphire_shapeshift.ObjectValidator<{
33
+ name: string | null;
34
+ iconURL: string | null | undefined;
35
+ url: string | null | undefined;
36
+ }, _sapphire_shapeshift.UndefinedToOptional<{
37
+ name: string | null;
38
+ iconURL: string | null | undefined;
39
+ url: string | null | undefined;
40
+ }>>;
41
+ declare const RGBPredicate: _sapphire_shapeshift.NumberValidator<number>;
42
+ declare const colorPredicate: _sapphire_shapeshift.UnionValidator<number | [number, number, number] | null>;
43
+ declare const descriptionPredicate: _sapphire_shapeshift.UnionValidator<string | null>;
44
+ declare const footerTextPredicate: _sapphire_shapeshift.UnionValidator<string | null>;
45
+ declare const embedFooterPredicate: _sapphire_shapeshift.ObjectValidator<{
46
+ text: string | null;
47
+ iconURL: string | null | undefined;
48
+ }, _sapphire_shapeshift.UndefinedToOptional<{
49
+ text: string | null;
50
+ iconURL: string | null | undefined;
51
+ }>>;
52
+ declare const timestampPredicate: _sapphire_shapeshift.UnionValidator<number | Date | null>;
53
+ declare const titlePredicate: _sapphire_shapeshift.UnionValidator<string | null>;
54
+
55
+ declare const Assertions$5_fieldNamePredicate: typeof fieldNamePredicate;
56
+ declare const Assertions$5_fieldValuePredicate: typeof fieldValuePredicate;
57
+ declare const Assertions$5_fieldInlinePredicate: typeof fieldInlinePredicate;
58
+ declare const Assertions$5_embedFieldPredicate: typeof embedFieldPredicate;
59
+ declare const Assertions$5_embedFieldsArrayPredicate: typeof embedFieldsArrayPredicate;
60
+ declare const Assertions$5_fieldLengthPredicate: typeof fieldLengthPredicate;
61
+ declare const Assertions$5_validateFieldLength: typeof validateFieldLength;
62
+ declare const Assertions$5_authorNamePredicate: typeof authorNamePredicate;
63
+ declare const Assertions$5_imageURLPredicate: typeof imageURLPredicate;
64
+ declare const Assertions$5_urlPredicate: typeof urlPredicate;
65
+ declare const Assertions$5_embedAuthorPredicate: typeof embedAuthorPredicate;
66
+ declare const Assertions$5_RGBPredicate: typeof RGBPredicate;
67
+ declare const Assertions$5_colorPredicate: typeof colorPredicate;
68
+ declare const Assertions$5_descriptionPredicate: typeof descriptionPredicate;
69
+ declare const Assertions$5_footerTextPredicate: typeof footerTextPredicate;
70
+ declare const Assertions$5_embedFooterPredicate: typeof embedFooterPredicate;
71
+ declare const Assertions$5_timestampPredicate: typeof timestampPredicate;
72
+ declare const Assertions$5_titlePredicate: typeof titlePredicate;
73
+ declare namespace Assertions$5 {
74
+ export {
75
+ Assertions$5_fieldNamePredicate as fieldNamePredicate,
76
+ Assertions$5_fieldValuePredicate as fieldValuePredicate,
77
+ Assertions$5_fieldInlinePredicate as fieldInlinePredicate,
78
+ Assertions$5_embedFieldPredicate as embedFieldPredicate,
79
+ Assertions$5_embedFieldsArrayPredicate as embedFieldsArrayPredicate,
80
+ Assertions$5_fieldLengthPredicate as fieldLengthPredicate,
81
+ Assertions$5_validateFieldLength as validateFieldLength,
82
+ Assertions$5_authorNamePredicate as authorNamePredicate,
83
+ Assertions$5_imageURLPredicate as imageURLPredicate,
84
+ Assertions$5_urlPredicate as urlPredicate,
85
+ Assertions$5_embedAuthorPredicate as embedAuthorPredicate,
86
+ Assertions$5_RGBPredicate as RGBPredicate,
87
+ Assertions$5_colorPredicate as colorPredicate,
88
+ Assertions$5_descriptionPredicate as descriptionPredicate,
89
+ Assertions$5_footerTextPredicate as footerTextPredicate,
90
+ Assertions$5_embedFooterPredicate as embedFooterPredicate,
91
+ Assertions$5_timestampPredicate as timestampPredicate,
92
+ Assertions$5_titlePredicate as titlePredicate,
93
+ };
94
+ }
95
+
96
+ declare function normalizeArray<T>(arr: RestOrArray<T>): T[];
97
+ declare type RestOrArray<T> = T[] | [T[]];
98
+
99
+ declare type RGBTuple = [red: number, green: number, blue: number];
100
+ interface IconData {
101
+ /**
102
+ * The URL of the icon
103
+ */
104
+ iconURL?: string;
105
+ /**
106
+ * The proxy URL of the icon
107
+ */
108
+ proxyIconURL?: string;
109
+ }
110
+ declare type EmbedAuthorData = IconData & Omit<APIEmbedAuthor, 'icon_url' | 'proxy_icon_url'>;
111
+ declare type EmbedAuthorOptions = Omit<EmbedAuthorData, 'proxyIconURL'>;
112
+ declare type EmbedFooterData = IconData & Omit<APIEmbedFooter, 'icon_url' | 'proxy_icon_url'>;
113
+ declare type EmbedFooterOptions = Omit<EmbedFooterData, 'proxyIconURL'>;
114
+ interface EmbedImageData extends Omit<APIEmbedImage, 'proxy_url'> {
115
+ /**
116
+ * The proxy URL for the image
117
+ */
118
+ proxyURL?: string;
119
+ }
120
+ /**
121
+ * Represents a embed in a message (image/video preview, rich embed, etc.)
122
+ */
123
+ declare class EmbedBuilder {
124
+ readonly data: APIEmbed;
125
+ constructor(data?: APIEmbed);
126
+ /**
127
+ * Appends fields to the embed
128
+ *
129
+ * @remarks
130
+ * This method accepts either an array of fields or a variable number of field parameters.
131
+ * The maximum amount of fields that can be added is 25.
132
+ * @example
133
+ * Using an array
134
+ * ```ts
135
+ * const fields: APIEmbedField[] = ...;
136
+ * const embed = new EmbedBuilder()
137
+ * .addFields(fields);
138
+ * ```
139
+ * @example
140
+ * Using rest parameters (variadic)
141
+ * ```ts
142
+ * const embed = new EmbedBuilder()
143
+ * .addFields(
144
+ * { name: 'Field 1', value: 'Value 1' },
145
+ * { name: 'Field 2', value: 'Value 2' },
146
+ * );
147
+ * ```
148
+ * @param fields - The fields to add
149
+ */
150
+ addFields(...fields: RestOrArray<APIEmbedField>): this;
151
+ /**
152
+ * Removes, replaces, or inserts fields in the embed.
153
+ *
154
+ * @remarks
155
+ * This method behaves similarly
156
+ * to {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice | Array.prototype.splice}.
157
+ * The maximum amount of fields that can be added is 25.
158
+ *
159
+ * It's useful for modifying and adjusting order of the already-existing fields of an embed.
160
+ * @example
161
+ * Remove the first field
162
+ * ```ts
163
+ * embed.spliceFields(0, 1);
164
+ * ```
165
+ * @example
166
+ * Remove the first n fields
167
+ * ```ts
168
+ * const n = 4
169
+ * embed.spliceFields(0, n);
170
+ * ```
171
+ * @example
172
+ * Remove the last field
173
+ * ```ts
174
+ * embed.spliceFields(-1, 1);
175
+ * ```
176
+ * @param index - The index to start at
177
+ * @param deleteCount - The number of fields to remove
178
+ * @param fields - The replacing field objects
179
+ */
180
+ spliceFields(index: number, deleteCount: number, ...fields: APIEmbedField[]): this;
181
+ /**
182
+ * Sets the embed's fields
183
+ *
184
+ * @remarks
185
+ * This method is an alias for {@link EmbedBuilder.spliceFields}. More specifically,
186
+ * it splices the entire array of fields, replacing them with the provided fields.
187
+ *
188
+ * You can set a maximum of 25 fields.
189
+ * @param fields - The fields to set
190
+ */
191
+ setFields(...fields: RestOrArray<APIEmbedField>): this;
192
+ /**
193
+ * Sets the author of this embed
194
+ *
195
+ * @param options - The options for the author
196
+ */
197
+ setAuthor(options: EmbedAuthorOptions | null): this;
198
+ /**
199
+ * Sets the color of this embed
200
+ *
201
+ * @param color - The color of the embed
202
+ */
203
+ setColor(color: RGBTuple | number | null): this;
204
+ /**
205
+ * Sets the description of this embed
206
+ *
207
+ * @param description - The description
208
+ */
209
+ setDescription(description: string | null): this;
210
+ /**
211
+ * Sets the footer of this embed
212
+ *
213
+ * @param options - The options for the footer
214
+ */
215
+ setFooter(options: EmbedFooterOptions | null): this;
216
+ /**
217
+ * Sets the image of this embed
218
+ *
219
+ * @param url - The URL of the image
220
+ */
221
+ setImage(url: string | null): this;
222
+ /**
223
+ * Sets the thumbnail of this embed
224
+ *
225
+ * @param url - The URL of the thumbnail
226
+ */
227
+ setThumbnail(url: string | null): this;
228
+ /**
229
+ * Sets the timestamp of this embed
230
+ *
231
+ * @param timestamp - The timestamp or date
232
+ */
233
+ setTimestamp(timestamp?: Date | number | null): this;
234
+ /**
235
+ * Sets the title of this embed
236
+ *
237
+ * @param title - The title
238
+ */
239
+ setTitle(title: string | null): this;
240
+ /**
241
+ * Sets the URL of this embed
242
+ *
243
+ * @param url - The URL
244
+ */
245
+ setURL(url: string | null): this;
246
+ /**
247
+ * Transforms the embed to a plain object
248
+ */
249
+ toJSON(): APIEmbed;
250
+ }
251
+
252
+ /**
253
+ * Wraps the content inside a codeblock with no language
254
+ *
255
+ * @param content - The content to wrap
256
+ */
257
+ declare function codeBlock<C extends string>(content: C): `\`\`\`\n${C}\n\`\`\``;
258
+ /**
259
+ * Wraps the content inside a codeblock with the specified language
260
+ *
261
+ * @param language - The language for the codeblock
262
+ * @param content - The content to wrap
263
+ */
264
+ declare function codeBlock<L extends string, C extends string>(language: L, content: C): `\`\`\`${L}\n${C}\n\`\`\``;
265
+ /**
266
+ * Wraps the content inside \`backticks\`, which formats it as inline code
267
+ *
268
+ * @param content - The content to wrap
269
+ */
270
+ declare function inlineCode<C extends string>(content: C): `\`${C}\``;
271
+ /**
272
+ * Formats the content into italic text
273
+ *
274
+ * @param content - The content to wrap
275
+ */
276
+ declare function italic<C extends string>(content: C): `_${C}_`;
277
+ /**
278
+ * Formats the content into bold text
279
+ *
280
+ * @param content - The content to wrap
281
+ */
282
+ declare function bold<C extends string>(content: C): `**${C}**`;
283
+ /**
284
+ * Formats the content into underscored text
285
+ *
286
+ * @param content - The content to wrap
287
+ */
288
+ declare function underscore<C extends string>(content: C): `__${C}__`;
289
+ /**
290
+ * Formats the content into strike-through text
291
+ *
292
+ * @param content - The content to wrap
293
+ */
294
+ declare function strikethrough<C extends string>(content: C): `~~${C}~~`;
295
+ /**
296
+ * Formats the content into a quote. This needs to be at the start of the line for Discord to format it
297
+ *
298
+ * @param content - The content to wrap
299
+ */
300
+ declare function quote<C extends string>(content: C): `> ${C}`;
301
+ /**
302
+ * Formats the content into a block quote. This needs to be at the start of the line for Discord to format it
303
+ *
304
+ * @param content - The content to wrap
305
+ */
306
+ declare function blockQuote<C extends string>(content: C): `>>> ${C}`;
307
+ /**
308
+ * Wraps the URL into `<>`, which stops it from embedding
309
+ *
310
+ * @param url - The URL to wrap
311
+ */
312
+ declare function hideLinkEmbed<C extends string>(url: C): `<${C}>`;
313
+ /**
314
+ * Wraps the URL into `<>`, which stops it from embedding
315
+ *
316
+ * @param url - The URL to wrap
317
+ */
318
+ declare function hideLinkEmbed(url: URL): `<${string}>`;
319
+ /**
320
+ * Formats the content and the URL into a masked URL
321
+ *
322
+ * @param content - The content to display
323
+ * @param url - The URL the content links to
324
+ */
325
+ declare function hyperlink<C extends string>(content: C, url: URL): `[${C}](${string})`;
326
+ /**
327
+ * Formats the content and the URL into a masked URL
328
+ *
329
+ * @param content - The content to display
330
+ * @param url - The URL the content links to
331
+ */
332
+ declare function hyperlink<C extends string, U extends string>(content: C, url: U): `[${C}](${U})`;
333
+ /**
334
+ * Formats the content and the URL into a masked URL
335
+ *
336
+ * @param content - The content to display
337
+ * @param url - The URL the content links to
338
+ * @param title - The title shown when hovering on the masked link
339
+ */
340
+ declare function hyperlink<C extends string, T extends string>(content: C, url: URL, title: T): `[${C}](${string} "${T}")`;
341
+ /**
342
+ * Formats the content and the URL into a masked URL
343
+ *
344
+ * @param content - The content to display
345
+ * @param url - The URL the content links to
346
+ * @param title - The title shown when hovering on the masked link
347
+ */
348
+ declare function hyperlink<C extends string, U extends string, T extends string>(content: C, url: U, title: T): `[${C}](${U} "${T}")`;
349
+ /**
350
+ * Wraps the content inside spoiler (hidden text)
351
+ *
352
+ * @param content - The content to wrap
353
+ */
354
+ declare function spoiler<C extends string>(content: C): `||${C}||`;
355
+ /**
356
+ * Formats a user ID into a user mention
357
+ *
358
+ * @param userId - The user ID to format
359
+ */
360
+ declare function userMention<C extends Snowflake>(userId: C): `<@${C}>`;
361
+ /**
362
+ * Formats a channel ID into a channel mention
363
+ *
364
+ * @param channelId - The channel ID to format
365
+ */
366
+ declare function channelMention<C extends Snowflake>(channelId: C): `<#${C}>`;
367
+ /**
368
+ * Formats a role ID into a role mention
369
+ *
370
+ * @param roleId - The role ID to format
371
+ */
372
+ declare function roleMention<C extends Snowflake>(roleId: C): `<@&${C}>`;
373
+ /**
374
+ * Formats an application command name, subcommand group name, subcommand name, and ID into an application command mention
375
+ *
376
+ * @param commandName - The application command name to format
377
+ * @param subcommandGroupName - The subcommand group name to format
378
+ * @param subcommandName - The subcommand name to format
379
+ * @param commandId - The application command ID to format
380
+ */
381
+ declare function chatInputApplicationCommandMention<N extends string, G extends string, S extends string, I extends Snowflake>(commandName: N, subcommandGroupName: G, subcommandName: S, commandId: I): `</${N} ${G} ${S}:${I}>`;
382
+ /**
383
+ * Formats an application command name, subcommand name, and ID into an application command mention
384
+ *
385
+ * @param commandName - The application command name to format
386
+ * @param subcommandName - The subcommand name to format
387
+ * @param commandId - The application command ID to format
388
+ */
389
+ declare function chatInputApplicationCommandMention<N extends string, S extends string, I extends Snowflake>(commandName: N, subcommandName: S, commandId: I): `</${N} ${S}:${I}>`;
390
+ /**
391
+ * Formats an application command name and ID into an application command mention
392
+ *
393
+ * @param commandName - The application command name to format
394
+ * @param commandId - The application command ID to format
395
+ */
396
+ declare function chatInputApplicationCommandMention<N extends string, I extends Snowflake>(commandName: N, commandId: I): `</${N}:${I}>`;
397
+ /**
398
+ * Formats an emoji ID into a fully qualified emoji identifier
399
+ *
400
+ * @param emojiId - The emoji ID to format
401
+ */
402
+ declare function formatEmoji<C extends Snowflake>(emojiId: C, animated?: false): `<:_:${C}>`;
403
+ /**
404
+ * Formats an emoji ID into a fully qualified emoji identifier
405
+ *
406
+ * @param emojiId - The emoji ID to format
407
+ * @param animated - Whether the emoji is animated or not. Defaults to `false`
408
+ */
409
+ declare function formatEmoji<C extends Snowflake>(emojiId: C, animated?: true): `<a:_:${C}>`;
410
+ /**
411
+ * Formats a channel link for a direct message channel.
412
+ *
413
+ * @param channelId - The channel's id
414
+ */
415
+ declare function channelLink<C extends Snowflake>(channelId: C): `https://discord.com/channels/@me/${C}`;
416
+ /**
417
+ * Formats a channel link for a guild channel.
418
+ *
419
+ * @param channelId - The channel's id
420
+ * @param guildId - The guild's id
421
+ */
422
+ declare function channelLink<C extends Snowflake, G extends Snowflake>(channelId: C, guildId: G): `https://discord.com/channels/${G}/${C}`;
423
+ /**
424
+ * Formats a message link for a direct message channel.
425
+ *
426
+ * @param channelId - The channel's id
427
+ * @param messageId - The message's id
428
+ */
429
+ declare function messageLink<C extends Snowflake, M extends Snowflake>(channelId: C, messageId: M): `https://discord.com/channels/@me/${C}/${M}`;
430
+ /**
431
+ * Formats a message link for a guild channel.
432
+ *
433
+ * @param channelId - The channel's id
434
+ * @param messageId - The message's id
435
+ * @param guildId - The guild's id
436
+ */
437
+ declare function messageLink<C extends Snowflake, M extends Snowflake, G extends Snowflake>(channelId: C, messageId: M, guildId: G): `https://discord.com/channels/${G}/${C}/${M}`;
438
+ /**
439
+ * Formats a date into a short date-time string
440
+ *
441
+ * @param date - The date to format, defaults to the current time
442
+ */
443
+ declare function time(date?: Date): `<t:${bigint}>`;
444
+ /**
445
+ * Formats a date given a format style
446
+ *
447
+ * @param date - The date to format
448
+ * @param style - The style to use
449
+ */
450
+ declare function time<S extends TimestampStylesString>(date: Date, style: S): `<t:${bigint}:${S}>`;
451
+ /**
452
+ * Formats the given timestamp into a short date-time string
453
+ *
454
+ * @param seconds - The time to format, represents an UNIX timestamp in seconds
455
+ */
456
+ declare function time<C extends number>(seconds: C): `<t:${C}>`;
457
+ /**
458
+ * Formats the given timestamp into a short date-time string
459
+ *
460
+ * @param seconds - The time to format, represents an UNIX timestamp in seconds
461
+ * @param style - The style to use
462
+ */
463
+ declare function time<C extends number, S extends TimestampStylesString>(seconds: C, style: S): `<t:${C}:${S}>`;
464
+ /**
465
+ * The {@link https://discord.com/developers/docs/reference#message-formatting-timestamp-styles | message formatting timestamp styles} supported by Discord
466
+ */
467
+ declare const TimestampStyles: {
468
+ /**
469
+ * Short time format, consisting of hours and minutes, e.g. 16:20
470
+ */
471
+ readonly ShortTime: "t";
472
+ /**
473
+ * Long time format, consisting of hours, minutes, and seconds, e.g. 16:20:30
474
+ */
475
+ readonly LongTime: "T";
476
+ /**
477
+ * Short date format, consisting of day, month, and year, e.g. 20/04/2021
478
+ */
479
+ readonly ShortDate: "d";
480
+ /**
481
+ * Long date format, consisting of day, month, and year, e.g. 20 April 2021
482
+ */
483
+ readonly LongDate: "D";
484
+ /**
485
+ * Short date-time format, consisting of short date and short time formats, e.g. 20 April 2021 16:20
486
+ */
487
+ readonly ShortDateTime: "f";
488
+ /**
489
+ * Long date-time format, consisting of long date and short time formats, e.g. Tuesday, 20 April 2021 16:20
490
+ */
491
+ readonly LongDateTime: "F";
492
+ /**
493
+ * Relative time format, consisting of a relative duration format, e.g. 2 months ago
494
+ */
495
+ readonly RelativeTime: "R";
496
+ };
497
+ /**
498
+ * The possible values, see {@link TimestampStyles} for more information
499
+ */
500
+ declare type TimestampStylesString = typeof TimestampStyles[keyof typeof TimestampStyles];
501
+ /**
502
+ * An enum with all the available faces from Discord's native slash commands
503
+ */
504
+ declare enum Faces {
505
+ /**
506
+ * ¯\\_(ツ)\\_/¯
507
+ */
508
+ Shrug = "\u00AF\\_(\u30C4)\\_/\u00AF",
509
+ /**
510
+ * (╯°□°)╯︵ ┻━┻
511
+ */
512
+ Tableflip = "(\u256F\u00B0\u25A1\u00B0\uFF09\u256F\uFE35 \u253B\u2501\u253B",
513
+ /**
514
+ * ┬─┬ ノ( ゜-゜ノ)
515
+ */
516
+ Unflip = "\u252C\u2500\u252C \u30CE( \u309C-\u309C\u30CE)"
517
+ }
518
+
519
+ /**
520
+ * Represents an object capable of representing itself as a JSON object
521
+ *
522
+ * @typeParam T - The JSON type corresponding to {@link JSONEncodable.toJSON} outputs.
523
+ */
524
+ interface JSONEncodable<T> {
525
+ /**
526
+ * Transforms this object to its JSON format
527
+ */
528
+ toJSON(): T;
529
+ }
530
+ /**
531
+ * Indicates if an object is encodable or not.
532
+ *
533
+ * @param maybeEncodable - The object to check against
534
+ */
535
+ declare function isJSONEncodable(maybeEncodable: unknown): maybeEncodable is JSONEncodable<unknown>;
536
+
537
+ /**
538
+ * Represents a option within a select menu component
539
+ */
540
+ declare class SelectMenuOptionBuilder implements JSONEncodable<APISelectMenuOption> {
541
+ data: Partial<APISelectMenuOption>;
542
+ constructor(data?: Partial<APISelectMenuOption>);
543
+ /**
544
+ * Sets the label of this option
545
+ *
546
+ * @param label - The label to show on this option
547
+ */
548
+ setLabel(label: string): this;
549
+ /**
550
+ * Sets the value of this option
551
+ *
552
+ * @param value - The value of this option
553
+ */
554
+ setValue(value: string): this;
555
+ /**
556
+ * Sets the description of this option
557
+ *
558
+ * @param description - The description of this option
559
+ */
560
+ setDescription(description: string): this;
561
+ /**
562
+ * Sets whether this option is selected by default
563
+ *
564
+ * @param isDefault - Whether this option is selected by default
565
+ */
566
+ setDefault(isDefault?: boolean): this;
567
+ /**
568
+ * Sets the emoji to display on this option
569
+ *
570
+ * @param emoji - The emoji to display on this option
571
+ */
572
+ setEmoji(emoji: APIMessageComponentEmoji): this;
573
+ /**
574
+ * {@inheritDoc ComponentBuilder.toJSON}
575
+ */
576
+ toJSON(): APISelectMenuOption;
577
+ }
578
+
579
+ declare const customIdValidator: _sapphire_shapeshift.StringValidator<string>;
580
+ declare const emojiValidator: _sapphire_shapeshift.ObjectValidator<{
581
+ id?: string | undefined;
582
+ name?: string | undefined;
583
+ animated?: boolean | undefined;
584
+ }, _sapphire_shapeshift.UndefinedToOptional<{
585
+ id?: string | undefined;
586
+ name?: string | undefined;
587
+ animated?: boolean | undefined;
588
+ }>>;
589
+ declare const disabledValidator: _sapphire_shapeshift.BooleanValidator<boolean>;
590
+ declare const buttonLabelValidator: _sapphire_shapeshift.StringValidator<string>;
591
+ declare const buttonStyleValidator: _sapphire_shapeshift.NativeEnumValidator<typeof ButtonStyle>;
592
+ declare const placeholderValidator$1: _sapphire_shapeshift.StringValidator<string>;
593
+ declare const minMaxValidator: _sapphire_shapeshift.NumberValidator<number>;
594
+ declare const labelValueDescriptionValidator: _sapphire_shapeshift.StringValidator<string>;
595
+ declare const jsonOptionValidator: _sapphire_shapeshift.ObjectValidator<{
596
+ label: string;
597
+ value: string;
598
+ description: string | undefined;
599
+ emoji: _sapphire_shapeshift.UndefinedToOptional<{
600
+ id?: string | undefined;
601
+ name?: string | undefined;
602
+ animated?: boolean | undefined;
603
+ }> | undefined;
604
+ default: boolean | undefined;
605
+ }, _sapphire_shapeshift.UndefinedToOptional<{
606
+ label: string;
607
+ value: string;
608
+ description: string | undefined;
609
+ emoji: _sapphire_shapeshift.UndefinedToOptional<{
610
+ id?: string | undefined;
611
+ name?: string | undefined;
612
+ animated?: boolean | undefined;
613
+ }> | undefined;
614
+ default: boolean | undefined;
615
+ }>>;
616
+ declare const optionValidator: _sapphire_shapeshift.InstanceValidator<SelectMenuOptionBuilder>;
617
+ declare const optionsValidator: _sapphire_shapeshift.ArrayValidator<SelectMenuOptionBuilder[], SelectMenuOptionBuilder>;
618
+ declare const optionsLengthValidator: _sapphire_shapeshift.NumberValidator<number>;
619
+ declare function validateRequiredSelectMenuParameters(options: SelectMenuOptionBuilder[], customId?: string): void;
620
+ declare const defaultValidator: _sapphire_shapeshift.BooleanValidator<boolean>;
621
+ declare function validateRequiredSelectMenuOptionParameters(label?: string, value?: string): void;
622
+ declare const urlValidator: _sapphire_shapeshift.StringValidator<string>;
623
+ declare function validateRequiredButtonParameters(style?: ButtonStyle, label?: string, emoji?: APIMessageComponentEmoji, customId?: string, url?: string): void;
624
+
625
+ declare const Assertions$4_customIdValidator: typeof customIdValidator;
626
+ declare const Assertions$4_emojiValidator: typeof emojiValidator;
627
+ declare const Assertions$4_disabledValidator: typeof disabledValidator;
628
+ declare const Assertions$4_buttonLabelValidator: typeof buttonLabelValidator;
629
+ declare const Assertions$4_buttonStyleValidator: typeof buttonStyleValidator;
630
+ declare const Assertions$4_minMaxValidator: typeof minMaxValidator;
631
+ declare const Assertions$4_labelValueDescriptionValidator: typeof labelValueDescriptionValidator;
632
+ declare const Assertions$4_jsonOptionValidator: typeof jsonOptionValidator;
633
+ declare const Assertions$4_optionValidator: typeof optionValidator;
634
+ declare const Assertions$4_optionsValidator: typeof optionsValidator;
635
+ declare const Assertions$4_optionsLengthValidator: typeof optionsLengthValidator;
636
+ declare const Assertions$4_validateRequiredSelectMenuParameters: typeof validateRequiredSelectMenuParameters;
637
+ declare const Assertions$4_defaultValidator: typeof defaultValidator;
638
+ declare const Assertions$4_validateRequiredSelectMenuOptionParameters: typeof validateRequiredSelectMenuOptionParameters;
639
+ declare const Assertions$4_urlValidator: typeof urlValidator;
640
+ declare const Assertions$4_validateRequiredButtonParameters: typeof validateRequiredButtonParameters;
641
+ declare namespace Assertions$4 {
642
+ export {
643
+ Assertions$4_customIdValidator as customIdValidator,
644
+ Assertions$4_emojiValidator as emojiValidator,
645
+ Assertions$4_disabledValidator as disabledValidator,
646
+ Assertions$4_buttonLabelValidator as buttonLabelValidator,
647
+ Assertions$4_buttonStyleValidator as buttonStyleValidator,
648
+ placeholderValidator$1 as placeholderValidator,
649
+ Assertions$4_minMaxValidator as minMaxValidator,
650
+ Assertions$4_labelValueDescriptionValidator as labelValueDescriptionValidator,
651
+ Assertions$4_jsonOptionValidator as jsonOptionValidator,
652
+ Assertions$4_optionValidator as optionValidator,
653
+ Assertions$4_optionsValidator as optionsValidator,
654
+ Assertions$4_optionsLengthValidator as optionsLengthValidator,
655
+ Assertions$4_validateRequiredSelectMenuParameters as validateRequiredSelectMenuParameters,
656
+ Assertions$4_defaultValidator as defaultValidator,
657
+ Assertions$4_validateRequiredSelectMenuOptionParameters as validateRequiredSelectMenuOptionParameters,
658
+ Assertions$4_urlValidator as urlValidator,
659
+ Assertions$4_validateRequiredButtonParameters as validateRequiredButtonParameters,
660
+ };
661
+ }
662
+
663
+ declare type AnyAPIActionRowComponent = APIActionRowComponent<APIActionRowComponentTypes> | APIActionRowComponentTypes;
664
+ /**
665
+ * Represents a discord component
666
+ *
667
+ * @typeParam DataType - The type of internal API data that is stored within the component
668
+ */
669
+ declare abstract class ComponentBuilder<DataType extends Partial<APIBaseComponent<ComponentType>> = APIBaseComponent<ComponentType>> implements JSONEncodable<AnyAPIActionRowComponent> {
670
+ /**
671
+ * The API data associated with this component
672
+ */
673
+ readonly data: Partial<DataType>;
674
+ /**
675
+ * Serializes this component to an API-compatible JSON object
676
+ *
677
+ * @remarks
678
+ * This method runs validations on the data before serializing it.
679
+ * As such, it may throw an error if the data is invalid.
680
+ */
681
+ abstract toJSON(): AnyAPIActionRowComponent;
682
+ constructor(data: Partial<DataType>);
683
+ }
684
+
685
+ /**
686
+ * Represents a button component
687
+ */
688
+ declare class ButtonBuilder extends ComponentBuilder<APIButtonComponent> {
689
+ /**
690
+ * Creates a new button from API data
691
+ *
692
+ * @param data - The API data to create this button with
693
+ * @example
694
+ * Creating a button from an API data object
695
+ * ```ts
696
+ * const button = new ButtonBuilder({
697
+ * style: 'primary',
698
+ * label: 'Click Me',
699
+ * emoji: {
700
+ * name: ':smile:',
701
+ * id: '12345678901234567890123456789012',
702
+ * },
703
+ * custom_id: '12345678901234567890123456789012',
704
+ * });
705
+ * ```
706
+ * @example
707
+ * Creating a button using setters and API data
708
+ * ```ts
709
+ * const button = new ButtonBuilder({
710
+ * style: 'primary',
711
+ * label: 'Click Me',
712
+ * })
713
+ * .setEmoji({ name: ':smile:', id: '12345678901234567890123456789012' })
714
+ * .setCustomId('12345678901234567890123456789012');
715
+ * ```
716
+ */
717
+ constructor(data?: Partial<APIButtonComponent>);
718
+ /**
719
+ * Sets the style of this button
720
+ *
721
+ * @param style - The style of the button
722
+ */
723
+ setStyle(style: ButtonStyle): this;
724
+ /**
725
+ * Sets the URL for this button
726
+ *
727
+ * @remarks
728
+ * This method is only available to buttons using the `Link` button style.
729
+ * Only three types of URL schemes are currently supported: `https://`, `http://` and `discord://`
730
+ * @param url - The URL to open when this button is clicked
731
+ */
732
+ setURL(url: string): this;
733
+ /**
734
+ * Sets the custom id for this button
735
+ *
736
+ * @remarks
737
+ * This method is only applicable to buttons that are not using the `Link` button style.
738
+ * @param customId - The custom id to use for this button
739
+ */
740
+ setCustomId(customId: string): this;
741
+ /**
742
+ * Sets the emoji to display on this button
743
+ *
744
+ * @param emoji - The emoji to display on this button
745
+ */
746
+ setEmoji(emoji: APIMessageComponentEmoji): this;
747
+ /**
748
+ * Sets whether this button is disabled
749
+ *
750
+ * @param disabled - Whether to disable this button
751
+ */
752
+ setDisabled(disabled?: boolean): this;
753
+ /**
754
+ * Sets the label for this button
755
+ *
756
+ * @param label - The label to display on this button
757
+ */
758
+ setLabel(label: string): this;
759
+ /**
760
+ * {@inheritDoc ComponentBuilder.toJSON}
761
+ */
762
+ toJSON(): APIButtonComponent;
763
+ }
764
+
765
+ /**
766
+ * Represents a select menu component
767
+ */
768
+ declare class SelectMenuBuilder extends ComponentBuilder<APISelectMenuComponent> {
769
+ /**
770
+ * The options within this select menu
771
+ */
772
+ readonly options: SelectMenuOptionBuilder[];
773
+ constructor(data?: Partial<APISelectMenuComponent>);
774
+ /**
775
+ * Sets the placeholder for this select menu
776
+ *
777
+ * @param placeholder - The placeholder to use for this select menu
778
+ */
779
+ setPlaceholder(placeholder: string): this;
780
+ /**
781
+ * Sets the minimum values that must be selected in the select menu
782
+ *
783
+ * @param minValues - The minimum values that must be selected
784
+ */
785
+ setMinValues(minValues: number): this;
786
+ /**
787
+ * Sets the maximum values that must be selected in the select menu
788
+ *
789
+ * @param maxValues - The maximum values that must be selected
790
+ */
791
+ setMaxValues(maxValues: number): this;
792
+ /**
793
+ * Sets the custom id for this select menu
794
+ *
795
+ * @param customId - The custom id to use for this select menu
796
+ */
797
+ setCustomId(customId: string): this;
798
+ /**
799
+ * Sets whether this select menu is disabled
800
+ *
801
+ * @param disabled - Whether this select menu is disabled
802
+ */
803
+ setDisabled(disabled?: boolean): this;
804
+ /**
805
+ * Adds options to this select menu
806
+ *
807
+ * @param options - The options to add to this select menu
808
+ * @returns
809
+ */
810
+ addOptions(...options: RestOrArray<APISelectMenuOption | SelectMenuOptionBuilder>): this;
811
+ /**
812
+ * Sets the options on this select menu
813
+ *
814
+ * @param options - The options to set on this select menu
815
+ */
816
+ setOptions(...options: RestOrArray<APISelectMenuOption | SelectMenuOptionBuilder>): this;
817
+ /**
818
+ * {@inheritDoc ComponentBuilder.toJSON}
819
+ */
820
+ toJSON(): APISelectMenuComponent;
821
+ }
822
+
823
+ /**
824
+ * Represents a structure that can be checked against another
825
+ * given structure for equality
826
+ *
827
+ * @typeParam T - The type of object to compare the current object to
828
+ */
829
+ interface Equatable<T> {
830
+ /**
831
+ * Whether or not this is equal to another structure
832
+ */
833
+ equals(other: T): boolean;
834
+ }
835
+ /**
836
+ * Indicates if an object is equatable or not.
837
+ *
838
+ * @param maybeEquatable - The object to check against
839
+ */
840
+ declare function isEquatable(maybeEquatable: unknown): maybeEquatable is Equatable<unknown>;
841
+
842
+ declare class TextInputBuilder extends ComponentBuilder<APITextInputComponent> implements Equatable<APITextInputComponent | JSONEncodable<APITextInputComponent>> {
843
+ constructor(data?: APITextInputComponent & {
844
+ type?: ComponentType.TextInput;
845
+ });
846
+ /**
847
+ * Sets the custom id for this text input
848
+ *
849
+ * @param customId - The custom id of this text input
850
+ */
851
+ setCustomId(customId: string): this;
852
+ /**
853
+ * Sets the label for this text input
854
+ *
855
+ * @param label - The label for this text input
856
+ */
857
+ setLabel(label: string): this;
858
+ /**
859
+ * Sets the style for this text input
860
+ *
861
+ * @param style - The style for this text input
862
+ */
863
+ setStyle(style: TextInputStyle): this;
864
+ /**
865
+ * Sets the minimum length of text for this text input
866
+ *
867
+ * @param minLength - The minimum length of text for this text input
868
+ */
869
+ setMinLength(minLength: number): this;
870
+ /**
871
+ * Sets the maximum length of text for this text input
872
+ *
873
+ * @param maxLength - The maximum length of text for this text input
874
+ */
875
+ setMaxLength(maxLength: number): this;
876
+ /**
877
+ * Sets the placeholder of this text input
878
+ *
879
+ * @param placeholder - The placeholder of this text input
880
+ */
881
+ setPlaceholder(placeholder: string): this;
882
+ /**
883
+ * Sets the value of this text input
884
+ *
885
+ * @param value - The value for this text input
886
+ */
887
+ setValue(value: string): this;
888
+ /**
889
+ * Sets whether this text input is required
890
+ *
891
+ * @param required - Whether this text input is required
892
+ */
893
+ setRequired(required?: boolean): this;
894
+ /**
895
+ * {@inheritDoc ComponentBuilder.toJSON}
896
+ */
897
+ toJSON(): APITextInputComponent;
898
+ /**
899
+ * {@inheritDoc Equatable.equals}
900
+ */
901
+ equals(other: APITextInputComponent | JSONEncodable<APITextInputComponent>): boolean;
902
+ }
903
+
904
+ declare type MessageComponentBuilder = ActionRowBuilder<MessageActionRowComponentBuilder> | MessageActionRowComponentBuilder;
905
+ declare type ModalComponentBuilder = ActionRowBuilder<ModalActionRowComponentBuilder> | ModalActionRowComponentBuilder;
906
+ declare type MessageActionRowComponentBuilder = ButtonBuilder | SelectMenuBuilder;
907
+ declare type ModalActionRowComponentBuilder = TextInputBuilder;
908
+ declare type AnyComponentBuilder = MessageActionRowComponentBuilder | ModalActionRowComponentBuilder;
909
+ /**
910
+ * Represents an action row component
911
+ *
912
+ * @typeParam T - The types of components this action row holds
913
+ */
914
+ declare class ActionRowBuilder<T extends AnyComponentBuilder> extends ComponentBuilder<APIActionRowComponent<APIMessageActionRowComponent | APIModalActionRowComponent>> {
915
+ /**
916
+ * The components within this action row
917
+ */
918
+ readonly components: T[];
919
+ constructor({ components, ...data }?: Partial<APIActionRowComponent<APIActionRowComponentTypes>>);
920
+ /**
921
+ * Adds components to this action row.
922
+ *
923
+ * @param components - The components to add to this action row.
924
+ */
925
+ addComponents(...components: RestOrArray<T>): this;
926
+ /**
927
+ * Sets the components in this action row
928
+ *
929
+ * @param components - The components to set this row to
930
+ */
931
+ setComponents(...components: RestOrArray<T>): this;
932
+ /**
933
+ * {@inheritDoc ComponentBuilder.toJSON}
934
+ */
935
+ toJSON(): APIActionRowComponent<ReturnType<T['toJSON']>>;
936
+ }
937
+
938
+ interface MappedComponentTypes {
939
+ [ComponentType.ActionRow]: ActionRowBuilder<AnyComponentBuilder>;
940
+ [ComponentType.Button]: ButtonBuilder;
941
+ [ComponentType.SelectMenu]: SelectMenuBuilder;
942
+ [ComponentType.TextInput]: TextInputBuilder;
943
+ }
944
+ /**
945
+ * Factory for creating components from API data
946
+ *
947
+ * @param data - The api data to transform to a component class
948
+ */
949
+ declare function createComponentBuilder<T extends keyof MappedComponentTypes>(data: (APIModalComponent | APIMessageComponent) & {
950
+ type: T;
951
+ }): MappedComponentTypes[T];
952
+ declare function createComponentBuilder<C extends MessageComponentBuilder | ModalComponentBuilder>(data: C): C;
953
+
954
+ declare const textInputStyleValidator: _sapphire_shapeshift.NativeEnumValidator<typeof TextInputStyle>;
955
+ declare const minLengthValidator: _sapphire_shapeshift.NumberValidator<number>;
956
+ declare const maxLengthValidator: _sapphire_shapeshift.NumberValidator<number>;
957
+ declare const requiredValidator: _sapphire_shapeshift.BooleanValidator<boolean>;
958
+ declare const valueValidator: _sapphire_shapeshift.StringValidator<string>;
959
+ declare const placeholderValidator: _sapphire_shapeshift.StringValidator<string>;
960
+ declare const labelValidator: _sapphire_shapeshift.StringValidator<string>;
961
+ declare function validateRequiredParameters$3(customId?: string, style?: TextInputStyle, label?: string): void;
962
+
963
+ declare const Assertions$3_textInputStyleValidator: typeof textInputStyleValidator;
964
+ declare const Assertions$3_minLengthValidator: typeof minLengthValidator;
965
+ declare const Assertions$3_maxLengthValidator: typeof maxLengthValidator;
966
+ declare const Assertions$3_requiredValidator: typeof requiredValidator;
967
+ declare const Assertions$3_valueValidator: typeof valueValidator;
968
+ declare const Assertions$3_placeholderValidator: typeof placeholderValidator;
969
+ declare const Assertions$3_labelValidator: typeof labelValidator;
970
+ declare namespace Assertions$3 {
971
+ export {
972
+ Assertions$3_textInputStyleValidator as textInputStyleValidator,
973
+ Assertions$3_minLengthValidator as minLengthValidator,
974
+ Assertions$3_maxLengthValidator as maxLengthValidator,
975
+ Assertions$3_requiredValidator as requiredValidator,
976
+ Assertions$3_valueValidator as valueValidator,
977
+ Assertions$3_placeholderValidator as placeholderValidator,
978
+ Assertions$3_labelValidator as labelValidator,
979
+ validateRequiredParameters$3 as validateRequiredParameters,
980
+ };
981
+ }
982
+
983
+ declare class ModalBuilder implements JSONEncodable<APIModalInteractionResponseCallbackData> {
984
+ readonly data: Partial<APIModalInteractionResponseCallbackData>;
985
+ readonly components: ActionRowBuilder<ModalActionRowComponentBuilder>[];
986
+ constructor({ components, ...data }?: Partial<APIModalInteractionResponseCallbackData>);
987
+ /**
988
+ * Sets the title of the modal
989
+ *
990
+ * @param title - The title of the modal
991
+ */
992
+ setTitle(title: string): this;
993
+ /**
994
+ * Sets the custom id of the modal
995
+ *
996
+ * @param customId - The custom id of this modal
997
+ */
998
+ setCustomId(customId: string): this;
999
+ /**
1000
+ * Adds components to this modal
1001
+ *
1002
+ * @param components - The components to add to this modal
1003
+ */
1004
+ addComponents(...components: RestOrArray<ActionRowBuilder<ModalActionRowComponentBuilder> | APIActionRowComponent<APIModalActionRowComponent>>): this;
1005
+ /**
1006
+ * Sets the components in this modal
1007
+ *
1008
+ * @param components - The components to set this modal to
1009
+ */
1010
+ setComponents(...components: RestOrArray<ActionRowBuilder<ModalActionRowComponentBuilder>>): this;
1011
+ /**
1012
+ * {@inheritDoc ComponentBuilder.toJSON}
1013
+ */
1014
+ toJSON(): APIModalInteractionResponseCallbackData;
1015
+ }
1016
+
1017
+ declare const titleValidator: _sapphire_shapeshift.StringValidator<string>;
1018
+ declare const componentsValidator: _sapphire_shapeshift.ArrayValidator<[ActionRowBuilder<AnyComponentBuilder>, ...ActionRowBuilder<AnyComponentBuilder>[]], ActionRowBuilder<AnyComponentBuilder>>;
1019
+ declare function validateRequiredParameters$2(customId?: string, title?: string, components?: ActionRowBuilder<ModalActionRowComponentBuilder>[]): void;
1020
+
1021
+ declare const Assertions$2_titleValidator: typeof titleValidator;
1022
+ declare const Assertions$2_componentsValidator: typeof componentsValidator;
1023
+ declare namespace Assertions$2 {
1024
+ export {
1025
+ Assertions$2_titleValidator as titleValidator,
1026
+ Assertions$2_componentsValidator as componentsValidator,
1027
+ validateRequiredParameters$2 as validateRequiredParameters,
1028
+ };
1029
+ }
1030
+
1031
+ declare class SharedNameAndDescription {
1032
+ readonly name: string;
1033
+ readonly name_localizations?: LocalizationMap;
1034
+ readonly description: string;
1035
+ readonly description_localizations?: LocalizationMap;
1036
+ /**
1037
+ * Sets the name
1038
+ *
1039
+ * @param name - The name
1040
+ */
1041
+ setName(name: string): this;
1042
+ /**
1043
+ * Sets the description
1044
+ *
1045
+ * @param description - The description
1046
+ */
1047
+ setDescription(description: string): this;
1048
+ /**
1049
+ * Sets a name localization
1050
+ *
1051
+ * @param locale - The locale to set a description for
1052
+ * @param localizedName - The localized description for the given locale
1053
+ */
1054
+ setNameLocalization(locale: LocaleString, localizedName: string | null): this;
1055
+ /**
1056
+ * Sets the name localizations
1057
+ *
1058
+ * @param localizedNames - The dictionary of localized descriptions to set
1059
+ */
1060
+ setNameLocalizations(localizedNames: LocalizationMap | null): this;
1061
+ /**
1062
+ * Sets a description localization
1063
+ *
1064
+ * @param locale - The locale to set a description for
1065
+ * @param localizedDescription - The localized description for the given locale
1066
+ */
1067
+ setDescriptionLocalization(locale: LocaleString, localizedDescription: string | null): this;
1068
+ /**
1069
+ * Sets the description localizations
1070
+ *
1071
+ * @param localizedDescriptions - The dictionary of localized descriptions to set
1072
+ */
1073
+ setDescriptionLocalizations(localizedDescriptions: LocalizationMap | null): this;
1074
+ }
1075
+
1076
+ declare abstract class ApplicationCommandOptionBase extends SharedNameAndDescription {
1077
+ abstract readonly type: ApplicationCommandOptionType;
1078
+ readonly required: boolean;
1079
+ /**
1080
+ * Marks the option as required
1081
+ *
1082
+ * @param required - If this option should be required
1083
+ */
1084
+ setRequired(required: boolean): this;
1085
+ abstract toJSON(): APIApplicationCommandBasicOption;
1086
+ protected runRequiredValidations(): void;
1087
+ }
1088
+
1089
+ declare class SlashCommandAttachmentOption extends ApplicationCommandOptionBase {
1090
+ readonly type: ApplicationCommandOptionType.Attachment;
1091
+ toJSON(): APIApplicationCommandAttachmentOption;
1092
+ }
1093
+
1094
+ declare class SlashCommandBooleanOption extends ApplicationCommandOptionBase {
1095
+ readonly type: ApplicationCommandOptionType.Boolean;
1096
+ toJSON(): APIApplicationCommandBooleanOption;
1097
+ }
1098
+
1099
+ declare const allowedChannelTypes: readonly [ChannelType.GuildText, ChannelType.GuildVoice, ChannelType.GuildCategory, ChannelType.GuildNews, ChannelType.GuildNewsThread, ChannelType.GuildPublicThread, ChannelType.GuildPrivateThread, ChannelType.GuildStageVoice];
1100
+ declare type ApplicationCommandOptionAllowedChannelTypes = typeof allowedChannelTypes[number];
1101
+ declare class ApplicationCommandOptionChannelTypesMixin {
1102
+ readonly channel_types?: ApplicationCommandOptionAllowedChannelTypes[];
1103
+ /**
1104
+ * Adds channel types to this option
1105
+ *
1106
+ * @param channelTypes - The channel types to add
1107
+ */
1108
+ addChannelTypes(...channelTypes: ApplicationCommandOptionAllowedChannelTypes[]): this;
1109
+ }
1110
+
1111
+ declare class SlashCommandChannelOption extends ApplicationCommandOptionBase {
1112
+ readonly type: ApplicationCommandOptionType.Channel;
1113
+ toJSON(): APIApplicationCommandChannelOption;
1114
+ }
1115
+ interface SlashCommandChannelOption extends ApplicationCommandOptionChannelTypesMixin {
1116
+ }
1117
+
1118
+ declare abstract class ApplicationCommandNumericOptionMinMaxValueMixin {
1119
+ readonly max_value?: number;
1120
+ readonly min_value?: number;
1121
+ /**
1122
+ * Sets the maximum number value of this option
1123
+ *
1124
+ * @param max - The maximum value this option can be
1125
+ */
1126
+ abstract setMaxValue(max: number): this;
1127
+ /**
1128
+ * Sets the minimum number value of this option
1129
+ *
1130
+ * @param min - The minimum value this option can be
1131
+ */
1132
+ abstract setMinValue(min: number): this;
1133
+ }
1134
+
1135
+ declare class ApplicationCommandOptionWithChoicesAndAutocompleteMixin<T extends number | string> {
1136
+ readonly choices?: APIApplicationCommandOptionChoice<T>[];
1137
+ readonly autocomplete?: boolean;
1138
+ readonly type: ApplicationCommandOptionType;
1139
+ /**
1140
+ * Adds multiple choices for this option
1141
+ *
1142
+ * @param choices - The choices to add
1143
+ */
1144
+ addChoices(...choices: APIApplicationCommandOptionChoice<T>[]): this;
1145
+ setChoices<Input extends APIApplicationCommandOptionChoice<T>[]>(...choices: Input): this;
1146
+ /**
1147
+ * Marks the option as autocompletable
1148
+ *
1149
+ * @param autocomplete - If this option should be autocompletable
1150
+ */
1151
+ setAutocomplete(autocomplete: boolean): this;
1152
+ }
1153
+
1154
+ declare class SlashCommandIntegerOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin {
1155
+ readonly type: ApplicationCommandOptionType.Integer;
1156
+ /**
1157
+ * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}
1158
+ */
1159
+ setMaxValue(max: number): this;
1160
+ /**
1161
+ * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}
1162
+ */
1163
+ setMinValue(min: number): this;
1164
+ toJSON(): APIApplicationCommandIntegerOption;
1165
+ }
1166
+ interface SlashCommandIntegerOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin<number> {
1167
+ }
1168
+
1169
+ declare class SlashCommandMentionableOption extends ApplicationCommandOptionBase {
1170
+ readonly type: ApplicationCommandOptionType.Mentionable;
1171
+ toJSON(): APIApplicationCommandMentionableOption;
1172
+ }
1173
+
1174
+ declare class SlashCommandNumberOption extends ApplicationCommandOptionBase implements ApplicationCommandNumericOptionMinMaxValueMixin {
1175
+ readonly type: ApplicationCommandOptionType.Number;
1176
+ /**
1177
+ * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMaxValue}
1178
+ */
1179
+ setMaxValue(max: number): this;
1180
+ /**
1181
+ * {@inheritDoc ApplicationCommandNumericOptionMinMaxValueMixin.setMinValue}
1182
+ */
1183
+ setMinValue(min: number): this;
1184
+ toJSON(): APIApplicationCommandNumberOption;
1185
+ }
1186
+ interface SlashCommandNumberOption extends ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin<number> {
1187
+ }
1188
+
1189
+ declare class SlashCommandRoleOption extends ApplicationCommandOptionBase {
1190
+ readonly type: ApplicationCommandOptionType.Role;
1191
+ toJSON(): APIApplicationCommandRoleOption;
1192
+ }
1193
+
1194
+ declare class SlashCommandStringOption extends ApplicationCommandOptionBase {
1195
+ readonly type: ApplicationCommandOptionType.String;
1196
+ readonly max_length?: number;
1197
+ readonly min_length?: number;
1198
+ /**
1199
+ * Sets the maximum length of this string option.
1200
+ *
1201
+ * @param max - The maximum length this option can be
1202
+ */
1203
+ setMaxLength(max: number): this;
1204
+ /**
1205
+ * Sets the minimum length of this string option.
1206
+ *
1207
+ * @param min - The minimum length this option can be
1208
+ */
1209
+ setMinLength(min: number): this;
1210
+ toJSON(): APIApplicationCommandStringOption;
1211
+ }
1212
+ interface SlashCommandStringOption extends ApplicationCommandOptionWithChoicesAndAutocompleteMixin<string> {
1213
+ }
1214
+
1215
+ declare class SlashCommandUserOption extends ApplicationCommandOptionBase {
1216
+ readonly type: ApplicationCommandOptionType.User;
1217
+ toJSON(): APIApplicationCommandUserOption;
1218
+ }
1219
+
1220
+ declare class SharedSlashCommandOptions<ShouldOmitSubcommandFunctions = true> {
1221
+ readonly options: ToAPIApplicationCommandOptions[];
1222
+ /**
1223
+ * Adds a boolean option
1224
+ *
1225
+ * @param input - A function that returns an option builder, or an already built builder
1226
+ */
1227
+ addBooleanOption(input: SlashCommandBooleanOption | ((builder: SlashCommandBooleanOption) => SlashCommandBooleanOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1228
+ /**
1229
+ * Adds a user option
1230
+ *
1231
+ * @param input - A function that returns an option builder, or an already built builder
1232
+ */
1233
+ addUserOption(input: SlashCommandUserOption | ((builder: SlashCommandUserOption) => SlashCommandUserOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1234
+ /**
1235
+ * Adds a channel option
1236
+ *
1237
+ * @param input - A function that returns an option builder, or an already built builder
1238
+ */
1239
+ addChannelOption(input: SlashCommandChannelOption | ((builder: SlashCommandChannelOption) => SlashCommandChannelOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1240
+ /**
1241
+ * Adds a role option
1242
+ *
1243
+ * @param input - A function that returns an option builder, or an already built builder
1244
+ */
1245
+ addRoleOption(input: SlashCommandRoleOption | ((builder: SlashCommandRoleOption) => SlashCommandRoleOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1246
+ /**
1247
+ * Adds an attachment option
1248
+ *
1249
+ * @param input - A function that returns an option builder, or an already built builder
1250
+ */
1251
+ addAttachmentOption(input: SlashCommandAttachmentOption | ((builder: SlashCommandAttachmentOption) => SlashCommandAttachmentOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1252
+ /**
1253
+ * Adds a mentionable option
1254
+ *
1255
+ * @param input - A function that returns an option builder, or an already built builder
1256
+ */
1257
+ addMentionableOption(input: SlashCommandMentionableOption | ((builder: SlashCommandMentionableOption) => SlashCommandMentionableOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1258
+ /**
1259
+ * Adds a string option
1260
+ *
1261
+ * @param input - A function that returns an option builder, or an already built builder
1262
+ */
1263
+ addStringOption(input: Omit<SlashCommandStringOption, 'addChoices'> | Omit<SlashCommandStringOption, 'setAutocomplete'> | SlashCommandStringOption | ((builder: SlashCommandStringOption) => Omit<SlashCommandStringOption, 'addChoices'> | Omit<SlashCommandStringOption, 'setAutocomplete'> | SlashCommandStringOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1264
+ /**
1265
+ * Adds an integer option
1266
+ *
1267
+ * @param input - A function that returns an option builder, or an already built builder
1268
+ */
1269
+ addIntegerOption(input: Omit<SlashCommandIntegerOption, 'addChoices'> | Omit<SlashCommandIntegerOption, 'setAutocomplete'> | SlashCommandIntegerOption | ((builder: SlashCommandIntegerOption) => Omit<SlashCommandIntegerOption, 'addChoices'> | Omit<SlashCommandIntegerOption, 'setAutocomplete'> | SlashCommandIntegerOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1270
+ /**
1271
+ * Adds a number option
1272
+ *
1273
+ * @param input - A function that returns an option builder, or an already built builder
1274
+ */
1275
+ addNumberOption(input: Omit<SlashCommandNumberOption, 'addChoices'> | Omit<SlashCommandNumberOption, 'setAutocomplete'> | SlashCommandNumberOption | ((builder: SlashCommandNumberOption) => Omit<SlashCommandNumberOption, 'addChoices'> | Omit<SlashCommandNumberOption, 'setAutocomplete'> | SlashCommandNumberOption)): ShouldOmitSubcommandFunctions extends true ? Omit<this, "addSubcommand" | "addSubcommandGroup"> : this;
1276
+ private _sharedAddOptionMethod;
1277
+ }
1278
+
1279
+ /**
1280
+ * Represents a folder for subcommands
1281
+ *
1282
+ * For more information, go to https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups
1283
+ */
1284
+ declare class SlashCommandSubcommandGroupBuilder implements ToAPIApplicationCommandOptions {
1285
+ /**
1286
+ * The name of this subcommand group
1287
+ */
1288
+ readonly name: string;
1289
+ /**
1290
+ * The description of this subcommand group
1291
+ */
1292
+ readonly description: string;
1293
+ /**
1294
+ * The subcommands part of this subcommand group
1295
+ */
1296
+ readonly options: SlashCommandSubcommandBuilder[];
1297
+ /**
1298
+ * Adds a new subcommand to this group
1299
+ *
1300
+ * @param input - A function that returns a subcommand builder, or an already built builder
1301
+ */
1302
+ addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): this;
1303
+ toJSON(): APIApplicationCommandSubcommandGroupOption;
1304
+ }
1305
+ interface SlashCommandSubcommandGroupBuilder extends SharedNameAndDescription {
1306
+ }
1307
+ /**
1308
+ * Represents a subcommand
1309
+ *
1310
+ * For more information, go to https://discord.com/developers/docs/interactions/application-commands#subcommands-and-subcommand-groups
1311
+ */
1312
+ declare class SlashCommandSubcommandBuilder implements ToAPIApplicationCommandOptions {
1313
+ /**
1314
+ * The name of this subcommand
1315
+ */
1316
+ readonly name: string;
1317
+ /**
1318
+ * The description of this subcommand
1319
+ */
1320
+ readonly description: string;
1321
+ /**
1322
+ * The options of this subcommand
1323
+ */
1324
+ readonly options: ApplicationCommandOptionBase[];
1325
+ toJSON(): APIApplicationCommandSubcommandOption;
1326
+ }
1327
+ interface SlashCommandSubcommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions<false> {
1328
+ }
1329
+
1330
+ declare class SlashCommandBuilder {
1331
+ /**
1332
+ * The name of this slash command
1333
+ */
1334
+ readonly name: string;
1335
+ /**
1336
+ * The localized names for this command
1337
+ */
1338
+ readonly name_localizations?: LocalizationMap;
1339
+ /**
1340
+ * The description of this slash command
1341
+ */
1342
+ readonly description: string;
1343
+ /**
1344
+ * The localized descriptions for this command
1345
+ */
1346
+ readonly description_localizations?: LocalizationMap;
1347
+ /**
1348
+ * The options of this slash command
1349
+ */
1350
+ readonly options: ToAPIApplicationCommandOptions[];
1351
+ /**
1352
+ * Whether the command is enabled by default when the app is added to a guild
1353
+ *
1354
+ * @deprecated This property is deprecated and will be removed in the future.
1355
+ * You should use {@link (SlashCommandBuilder:class).setDefaultMemberPermissions} or {@link (SlashCommandBuilder:class).setDMPermission} instead.
1356
+ */
1357
+ readonly default_permission: boolean | undefined;
1358
+ /**
1359
+ * Set of permissions represented as a bit set for the command
1360
+ */
1361
+ readonly default_member_permissions: Permissions | null | undefined;
1362
+ /**
1363
+ * Indicates whether the command is available in DMs with the application, only for globally-scoped commands.
1364
+ * By default, commands are visible.
1365
+ */
1366
+ readonly dm_permission: boolean | undefined;
1367
+ /**
1368
+ * Returns the final data that should be sent to Discord.
1369
+ *
1370
+ * **Note:** Calling this function will validate required properties based on their conditions.
1371
+ */
1372
+ toJSON(): RESTPostAPIChatInputApplicationCommandsJSONBody;
1373
+ /**
1374
+ * Sets whether the command is enabled by default when the application is added to a guild.
1375
+ *
1376
+ * **Note**: If set to `false`, you will have to later `PUT` the permissions for this command.
1377
+ *
1378
+ * @param value - Whether or not to enable this command by default
1379
+ * @see https://discord.com/developers/docs/interactions/application-commands#permissions
1380
+ * @deprecated Use {@link (SlashCommandBuilder:class).setDefaultMemberPermissions} or {@link (SlashCommandBuilder:class).setDMPermission} instead.
1381
+ */
1382
+ setDefaultPermission(value: boolean): this;
1383
+ /**
1384
+ * Sets the default permissions a member should have in order to run the command.
1385
+ *
1386
+ * **Note:** You can set this to `'0'` to disable the command by default.
1387
+ *
1388
+ * @param permissions - The permissions bit field to set
1389
+ * @see https://discord.com/developers/docs/interactions/application-commands#permissions
1390
+ */
1391
+ setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this;
1392
+ /**
1393
+ * Sets if the command is available in DMs with the application, only for globally-scoped commands.
1394
+ * By default, commands are visible.
1395
+ *
1396
+ * @param enabled - If the command should be enabled in DMs
1397
+ * @see https://discord.com/developers/docs/interactions/application-commands#permissions
1398
+ */
1399
+ setDMPermission(enabled: boolean | null | undefined): this;
1400
+ /**
1401
+ * Adds a new subcommand group to this command
1402
+ *
1403
+ * @param input - A function that returns a subcommand group builder, or an already built builder
1404
+ */
1405
+ addSubcommandGroup(input: SlashCommandSubcommandGroupBuilder | ((subcommandGroup: SlashCommandSubcommandGroupBuilder) => SlashCommandSubcommandGroupBuilder)): SlashCommandSubcommandsOnlyBuilder;
1406
+ /**
1407
+ * Adds a new subcommand to this command
1408
+ *
1409
+ * @param input - A function that returns a subcommand builder, or an already built builder
1410
+ */
1411
+ addSubcommand(input: SlashCommandSubcommandBuilder | ((subcommandGroup: SlashCommandSubcommandBuilder) => SlashCommandSubcommandBuilder)): SlashCommandSubcommandsOnlyBuilder;
1412
+ }
1413
+ interface SlashCommandBuilder extends SharedNameAndDescription, SharedSlashCommandOptions {
1414
+ }
1415
+ interface SlashCommandSubcommandsOnlyBuilder extends SharedNameAndDescription, Pick<SlashCommandBuilder, 'addSubcommand' | 'addSubcommandGroup' | 'toJSON'> {
1416
+ }
1417
+ interface SlashCommandOptionsOnlyBuilder extends SharedNameAndDescription, SharedSlashCommandOptions, Pick<SlashCommandBuilder, 'toJSON'> {
1418
+ }
1419
+ interface ToAPIApplicationCommandOptions {
1420
+ toJSON(): APIApplicationCommandOption;
1421
+ }
1422
+
1423
+ declare function validateName$1(name: unknown): asserts name is string;
1424
+ declare function validateDescription(description: unknown): asserts description is string;
1425
+ declare function validateLocale(locale: unknown): Locale;
1426
+ declare function validateMaxOptionsLength(options: unknown): asserts options is ToAPIApplicationCommandOptions[];
1427
+ declare function validateRequiredParameters$1(name: string, description: string, options: ToAPIApplicationCommandOptions[]): void;
1428
+ declare function validateDefaultPermission$1(value: unknown): asserts value is boolean;
1429
+ declare function validateRequired(required: unknown): asserts required is boolean;
1430
+ declare function validateChoicesLength(amountAdding: number, choices?: APIApplicationCommandOptionChoice[]): void;
1431
+ declare function assertReturnOfBuilder<T extends ApplicationCommandOptionBase | SlashCommandSubcommandBuilder | SlashCommandSubcommandGroupBuilder>(input: unknown, ExpectedInstanceOf: new () => T): asserts input is T;
1432
+ declare const localizationMapPredicate: _sapphire_shapeshift.UnionValidator<_sapphire_shapeshift.UndefinedToOptional<Partial<Record<"en-US" | "en-GB" | "bg" | "zh-CN" | "zh-TW" | "hr" | "cs" | "da" | "nl" | "fi" | "fr" | "de" | "el" | "hi" | "hu" | "it" | "ja" | "ko" | "lt" | "no" | "pl" | "pt-BR" | "ro" | "ru" | "es-ES" | "sv-SE" | "th" | "tr" | "uk" | "vi", string | null>>> | null | undefined>;
1433
+ declare function validateLocalizationMap(value: unknown): asserts value is LocalizationMap;
1434
+ declare function validateDMPermission$1(value: unknown): asserts value is boolean | null | undefined;
1435
+ declare function validateDefaultMemberPermissions$1(permissions: unknown): string | null | undefined;
1436
+
1437
+ declare const Assertions$1_validateDescription: typeof validateDescription;
1438
+ declare const Assertions$1_validateLocale: typeof validateLocale;
1439
+ declare const Assertions$1_validateMaxOptionsLength: typeof validateMaxOptionsLength;
1440
+ declare const Assertions$1_validateRequired: typeof validateRequired;
1441
+ declare const Assertions$1_validateChoicesLength: typeof validateChoicesLength;
1442
+ declare const Assertions$1_assertReturnOfBuilder: typeof assertReturnOfBuilder;
1443
+ declare const Assertions$1_localizationMapPredicate: typeof localizationMapPredicate;
1444
+ declare const Assertions$1_validateLocalizationMap: typeof validateLocalizationMap;
1445
+ declare namespace Assertions$1 {
1446
+ export {
1447
+ validateName$1 as validateName,
1448
+ Assertions$1_validateDescription as validateDescription,
1449
+ Assertions$1_validateLocale as validateLocale,
1450
+ Assertions$1_validateMaxOptionsLength as validateMaxOptionsLength,
1451
+ validateRequiredParameters$1 as validateRequiredParameters,
1452
+ validateDefaultPermission$1 as validateDefaultPermission,
1453
+ Assertions$1_validateRequired as validateRequired,
1454
+ Assertions$1_validateChoicesLength as validateChoicesLength,
1455
+ Assertions$1_assertReturnOfBuilder as assertReturnOfBuilder,
1456
+ Assertions$1_localizationMapPredicate as localizationMapPredicate,
1457
+ Assertions$1_validateLocalizationMap as validateLocalizationMap,
1458
+ validateDMPermission$1 as validateDMPermission,
1459
+ validateDefaultMemberPermissions$1 as validateDefaultMemberPermissions,
1460
+ };
1461
+ }
1462
+
1463
+ declare class ContextMenuCommandBuilder {
1464
+ /**
1465
+ * The name of this context menu command
1466
+ */
1467
+ readonly name: string;
1468
+ /**
1469
+ * The localized names for this command
1470
+ */
1471
+ readonly name_localizations?: LocalizationMap;
1472
+ /**
1473
+ * The type of this context menu command
1474
+ */
1475
+ readonly type: ContextMenuCommandType;
1476
+ /**
1477
+ * Whether the command is enabled by default when the app is added to a guild
1478
+ *
1479
+ * @deprecated This property is deprecated and will be removed in the future.
1480
+ * You should use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.
1481
+ */
1482
+ readonly default_permission: boolean | undefined;
1483
+ /**
1484
+ * Set of permissions represented as a bit set for the command
1485
+ */
1486
+ readonly default_member_permissions: Permissions | null | undefined;
1487
+ /**
1488
+ * Indicates whether the command is available in DMs with the application, only for globally-scoped commands.
1489
+ * By default, commands are visible.
1490
+ */
1491
+ readonly dm_permission: boolean | undefined;
1492
+ /**
1493
+ * Sets the name
1494
+ *
1495
+ * @param name - The name
1496
+ */
1497
+ setName(name: string): this;
1498
+ /**
1499
+ * Sets the type
1500
+ *
1501
+ * @param type - The type
1502
+ */
1503
+ setType(type: ContextMenuCommandType): this;
1504
+ /**
1505
+ * Sets whether the command is enabled by default when the application is added to a guild.
1506
+ *
1507
+ * **Note**: If set to `false`, you will have to later `PUT` the permissions for this command.
1508
+ *
1509
+ * @param value - Whether or not to enable this command by default
1510
+ * @see https://discord.com/developers/docs/interactions/application-commands#permissions
1511
+ * @deprecated Use {@link ContextMenuCommandBuilder.setDefaultMemberPermissions} or {@link ContextMenuCommandBuilder.setDMPermission} instead.
1512
+ */
1513
+ setDefaultPermission(value: boolean): this;
1514
+ /**
1515
+ * Sets the default permissions a member should have in order to run the command.
1516
+ *
1517
+ * **Note:** You can set this to `'0'` to disable the command by default.
1518
+ *
1519
+ * @param permissions - The permissions bit field to set
1520
+ * @see https://discord.com/developers/docs/interactions/application-commands#permissions
1521
+ */
1522
+ setDefaultMemberPermissions(permissions: Permissions | bigint | number | null | undefined): this;
1523
+ /**
1524
+ * Sets if the command is available in DMs with the application, only for globally-scoped commands.
1525
+ * By default, commands are visible.
1526
+ *
1527
+ * @param enabled - If the command should be enabled in DMs
1528
+ * @see https://discord.com/developers/docs/interactions/application-commands#permissions
1529
+ */
1530
+ setDMPermission(enabled: boolean | null | undefined): this;
1531
+ /**
1532
+ * Sets a name localization
1533
+ *
1534
+ * @param locale - The locale to set a description for
1535
+ * @param localizedName - The localized description for the given locale
1536
+ */
1537
+ setNameLocalization(locale: LocaleString, localizedName: string | null): this;
1538
+ /**
1539
+ * Sets the name localizations
1540
+ *
1541
+ * @param localizedNames - The dictionary of localized descriptions to set
1542
+ */
1543
+ setNameLocalizations(localizedNames: LocalizationMap | null): this;
1544
+ /**
1545
+ * Returns the final data that should be sent to Discord.
1546
+ *
1547
+ * **Note:** Calling this function will validate required properties based on their conditions.
1548
+ */
1549
+ toJSON(): RESTPostAPIContextMenuApplicationCommandsJSONBody;
1550
+ }
1551
+ declare type ContextMenuCommandType = ApplicationCommandType.Message | ApplicationCommandType.User;
1552
+
1553
+ declare function validateDefaultPermission(value: unknown): asserts value is boolean;
1554
+ declare function validateName(name: unknown): asserts name is string;
1555
+ declare function validateType(type: unknown): asserts type is ContextMenuCommandType;
1556
+ declare function validateRequiredParameters(name: string, type: number): void;
1557
+ declare function validateDMPermission(value: unknown): asserts value is boolean | null | undefined;
1558
+ declare function validateDefaultMemberPermissions(permissions: unknown): string | null | undefined;
1559
+
1560
+ declare const Assertions_validateDefaultPermission: typeof validateDefaultPermission;
1561
+ declare const Assertions_validateName: typeof validateName;
1562
+ declare const Assertions_validateType: typeof validateType;
1563
+ declare const Assertions_validateRequiredParameters: typeof validateRequiredParameters;
1564
+ declare const Assertions_validateDMPermission: typeof validateDMPermission;
1565
+ declare const Assertions_validateDefaultMemberPermissions: typeof validateDefaultMemberPermissions;
1566
+ declare namespace Assertions {
1567
+ export {
1568
+ Assertions_validateDefaultPermission as validateDefaultPermission,
1569
+ Assertions_validateName as validateName,
1570
+ Assertions_validateType as validateType,
1571
+ Assertions_validateRequiredParameters as validateRequiredParameters,
1572
+ Assertions_validateDMPermission as validateDMPermission,
1573
+ Assertions_validateDefaultMemberPermissions as validateDefaultMemberPermissions,
1574
+ };
1575
+ }
1576
+
1577
+ declare function embedLength(data: APIEmbed): number;
1578
+
1579
+ declare const enableValidators: () => boolean;
1580
+ declare const disableValidators: () => boolean;
1581
+ declare const isValidationEnabled: () => boolean;
1582
+
1583
+ export { ActionRowBuilder, AnyAPIActionRowComponent, AnyComponentBuilder, ApplicationCommandNumericOptionMinMaxValueMixin, ApplicationCommandOptionAllowedChannelTypes, ApplicationCommandOptionBase, ApplicationCommandOptionChannelTypesMixin, ApplicationCommandOptionWithChoicesAndAutocompleteMixin, ButtonBuilder, Assertions$4 as ComponentAssertions, ComponentBuilder, Assertions as ContextMenuCommandAssertions, ContextMenuCommandBuilder, ContextMenuCommandType, Assertions$5 as EmbedAssertions, EmbedAuthorData, EmbedAuthorOptions, EmbedBuilder, EmbedFooterData, EmbedFooterOptions, EmbedImageData, Equatable, Faces, IconData, JSONEncodable, MappedComponentTypes, MessageActionRowComponentBuilder, MessageComponentBuilder, ModalActionRowComponentBuilder, Assertions$2 as ModalAssertions, ModalBuilder, ModalComponentBuilder, RGBTuple, RestOrArray, SelectMenuBuilder, SelectMenuOptionBuilder, SharedNameAndDescription, SharedSlashCommandOptions, Assertions$1 as SlashCommandAssertions, SlashCommandAttachmentOption, SlashCommandBooleanOption, SlashCommandBuilder, SlashCommandChannelOption, SlashCommandIntegerOption, SlashCommandMentionableOption, SlashCommandNumberOption, SlashCommandOptionsOnlyBuilder, SlashCommandRoleOption, SlashCommandStringOption, SlashCommandSubcommandBuilder, SlashCommandSubcommandGroupBuilder, SlashCommandSubcommandsOnlyBuilder, SlashCommandUserOption, Assertions$3 as TextInputAssertions, TextInputBuilder, TimestampStyles, TimestampStylesString, ToAPIApplicationCommandOptions, blockQuote, bold, channelLink, channelMention, chatInputApplicationCommandMention, codeBlock, createComponentBuilder, disableValidators, embedLength, enableValidators, formatEmoji, hideLinkEmbed, hyperlink, inlineCode, isEquatable, isJSONEncodable, isValidationEnabled, italic, messageLink, normalizeArray, quote, roleMention, spoiler, strikethrough, time, underscore, userMention };