lunibee 0.1.7 → 0.1.8

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 (71) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +223 -223
  3. package/dist/builders/commands.d.ts +6 -4
  4. package/dist/builders/components.d.ts +18 -0
  5. package/dist/builders/index.d.ts +2 -2
  6. package/dist/builders/index.js +49 -13
  7. package/dist/builders/index.js.map +9 -8
  8. package/dist/collection/index.js +2 -1
  9. package/dist/collection/index.js.map +4 -4
  10. package/dist/core/events.d.ts +86 -2
  11. package/dist/core/index.d.ts +10 -87
  12. package/dist/core/index.js +1752 -725
  13. package/dist/core/index.js.map +44 -24
  14. package/dist/formatters/index.js.map +1 -1
  15. package/dist/handlers/index.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.js +2103 -800
  18. package/dist/index.js.map +63 -43
  19. package/dist/managers/guild-resources.d.ts +109 -0
  20. package/dist/managers/guild.d.ts +5 -0
  21. package/dist/managers/index.d.ts +7 -1
  22. package/dist/managers/index.js +330 -12
  23. package/dist/managers/index.js.map +25 -21
  24. package/dist/rest/decoder.d.ts +23 -0
  25. package/dist/rest/errors.d.ts +20 -0
  26. package/dist/rest/index.d.ts +21 -17
  27. package/dist/rest/index.js +479 -263
  28. package/dist/rest/index.js.map +14 -8
  29. package/dist/rest/limiter.d.ts +42 -0
  30. package/dist/rest/redis.d.ts +18 -1
  31. package/dist/rest/route.d.ts +31 -0
  32. package/dist/rest/routes.d.ts +2 -0
  33. package/dist/rest/scheduler.d.ts +42 -0
  34. package/dist/rest/store.d.ts +29 -0
  35. package/dist/rest/transport.d.ts +40 -0
  36. package/dist/sharding/bus.d.ts +31 -0
  37. package/dist/sharding/cluster.d.ts +10 -0
  38. package/dist/sharding/index.d.ts +10 -2
  39. package/dist/sharding/index.js +1011 -394
  40. package/dist/sharding/index.js.map +18 -8
  41. package/dist/structures/base.d.ts +8 -0
  42. package/dist/structures/channels.d.ts +56 -0
  43. package/dist/structures/index.d.ts +1 -0
  44. package/dist/structures/index.js +211 -271
  45. package/dist/structures/index.js.map +17 -14
  46. package/dist/structures/interactions.d.ts +12 -52
  47. package/dist/structures/options.d.ts +55 -0
  48. package/dist/structures/resources.d.ts +3 -3
  49. package/dist/types/gateway-events.d.ts +132 -0
  50. package/dist/types/gateway.d.ts +181 -0
  51. package/dist/types/index.d.ts +2 -263
  52. package/dist/types/index.js +44 -2
  53. package/dist/types/index.js.map +5 -4
  54. package/dist/utils/index.js.map +1 -1
  55. package/dist/voice/index.d.ts +29 -1
  56. package/dist/voice/index.js +59 -7
  57. package/dist/voice/index.js.map +3 -3
  58. package/dist/ws/close-codes.d.ts +23 -0
  59. package/dist/ws/decoder.d.ts +58 -0
  60. package/dist/ws/heartbeat.d.ts +87 -0
  61. package/dist/ws/index.d.ts +18 -65
  62. package/dist/ws/index.js +903 -385
  63. package/dist/ws/index.js.map +15 -5
  64. package/dist/ws/opcodes.d.ts +14 -0
  65. package/dist/ws/protocol.d.ts +110 -0
  66. package/dist/ws/reconnect.d.ts +108 -0
  67. package/dist/ws/send-budget.d.ts +17 -0
  68. package/dist/ws/session.d.ts +100 -0
  69. package/dist/ws/state.d.ts +27 -0
  70. package/dist/ws/transport.d.ts +80 -0
  71. package/package.json +21 -20
