lunibee 0.1.5 → 0.1.7

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 (60) hide show
  1. package/README.md +13 -24
  2. package/dist/builders/commands.d.ts +37 -0
  3. package/dist/builders/components.d.ts +127 -12
  4. package/dist/builders/embed.d.ts +3 -1
  5. package/dist/builders/index.d.ts +2 -2
  6. package/dist/builders/index.js +319 -16
  7. package/dist/builders/index.js.map +8 -7
  8. package/dist/collection/index.d.ts +36 -0
  9. package/dist/collection/index.js +110 -6
  10. package/dist/collection/index.js.map +4 -4
  11. package/dist/core/events.d.ts +69 -3
  12. package/dist/core/index.d.ts +158 -90
  13. package/dist/core/index.js +1543 -1169
  14. package/dist/core/index.js.map +24 -23
  15. package/dist/core/permissions.d.ts +112 -53
  16. package/dist/formatters/index.d.ts +43 -3
  17. package/dist/formatters/index.js +64 -1
  18. package/dist/formatters/index.js.map +3 -3
  19. package/dist/handlers/index.js.map +2 -2
  20. package/dist/index.d.ts +5 -4
  21. package/dist/index.js +3882 -1588
  22. package/dist/index.js.map +43 -35
  23. package/dist/managers/emoji.d.ts +38 -0
  24. package/dist/managers/guild.d.ts +141 -0
  25. package/dist/managers/index.d.ts +86 -75
  26. package/dist/managers/index.js +1084 -67
  27. package/dist/managers/index.js.map +21 -16
  28. package/dist/managers/message.d.ts +7 -12
  29. package/dist/managers/user.d.ts +20 -0
  30. package/dist/rest/index.d.ts +173 -1
  31. package/dist/rest/index.js +343 -47
  32. package/dist/rest/index.js.map +8 -6
  33. package/dist/rest/redis.d.ts +37 -0
  34. package/dist/rest/routes.d.ts +26 -1
  35. package/dist/rest/store.d.ts +38 -0
  36. package/dist/rest/webhook.d.ts +2 -2
  37. package/dist/sharding/cluster.d.ts +61 -0
  38. package/dist/sharding/index.d.ts +8 -0
  39. package/dist/sharding/index.js +289 -18
  40. package/dist/sharding/index.js.map +8 -7
  41. package/dist/structures/audit-log.d.ts +26 -0
  42. package/dist/structures/base.d.ts +131 -48
  43. package/dist/structures/embed.d.ts +65 -0
  44. package/dist/structures/index.d.ts +74 -26
  45. package/dist/structures/index.js +1528 -59
  46. package/dist/structures/index.js.map +14 -8
  47. package/dist/structures/interactions.d.ts +72 -17
  48. package/dist/structures/resources.d.ts +199 -7
  49. package/dist/types/index.d.ts +605 -84
  50. package/dist/types/index.js +71 -1
  51. package/dist/types/index.js.map +3 -3
  52. package/dist/utils/index.js.map +2 -2
  53. package/dist/voice/index.d.ts +88 -0
  54. package/dist/voice/index.js +204 -5
  55. package/dist/voice/index.js.map +3 -3
  56. package/dist/ws/index.d.ts +40 -1
  57. package/dist/ws/index.js +105 -18
  58. package/dist/ws/index.js.map +4 -4
  59. package/package.json +16 -16
  60. package/dist/structures/permissions.d.ts +0 -73
