@jubbio/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +166 -0
  3. package/dist/Client.d.ts +147 -0
  4. package/dist/Client.js +471 -0
  5. package/dist/builders/ActionRowBuilder.d.ts +53 -0
  6. package/dist/builders/ActionRowBuilder.js +68 -0
  7. package/dist/builders/ButtonBuilder.d.ts +77 -0
  8. package/dist/builders/ButtonBuilder.js +96 -0
  9. package/dist/builders/EmbedBuilder.d.ts +157 -0
  10. package/dist/builders/EmbedBuilder.js +199 -0
  11. package/dist/builders/ModalBuilder.d.ts +122 -0
  12. package/dist/builders/ModalBuilder.js +162 -0
  13. package/dist/builders/SelectMenuBuilder.d.ts +123 -0
  14. package/dist/builders/SelectMenuBuilder.js +165 -0
  15. package/dist/builders/SlashCommandBuilder.d.ts +197 -0
  16. package/dist/builders/SlashCommandBuilder.js +324 -0
  17. package/dist/builders/index.d.ts +9 -0
  18. package/dist/builders/index.js +26 -0
  19. package/dist/enums.d.ts +196 -0
  20. package/dist/enums.js +216 -0
  21. package/dist/index.d.ts +25 -0
  22. package/dist/index.js +128 -0
  23. package/dist/managers/BaseManager.d.ts +69 -0
  24. package/dist/managers/BaseManager.js +106 -0
  25. package/dist/managers/ChannelManager.d.ts +98 -0
  26. package/dist/managers/ChannelManager.js +209 -0
  27. package/dist/managers/GuildMemberManager.d.ts +74 -0
  28. package/dist/managers/GuildMemberManager.js +156 -0
  29. package/dist/managers/RoleManager.d.ts +84 -0
  30. package/dist/managers/RoleManager.js +207 -0
  31. package/dist/managers/index.d.ts +7 -0
  32. package/dist/managers/index.js +24 -0
  33. package/dist/rest/REST.d.ts +483 -0
  34. package/dist/rest/REST.js +805 -0
  35. package/dist/rest/index.d.ts +1 -0
  36. package/dist/rest/index.js +18 -0
  37. package/dist/sharding/ShardingManager.d.ts +179 -0
  38. package/dist/sharding/ShardingManager.js +375 -0
  39. package/dist/sharding/index.d.ts +4 -0
  40. package/dist/sharding/index.js +21 -0
  41. package/dist/structures/Channel.d.ts +120 -0
  42. package/dist/structures/Channel.js +224 -0
  43. package/dist/structures/Collection.d.ts +53 -0
  44. package/dist/structures/Collection.js +115 -0
  45. package/dist/structures/Guild.d.ts +59 -0
  46. package/dist/structures/Guild.js +90 -0
  47. package/dist/structures/GuildMember.d.ts +130 -0
  48. package/dist/structures/GuildMember.js +208 -0
  49. package/dist/structures/Interaction.d.ts +224 -0
  50. package/dist/structures/Interaction.js +404 -0
  51. package/dist/structures/Message.d.ts +93 -0
  52. package/dist/structures/Message.js +145 -0
  53. package/dist/structures/User.d.ts +37 -0
  54. package/dist/structures/User.js +65 -0
  55. package/dist/structures/index.d.ts +7 -0
  56. package/dist/structures/index.js +25 -0
  57. package/dist/structures.d.ts +1 -0
  58. package/dist/structures.js +19 -0
  59. package/dist/types.d.ts +255 -0
  60. package/dist/types.js +3 -0
  61. package/dist/utils/BitField.d.ts +66 -0
  62. package/dist/utils/BitField.js +138 -0
  63. package/dist/utils/Collection.d.ts +116 -0
  64. package/dist/utils/Collection.js +265 -0
  65. package/dist/utils/Collector.d.ts +152 -0
  66. package/dist/utils/Collector.js +314 -0
  67. package/dist/utils/DataResolver.d.ts +61 -0
  68. package/dist/utils/DataResolver.js +146 -0
  69. package/dist/utils/Formatters.d.ts +145 -0
  70. package/dist/utils/Formatters.js +213 -0
  71. package/dist/utils/IntentsBitField.d.ts +85 -0
  72. package/dist/utils/IntentsBitField.js +99 -0
  73. package/dist/utils/Partials.d.ts +105 -0
  74. package/dist/utils/Partials.js +149 -0
  75. package/dist/utils/PermissionsBitField.d.ts +118 -0
  76. package/dist/utils/PermissionsBitField.js +145 -0
  77. package/dist/utils/SnowflakeUtil.d.ts +63 -0
  78. package/dist/utils/SnowflakeUtil.js +93 -0
  79. package/dist/utils/Sweepers.d.ts +127 -0
  80. package/dist/utils/Sweepers.js +270 -0
  81. package/dist/utils/index.d.ts +13 -0
  82. package/dist/utils/index.js +30 -0
  83. package/package.json +37 -0