@@ -35,58 +35,8 @@ export interface InteractionClient {
35
35
  /** Deletes the original interaction response. @param token Interaction token. @returns Promise fulfilled after deletion. @throws {Error} When REST fails. */ deleteInteractionReply(token: string): Promise<void>;
36
36
  /** Sends a follow-up interaction webhook message. @param token Interaction token. @param data Message payload. @returns Discord response. @throws {Error} When REST fails. */ followUpInteraction(token: string, data: InteractionReplyOptions): Promise<unknown>;
37
37
  }
38
- /** Raw Discord application command interaction data option. */
39
- export interface APIInteractionDataOption {
40
- name: string;
41
- type: number;
42
- value?: string | number | boolean;
43
- options?: APIInteractionDataOption[];
44
- focused?: boolean;
45
- }
46
- /**
47
- * Typed resolver for application command options.
48
- * Attached as `CommandInteraction.options`.
49
- */
50
- export declare class CommandOptions {
51
- #private;
52
- /** @internal */
53
- constructor(options: APIInteractionDataOption[], resolved?: Record<string, unknown>);
54
- /** Returns the invoked subcommand name, or null if none. */
55
- getSubcommand(required?: false): string | null;
56
- getSubcommand(required: true): string;
57
- /** Returns the invoked subcommand group name, or null if none. */
58
- getSubcommandGroup(required?: false): string | null;
59
- getSubcommandGroup(required: true): string;
60
- /** Gets a string option. @param name Option name. @param required If true, throws when missing. */
61
- getString(name: string, required?: false): string | null;
62
- getString(name: string, required: true): string;
63
- /** Gets an integer option. @param name Option name. @param required If true, throws when missing. */
64
- getInteger(name: string, required?: false): number | null;
65
- getInteger(name: string, required: true): number;
66
- /** Gets a number (float) option. @param name Option name. @param required If true, throws when missing. */
67
- getNumber(name: string, required?: false): number | null;
68
- getNumber(name: string, required: true): number;
69
- /** Gets a boolean option. @param name Option name. @param required If true, throws when missing. */
70
- getBoolean(name: string, required?: false): boolean | null;
71
- getBoolean(name: string, required: true): boolean;
72
- /** Gets the raw resolved user data for a user option. @param name Option name. @param required If true, throws when missing. */
73
- getUser(name: string, required?: false): Record<string, unknown> | null;
74
- getUser(name: string, required: true): Record<string, unknown>;
75
- /** Gets the raw resolved channel data for a channel option. @param name Option name. @param required If true, throws when missing. */
76
- getChannel(name: string, required?: false): Record<string, unknown> | null;
77
- getChannel(name: string, required: true): Record<string, unknown>;
78
- /** Gets the raw resolved role data for a role option. @param name Option name. @param required If true, throws when missing. */
79
- getRole(name: string, required?: false): Record<string, unknown> | null;
80
- getRole(name: string, required: true): Record<string, unknown>;
81
- /** Gets the raw resolved user or role data for a mentionable option. @param name Option name. @param required If true, throws when missing. */
82
- getMentionable(name: string, required?: false): Record<string, unknown> | null;
83
- getMentionable(name: string, required: true): Record<string, unknown>;
84
- /** Gets the raw resolved attachment data for an attachment option. @param name Option name. @param required If true, throws when missing. */
85
- getAttachment(name: string, required?: false): Record<string, unknown> | null;
86
- getAttachment(name: string, required: true): Record<string, unknown>;
87
- /** Returns the raw option list for advanced use cases. */
88
- get raw(): readonly APIInteractionDataOption[];
89
- }
38
+ export { CommandOptions, type APIInteractionDataOption } from "./options.js";
39
+ import { CommandOptions } from "./options.js";
90
40
  /** A Discord interaction callback payload. */