@@ -0,0 +1,38 @@
1
+ import { Manager } from "./base.js";
2
+ import { Emoji } from "@lunibee/structures";
3
+ import { type REST } from "@lunibee/rest";
4
+ /** Strict payload for creating a custom guild emoji. */
5
+ export interface EmojiCreateOptions {
6
+ /** Emoji name (1-32 chars, alphanumeric + underscores). */
7
+ name: string;
8
+ /** Base64-encoded 128x128 image data URI. */
9
+ image: string;
10
+ /** Role IDs allowed to use the emoji. */
11
+ roles?: string[];
12
+ }
13
+ /** Strict payload for editing a custom guild emoji. */
14
+ export interface EmojiEditOptions {
15
+ /** New emoji name. */
16
+ name?: string;
17
+ /** Role IDs allowed to use the emoji. */
18
+ roles?: string[];
19
+ }
20
+ /** Manages custom emojis for a guild. */
21
+ export declare class EmojiManager extends Manager<string, Emoji> {
22
+ #private;
23
+ constructor(rest: REST, guildId: string);
24
+ /** Fetches an emoji by ID from Discord. */
25
+ fetch(emojiId: string): Promise<Emoji>;
26
+ /** Fetches all emojis for this guild. */
27
+ fetchAll(): Promise<Emoji[]>;
28
+ /** Creates a new custom emoji. */
29
+ create(options: EmojiCreateOptions): Promise<Emoji>;
30
+ /** Edits an existing custom emoji. */
31
+ edit(emojiId: string, options: EmojiEditOptions): Promise<Emoji>;
32
+ /** Deletes a custom emoji. */
33
+ deleteEmoji(emojiId: string): Promise<void>;
34
+ /** Upserts an emoji into the manager cache. Custom emojis are keyed by their
35
+ * snowflake ID; unicode emojis (no ID) are keyed by `unicode:${name}` so repeated
36
+ * upserts reuse the same cached instance instead of allocating a new one each call. */
37
+ upsert(data: ConstructorParameters<typeof Emoji>[0]): Emoji;
38
+ }
@@ -0,0 +1,141 @@
1
+ import { ResourceManager } from "./base.js";
2
+ import { Guild, AutoModerationRule } from "@lunibee/structures";
3
+ import { type REST } from "@lunibee/rest";
4
+ import { type APIChannel, type APIGuildPreview, type APIInvite, type APIWebhook } from "@lunibee/types";
5
+ export interface GuildCreateOptions extends Record<string, unknown> {
6
+ name: string;
7
+ }
8
+ export interface GuildEditOptions extends Record<string, unknown> {
9
+ }
10
+ export declare class GuildManager extends ResourceManager<string, Guild> {
11
+ #private;
12
+ constructor(rest: REST);
13
+ /** Creates a new guild. (Bot must be in fewer than 10 guilds). */
14
+ create(options: GuildCreateOptions): Promise<Guild>;
15
+ /** Modifies a guild's settings. */
16
+ edit(id: string, options: GuildEditOptions): Promise<Guild>;
17
+ /** Deletes a guild permanently. User must be the owner. */
18
+ deleteGuild(id: string): Promise<void>;
19
+ /** Fetches a guild's preview (even if the bot is not in the guild). */
20
+ fetchPreview(id: string): Promise<APIGuildPreview>;
21
+ /** Fetches all active threads in the guild. */
22
+ fetchActiveThreads(id: string): Promise<{
23
+ threads: APIChannel[];
24
+ members: unknown[];
25
+ }>;
26
+ /** Fetches all webhooks in the guild. */
27
+ fetchWebhooks(id: string): Promise<APIWebhook[]>;
28
+ /** Fetches all invites in the guild. */
29
+ fetchInvites(id: string): Promise<APIInvite[]>;
30
+ /**
31
+ * Fetches audit log entries for a guild.
32
+ * @param guildId Guild identifier.
33
+ * @param options Filter options: userId (filter by actor), actionType (AuditLogEvent number), before (entry ID cursor), limit (1–100, default 50).
34
+ * @returns Typed audit log response with `audit_log_entries` and related resources.
35
+ */
36
+ fetchAuditLog(guildId: string, options?: {
37
+ userId?: string;
38
+ actionType?: number;
39
+ before?: string;
40
+ after?: string;
41
+ limit?: number;
42
+ }): Promise<AuditLogResponse>;
43
+ /**
44
+ * Fetches members from a guild (paginated).
45
+ * @param guildId Guild identifier.
46
+ * @param options Fetch options: limit (1–1000, default 100), after (member ID cursor).
47
+ * @returns Array of raw member data payloads.
48
+ */
49
+ fetchMembers(guildId: string, options?: {
50
+ limit?: number;
51
+ after?: string;
52
+ }): Promise<Record<string, unknown>[]>;
53
+ /** Fetches a list of all auto moderation rules currently configured for guild. */
54
+ fetchAutoModerationRules(guildId: string): Promise<AutoModerationRule[]>;
55
+ /** Fetches a single auto moderation rule. */
56
+ fetchAutoModerationRule(guildId: string, ruleId: string): Promise<AutoModerationRule>;
57
+ /** Creates a new auto moderation rule. */
58
+ createAutoModerationRule(guildId: string, options: Record<string, unknown>): Promise<AutoModerationRule>;
59
+ /** Modifies an existing auto moderation rule. */
60
+ editAutoModerationRule(guildId: string, ruleId: string, options: Record<string, unknown>): Promise<AutoModerationRule>;
61
+ /** Deletes an auto moderation rule. */
62
+ deleteAutoModerationRule(guildId: string, ruleId: string): Promise<void>;
63
+ }
64
+ /** A single audit log entry as returned by the Discord API. */
65
+ export interface AuditLogEntry {
66
+ id: string;
67
+ action_type: number;
68
+ user_id: string | null;
69
+ target_id: string | null;
70
+ reason?: string;
71
+ changes?: Array<{
72
+ key: string;
73
+ old_value?: unknown;
74
+ new_value?: unknown;
75
+ }>;
76
+ options?: Record<string, unknown>;
77
+ }
78
+ /** Discord API audit log response payload. */
79
+ export interface AuditLogResponse {
80
+ audit_log_entries: AuditLogEntry[];
81
+ users: Record<string, unknown>[];
82
+ integrations: Record<string, unknown>[];
83
+ webhooks: Record<string, unknown>[];
84
+ guild_scheduled_events: Record<string, unknown>[];
85
+ threads: Record<string, unknown>[];
86
+ application_commands: Record<string, unknown>[];
87
+ }
88
+ /** Known Discord audit log event type numbers. */
89
+ export declare const AuditLogEvent: {
90
+ readonly GuildUpdate: 1;
91
+ readonly ChannelCreate: 10;
92
+ readonly ChannelUpdate: 11;
93
+ readonly ChannelDelete: 12;
94
+ readonly ChannelOverwriteCreate: 13;
95
+ readonly ChannelOverwriteUpdate: 14;
96
+ readonly ChannelOverwriteDelete: 15;
97
+ readonly MemberKick: 20;
98
+ readonly MemberPrune: 21;
99
+ readonly MemberBanAdd: 22;
100
+ readonly MemberBanRemove: 23;
101
+ readonly MemberUpdate: 24;
102
+ readonly MemberRoleUpdate: 25;
103
+ readonly MemberMove: 26;
104
+ readonly MemberDisconnect: 27;
105
+ readonly BotAdd: 28;
106
+ readonly RoleCreate: 30;
107
+ readonly RoleUpdate: 31;
108
+ readonly RoleDelete: 32;
109
+ readonly InviteCreate: 40;
110
+ readonly InviteUpdate: 41;
111
+ readonly InviteDelete: 42;
112
+ readonly WebhookCreate: 50;
113
+ readonly WebhookUpdate: 51;
114
+ readonly WebhookDelete: 52;
115
+ readonly EmojiCreate: 60;
116
+ readonly EmojiUpdate: 61;
117
+ readonly EmojiDelete: 62;
118
+ readonly MessageDelete: 72;
119
+ readonly MessageBulkDelete: 73;
120
+ readonly MessagePin: 74;
121
+ readonly MessageUnpin: 75;
122
+ readonly IntegrationCreate: 80;
123
+ readonly IntegrationUpdate: 81;
124
+ readonly IntegrationDelete: 82;
125
+ readonly StageInstanceCreate: 83;
126
+ readonly StageInstanceUpdate: 84;
127
+ readonly StageInstanceDelete: 85;
128
+ readonly StickerCreate: 90;
129
+ readonly StickerUpdate: 91;
130
+ readonly StickerDelete: 92;
131
+ readonly ScheduledEventCreate: 100;
132
+ readonly ScheduledEventUpdate: 101;
133
+ readonly ScheduledEventDelete: 102;
134
+ readonly ThreadCreate: 110;
135
+ readonly ThreadUpdate: 111;
136
+ readonly ThreadDelete: 112;
137
+ readonly AutoModerationRuleCreate: 140;
138
+ readonly AutoModerationRuleUpdate: 141;
139
+ readonly AutoModerationRuleDelete: 142;
140
+ readonly AutoModerationBlockMessage: 143;
141
+ };
@@ -1,96 +1,107 @@
1
- import { Manager, ResourceManager } from "./base.js";
1
+ import { Manager } from "./base.js";
2
2
  export { Manager, ResourceManager } from "./base.js";