@@ -0,0 +1,145 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Message = void 0;
4
+ const User_1 = require("./User");
5
+ const Collector_1 = require("../utils/Collector");
6
+ /**
7
+ * Represents a message
8
+ */
9
+ class Message {
10
+ /** Reference to the client */
11
+ client;
12
+ /** Message ID */
13
+ id;
14
+ /** Channel ID */
15
+ channelId;
16
+ /** Guild ID (if in a guild) */
17
+ guildId;
18
+ /** Message author */
19
+ author;
20
+ /** Message content */
21
+ content;
22
+ /** Message timestamp */
23
+ createdTimestamp;
24
+ /** Edit timestamp */
25
+ editedTimestamp;
26
+ /** Attachments */
27
+ attachments;
28
+ /** Embeds */
29
+ embeds;
30
+ /** Mentions in the message */
31
+ mentions;
32
+ /** User ID (from backend) */
33
+ user_id;
34
+ constructor(client, data) {
35
+ this.client = client;
36
+ this.id = data.id;
37
+ this.channelId = data.channel_id;
38
+ this.guildId = data.guild_id;
39
+ this.author = new User_1.User(data.author);
40
+ this.content = data.content;
41
+ this.createdTimestamp = new Date(data.timestamp).getTime();
42
+ this.editedTimestamp = data.edited_timestamp ? new Date(data.edited_timestamp).getTime() : undefined;
43
+ this.attachments = data.attachments || [];
44
+ this.embeds = data.embeds || [];
45
+ this.mentions = data.mentions || {};
46
+ this.user_id = data.user_id;
47
+ }
48
+ /**
49
+ * Get the creation date
50
+ */
51
+ get createdAt() {
52
+ return new Date(this.createdTimestamp);
53
+ }
54
+ /**
55
+ * Get the edit date
56
+ */
57
+ get editedAt() {
58
+ return this.editedTimestamp ? new Date(this.editedTimestamp) : null;
59
+ }
60
+ /**
61
+ * Reply to this message
62
+ */
63
+ async reply(options) {
64
+ const content = typeof options === 'string' ? options : options.content;
65
+ const embeds = typeof options === 'string' ? undefined : options.embeds;
66
+ const data = await this.client.rest.createMessage(this.guildId || '', this.channelId, {
67
+ content,
68
+ embeds,
69
+ message_reference: { message_id: this.id }
70
+ });
71
+ return new Message(this.client, data);
72
+ }
73
+ /**
74
+ * Edit this message (only if author is the bot)
75
+ */
76
+ async edit(options) {
77
+ const content = typeof options === 'string' ? options : options.content;
78
+ const embeds = typeof options === 'string' ? undefined : options.embeds;
79
+ const data = await this.client.rest.editMessage(this.guildId || '', this.channelId, this.id, {
80
+ content,
81
+ embeds
82
+ });
83
+ return new Message(this.client, data);
84
+ }
85
+ /**
86
+ * Delete this message
87
+ */
88
+ async delete() {
89
+ await this.client.rest.deleteMessage(this.guildId || '', this.channelId, this.id);
90
+ }
91
+ /**
92
+ * React to this message
93
+ */
94
+ async react(emoji) {
95
+ await this.client.rest.addReaction(this.guildId || '', this.channelId, this.id, emoji);
96
+ }
97
+ /**
98
+ * Pin this message
99
+ */
100
+ async pin() {
101
+ await this.client.rest.pinMessage(this.guildId || '', this.channelId, this.id);
102
+ }
103
+ /**
104
+ * Unpin this message
105
+ */
106
+ async unpin() {
107
+ await this.client.rest.unpinMessage(this.guildId || '', this.channelId, this.id);
108
+ }
109
+ /**
110
+ * Create a component interaction collector on this message
111
+ */
112
+ createMessageComponentCollector(options) {
113
+ return new Collector_1.InteractionCollector(this.client, {
114
+ ...options,
115
+ messageId: this.id,
116
+ channelId: this.channelId,
117
+ guildId: this.guildId,
118
+ });
119
+ }
120
+ /**
121
+ * Await component interactions on this message
122
+ */
123
+ awaitMessageComponent(options) {
124
+ return new Promise((resolve, reject) => {
125
+ const collector = this.createMessageComponentCollector({ ...options, max: 1 });
126
+ collector.once('end', (collected, reason) => {
127
+ const first = collected.first();
128
+ if (first) {
129
+ resolve(first);
130
+ }
131
+ else {
132
+ reject(new Error(reason || 'No interaction received'));
133
+ }
134
+ });
135
+ });
136
+ }
137
+ /**
138
+ * Convert to string
139
+ */
140
+ toString() {
141
+ return this.content;
142
+ }
143
+ }
144
+ exports.Message = Message;
145
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3R1cmVzL01lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQThCO0FBSTlCLGtEQUF1RjtBQVd2Rjs7R0FFRztBQUNILE1BQWEsT0FBTztJQUNsQiw4QkFBOEI7SUFDZCxNQUFNLENBQVM7SUFFL0IsaUJBQWlCO0lBQ0QsRUFBRSxDQUFTO0lBRTNCLGlCQUFpQjtJQUNELFNBQVMsQ0FBUztJQUVsQywrQkFBK0I7SUFDZixPQUFPLENBQVU7SUFFakMscUJBQXFCO0lBQ0wsTUFBTSxDQUFPO0lBRTdCLHNCQUFzQjtJQUNmLE9BQU8sQ0FBUztJQUV2Qix3QkFBd0I7SUFDUixnQkFBZ0IsQ0FBUztJQUV6QyxxQkFBcUI7SUFDZCxlQUFlLENBQVU7SUFFaEMsa0JBQWtCO0lBQ1gsV0FBVyxDQUFrQjtJQUVwQyxhQUFhO0lBQ04sTUFBTSxDQUFhO0lBRTFCLDhCQUE4QjtJQUN2QixRQUFRLENBQWtCO0lBRWpDLDZCQUE2QjtJQUN0QixPQUFPLENBQVU7SUFFeEIsWUFBWSxNQUFjLEVBQUUsSUFBZ0I7UUFDMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQztRQUNqQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDN0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzVCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxF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LEVBQUUsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEVBQUU7Z0JBQzFDLE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLHlCQUF5QixDQUFDLENBQUMsQ0FBQztnQkFDekQsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQWpLRCwwQkFpS0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElNZXNzYWdlLCBBUElFbWJlZCwgQVBJQXR0YWNobWVudCB9IGZyb20gJy4uL3R5cGVzJztcclxuaW1wb3J0IHsgVXNlciB9IGZyb20gJy4vVXNlcic7XHJcbmltcG9ydCB0eXBlIHsgQ2xpZW50IH0gZnJvbSAnLi4vQ2xpZW50JztcclxuaW1wb3J0IHR5cGUgeyBNZXNzYWdlQ3JlYXRlT3B0aW9ucyB9IGZyb20gJy4vQ2hhbm5lbCc7XHJcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuL0NvbGxlY3Rpb24nO1xyXG5pbXBvcnQgeyBJbnRlcmFjdGlvbkNvbGxlY3RvciwgSW50ZXJhY3Rpb25Db2xsZWN0b3JPcHRpb25zIH0gZnJvbSAnLi4vdXRpbHMvQ29sbGVjdG9yJztcclxuXHJcbi8qKlxyXG4gKiBNZW50aW9uIGRhdGEgZnJvbSBiYWNrZW5kXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VNZW50aW9ucyB7XHJcbiAgdXNlcnM/OiBBcnJheTx7IGlkOiBudW1iZXIgfCBzdHJpbmc7IHVzZXJuYW1lOiBzdHJpbmcgfT47XHJcbiAgcm9sZXM/OiBBcnJheTx7IGlkOiBzdHJpbmc7IG5hbWU/OiBzdHJpbmcgfT47XHJcbiAgZXZlcnlvbmU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIG1lc3NhZ2VcclxuICovXHJcbmV4cG9ydCBjbGFzcyBNZXNzYWdlIHtcclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBjbGllbnQgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY2xpZW50OiBDbGllbnQ7XHJcbiAgXHJcbiAgLyoqIE1lc3NhZ2UgSUQgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IHN0cmluZztcclxuICBcclxuICAvKiogQ2hhbm5lbCBJRCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBjaGFubmVsSWQ6IHN0cmluZztcclxuICBcclxuICAvKiogR3VpbGQgSUQgKGlmIGluIGEgZ3VpbGQpICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGd1aWxkSWQ/OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIE1lc3NhZ2UgYXV0aG9yICovXHJcbiAgcHVibGljIHJlYWRvbmx5IGF1dGhvcjogVXNlcjtcclxuICBcclxuICAvKiogTWVzc2FnZSBjb250ZW50ICovXHJcbiAgcHVibGljIGNvbnRlbnQ6IHN0cmluZztcclxuICBcclxuICAvKiogTWVzc2FnZSB0aW1lc3RhbXAgKi9cclxuICBwdWJsaWMgcmVhZG9ubHkgY3JlYXRlZFRpbWVzdGFtcDogbnVtYmVyO1xyXG4gIFxyXG4gIC8qKiBFZGl0IHRpbWVzdGFtcCAqL1xyXG4gIHB1YmxpYyBlZGl0ZWRUaW1lc3RhbXA/OiBudW1iZXI7XHJcbiAgXHJcbiAgLyoqIEF0dGFjaG1lbnRzICovXHJcbiAgcHVibGljIGF0dGFjaG1lbnRzOiBBUElBdHRhY2htZW50W107XHJcbiAgXHJcbiAgLyoqIEVtYmVkcyAqL1xyXG4gIHB1YmxpYyBlbWJlZHM6IEFQSUVtYmVkW107XHJcblxyXG4gIC8qKiBNZW50aW9ucyBpbiB0aGUgbWVzc2FnZSAqL1xyXG4gIHB1YmxpYyBtZW50aW9uczogTWVzc2FnZU1lbnRpb25zO1xyXG5cclxuICAvKiogVXNlciBJRCAoZnJvbSBiYWNrZW5kKSAqL1xyXG4gIHB1YmxpYyB1c2VyX2lkPzogbnVtYmVyO1xyXG5cclxuICBjb25zdHJ1Y3RvcihjbGllbnQ6IENsaWVudCwgZGF0YTogQVBJTWVzc2FnZSkge1xyXG4gICAgdGhpcy5jbGllbnQgPSBjbGllbnQ7XHJcbiAgICB0aGlzLmlkID0gZGF0YS5pZDtcclxuICAgIHRoaXMuY2hhbm5lbElkID0gZGF0YS5jaGFubmVsX2lkO1xyXG4gICAgdGhpcy5ndWlsZElkID0gZGF0YS5ndWlsZF9pZDtcclxuICAgIHRoaXMuYXV0aG9yID0gbmV3IFVzZXIoZGF0YS5hdXRob3IpO1xyXG4gICAgdGhpcy5jb250ZW50ID0gZGF0YS5jb250ZW50O1xyXG4gICAgdGhpcy5jcmVhdGVkVGltZXN0YW1wID0gbmV3IERhdGUoZGF0YS50aW1lc3RhbXApLmdldFRpbWUoKTtcclxuICAgIHRoaXMuZWRpdGVkVGltZXN0YW1wID0gZGF0YS5lZGl0ZWRfdGltZXN0YW1wID8gbmV3IERhdGUoZGF0YS5lZGl0ZWRfdGltZXN0YW1wKS5nZXRUaW1lKCkgOiB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmF0dGFjaG1lbnRzID0gZGF0YS5hdHRhY2htZW50cyB8fCBbXTtcclxuICAgIHRoaXMuZW1iZWRzID0gZGF0YS5lbWJlZHMgfHwgW107XHJcbiAgICB0aGlzLm1lbnRpb25zID0gKGRhdGEgYXMgYW55KS5tZW50aW9ucyB8fCB7fTtcclxuICAgIHRoaXMudXNlcl9pZCA9IChkYXRhIGFzIGFueSkudXNlcl9pZDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgY3JlYXRpb24gZGF0ZVxyXG4gICAqL1xyXG4gIGdldCBjcmVhdGVkQXQoKTogRGF0ZSB7XHJcbiAgICByZXR1cm4gbmV3IERhdGUodGhpcy5jcmVhdGVkVGltZXN0YW1wKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCB0aGUgZWRpdCBkYXRlXHJcbiAgICovXHJcbiAgZ2V0IGVkaXRlZEF0KCk6IERhdGUgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmVkaXRlZFRpbWVzdGFtcCA/IG5ldyBEYXRlKHRoaXMuZWRpdGVkVGltZXN0YW1wKSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXBseSB0byB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyByZXBseShvcHRpb25zOiBzdHJpbmcgfCBNZXNzYWdlQ3JlYXRlT3B0aW9ucyk6IFByb21pc2U8TWVzc2FnZT4ge1xyXG4gICAgY29uc3QgY29udGVudCA9IHR5cGVvZiBvcHRpb25zID09PSAnc3RyaW5nJyA/IG9wdGlvbnMgOiBvcHRpb25zLmNvbnRlbnQ7XHJcbiAgICBjb25zdCBlbWJlZHMgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyB1bmRlZmluZWQgOiBvcHRpb25zLmVtYmVkcztcclxuICAgIFxyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMuY2xpZW50LnJlc3QuY3JlYXRlTWVzc2FnZSh0aGlzLmd1aWxkSWQgfHwgJycsIHRoaXMuY2hhbm5lbElkLCB7XHJcbiAgICAgIGNvbnRlbnQsXHJcbiAgICAgIGVtYmVkcyxcclxuICAgICAgbWVzc2FnZV9yZWZlcmVuY2U6IHsgbWVzc2FnZV9pZDogdGhpcy5pZCB9XHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmV0dXJuIG5ldyBNZXNzYWdlKHRoaXMuY2xpZW50LCBkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVkaXQgdGhpcyBtZXNzYWdlIChvbmx5IGlmIGF1dGhvciBpcyB0aGUgYm90KVxyXG4gICAqL1xyXG4gIGFzeW5jIGVkaXQob3B0aW9uczogc3RyaW5nIHwgTWVzc2FnZUNyZWF0ZU9wdGlvbnMpOiBQcm9taXNlPE1lc3NhZ2U+IHtcclxuICAgIGNvbnN0IGNvbnRlbnQgPSB0eXBlb2Ygb3B0aW9ucyA9PT0gJ3N0cmluZycgPyBvcHRpb25zIDogb3B0aW9ucy5jb250ZW50O1xyXG4gICAgY29uc3QgZW1iZWRzID0gdHlwZW9mIG9wdGlvbnMgPT09ICdzdHJpbmcnID8gdW5kZWZpbmVkIDogb3B0aW9ucy5lbWJlZHM7XHJcbiAgICBcclxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmVkaXRNZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQsIHtcclxuICAgICAgY29udGVudCxcclxuICAgICAgZW1iZWRzXHJcbiAgICB9KTtcclxuICAgIFxyXG4gICAgcmV0dXJuIG5ldyBNZXNzYWdlKHRoaXMuY2xpZW50LCBkYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERlbGV0ZSB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmRlbGV0ZU1lc3NhZ2UodGhpcy5ndWlsZElkIHx8ICcnLCB0aGlzLmNoYW5uZWxJZCwgdGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWFjdCB0byB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyByZWFjdChlbW9qaTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LmFkZFJlYWN0aW9uKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQsIGVtb2ppKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBpbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyBwaW4oKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNsaWVudC5yZXN0LnBpbk1lc3NhZ2UodGhpcy5ndWlsZElkIHx8ICcnLCB0aGlzLmNoYW5uZWxJZCwgdGhpcy5pZCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVbnBpbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhc3luYyB1bnBpbigpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMuY2xpZW50LnJlc3QudW5waW5NZXNzYWdlKHRoaXMuZ3VpbGRJZCB8fCAnJywgdGhpcy5jaGFubmVsSWQsIHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ3JlYXRlIGEgY29tcG9uZW50IGludGVyYWN0aW9uIGNvbGxlY3RvciBvbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBjcmVhdGVNZXNzYWdlQ29tcG9uZW50Q29sbGVjdG9yKG9wdGlvbnM/OiBPbWl0PEludGVyYWN0aW9uQ29sbGVjdG9yT3B0aW9ucywgJ21lc3NhZ2VJZCc+KTogSW50ZXJhY3Rpb25Db2xsZWN0b3Ige1xyXG4gICAgcmV0dXJuIG5ldyBJbnRlcmFjdGlvbkNvbGxlY3Rvcih0aGlzLmNsaWVudCwge1xyXG4gICAgICAuLi5vcHRpb25zLFxyXG4gICAgICBtZXNzYWdlSWQ6IHRoaXMuaWQsXHJcbiAgICAgIGNoYW5uZWxJZDogdGhpcy5jaGFubmVsSWQsXHJcbiAgICAgIGd1aWxkSWQ6IHRoaXMuZ3VpbGRJZCxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQXdhaXQgY29tcG9uZW50IGludGVyYWN0aW9ucyBvbiB0aGlzIG1lc3NhZ2VcclxuICAgKi9cclxuICBhd2FpdE1lc3NhZ2VDb21wb25lbnQob3B0aW9ucz86IE9taXQ8SW50ZXJhY3Rpb25Db2xsZWN0b3JPcHRpb25zLCAnbWVzc2FnZUlkJyB8ICdtYXgnPik6IFByb21pc2U8YW55PiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICBjb25zdCBjb2xsZWN0b3IgPSB0aGlzLmNyZWF0ZU1lc3NhZ2VDb21wb25lbnRDb2xsZWN0b3IoeyAuLi5vcHRpb25zLCBtYXg6IDEgfSk7XHJcbiAgICAgIFxyXG4gICAgICBjb2xsZWN0b3Iub25jZSgnZW5kJywgKGNvbGxlY3RlZCwgcmVhc29uKSA9PiB7XHJcbiAgICAgICAgY29uc3QgZmlyc3QgPSBjb2xsZWN0ZWQuZmlyc3QoKTtcclxuICAgICAgICBpZiAoZmlyc3QpIHtcclxuICAgICAgICAgIHJlc29sdmUoZmlyc3QpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QobmV3IEVycm9yKHJlYXNvbiB8fCAnTm8gaW50ZXJhY3Rpb24gcmVjZWl2ZWQnKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29udmVydCB0byBzdHJpbmdcclxuICAgKi9cclxuICB0b1N0cmluZygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,37 @@
1
+ import { APIUser } from '../types';
2
+ /**
3
+ * Represents a user
4
+ */
5
+ export declare class User {
6
+ /** User ID */
7
+ readonly id: string;
8
+ /** Username */
9
+ username: string;
10
+ /** Display name */
11
+ displayName?: string;
12
+ /** Avatar URL */
13
+ avatarURL?: string;
14
+ /** Whether this is a bot */
15
+ bot: boolean;
16
+ constructor(data: APIUser);
17
+ /**
18
+ * Get the user's tag (username)
19
+ */
20
+ get tag(): string;
21
+ /**
22
+ * Get the default avatar URL
23
+ */
24
+ get defaultAvatarURL(): string;
25
+ /**
26
+ * Get the display avatar URL
27
+ */
28
+ displayAvatarURL(): string;
29
+ /**
30
+ * Convert to string (mention format)
31
+ */
32
+ toString(): string;
33
+ /**
34
+ * Update user data
35
+ */
36
+ _patch(data: Partial<APIUser>): void;
37
+ }
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.User = void 0;
4
+ /**
5
+ * Represents a user
6
+ */
7
+ class User {
8
+ /** User ID */
9
+ id;
10
+ /** Username */
11
+ username;
12
+ /** Display name */
13
+ displayName;
14
+ /** Avatar URL */
15
+ avatarURL;
16
+ /** Whether this is a bot */
17
+ bot;
18
+ constructor(data) {
19
+ // Handle both string and number IDs (snowflake precision issue)
20
+ this.id = String(data.id);
21
+ this.username = data.username || `User_${this.id}`;
22
+ this.displayName = data.display_name;
23
+ this.avatarURL = data.avatar_url;
24
+ this.bot = data.bot ?? false;
25
+ }
26
+ /**
27
+ * Get the user's tag (username)
28
+ */
29
+ get tag() {
30
+ return this.username;
31
+ }
32
+ /**
33
+ * Get the default avatar URL
34
+ */
35
+ get defaultAvatarURL() {
36
+ return `https://cdn.jubbio.com/embed/avatars/${parseInt(this.id) % 5}.png`;
37
+ }
38
+ /**
39
+ * Get the display avatar URL
40
+ */
41
+ displayAvatarURL() {
42
+ return this.avatarURL || this.defaultAvatarURL;
43
+ }
44
+ /**
45
+ * Convert to string (mention format)
46
+ */
47
+ toString() {
48
+ return `<@${this.id}>`;
49
+ }
50
+ /**
51
+ * Update user data
52
+ */
53
+ _patch(data) {
54
+ if (data.username !== undefined)
55
+ this.username = data.username;
56
+ if (data.display_name !== undefined)
57
+ this.displayName = data.display_name;
58
+ if (data.avatar_url !== undefined)
59
+ this.avatarURL = data.avatar_url;
60
+ if (data.bot !== undefined)
61
+ this.bot = data.bot;
62
+ }
63
+ }
64
+ exports.User = User;
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdHJ1Y3R1cmVzL1VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUE7O0dBRUc7QUFDSCxNQUFhLElBQUk7SUFDZixjQUFjO0lBQ0UsRUFBRSxDQUFTO0lBRTNCLGVBQWU7SUFDUixRQUFRLENBQVM7SUFFeEIsbUJBQW1CO0lBQ1osV0FBVyxDQUFVO0lBRTVCLGlCQUFpQjtJQUNWLFNBQVMsQ0FBVTtJQUUxQiw0QkFBNEI7SUFDckIsR0FBRyxDQUFVO0lBRXBCLFlBQVksSUFBYTtRQUN2QixnRUFBZ0U7UUFDaEUsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxHQUFHO1FBQ0wsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sd0NBQXdDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDN0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCO1FBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sT0FBTyxLQUFLLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQztJQUN6QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsSUFBc0I7UUFDM0IsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDMUUsSUFBSSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDcEUsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLFNBQVM7WUFBRSxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEQsQ0FBQztDQUNGO0FBOURELG9CQThEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFQSVVzZXIgfSBmcm9tICcuLi90eXBlcyc7XHJcblxyXG4vKipcclxuICogUmVwcmVzZW50cyBhIHVzZXJcclxuICovXHJcbmV4cG9ydCBjbGFzcyBVc2VyIHtcclxuICAvKiogVXNlciBJRCAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBpZDogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBVc2VybmFtZSAqL1xyXG4gIHB1YmxpYyB1c2VybmFtZTogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBEaXNwbGF5IG5hbWUgKi9cclxuICBwdWJsaWMgZGlzcGxheU5hbWU/OiBzdHJpbmc7XHJcbiAgXHJcbiAgLyoqIEF2YXRhciBVUkwgKi9cclxuICBwdWJsaWMgYXZhdGFyVVJMPzogc3RyaW5nO1xyXG4gIFxyXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgYSBib3QgKi9cclxuICBwdWJsaWMgYm90OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvcihkYXRhOiBBUElVc2VyKSB7XHJcbiAgICAvLyBIYW5kbGUgYm90aCBzdHJpbmcgYW5kIG51bWJlciBJRHMgKHNub3dmbGFrZSBwcmVjaXNpb24gaXNzdWUpXHJcbiAgICB0aGlzLmlkID0gU3RyaW5nKGRhdGEuaWQpO1xyXG4gICAgdGhpcy51c2VybmFtZSA9IGRhdGEudXNlcm5hbWUgfHwgYFVzZXJfJHt0aGlzLmlkfWA7XHJcbiAgICB0aGlzLmRpc3BsYXlOYW1lID0gZGF0YS5kaXNwbGF5X25hbWU7XHJcbiAgICB0aGlzLmF2YXRhclVSTCA9IGRhdGEuYXZhdGFyX3VybDtcclxuICAgIHRoaXMuYm90ID0gZGF0YS5ib3QgPz8gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIHVzZXIncyB0YWcgKHVzZXJuYW1lKVxyXG4gICAqL1xyXG4gIGdldCB0YWcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnVzZXJuYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHRoZSBkZWZhdWx0IGF2YXRhciBVUkxcclxuICAgKi9cclxuICBnZXQgZGVmYXVsdEF2YXRhclVSTCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGBodHRwczovL2Nkbi5qdWJiaW8uY29tL2VtYmVkL2F2YXRhcnMvJHtwYXJzZUludCh0aGlzLmlkKSAlIDV9LnBuZ2A7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgdGhlIGRpc3BsYXkgYXZhdGFyIFVSTFxyXG4gICAqL1xyXG4gIGRpc3BsYXlBdmF0YXJVUkwoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmF2YXRhclVSTCB8fCB0aGlzLmRlZmF1bHRBdmF0YXJVUkw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDb252ZXJ0IHRvIHN0cmluZyAobWVudGlvbiBmb3JtYXQpXHJcbiAgICovXHJcbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgPEAke3RoaXMuaWR9PmA7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBVcGRhdGUgdXNlciBkYXRhXHJcbiAgICovXHJcbiAgX3BhdGNoKGRhdGE6IFBhcnRpYWw8QVBJVXNlcj4pOiB2b2lkIHtcclxuICAgIGlmIChkYXRhLnVzZXJuYW1lICE9PSB1bmRlZmluZWQpIHRoaXMudXNlcm5hbWUgPSBkYXRhLnVzZXJuYW1lO1xyXG4gICAgaWYgKGRhdGEuZGlzcGxheV9uYW1lICE9PSB1bmRlZmluZWQpIHRoaXMuZGlzcGxheU5hbWUgPSBkYXRhLmRpc3BsYXlfbmFtZTtcclxuICAgIGlmIChkYXRhLmF2YXRhcl91cmwgIT09IHVuZGVmaW5lZCkgdGhpcy5hdmF0YXJVUkwgPSBkYXRhLmF2YXRhcl91cmw7XHJcbiAgICBpZiAoZGF0YS5ib3QgIT09IHVuZGVmaW5lZCkgdGhpcy5ib3QgPSBkYXRhLmJvdDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,7 @@
1
+ export * from './User';
2
+ export * from './Guild';
3
+ export * from './Channel';
4
+ export * from './Message';
5
+ export * from './Interaction';
6
+ export * from './GuildMember';
7
+ export * from './Collection';
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./User"), exports);
18
+ __exportStar(require("./Guild"), exports);
19
+ __exportStar(require("./Channel"), exports);
20
+ __exportStar(require("./Message"), exports);
21
+ __exportStar(require("./Interaction"), exports);
22
+ __exportStar(require("./GuildMember"), exports);
23
+ __exportStar(require("./Collection"), exports);
24
+ // Collector is exported from utils
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RydWN0dXJlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXVCO0FBQ3ZCLDBDQUF3QjtBQUN4Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBQzFCLGdEQUE4QjtBQUM5QixnREFBOEI7QUFDOUIsK0NBQTZCO0FBQzdCLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vVXNlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vR3VpbGQnO1xyXG5leHBvcnQgKiBmcm9tICcuL0NoYW5uZWwnO1xyXG5leHBvcnQgKiBmcm9tICcuL01lc3NhZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL0ludGVyYWN0aW9uJztcclxuZXhwb3J0ICogZnJvbSAnLi9HdWlsZE1lbWJlcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vQ29sbGVjdGlvbic7XHJcbi8vIENvbGxlY3RvciBpcyBleHBvcnRlZCBmcm9tIHV0aWxzXHJcbiJdfQ==
@@ -0,0 +1 @@
1
+ export * from './structures/index';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Re-export all structures
18
+ __exportStar(require("./structures/index"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zdHJ1Y3R1cmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSwyQkFBMkI7QUFDM0IscURBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUmUtZXhwb3J0IGFsbCBzdHJ1Y3R1cmVzXHJcbmV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlcy9pbmRleCc7XHJcbiJdfQ==
@@ -0,0 +1,255 @@
1
+ import { GatewayIntentBits, InteractionType, ApplicationCommandType, ChannelType } from './enums';
2
+ /**
3
+ * Client options
4
+ */
5
+ export interface ClientOptions {
6
+ /** Gateway intents */
7
+ intents: GatewayIntentBits[] | number;
8
+ /** Shard configuration [shard_id, num_shards] */
9
+ shards?: [number, number];
10
+ /** Gateway URL override */
11
+ gatewayUrl?: string;
12
+ /** API URL override */
13
+ apiUrl?: string;
14
+ }
15
+ /**
16
+ * User structure
17
+ */
18
+ export interface APIUser {
19
+ id: string;
20
+ username: string;
21
+ display_name?: string;
22
+ avatar_url?: string;
23
+ bot?: boolean;
24
+ }
25
+ /**
26
+ * Guild structure
27
+ */
28
+ export interface APIGuild {
29
+ id: string;
30
+ name: string;
31
+ icon?: string;
32
+ owner_id: string;
33
+ unavailable?: boolean;
34
+ }
35
+ /**
36
+ * Channel structure
37
+ */
38
+ export interface APIChannel {
39
+ id: string;
40
+ type: ChannelType;
41
+ guild_id?: string;
42
+ name?: string;
43
+ topic?: string;
44
+ position?: number;
45
+ parent_id?: string;
46
+ }
47
+ /**
48
+ * Message structure
49
+ */
50
+ export interface APIMessage {
51
+ id: string;
52
+ channel_id: string;
53
+ guild_id?: string;
54
+ author: APIUser;
55
+ user_id?: number;
56
+ content: string;
57
+ timestamp: string;
58
+ edited_timestamp?: string;
59
+ attachments?: APIAttachment[];
60
+ embeds?: APIEmbed[];
61
+ }
62
+ /**
63
+ * Attachment structure
64
+ */
65
+ export interface APIAttachment {
66
+ id: string;
67
+ filename: string;
68
+ size: number;
69
+ url: string;
70
+ proxy_url?: string;
71
+ content_type?: string;
72
+ }
73
+ /**
74
+ * Embed structure
75
+ */
76
+ export interface APIEmbed {
77
+ title?: string;
78
+ description?: string;
79
+ url?: string;
80
+ timestamp?: string;
81
+ color?: number;
82
+ footer?: {
83
+ text: string;
84
+ icon_url?: string;
85
+ };
86
+ image?: {
87
+ url: string;
88
+ };
89
+ thumbnail?: {
90
+ url: string;
91
+ };
92
+ author?: {
93
+ name: string;
94
+ url?: string;
95
+ icon_url?: string;
96
+ };
97
+ fields?: {
98
+ name: string;
99
+ value: string;
100
+ inline?: boolean;
101
+ }[];
102
+ }
103
+ /**
104
+ * Interaction structure
105
+ */
106
+ export interface APIInteraction {
107
+ id: string;
108
+ application_id: string;
109
+ type: InteractionType;
110
+ data?: APIInteractionData;
111
+ guild_id?: string;
112
+ channel_id?: string;
113
+ member?: APIGuildMember;
114
+ user?: APIUser;
115
+ token: string;
116
+ version: number;
117
+ message?: APIMessage;
118
+ }
119
+ /**
120
+ * Interaction data
121
+ */
122
+ export interface APIInteractionData {
123
+ id?: string;
124
+ name?: string;
125
+ type?: ApplicationCommandType;
126
+ options?: APIInteractionOption[];
127
+ custom_id?: string;
128
+ component_type?: number;
129
+ values?: string[];
130
+ target_id?: string;
131
+ resolved?: APIInteractionResolved;
132
+ }
133
+ /**
134
+ * Interaction option
135
+ */
136
+ export interface APIInteractionOption {
137
+ name: string;
138
+ type: number;
139
+ value?: string | number | boolean;
140
+ options?: APIInteractionOption[];
141
+ focused?: boolean;
142
+ }
143
+ /**
144
+ * Interaction resolved data
145
+ */
146
+ export interface APIInteractionResolved {
147
+ users?: Record<string, APIUser>;
148
+ members?: Record<string, APIGuildMember>;
149
+ roles?: Record<string, APIRole>;
150
+ channels?: Record<string, APIChannel>;
151
+ messages?: Record<string, APIMessage>;
152
+ attachments?: Record<string, APIAttachment>;
153
+ }
154
+ /**
155
+ * Guild member structure
156
+ */
157
+ export interface APIGuildMember {
158
+ user?: APIUser;
159
+ nick?: string;
160
+ avatar?: string;
161
+ roles: string[];
162
+ joined_at: string;
163
+ deaf?: boolean;
164
+ mute?: boolean;
165
+ permissions?: string;
166
+ voice?: {
167
+ channel_id?: string;
168
+ self_mute?: boolean;
169
+ self_deaf?: boolean;
170
+ };
171
+ }
172
+ /**
173
+ * Role structure
174
+ */
175
+ export interface APIRole {
176
+ id: string;
177
+ name: string;
178
+ color: number;
179
+ position: number;
180
+ permissions: string;
181
+ mentionable: boolean;
182
+ }
183
+ /**
184
+ * Voice state structure
185
+ */
186
+ export interface APIVoiceState {
187
+ guild_id?: string;
188
+ channel_id?: string;
189
+ user_id: string;
190
+ session_id?: string;
191
+ self_mute: boolean;
192
+ self_deaf: boolean;
193
+ mute?: boolean;
194
+ deaf?: boolean;
195
+ }
196
+ /**
197
+ * Voice server update
198
+ */
199
+ export interface APIVoiceServerUpdate {
200
+ token: string;
201
+ guild_id: string;
202
+ endpoint: string;
203
+ room?: string;
204
+ }
205
+ /**
206
+ * Application command structure
207
+ */
208
+ export interface APIApplicationCommand {
209
+ name: string;
210
+ description: string;
211
+ type?: ApplicationCommandType;
212
+ options?: APIApplicationCommandOption[];
213
+ default_permission?: boolean;
214
+ }
215
+ /**
216
+ * Application command option
217
+ */
218
+ export interface APIApplicationCommandOption {
219
+ name: string;
220
+ description: string;
221
+ type: number;
222
+ required?: boolean;
223
+ choices?: {
224
+ name: string;
225
+ value: string | number;
226
+ }[];
227
+ options?: APIApplicationCommandOption[];
228
+ autocomplete?: boolean;
229
+ min_value?: number;
230
+ max_value?: number;
231
+ min_length?: number;
232
+ max_length?: number;
233
+ }
234
+ /**
235
+ * Gateway payload
236
+ */
237
+ export interface GatewayPayload {
238
+ op: number;
239
+ d?: any;
240
+ s?: number;
241
+ t?: string;
242
+ }
243
+ /**
244
+ * Ready event data
245
+ */
246
+ export interface ReadyEventData {
247
+ v: number;
248
+ user: APIUser;
249
+ guilds: APIGuild[];
250
+ session_id: string;
251
+ shard?: [number, number];
252
+ application: {
253
+ id: string;
254
+ };
255
+ }
package/dist/types.js ADDED
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdhdGV3YXlJbnRlbnRCaXRzLCBJbnRlcmFjdGlvblR5cGUsIEFwcGxpY2F0aW9uQ29tbWFuZFR5cGUsIENoYW5uZWxUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XHJcblxyXG4vKipcclxuICogQ2xpZW50IG9wdGlvbnNcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ2xpZW50T3B0aW9ucyB7XHJcbiAgLyoqIEdhdGV3YXkgaW50ZW50cyAqL1xyXG4gIGludGVudHM6IEdhdGV3YXlJbnRlbnRCaXRzW10gfCBudW1iZXI7XHJcbiAgLyoqIFNoYXJkIGNvbmZpZ3VyYXRpb24gW3NoYXJkX2lkLCBudW1fc2hhcmRzXSAqL1xyXG4gIHNoYXJkcz86IFtudW1iZXIsIG51bWJlcl07XHJcbiAgLyoqIEdhdGV3YXkgVVJMIG92ZXJyaWRlICovXHJcbiAgZ2F0ZXdheVVybD86IHN0cmluZztcclxuICAvKiogQVBJIFVSTCBvdmVycmlkZSAqL1xyXG4gIGFwaVVybD86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIFVzZXIgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVVzZXIge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU6IHN0cmluZztcclxuICBkaXNwbGF5X25hbWU/OiBzdHJpbmc7XHJcbiAgYXZhdGFyX3VybD86IHN0cmluZztcclxuICBib3Q/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogR3VpbGQgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUd1aWxkIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIG93bmVyX2lkOiBzdHJpbmc7XHJcbiAgdW5hdmFpbGFibGU/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQ2hhbm5lbCBzdHJ1Y3R1cmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJQ2hhbm5lbCB7XHJcbiAgaWQ6IHN0cmluZztcclxuICB0eXBlOiBDaGFubmVsVHlwZTtcclxuICBndWlsZF9pZD86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHRvcGljPzogc3RyaW5nO1xyXG4gIHBvc2l0aW9uPzogbnVtYmVyO1xyXG4gIHBhcmVudF9pZD86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIE1lc3NhZ2Ugc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSU1lc3NhZ2Uge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgY2hhbm5lbF9pZDogc3RyaW5nO1xyXG4gIGd1aWxkX2lkPzogc3RyaW5nO1xyXG4gIGF1dGhvcjogQVBJVXNlcjtcclxuICB1c2VyX2lkPzogbnVtYmVyOyAvLyBCYWNrZW5kIHNlbmRzIHVzZXJfaWQgc2VwYXJhdGVseSBmcm9tIGF1dGhvclxyXG4gIGNvbnRlbnQ6IHN0cmluZztcclxuICB0aW1lc3RhbXA6IHN0cmluZztcclxuICBlZGl0ZWRfdGltZXN0YW1wPzogc3RyaW5nO1xyXG4gIGF0dGFjaG1lbnRzPzogQVBJQXR0YWNobWVudFtdO1xyXG4gIGVtYmVkcz86IEFQSUVtYmVkW107XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBdHRhY2htZW50IHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElBdHRhY2htZW50IHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGZpbGVuYW1lOiBzdHJpbmc7XHJcbiAgc2l6ZTogbnVtYmVyO1xyXG4gIHVybDogc3RyaW5nO1xyXG4gIHByb3h5X3VybD86IHN0cmluZztcclxuICBjb250ZW50X3R5cGU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBFbWJlZCBzdHJ1Y3R1cmVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJRW1iZWQge1xyXG4gIHRpdGxlPzogc3RyaW5nO1xyXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xyXG4gIHVybD86IHN0cmluZztcclxuICB0aW1lc3RhbXA/OiBzdHJpbmc7XHJcbiAgY29sb3I/OiBudW1iZXI7XHJcbiAgZm9vdGVyPzogeyB0ZXh0OiBzdHJpbmc7IGljb25fdXJsPzogc3RyaW5nIH07XHJcbiAgaW1hZ2U/OiB7IHVybDogc3RyaW5nIH07XHJcbiAgdGh1bWJuYWlsPzogeyB1cmw6IHN0cmluZyB9O1xyXG4gIGF1dGhvcj86IHsgbmFtZTogc3RyaW5nOyB1cmw/OiBzdHJpbmc7IGljb25fdXJsPzogc3RyaW5nIH07XHJcbiAgZmllbGRzPzogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmc7IGlubGluZT86IGJvb2xlYW4gfVtdO1xyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJhY3Rpb24gc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUludGVyYWN0aW9uIHtcclxuICBpZDogc3RyaW5nO1xyXG4gIGFwcGxpY2F0aW9uX2lkOiBzdHJpbmc7XHJcbiAgdHlwZTogSW50ZXJhY3Rpb25UeXBlO1xyXG4gIGRhdGE/OiBBUElJbnRlcmFjdGlvbkRhdGE7XHJcbiAgZ3VpbGRfaWQ/OiBzdHJpbmc7XHJcbiAgY2hhbm5lbF9pZD86IHN0cmluZztcclxuICBtZW1iZXI/OiBBUElHdWlsZE1lbWJlcjtcclxuICB1c2VyPzogQVBJVXNlcjtcclxuICB0b2tlbjogc3RyaW5nO1xyXG4gIHZlcnNpb246IG51bWJlcjtcclxuICBtZXNzYWdlPzogQVBJTWVzc2FnZTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyYWN0aW9uIGRhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJSW50ZXJhY3Rpb25EYXRhIHtcclxuICBpZD86IHN0cmluZztcclxuICBuYW1lPzogc3RyaW5nO1xyXG4gIHR5cGU/OiBBcHBsaWNhdGlvbkNvbW1hbmRUeXBlO1xyXG4gIG9wdGlvbnM/OiBBUElJbnRlcmFjdGlvbk9wdGlvbltdO1xyXG4gIGN1c3RvbV9pZD86IHN0cmluZztcclxuICBjb21wb25lbnRfdHlwZT86IG51bWJlcjtcclxuICB2YWx1ZXM/OiBzdHJpbmdbXTtcclxuICB0YXJnZXRfaWQ/OiBzdHJpbmc7XHJcbiAgcmVzb2x2ZWQ/OiBBUElJbnRlcmFjdGlvblJlc29sdmVkO1xyXG59XHJcblxyXG4vKipcclxuICogSW50ZXJhY3Rpb24gb3B0aW9uXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUludGVyYWN0aW9uT3B0aW9uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdHlwZTogbnVtYmVyO1xyXG4gIHZhbHVlPzogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbjtcclxuICBvcHRpb25zPzogQVBJSW50ZXJhY3Rpb25PcHRpb25bXTtcclxuICBmb2N1c2VkPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIEludGVyYWN0aW9uIHJlc29sdmVkIGRhdGFcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJSW50ZXJhY3Rpb25SZXNvbHZlZCB7XHJcbiAgdXNlcnM/OiBSZWNvcmQ8c3RyaW5nLCBBUElVc2VyPjtcclxuICBtZW1iZXJzPzogUmVjb3JkPHN0cmluZywgQVBJR3VpbGRNZW1iZXI+O1xyXG4gIHJvbGVzPzogUmVjb3JkPHN0cmluZywgQVBJUm9sZT47XHJcbiAgY2hhbm5lbHM/OiBSZWNvcmQ8c3RyaW5nLCBBUElDaGFubmVsPjtcclxuICBtZXNzYWdlcz86IFJlY29yZDxzdHJpbmcsIEFQSU1lc3NhZ2U+O1xyXG4gIGF0dGFjaG1lbnRzPzogUmVjb3JkPHN0cmluZywgQVBJQXR0YWNobWVudD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHdWlsZCBtZW1iZXIgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSUd1aWxkTWVtYmVyIHtcclxuICB1c2VyPzogQVBJVXNlcjtcclxuICBuaWNrPzogc3RyaW5nO1xyXG4gIGF2YXRhcj86IHN0cmluZztcclxuICByb2xlczogc3RyaW5nW107XHJcbiAgam9pbmVkX2F0OiBzdHJpbmc7XHJcbiAgZGVhZj86IGJvb2xlYW47XHJcbiAgbXV0ZT86IGJvb2xlYW47XHJcbiAgcGVybWlzc2lvbnM/OiBzdHJpbmc7XHJcbiAgdm9pY2U/OiB7XHJcbiAgICBjaGFubmVsX2lkPzogc3RyaW5nO1xyXG4gICAgc2VsZl9tdXRlPzogYm9vbGVhbjtcclxuICAgIHNlbGZfZGVhZj86IGJvb2xlYW47XHJcbiAgfTtcclxufVxyXG5cclxuLyoqXHJcbiAqIFJvbGUgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVJvbGUge1xyXG4gIGlkOiBzdHJpbmc7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIGNvbG9yOiBudW1iZXI7XHJcbiAgcG9zaXRpb246IG51bWJlcjtcclxuICBwZXJtaXNzaW9uczogc3RyaW5nO1xyXG4gIG1lbnRpb25hYmxlOiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogVm9pY2Ugc3RhdGUgc3RydWN0dXJlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIEFQSVZvaWNlU3RhdGUge1xyXG4gIGd1aWxkX2lkPzogc3RyaW5nO1xyXG4gIGNoYW5uZWxfaWQ/OiBzdHJpbmc7XHJcbiAgdXNlcl9pZDogc3RyaW5nO1xyXG4gIHNlc3Npb25faWQ/OiBzdHJpbmc7XHJcbiAgc2VsZl9tdXRlOiBib29sZWFuO1xyXG4gIHNlbGZfZGVhZjogYm9vbGVhbjtcclxuICBtdXRlPzogYm9vbGVhbjtcclxuICBkZWFmPzogYm9vbGVhbjtcclxufVxyXG5cclxuLyoqXHJcbiAqIFZvaWNlIHNlcnZlciB1cGRhdGVcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJVm9pY2VTZXJ2ZXJVcGRhdGUge1xyXG4gIHRva2VuOiBzdHJpbmc7XHJcbiAgZ3VpbGRfaWQ6IHN0cmluZztcclxuICBlbmRwb2ludDogc3RyaW5nO1xyXG4gIHJvb20/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBcHBsaWNhdGlvbiBjb21tYW5kIHN0cnVjdHVyZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBBUElBcHBsaWNhdGlvbkNvbW1hbmQge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xyXG4gIHR5cGU/OiBBcHBsaWNhdGlvbkNvbW1hbmRUeXBlO1xyXG4gIG9wdGlvbnM/OiBBUElBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25bXTtcclxuICBkZWZhdWx0X3Blcm1pc3Npb24/OiBib29sZWFuO1xyXG59XHJcblxyXG4vKipcclxuICogQXBwbGljYXRpb24gY29tbWFuZCBvcHRpb25cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgQVBJQXBwbGljYXRpb25Db21tYW5kT3B0aW9uIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgZGVzY3JpcHRpb246IHN0cmluZztcclxuICB0eXBlOiBudW1iZXI7XHJcbiAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gIGNob2ljZXM/OiB7IG5hbWU6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB8IG51bWJlciB9W107XHJcbiAgb3B0aW9ucz86IEFQSUFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbltdO1xyXG4gIGF1dG9jb21wbGV0ZT86IGJvb2xlYW47XHJcbiAgbWluX3ZhbHVlPzogbnVtYmVyO1xyXG4gIG1heF92YWx1ZT86IG51bWJlcjtcclxuICBtaW5fbGVuZ3RoPzogbnVtYmVyO1xyXG4gIG1heF9sZW5ndGg/OiBudW1iZXI7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBHYXRld2F5IHBheWxvYWRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2F0ZXdheVBheWxvYWQge1xyXG4gIG9wOiBudW1iZXI7XHJcbiAgZD86IGFueTtcclxuICBzPzogbnVtYmVyO1xyXG4gIHQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWFkeSBldmVudCBkYXRhXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFJlYWR5RXZlbnREYXRhIHtcclxuICB2OiBudW1iZXI7XHJcbiAgdXNlcjogQVBJVXNlcjtcclxuICBndWlsZHM6IEFQSUd1aWxkW107XHJcbiAgc2Vzc2lvbl9pZDogc3RyaW5nO1xyXG4gIHNoYXJkPzogW251bWJlciwgbnVtYmVyXTtcclxuICBhcHBsaWNhdGlvbjogeyBpZDogc3RyaW5nIH07XHJcbn1cclxuIl19
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Generic BitField class
3
+ * API compatible with Discord.js BitField
4
+ */
5
+ export type BitFieldResolvable<S extends string, N extends bigint | number> = N | N[] | S | S[] | BitField<S, N>;
6
+ /**
7
+ * Data structure for bit fields
8
+ */
9
+ export declare class BitField<S extends string = string, N extends bigint | number = bigint> {
10
+ /** The raw bits */
11
+ bitfield: N;
12
+ /** Flags for this bitfield (override in subclass) */
13
+ static Flags: Record<string, bigint | number>;
14
+ /** Default bit value */
15
+ static DefaultBit: bigint | number;
16
+ constructor(bits?: BitFieldResolvable<S, N>);
17
+ /**
18
+ * Check if this bitfield has a bit
19
+ */
20
+ has(bit: BitFieldResolvable<S, N>): boolean;
21
+ /**
22
+ * Check if this bitfield has any of the bits
23
+ */
24
+ any(bits: BitFieldResolvable<S, N>): boolean;
25
+ /**
26
+ * Add bits to this bitfield
27
+ */
28
+ add(...bits: BitFieldResolvable<S, N>[]): this;
29
+ /**
30
+ * Remove bits from this bitfield
31
+ */
32
+ remove(...bits: BitFieldResolvable<S, N>[]): this;
33
+ /**
34
+ * Serialize to array of flag names
35
+ */
36
+ toArray(): S[];
37
+ /**
38
+ * Serialize to JSON
39
+ */
40
+ toJSON(): string | number;
41
+ /**
42
+ * Get string representation
43
+ */
44
+ toString(): string;
45
+ /**
46
+ * Get iterator
47
+ */
48
+ [Symbol.iterator](): IterableIterator<S>;
49
+ /**
50
+ * Freeze this bitfield
51
+ */
52
+ freeze(): Readonly<this>;
53
+ /**
54
+ * Check equality
55
+ */
56
+ equals(other: BitFieldResolvable<S, N>): boolean;
57
+ /**
58
+ * Clone this bitfield
59
+ */
60
+ clone(): BitField<S, N>;
61
+ /**
62
+ * Resolve a bit to the numeric type
63
+ */
64
+ static resolve<S extends string, N extends bigint | number>(bit: BitFieldResolvable<S, N>): N;
65
+ }
66
+ export default BitField;