91
41
  export declare class InteractionResponse {
92
42
  readonly type: number;
@@ -118,6 +68,13 @@ export declare class Interaction<TData extends InteractionData = InteractionData
118
68
  /** Whether this interaction is a message component. @returns True for component interactions. */ isMessageComponent(): this is ComponentInteraction;
119
69
  /** Whether this interaction is a modal submission. @returns True for modal submissions. */ isModalSubmit(): this is ModalSubmitInteraction;
120
70
  /** Whether this interaction is autocomplete. @returns True for autocomplete interactions. */ isAutocomplete(): this is AutocompleteInteraction;
71
+ /** Whether this is a button interaction. */ isButton(): this is ComponentInteraction;
72
+ /** Whether this is a string select menu interaction. */ isStringSelectMenu(): this is ComponentInteraction;
73
+ /** Whether this is a user select menu interaction. */ isUserSelectMenu(): this is ComponentInteraction;
74
+ /** Whether this is a role select menu interaction. */ isRoleSelectMenu(): this is ComponentInteraction;
75
+ /** Whether this is a mentionable select menu interaction. */ isMentionableSelectMenu(): this is ComponentInteraction;
76
+ /** Whether this is a channel select menu interaction. */ isChannelSelectMenu(): this is ComponentInteraction;
77
+ /** Whether this is any select menu interaction. */ isAnySelectMenu(): this is ComponentInteraction;
121
78
  /** Ensures the interaction has not already been acknowledged. @returns Nothing. @throws {Error} When already acknowledged. */ protected assertUnacknowledged(): void;
122
79
  /** Ensures the interaction has been acknowledged. @returns Nothing. @throws {Error} When not acknowledged. */ protected assertAcknowledged(): void;
123
80
  /** Posts a raw interaction response callback. */
@@ -167,6 +124,9 @@ export declare class ModalSubmitInteraction extends Interaction {
167
124
  }
168
125
  /** Represents a Discord slash command autocomplete interaction. */
169
126
  export declare class AutocompleteInteraction extends Interaction {
127
+ /** Option resolver; use `options.getFocused()` for the focused value. */
128
+ readonly options: CommandOptions;
129
+ constructor(client: InteractionClient, data: InteractionData);
170
130
  /** Gets the target command name. */
171
131
  get commandName(): string;
172
132
  /** Gets the currently focused autocomplete option. */
@@ -0,0 +1,55 @@
1
+ /** Raw Discord application command interaction data option. */
2
+ export interface APIInteractionDataOption {
3
+ name: string;
4
+ type: number;
5
+ value?: string | number | boolean;
6
+ options?: APIInteractionDataOption[];
7
+ focused?: boolean;
8
+ }
9
+ /**
10
+ * Typed resolver for application command options.
11
+ * Attached as `CommandInteraction.options`.
12
+ */
13
+ export declare class CommandOptions {
14
+ #private;
15
+ /** @internal */
16
+ constructor(options: APIInteractionDataOption[], resolved?: Record<string, unknown>);
17
+ /** Returns the invoked subcommand name, or null if none. */
18
+ getSubcommand(required?: false): string | null;
19
+ getSubcommand(required: true): string;
20
+ /** Returns the invoked subcommand group name, or null if none. */
21
+ getSubcommandGroup(required?: false): string | null;
22
+ getSubcommandGroup(required: true): string;
23
+ /** Returns the focused option's value (autocomplete), or the full option when `full` is true. @throws {TypeError} If no option is focused. */
24
+ getFocused(full: true): APIInteractionDataOption;
25
+ getFocused(full?: false): string | number | boolean;
26
+ /** Gets a string option. @param name Option name. @param required If true, throws when missing. */
27
+ getString(name: string, required?: false): string | null;
28
+ getString(name: string, required: true): string;
29
+ /** Gets an integer option. @param name Option name. @param required If true, throws when missing. */
30
+ getInteger(name: string, required?: false): number | null;
31
+ getInteger(name: string, required: true): number;
32
+ /** Gets a number (float) option. @param name Option name. @param required If true, throws when missing. */
33
+ getNumber(name: string, required?: false): number | null;
34
+ getNumber(name: string, required: true): number;
35
+ /** Gets a boolean option. @param name Option name. @param required If true, throws when missing. */
36
+ getBoolean(name: string, required?: false): boolean | null;
37
+ getBoolean(name: string, required: true): boolean;
38
+ /** Gets the raw resolved user data for a user option. @param name Option name. @param required If true, throws when missing. */
39
+ getUser(name: string, required?: false): Record<string, unknown> | null;
40
+ getUser(name: string, required: true): Record<string, unknown>;
41
+ /** Gets the raw resolved channel data for a channel option. @param name Option name. @param required If true, throws when missing. */
42
+ getChannel(name: string, required?: false): Record<string, unknown> | null;
43
+ getChannel(name: string, required: true): Record<string, unknown>;
44
+ /** Gets the raw resolved role data for a role option. @param name Option name. @param required If true, throws when missing. */
45
+ getRole(name: string, required?: false): Record<string, unknown> | null;
46
+ getRole(name: string, required: true): Record<string, unknown>;
47
+ /** Gets the raw resolved user or role data for a mentionable option. @param name Option name. @param required If true, throws when missing. */
48
+ getMentionable(name: string, required?: false): Record<string, unknown> | null;
49
+ getMentionable(name: string, required: true): Record<string, unknown>;
50
+ /** Gets the raw resolved attachment data for an attachment option. @param name Option name. @param required If true, throws when missing. */
51
+ getAttachment(name: string, required?: false): Record<string, unknown> | null;
52
+ getAttachment(name: string, required: true): Record<string, unknown>;
53
+ /** Returns the raw option list for advanced use cases. */
54
+ get raw(): readonly APIInteractionDataOption[];
55
+ }
@@ -78,7 +78,7 @@ export declare class Role extends BaseStructure {
78
78
  get colorHex(): string;
79
79
  /** Returns the role's custom icon URL, or null if the role has no icon. */
80
80
  iconURL(options?: ImageURLOptions): string | null;
81
- /** Whether this is the @everyone base role (its ID equals the guild ID). */
81
+ /** Whether this is the `@everyone` base role (its ID equals the guild ID). */
82
82
  isEveryone(guildId: string): boolean;
83
83
  /** Discord role mention string. Used automatically in template literals. */
84
84
  toString(): string;
@@ -89,10 +89,10 @@ export declare class TextChannel extends Channel {
89
89
  constructor(data: {
90
90
  id: string;
91
91
  type: number;
92
- name?: string;
92
+ name?: string | null;
93
93
  parent_id?: string | null;
94
94
  guild_id?: string;
95
- }, context?: import("./base.js").ResourceContext);
95
+ } & Partial<import("@lunibee/types").APIChannel>, context?: import("./base.js").ResourceContext);
96
96
  /** Discord channel mention string. Used automatically in template literals. */
97
97
  toString(): string;
98
98
  }
@@ -0,0 +1,132 @@
1
+ import type { APIChannel, APIEmoji, APIGuildMember, APIPartialEmoji, APIPresenceUpdate, APIRole, APISticker, APIThreadMember, Snowflake, UserData } from "./index.js";
2
+ /** Raw Discord READY event payload. */
3
+ export interface APIReadyEvent {
4
+ v: number;
5
+ user: UserData;
6
+ guilds: Array<{
7
+ id: Snowflake;
8
+ unavailable?: boolean;
9
+ }>;
10
+ session_id: string;
11
+ resume_gateway_url: string;
12
+ shard?: [number, number];
13
+ application?: {
14
+ id: Snowflake;
15
+ flags: number;
16
+ [key: string]: unknown;
17
+ };
18
+ }
19
+ /** Raw Discord reaction event payload. */
20
+ export interface APIMessageReactionEvent {
21
+ user_id: Snowflake;
22
+ channel_id: Snowflake;
23
+ message_id: Snowflake;
24
+ guild_id?: Snowflake;
25
+ member?: APIGuildMember;
26
+ emoji: APIPartialEmoji;
27
+ message_author_id?: Snowflake;
28
+ burst?: boolean;
29
+ type?: number;
30
+ }
31
+ /** Raw Discord reaction remove emoji event payload. */
32
+ export interface APIMessageReactionRemoveEmojiEvent {
33
+ channel_id: Snowflake;
34
+ guild_id?: Snowflake;
35
+ message_id: Snowflake;
36
+ emoji: APIPartialEmoji;
37
+ }
38
+ /** Raw Discord message deletion event payload. */
39
+ export interface APIMessageDeleteEvent {
40
+ id: Snowflake;
41
+ channel_id: Snowflake;
42
+ guild_id?: Snowflake;
43
+ }
44
+ /** Raw Discord bulk message deletion event payload. */
45
+ export interface APIMessageDeleteBulkEvent {
46
+ ids: Snowflake[];
47
+ channel_id: Snowflake;
48
+ guild_id?: Snowflake;
49
+ }
50
+ /** Raw Discord channel deletion event payload. */
51
+ export interface APIChannelDeleteEvent extends APIChannel {
52
+ }
53
+ /** Raw Discord guild deletion event payload. */
54
+ export interface APIGuildDeleteEvent {
55
+ id: Snowflake;
56
+ unavailable?: boolean;
57
+ }
58
+ /** Raw Discord thread lifecycle payload. */
59
+ export interface APIThreadEvent extends APIChannel {
60
+ guild_id: Snowflake;
61
+ member?: APIThreadMember;
62
+ }
63
+ /** Raw Discord thread list sync event. */
64
+ export interface APIThreadListSync {
65
+ guild_id: Snowflake;
66
+ channel_ids?: Snowflake[];
67
+ threads: APIChannel[];
68
+ members: APIThreadMember[];
69
+ }
70
+ /** Raw Discord thread members update event. */
71
+ export interface APIThreadMembersUpdate {
72
+ id: Snowflake;
73
+ guild_id: Snowflake;
74
+ member_count: number;
75
+ added_members?: APIThreadMember[];
76
+ removed_member_ids?: Snowflake[];
77
+ }
78
+ /** Raw Discord guild role event payload. */
79
+ export interface APIGuildRoleEvent {
80
+ guild_id: Snowflake;
81
+ role: APIRole;
82
+ }
83
+ /** Raw Discord guild role delete event payload. */
84
+ export interface APIGuildRoleDeleteEvent {
85
+ guild_id: Snowflake;
86
+ role_id: Snowflake;
87
+ }
88
+ /** Raw Discord guild ban event payload. */
89
+ export interface APIGuildBanEvent {
90
+ guild_id: Snowflake;
91
+ user: UserData;
92
+ }
93
+ /** Raw Discord guild emojis update event payload. */
94
+ export interface APIGuildEmojisUpdateEvent {
95
+ guild_id: Snowflake;
96
+ emojis: APIEmoji[];
97
+ }
98
+ /** Raw Discord guild stickers update event payload. */
99
+ export interface APIGuildStickersUpdateEvent {
100
+ guild_id: Snowflake;
101
+ stickers: APISticker[];
102
+ }
103
+ /** Raw Discord channel pins update event. */
104
+ export interface APIChannelPinsUpdate {
105
+ guild_id?: Snowflake;
106
+ channel_id: Snowflake;
107
+ last_pin_timestamp?: string | null;
108
+ }
109
+ /** Raw Discord guild members chunk event. */
110
+ export interface APIGuildMembersChunk {
111
+ guild_id: Snowflake;
112
+ members: APIGuildMember[];
113
+ chunk_index: number;
114
+ chunk_count: number;
115
+ not_found?: Snowflake[];
116
+ presences?: APIPresenceUpdate[];
117
+ nonce?: string;
118
+ }
119
+ /** Raw Discord guild scheduled event user add/remove event. */
120
+ export interface APIGuildScheduledEventUserEvent {
121
+ guild_scheduled_event_id: Snowflake;
122
+ user_id: Snowflake;
123
+ guild_id: Snowflake;
124
+ }
125
+ /** Raw Discord message poll vote add/remove event. */
126
+ export interface APIMessagePollVoteEvent {
127
+ user_id: Snowflake;
128
+ channel_id: Snowflake;
129
+ message_id: Snowflake;
130
+ guild_id?: Snowflake;
131
+ answer_id: number;
132
+ }
@@ -0,0 +1,181 @@
1
+ /** Gateway intent bit flags supported by Discord (PascalCase). */
2
+ export declare const GatewayIntentBits: {
3
+ readonly Guilds: number;
4
+ readonly GuildMembers: number;
5
+ readonly GuildModeration: number;
6
+ readonly GuildExpressions: number;
7
+ readonly GuildIntegrations: number;
8
+ readonly GuildWebhooks: number;
9
+ readonly GuildInvites: number;
10
+ readonly GuildVoiceStates: number;
11
+ readonly GuildPresences: number;
12
+ readonly GuildMessages: number;
13
+ readonly GuildMessageReactions: number;
14
+ readonly GuildMessageTyping: number;
15
+ readonly DirectMessages: number;
16
+ readonly DirectMessageReactions: number;
17
+ readonly DirectMessageTyping: number;
18
+ readonly MessageContent: number;
19
+ readonly GuildScheduledEvents: number;
20
+ readonly AutoModerationConfiguration: number;
21
+ readonly AutoModerationExecution: number;
22
+ readonly GuildMessagePolls: number;
23
+ readonly DirectMessagePolls: number;
24
+ };
25
+ /** Idiomatic camelCase Gateway intent bit flags supported by Discord. */
26
+ export declare const IntentBits: {
27
+ readonly guild: number;
28
+ readonly guilds: number;
29
+ readonly guildMembers: number;
30
+ readonly guildModeration: number;
31
+ readonly guildBans: number;
32
+ readonly guildExpressions: number;
33
+ readonly guildEmojis: number;
34
+ readonly guildEmojisAndStickers: number;
35
+ readonly guildIntegrations: number;
36
+ readonly guildWebhooks: number;
37
+ readonly guildInvites: number;
38
+ readonly guildVoiceStates: number;
39
+ readonly guildPresences: number;
40
+ readonly guildMessages: number;
41
+ readonly guildMessage: number;
42
+ readonly guildMessageReactions: number;
43
+ readonly guildMessageTyping: number;
44
+ readonly directMessages: number;
45
+ readonly directMessageReactions: number;
46
+ readonly directMessageTyping: number;
47
+ readonly messageContent: number;
48
+ readonly guildScheduledEvents: number;
49
+ readonly autoModerationConfiguration: number;
50
+ readonly autoModerationExecution: number;
51
+ readonly guildMessagePolls: number;
52
+ readonly directMessagePolls: number;
53
+ };
54
+ /** Alias for IntentBits. */
55
+ export declare const Intents: {
56
+ readonly guild: number;
57
+ readonly guilds: number;
58
+ readonly guildMembers: number;
59
+ readonly guildModeration: number;
60
+ readonly guildBans: number;
61
+ readonly guildExpressions: number;
62
+ readonly guildEmojis: number;
63
+ readonly guildEmojisAndStickers: number;
64
+ readonly guildIntegrations: number;
65
+ readonly guildWebhooks: number;
66
+ readonly guildInvites: number;
67
+ readonly guildVoiceStates: number;
68
+ readonly guildPresences: number;
69
+ readonly guildMessages: number;
70
+ readonly guildMessage: number;
71
+ readonly guildMessageReactions: number;
72
+ readonly guildMessageTyping: number;
73
+ readonly directMessages: number;
74
+ readonly directMessageReactions: number;
75
+ readonly directMessageTyping: number;
76
+ readonly messageContent: number;
77
+ readonly guildScheduledEvents: number;
78
+ readonly autoModerationConfiguration: number;
79
+ readonly autoModerationExecution: number;
80
+ readonly guildMessagePolls: number;
81
+ readonly directMessagePolls: number;
82
+ };
83
+ /** Gateway intent resolvable value (single bitfield, enum key, or array of bitfields/strings). */
84
+ export type GatewayIntentResolvable = number | keyof typeof GatewayIntentBits | keyof typeof IntentBits | (number | keyof typeof GatewayIntentBits | keyof typeof IntentBits | string)[] | {
85
+ readonly bitfield: number;
86
+ };
87
+ /** Resolves any GatewayIntentResolvable into a raw bitfield integer. */
88
+ export declare function resolveGatewayIntents(intents: GatewayIntentResolvable): number;
89
+ /**
90
+ * Discord.js-familiar intent bitfield.
91
+ * @example new IntentsBitField([IntentsBitField.Flags.Guilds, "GuildMessages"])
92
+ */
93
+ export declare class IntentsBitField {
94
+ /** Intent flag values by name. */
95
+ static readonly Flags: {
96
+ readonly Guilds: number;
97
+ readonly GuildMembers: number;
98
+ readonly GuildModeration: number;
99
+ readonly GuildExpressions: number;
100
+ readonly GuildIntegrations: number;
101
+ readonly GuildWebhooks: number;
102
+ readonly GuildInvites: number;
103
+ readonly GuildVoiceStates: number;
104
+ readonly GuildPresences: number;
105
+ readonly GuildMessages: number;
106
+ readonly GuildMessageReactions: number;
107
+ readonly GuildMessageTyping: number;
108
+ readonly DirectMessages: number;
109
+ readonly DirectMessageReactions: number;
110
+ readonly DirectMessageTyping: number;
111
+ readonly MessageContent: number;
112
+ readonly GuildScheduledEvents: number;
113
+ readonly AutoModerationConfiguration: number;
114
+ readonly AutoModerationExecution: number;
115
+ readonly GuildMessagePolls: number;
116
+ readonly DirectMessagePolls: number;
117
+ };
118
+ /** Raw intent bitfield. */
119
+ bitfield: number;
120
+ constructor(bits?: GatewayIntentResolvable);
121
+ /** Whether every given intent is set. */
122
+ has(bits: GatewayIntentResolvable): boolean;
123
+ /** Whether any given intent is set. */
124
+ any(bits: GatewayIntentResolvable): boolean;
125
+ /** Adds intents in place. @returns This bitfield. */
126
+ add(...bits: GatewayIntentResolvable[]): this;
127
+ /** Removes intents in place. @returns This bitfield. */
128
+ remove(...bits: GatewayIntentResolvable[]): this;
129
+ /** Names of the set intents. */
130
+ toArray(): (keyof typeof GatewayIntentBits)[];
131
+ /** Whether this equals another bitfield. */
132
+ equals(bits: GatewayIntentResolvable): boolean;
133
+ valueOf(): number;
134
+ toJSON(): number;
135
+ }
136
+ /** Gateway connection properties (OS, browser, device). */
137
+ export interface GatewayProperties {
138
+ os?: string;
139
+ browser?: string;
140
+ device?: string;
141
+ [key: string]: unknown;
142
+ }
143
+ /** Gateway presence activity. */
144
+ export interface GatewayPresenceActivity {
145
+ name: string;
146
+ type?: number;
147
+ url?: string;
148
+ state?: string;
149
+ }
150
+ /** Gateway presence data. */
151
+ export interface GatewayPresence {
152
+ status?: "online" | "dnd" | "idle" | "invisible" | "offline";
153
+ activities?: GatewayPresenceActivity[];
154
+ afk?: boolean;
155
+ since?: number | null;
156
+ }
157
+ /** Client configuration. */
158
+ export interface ClientOptions {
159
+ token: string;
160
+ intents: GatewayIntentResolvable;
161
+ gateway?: GatewayOptions;
162
+ rest?: RESTOptions;
163
+ }
164
+ /** Gateway connection configuration. */
165
+ export interface GatewayOptions {
166
+ intents?: GatewayIntentResolvable;
167
+ reconnect?: boolean;
168
+ maxReconnectAttempts?: number;
169
+ reconnectBaseDelay?: number;
170
+ reconnectMaxDelay?: number;
171
+ shardId?: number;
172
+ shardCount?: number;
173
+ properties?: GatewayProperties;
174
+ presence?: GatewayPresence;
175
+ }
176
+ /** REST request configuration. */
177
+ export interface RESTOptions {
178
+ timeout?: number;
179
+ retries?: number;
180
+ baseURL?: string;
181
+ }