3
3
  import { REST } from "@lunibee/rest";
4
- import { Channel, Message, User, Guild } from "@lunibee/structures";
5
- import { MessageManager } from "./message.js";
4
+ import { Channel, Message, User } from "@lunibee/structures";
5
+ import { MessageManager, type MessageCreateOptions as ManagerMessageCreateOptions } from "./message.js";
6
6
  import { ThreadManager } from "./thread.js";
7
- /** Manages users. */
8
- export declare class UserManager extends ResourceManager<string, User> {
9
- /** Creates a user manager. @param rest REST transport. */ constructor(rest: REST);
10
- }
11
- /** Manages guilds. */
12
- export declare class GuildManager extends ResourceManager<string, Guild> {
13
- /** Creates a guild manager. @param rest REST transport. */ constructor(rest: REST);
14
- }
15
- /** Message creation options. */
16
- export interface MessageCreateOptions {
17
- /** Message content. */ content?: string;
18
- }
19
- /** Message edit options. */
20
- export interface MessageEditOptions {
21
- /** New message content. */ content?: string;
22
- }
23
- /** Message fetch options. */
7
+ export { UserManager } from "./user.js";
8
+ export { GuildManager } from "./guild.js";
9
+ export type { AuditLogEntry, AuditLogResponse } from "./guild.js";
10
+ export { AuditLogEvent } from "./guild.js";
11
+ export type MessageCreateOptions = ManagerMessageCreateOptions;
12
+ export type MessageEditOptions = Record<string, unknown> & {
13
+ content?: string;
14
+ };
24
15
  export interface MessageFetchOptions {
25
- /** Whether to use cache. */ cache?: boolean;
16
+ cache?: boolean;
26
17
  }
27
- /** Message list query options. */
28
18
  export interface MessageQueryOptions {
29
- /** Message before this ID. */ before?: string;
30
- /** Message after this ID. */ after?: string;
31
- /** Message around this ID. */ around?: string;
32
- /** Maximum number of messages. */ limit?: number;
19
+ before?: string;
20
+ after?: string;
21
+ around?: string;
22
+ limit?: number;
33
23
  }
34
- /** Message thread creation options. */
35
24
  export interface MessageThreadOptions {
36
- /** Thread name. */ name: string;
37
- /** Auto archive duration. */ autoArchiveDuration?: 60 | 1440 | 4320 | 10080;
38
- /** Slowmode duration. */ rateLimitPerUser?: number;
25
+ name: string;
26
+ autoArchiveDuration?: 60 | 1440 | 4320 | 10080;
27
+ rateLimitPerUser?: number;
39
28
  }
40
- /** Reaction list options. */
41
29
  export interface ReactionFetchOptions {
42
- /** Maximum reactions. */ limit?: number;
43
- /** Reaction pagination cursor. */ after?: string;
30
+ limit?: number;
31
+ after?: string;
32
+ }
33
+ export interface ChannelCreateOptions extends Record<string, unknown> {
34
+ name: string;
35
+ type: number;
36
+ guild_id?: string;
37
+ parent_id?: string | null;
44
38
  }
45
- /** Runtime compatibility placeholders for legacy value imports. */
46
- export declare const MessageCreateOptions: undefined;
47
- /** Runtime compatibility placeholder. */
48
- export declare const MessageEditOptions: undefined;
49
- /** Runtime compatibility placeholder. */
50
- export declare const MessageFetchOptions: undefined;
51
- /** Runtime compatibility placeholder. */
52
- export declare const MessageThreadOptions: undefined;
53
- /** Runtime compatibility placeholder. */
54
- export declare const ReactionFetchOptions: undefined;
55
- /** Manages Discord channels and their message APIs. */
39
+ export type ChannelEditOptions = Record<string, unknown>;
56
40
  export declare class ChannelManager extends Manager<string, Channel> {
57
41
  #private;
58
- /** Creates a channel manager. @param rest REST transport. */
59
42
  constructor(rest: REST);
60
- /** Gets the canonical message manager for a channel. @param channelId Channel ID. @returns Message manager. */ messages(channelId: string): MessageManager;
61
- /** Creates a thread manager. @param channelId Channel ID. @returns Thread manager. */ threads(channelId: string): ThreadManager;
62
- /** Fetches a channel. @param channelId Channel ID. @returns Channel. */ fetch(channelId: string): Promise<Channel>;
63
- /** Resolves a channel. @param channelId Channel ID. @returns Canonical channel. */ resolve(channelId: string): Promise<Channel>;
64
- /** Inserts or updates a channel. @param data Channel payload. @returns Canonical channel. */ upsert(data: ConstructorParameters<typeof Channel>[0]): Channel;
65
- /** Updates a channel. @param channel Channel. @returns This manager. */ update(channel: Channel): this;
66
- /** Sends a message. @param channelId Channel ID. @param options Message options. @returns Created message. */ send(channelId: string, options: MessageCreateOptions): Promise<Message>;
67
- /** Alias for send. @param channelId Channel ID. @param options Message options. @returns Created message. */ sendMessage(channelId: string, options: MessageCreateOptions): Promise<Message>;
68
- /** Fetches one message. @param channelId Channel ID. @param messageId Message ID. @param options Fetch options. @returns Message. */ fetchMessage(channelId: string, messageId: string, options?: MessageFetchOptions): Promise<Message>;
69
- /** Fetches messages by query or by iterable IDs. @param channelId Channel ID. @param query Query options or message IDs. @returns Messages. */ fetchMessages(channelId: string, query: MessageQueryOptions | Iterable<string>): Promise<Message[]>;
70
- /** Inserts a message through the canonical cache path. @param data Message payload. @returns Canonical message. */ upsertMessage(data: ConstructorParameters<typeof Message>[0]): Message;
71
- /** Edits a message. @param channelId Channel ID. @param messageId Message ID. @param options Edit options. @returns Updated message. */ editMessage(channelId: string, messageId: string, options: MessageEditOptions): Promise<Message>;
72
- /** Deletes a message. @param channelId Channel ID. @param messageId Message ID. @returns Nothing. */ deleteMessage(channelId: string, messageId: string): Promise<void>;
73
- /** Deletes a cached message. @param channelId Channel ID. @param messageId Message ID. @returns Whether removed. */ deleteCachedMessage(channelId: string, messageId: string): boolean;
74
- /** Crossposts a message. @param channelId Channel ID. @param messageId Message ID. @returns Crossposted message. */ crosspostMessage(channelId: string, messageId: string): Promise<Message>;
75
- /** Bulk deletes messages. @param channelId Channel ID. @param messageIds Message IDs. @returns Nothing. */ bulkDeleteMessages(channelId: string, messageIds: Iterable<string>): Promise<void>;
76
- /** Adds a reaction. @param channelId Channel ID. @param messageId Message ID. @param emoji Emoji identifier. @returns Nothing. */ addReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
77
- /** Fetches users who reacted. @param channelId Channel ID. @param messageId Message ID. @param emoji Emoji identifier. @param options Query options. @returns Users. */ fetchReactions(channelId: string, messageId: string, emoji: string, options?: ReactionFetchOptions): Promise<User[]>;
78
- /** Removes the current bot user's reaction. @param channelId Channel ID. @param messageId Message ID. @param emoji Emoji identifier. @returns Nothing. */ removeOwnReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
79
- /** Removes a user's reaction. @param channelId Channel ID. @param messageId Message ID. @param emoji Emoji identifier. @param userId User ID. @returns Nothing. */ removeReaction(channelId: string, messageId: string, emoji: string, userId: string): Promise<void>;
80
- /** Removes all reactions. @param channelId Channel ID. @param messageId Message ID. @returns Nothing. */ removeAllReactions(channelId: string, messageId: string): Promise<void>;
81
- /** Fetches pinned messages. @param channelId Channel ID. @returns Pinned messages. */ fetchPinnedMessages(channelId: string): Promise<Message[]>;
82
- /** Pins a message. @param channelId Channel ID. @param messageId Message ID. @returns Nothing. */ pinMessage(channelId: string, messageId: string): Promise<void>;
83
- /** Unpins a message. @param channelId Channel ID. @param messageId Message ID. @returns Nothing. */ unpinMessage(channelId: string, messageId: string): Promise<void>;
84
- /** Creates a thread from a message. @param channelId Channel ID. @param messageId Message ID. @param options Thread options. @returns Created thread channel. */ createThreadFromMessage(channelId: string, messageId: string, options: MessageThreadOptions): Promise<Channel>;
85
- /** Deletes a channel and its message manager. @param channelId Channel ID. @returns Whether removed. */ delete(channelId: string): boolean;
86
- /** Clears all channels and message managers. @returns Nothing. */ clear(): void;
43
+ messages(channelId: string): MessageManager;
44
+ threads(channelId: string): ThreadManager;
45
+ fetch(channelId: string): Promise<Channel>;
46
+ resolve(channelId: string): Promise<Channel>;
47
+ upsert(data: ConstructorParameters<typeof Channel>[0]): Channel;
48
+ update(channel: Channel): this;
49
+ create(guildId: string, options: ChannelCreateOptions): Promise<Channel>;
50
+ edit(channelId: string, options: ChannelEditOptions): Promise<Channel>;
51
+ deleteChannel(channelId: string): Promise<void>;
52
+ /** Evicts a channel, dropping its per-channel message manager with it.
53
+ * Overrides {@link Manager.delete} so cache eviction driven by a Gateway
54
+ * `CHANNEL_DELETE`/`THREAD_DELETE` — which calls `delete` rather than
55
+ * {@link deleteChannel} — releases the message manager and its cached
56
+ * messages too, instead of retaining them for the client's lifetime. */
57
+ delete(channelId: string): boolean;
58
+ send(channelId: string, options: MessageCreateOptions): Promise<Message>;
59
+ sendMessage(channelId: string, options: MessageCreateOptions): Promise<Message>;
60
+ fetchMessage(channelId: string, messageId: string, options?: MessageFetchOptions): Promise<Message>;
61
+ fetchMessages(channelId: string, query: MessageQueryOptions | Iterable<string>): Promise<Message[]>;
62
+ upsertMessage(data: ConstructorParameters<typeof Message>[0]): Message;
63
+ editMessage(channelId: string, messageId: string, options: MessageEditOptions): Promise<Message>;
64
+ deleteMessage(channelId: string, messageId: string): Promise<void>;
65
+ deleteCachedMessage(channelId: string, messageId: string): boolean;
66
+ crosspostMessage(channelId: string, messageId: string): Promise<Message>;
67
+ /** Bulk-deletes messages in a channel.
68
+ * @throws {RangeError} If fewer than 2 or more than 100 message IDs are provided. */
69
+ bulkDeleteMessages(channelId: string, messageIds: Iterable<string>): Promise<void>;
70
+ addReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
71
+ fetchReactions(channelId: string, messageId: string, emoji: string, options?: ReactionFetchOptions): Promise<User[]>;
72
+ removeOwnReaction(channelId: string, messageId: string, emoji: string): Promise<void>;
73
+ removeReaction(channelId: string, messageId: string, emoji: string, userId: string): Promise<void>;
74
+ removeAllReactions(channelId: string, messageId: string): Promise<void>;
75
+ fetchPinnedMessages(channelId: string): Promise<Message[]>;
76
+ pinMessage(channelId: string, messageId: string): Promise<void>;
77
+ unpinMessage(channelId: string, messageId: string): Promise<void>;
78
+ createThreadFromMessage(channelId: string, messageId: string, options: MessageThreadOptions): Promise<Channel>;
79
+ /**
80
+ * Fetches a page of messages with cursor metadata.
81
+ * @param channelId Channel to fetch from.
82
+ * @param options Page options — `before`, `after`, `around`, and `limit` (max 100).
83
+ * @returns `{ messages, before, after, hasMore }` — use `before` or `after` as cursors for the next page.
84
+ */
85
+ fetchPage(channelId: string, options?: MessageQueryOptions): Promise<{
86
+ messages: Message[];
87
+ before?: string;
88
+ after?: string;
89
+ hasMore: boolean;
90
+ }>;
91
+ /**
92
+ * Bulk-deletes 2–100 messages from a channel.
93
+ * Only messages younger than 14 days are accepted by Discord.
94
+ * @param channelId Channel to delete from.
95
+ * @param messageIds Array of message IDs to delete.
96
+ * @throws {RangeError} If fewer than 2 or more than 100 IDs are provided.
97
+ */
98
+ bulkDelete(channelId: string, messageIds: string[]): Promise<void>;
99
+ clear(): void;
87
100
  }
88
- /** Backward-compatible message option alias. */
89
101
  export type CreateMessageOptions = MessageCreateOptions;
90
- /** Exposes the message manager class. */
91
102
  export { MessageManager } from "./message.js";
92
- /** Exposes the thread manager class. */
93
103
  export { ThreadManager } from "./thread.js";
94
104
  export { RoleManager, type RoleCreateOptions, type RoleEditOptions, } from "./role.js";
95
105
  export { GuildMemberManager, type MemberEditOptions, type BanOptions, } from "./member.js";
96
106
  export { ApplicationCommandManager } from "./application.js";
107
+ export { EmojiManager, type EmojiCreateOptions, type EmojiEditOptions } from "./emoji.js";