lunibee 0.2.3 → 0.3.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 (86) hide show
  1. package/README.md +3 -3
  2. package/dist/builders/attachment.d.ts +8 -4
  3. package/dist/builders/commands.d.ts +122 -149
  4. package/dist/builders/components.d.ts +10 -150
  5. package/dist/builders/embed.d.ts +66 -37
  6. package/dist/builders/index.d.ts +0 -4
  7. package/dist/builders/index.js +112 -221
  8. package/dist/builders/index.js.map +10 -9
  9. package/dist/collection/cache.d.ts +15 -6
  10. package/dist/collection/index.d.ts +92 -17
  11. package/dist/collection/index.js +471 -279
  12. package/dist/collection/index.js.map +4 -4
  13. package/dist/core/api.d.ts +130 -0
  14. package/dist/core/channel-create.d.ts +72 -0
  15. package/dist/core/commands.d.ts +232 -0
  16. package/dist/core/events.d.ts +24 -7
  17. package/dist/core/handles.d.ts +157 -0
  18. package/dist/core/index.d.ts +68 -4
  19. package/dist/core/index.js +2639 -493
  20. package/dist/core/index.js.map +47 -37
  21. package/dist/core/permissions.d.ts +7 -7
  22. package/dist/formatters/index.js +9 -5
  23. package/dist/formatters/index.js.map +3 -3
  24. package/dist/handlers/index.js +5 -10
  25. package/dist/handlers/index.js.map +3 -3
  26. package/dist/index.d.ts +2 -2
  27. package/dist/index.js +9527 -7809
  28. package/dist/index.js.map +63 -53
  29. package/dist/managers/advanced.d.ts +29 -1
  30. package/dist/managers/base.d.ts +22 -14
  31. package/dist/managers/emoji.d.ts +0 -2
  32. package/dist/managers/guild-resources.d.ts +13 -5
  33. package/dist/managers/guild.d.ts +40 -4
  34. package/dist/managers/index.d.ts +21 -13
  35. package/dist/managers/index.js +969 -386
  36. package/dist/managers/index.js.map +30 -25
  37. package/dist/managers/member.d.ts +9 -2
  38. package/dist/managers/message.d.ts +10 -15
  39. package/dist/managers/role.d.ts +18 -10
  40. package/dist/managers/thread.d.ts +68 -0
  41. package/dist/managers/user.d.ts +18 -0
  42. package/dist/rest/errors.d.ts +14 -7
  43. package/dist/rest/index.d.ts +24 -12
  44. package/dist/rest/index.js +70 -20
  45. package/dist/rest/index.js.map +9 -9
  46. package/dist/rest/redis.d.ts +1 -1
  47. package/dist/rest/route.d.ts +8 -4
  48. package/dist/rest/routes.d.ts +122 -48
  49. package/dist/rest/transport.d.ts +10 -5
  50. package/dist/rest/webhook.d.ts +9 -5
  51. package/dist/sharding/bus.d.ts +47 -19
  52. package/dist/sharding/cluster.d.ts +11 -0
  53. package/dist/sharding/gateway-bot.d.ts +18 -0
  54. package/dist/sharding/index.d.ts +64 -25
  55. package/dist/sharding/index.js +439 -124
  56. package/dist/sharding/index.js.map +19 -14
  57. package/dist/sharding/supervisor.d.ts +32 -0
  58. package/dist/sharding/transport.d.ts +45 -0
  59. package/dist/structures/audit-log.d.ts +99 -2
  60. package/dist/structures/base.d.ts +40 -23
  61. package/dist/structures/channels.d.ts +45 -14
  62. package/dist/structures/index.d.ts +8 -12
  63. package/dist/structures/index.js +280 -132
  64. package/dist/structures/index.js.map +21 -15
  65. package/dist/structures/interactions.d.ts +91 -63
  66. package/dist/structures/resources.d.ts +99 -52
  67. package/dist/structures/sticker.d.ts +33 -0
  68. package/dist/types/channel-kind.d.ts +26 -0
  69. package/dist/types/gateway.d.ts +24 -12
  70. package/dist/types/index.d.ts +115 -113
  71. package/dist/types/index.js +53 -48
  72. package/dist/types/index.js.map +6 -5
  73. package/dist/voice/index.d.ts +12 -4
  74. package/dist/voice/index.js +14 -18
  75. package/dist/voice/index.js.map +3 -3
  76. package/dist/ws/decoder.d.ts +6 -2
  77. package/dist/ws/dispatcher.d.ts +19 -0
  78. package/dist/ws/index.d.ts +61 -15
  79. package/dist/ws/index.js +194 -77
  80. package/dist/ws/index.js.map +13 -11
  81. package/dist/ws/protocol.d.ts +10 -2
  82. package/dist/ws/reconnect.d.ts +10 -0
  83. package/dist/ws/send-budget.d.ts +6 -2
  84. package/dist/ws/session.d.ts +14 -4
  85. package/dist/ws/state.d.ts +22 -11
  86. package/package.json +20 -16
@@ -1,6 +1,6 @@
1
1
  import { Manager } from "./base.js";
2
2
  import { type REST } from "@lunibee/rest";
3
- import type { APIEntitlement, APISKU, APISoundboardSound, APISticker, APISubscription } from "@lunibee/types";
3
+ import type { APIEmoji, APIEntitlement, APISKU, APISoundboardSound, APISticker, APISubscription } from "@lunibee/types";
4
4
  export type { APIEntitlement, APISKU, APISoundboardSound, APISubscription, } from "@lunibee/types";
5
5
  /** Fields for {@link GuildStickerManager.create}. */
6
6
  export interface GuildStickerCreateOptions {
@@ -114,3 +114,31 @@ export declare class MonetizationManager extends Manager<string, APIEntitlement>
114
114
  /** Fetches one subscription. */
115
115
  fetchSubscription(skuId: string, subscriptionId: string): Promise<APISubscription>;
116
116
  }
117
+ /** Fields for {@link ApplicationEmojiManager.create}. */
118
+ export interface ApplicationEmojiCreateOptions {
119
+ /** 2-32 characters: letters, digits and underscores. */
120
+ name: string;
121
+ /** The image as a data URI (PNG, JPEG, GIF or WebP, up to 256 KB). */
122
+ image: string;
123
+ }
124
+ /**
125
+ * The application's own emojis: they belong to the bot, not to a guild, so any
126
+ * server can show them. Cached by emoji ID.
127
+ */
128
+ export declare class ApplicationEmojiManager extends Manager<string, APIEmoji> {
129
+ #private;
130
+ readonly applicationId: string;
131
+ constructor(rest: REST, applicationId: string);
132
+ /** Fetches every application emoji, replacing the cache. */
133
+ fetchAll(): Promise<APIEmoji[]>;
134
+ /** Fetches one application emoji. */
135
+ fetch(emojiId: string): Promise<APIEmoji>;
136
+ /** Uploads a new application emoji. */
137
+ create(options: ApplicationEmojiCreateOptions): Promise<APIEmoji>;
138
+ /** Renames an application emoji. */
139
+ edit(emojiId: string, options: {
140
+ name: string;
141
+ }): Promise<APIEmoji>;
142
+ /** Deletes an application emoji. */
143
+ remove(emojiId: string): Promise<void>;
144
+ }
@@ -6,9 +6,12 @@ export declare function splitReason<T extends {
6
6
  /** Generic cache manager. @typeParam K Cache key type. @typeParam V Cached value type. */
7
7
  export declare class Manager<K, V> {
8
8
  #private;
9
- /** Authoritative resource state. Entries never expire: see {@link Manager.set}. */ readonly cache: Collection<K, V>;
10
- /** Gets a cached value. @param id Cache key. @returns Cached value. */ get(id: K): V | undefined;
11
- /** Checks whether a value is cached. @param id Cache key. @returns True when cached. */ has(id: K): boolean;
9
+ /** Authoritative resource state. Entries never expire: see {@link Manager.set}. */
10
+ readonly cache: Collection<K, V>;
11
+ /** Gets a cached value. @param id Cache key. @returns Cached value. */
12
+ get(id: K): V | undefined;
13
+ /** Checks whether a value is cached. @param id Cache key. @returns True when cached. */
14
+ has(id: K): boolean;
12
15
  /**
13
16
  * Runs a REST load for one key. Concurrent loads of that key share a
14
17
  * single request. If the key is written (e.g. by a Gateway update) or
@@ -18,17 +21,22 @@ export declare class Manager<K, V> {
18
21
  * @param store Stores a fresh result and returns the canonical instance.
19
22
  */
20
23
  protected fetchOnce(id: K, load: () => Promise<V>, store?: (value: V) => V): Promise<V>;
21
- /** Stores a resource with `setWithoutTTL()`, so it leaves only on an explicit delete (e.g. a Gateway `*_DELETE`), never through TTL. @param id Cache key. @param value Value. @returns This manager. */ set(id: K, value: V): this;
22
- /** Deletes a cached value. @param id Cache key. @returns True when deleted. */ delete(id: K): boolean;
23
- /** Clears the cache. @returns Nothing. */ clear(): void;
24
- /** Gets cache size. @returns Number of cached values. */ get size(): number;
25
- /** Gets the first cached value. @returns First value. */ first(): V | undefined;
26
- /** Returns cached values. @returns Array of values. */ values(): V[];
27
- /** Finds a cached value. @param predicate Predicate. @returns Matching value. */ find(predicate: (value: V, key: K) => boolean): V | undefined;
28
- /** Iterates cached entries. @returns Cache iterator. */ [Symbol.iterator](): IterableIterator<[
29
- K,
30
- V
31
- ]>;
24
+ /** Stores a resource with `setWithoutTTL()`, so it leaves only on an explicit delete (e.g. a Gateway `*_DELETE`), never through TTL. @param id Cache key. @param value Value. @returns This manager. */
25
+ set(id: K, value: V): this;
26
+ /** Deletes a cached value. @param id Cache key. @returns True when deleted. */
27
+ delete(id: K): boolean;
28
+ /** Clears the cache. @returns Nothing. */
29
+ clear(): void;
30
+ /** Gets cache size. @returns Number of cached values. */
31
+ get size(): number;
32
+ /** Gets the first cached value. @returns First value. */
33
+ first(): V | undefined;
34
+ /** Returns cached values. @returns Array of values. */
35
+ values(): V[];
36
+ /** Finds a cached value. @param predicate Predicate. @returns Matching value. */
37
+ find(predicate: (value: V, key: K) => boolean): V | undefined;
38
+ /** Iterates cached entries. @returns Cache iterator. */
39
+ [Symbol.iterator](): IterableIterator<[K, V]>;
32
40
  }
33
41
  /** Generic REST-backed resource manager. @typeParam K Resource key type. @typeParam V Resource type. */
34
42
  export declare class ResourceManager<K, V> extends Manager<K, V> {
@@ -35,8 +35,6 @@ export declare class EmojiManager extends Manager<string, Emoji> {
35
35
  edit(emojiId: string, options: EmojiEditOptions): Promise<Emoji>;
36
36
  /** Deletes a custom emoji. @param reason Audit-log reason. */
37
37
  remove(emojiId: string, reason?: string): Promise<void>;
38
- /** @deprecated Use {@link EmojiManager.remove}, which also takes an audit-log reason. Removed in 0.3.0. */
39
- deleteEmoji(emojiId: string): Promise<void>;
40
38
  /** Upserts an emoji into the manager cache. Custom emojis are keyed by their
41
39
  * snowflake ID; unicode emojis (no ID) are keyed by `unicode:${name}` so repeated
42
40
  * upserts reuse the same cached instance instead of allocating a new one each call. */
@@ -28,6 +28,14 @@ export declare class GuildBanManager extends Manager<string, APIBan> {
28
28
  }): Promise<APIBan[]>;
29
29
  /** Bans a user. */
30
30
  create(userId: string, options?: GuildBanCreateOptions): Promise<void>;
31
+ /**
32
+ * Bans up to 200 users at once. Users that cannot be banned (already
33
+ * banned, higher role, owner) come back in `failed`, not as an error.
34
+ */
35
+ bulk(userIds: readonly string[], options?: GuildBanCreateOptions): Promise<{
36
+ banned: string[];
37
+ failed: string[];
38
+ }>;
31
39
  /** Lifts a ban. */
32
40
  remove(userId: string, reason?: string): Promise<void>;
33
41
  }
@@ -50,9 +58,9 @@ export declare class GuildScheduledEventManager extends Manager<string, APIGuild
50
58
  withUserCount?: boolean;
51
59
  }): Promise<APIGuildScheduledEvent[]>;
52
60
  /** Creates an event. */
53
- create(options: GuildScheduledEventOptions, reason?: string): Promise<APIGuildScheduledEvent>;
61
+ create(options: GuildScheduledEventOptions): Promise<APIGuildScheduledEvent>;
54
62
  /** Edits an event. */
55
- edit(eventId: string, options: GuildScheduledEventOptions, reason?: string): Promise<APIGuildScheduledEvent>;
63
+ edit(eventId: string, options: GuildScheduledEventOptions): Promise<APIGuildScheduledEvent>;
56
64
  /** Deletes an event. @param reason Audit-log reason. */
57
65
  remove(eventId: string, reason?: string): Promise<void>;
58
66
  /** Fetches users subscribed to an event (`limit` 1-100). */
@@ -80,7 +88,7 @@ export declare class StageInstanceManager extends Manager<string, APIStageInstan
80
88
  #private;
81
89
  constructor(rest: REST);
82
90
  /** Starts a stage instance in a stage channel. */
83
- create(channelId: string, options: StageInstanceCreateOptions, reason?: string): Promise<APIStageInstance>;
91
+ create(channelId: string, options: StageInstanceCreateOptions): Promise<APIStageInstance>;
84
92
  /** Fetches the stage instance of a stage channel. */
85
93
  fetch(channelId: string): Promise<APIStageInstance>;
86
94
  /** Edits a stage instance's topic or privacy level. */
@@ -88,7 +96,7 @@ export declare class StageInstanceManager extends Manager<string, APIStageInstan
88
96
  topic?: string;
89
97
  privacyLevel?: number;
90
98
  reason?: string;
91
- }, reason?: string): Promise<APIStageInstance>;
99
+ }): Promise<APIStageInstance>;
92
100
  /** Ends a stage instance. */
93
101
  remove(channelId: string, reason?: string): Promise<void>;
94
102
  }
@@ -131,7 +139,7 @@ export declare class PermissionOverwriteManager {
131
139
  reason?: string;
132
140
  }): Promise<void>;
133
141
  /** Creates or replaces the overwrite for a role or member. */
134
- edit(overwriteId: string, options: PermissionOverwriteOptions, reason?: string): Promise<void>;
142
+ edit(overwriteId: string, options: PermissionOverwriteOptions): Promise<void>;
135
143
  /** Deletes the overwrite for a role or member. */
136
144
  remove(overwriteId: string, reason?: string): Promise<void>;
137
145
  }
@@ -4,9 +4,9 @@ import { GuildSoundboardManager, GuildStickerManager } from "./advanced.js";
4
4
  import { GuildMemberManager } from "./member.js";
5
5
  import { RoleManager } from "./role.js";
6
6
  import { GuildBanManager, GuildScheduledEventManager } from "./guild-resources.js";
7
- import { Guild, AutoModerationRule, type ResourceContext } from "@lunibee/structures";
7
+ import { AuditLog, Guild, AutoModerationRule, type ResourceContext } from "@lunibee/structures";
8
8
  import { type REST } from "@lunibee/rest";
9
- import { type APIChannel, type APIGuildPreview, type APIInvite, type APIWebhook, type APIAutoModerationRule, type APIInviteCreate, type APIVoiceState } from "@lunibee/types";
9
+ import { type APIChannel, type APIGuildPreview, type APIInvite, type APIWebhook, type APIAutoModerationRule, type APIInviteCreate, type APIVoiceState, type APIPresenceUpdate, type APIWelcomeScreen, type APIWelcomeScreenChannel, type APIGuildOnboarding, type APIOnboardingPrompt } from "@lunibee/types";
10
10
  type GuildData = ConstructorParameters<typeof Guild>[0];
11
11
  export interface GuildCreateOptions extends Record<string, unknown> {
12
12
  name: string;
@@ -36,6 +36,8 @@ export declare class GuildManager extends ResourceManager<string, Guild> {
36
36
  soundboard(guildId: string): GuildSoundboardManager;
37
37
  /** Voice states by user ID for a guild, kept in sync by `GUILD_CREATE` and `VOICE_STATE_UPDATE`. */
38
38
  voiceStates(guildId: string): Manager<string, APIVoiceState>;
39
+ /** Latest presence by user ID for a guild; filled only when `cache.presences` is on. */
40
+ presences(guildId: string): Manager<string, APIPresenceUpdate>;
39
41
  /** Auto-moderation rules by ID for a guild, kept in sync by `AUTO_MODERATION_RULE_*` events. */
40
42
  autoModerationRules(guildId: string): Manager<string, APIAutoModerationRule>;
41
43
  /** Invites by code for a guild, kept in sync by `INVITE_CREATE` / `INVITE_DELETE`. */
@@ -50,10 +52,38 @@ export declare class GuildManager extends ResourceManager<string, Guild> {
50
52
  edit(id: string, options: GuildEditOptions): Promise<Guild>;
51
53
  /** Deletes a guild permanently. The bot must own it. */
52
54
  remove(id: string): Promise<void>;
53
- /** @deprecated Use {@link GuildManager.remove}. Removed in 0.3.0. */
54
- deleteGuild(id: string): Promise<void>;
55
55
  /** Fetches a guild's preview (even if the bot is not in the guild). */
56
56
  fetchPreview(id: string): Promise<APIGuildPreview>;
57
+ /** Fetches the welcome screen of a community guild. */
58
+ fetchWelcomeScreen(id: string): Promise<APIWelcomeScreen>;
59
+ /** Edits the welcome screen (needs Manage Guild and the Community feature). */
60
+ editWelcomeScreen(id: string, options: {
61
+ enabled?: boolean;
62
+ description?: string | null;
63
+ welcomeChannels?: APIWelcomeScreenChannel[] | null;
64
+ reason?: string;
65
+ }): Promise<APIWelcomeScreen>;
66
+ /** Fetches a guild's onboarding: prompts, default channels and mode. */
67
+ fetchOnboarding(id: string): Promise<APIGuildOnboarding>;
68
+ /** Replaces parts of a guild's onboarding (needs Manage Guild and Manage Roles). */
69
+ editOnboarding(id: string, options: {
70
+ prompts?: APIOnboardingPrompt[];
71
+ defaultChannelIds?: string[];
72
+ enabled?: boolean;
73
+ mode?: number;
74
+ reason?: string;
75
+ }): Promise<APIGuildOnboarding>;
76
+ /**
77
+ * Edits a voice state in a stage channel: unsuppress the bot to speak, or
78
+ * move a speaker back to the audience. `userId` may be `"@me"`.
79
+ */
80
+ editVoiceState(id: string, userId: string, options: {
81
+ channelId: string;
82
+ suppress?: boolean;
83
+ requestToSpeakTimestamp?: string | null;
84
+ }): Promise<void>;
85
+ /** Removes an integration (and the bot or role it created) from a guild. */
86
+ removeIntegration(id: string, integrationId: string, reason?: string): Promise<void>;
57
87
  /** Fetches all active threads in the guild. */
58
88
  fetchActiveThreads(id: string): Promise<{
59
89
  threads: APIChannel[];
@@ -76,6 +106,12 @@ export declare class GuildManager extends ResourceManager<string, Guild> {
76
106
  after?: string;
77
107
  limit?: number;
78
108
  }): Promise<AuditLogResponse>;
109
+ /**
110
+ * Fetches the audit log as an {@link AuditLog}: typed `info` per action
111
+ * type, and `find()` / `filter()` by type, target, user and time.
112
+ * @example const kick = (await guilds.fetchAuditLogEntries(id, { actionType: AuditLogEvent.MemberKick })).find({ targetId: userId, since: Date.now() - 60_000 });
113
+ */
114
+ fetchAuditLogEntries(guildId: string, options?: Parameters<GuildManager["fetchAuditLog"]>[1]): Promise<AuditLog>;
79
115
  /**
80
116
  * Fetches members from a guild (paginated).
81
117
  * @param guildId Guild identifier.
@@ -3,17 +3,15 @@ export { Manager, ResourceManager } from "./base.js";
3
3
  /** Discord.js-familiar alias for {@link ResourceManager}. */
4
4
  export { ResourceManager as CachedManager } from "./base.js";
5
5
  import { REST } from "@lunibee/rest";
6
+ import type { AllowedMentions, APIForumTag, ForumTagInput, MessageCreateOptions, MessageEditOptions } from "@lunibee/types";
6
7
  import { Channel, Message, User } from "@lunibee/structures";
7
- import { MessageManager, type MessageCacheOptions, type MessageCreateOptions as ManagerMessageCreateOptions } from "./message.js";
8
+ import { MessageManager, type MessageCacheOptions } from "./message.js";
8
9
  import { ThreadManager } from "./thread.js";
9
10
  export { UserManager } from "./user.js";
10
11
  export { GuildManager } from "./guild.js";
11
12
  export type { AuditLogEntry, AuditLogResponse } from "./guild.js";
12
13
  export { AuditLogEvent } from "./guild.js";
13
- export type MessageCreateOptions = ManagerMessageCreateOptions;
14
- export type MessageEditOptions = Record<string, unknown> & {
15
- content?: string;
16
- };
14
+ export type { MessageCreateOptions, MessageEditOptions } from "./message.js";
17
15
  export interface MessageFetchOptions {
18
16
  cache?: boolean;
19
17
  }
@@ -53,7 +51,7 @@ export declare class ChannelManager extends Manager<string, Channel> {
53
51
  */
54
52
  constructor(rest: REST, options?: {
55
53
  messageCache?: MessageCacheOptions;
56
- allowedMentions?: unknown;
54
+ allowedMentions?: AllowedMentions;
57
55
  });
58
56
  messages(channelId: string): MessageManager;
59
57
  /** Permission overwrite manager for a channel. */
@@ -84,8 +82,6 @@ export declare class ChannelManager extends Manager<string, Channel> {
84
82
  edit(channelId: string, options: ChannelEditOptions): Promise<Channel>;
85
83
  /** Deletes a channel (or closes a DM). @param reason Audit-log reason. */
86
84
  remove(channelId: string, reason?: string): Promise<void>;
87
- /** @deprecated Use {@link ChannelManager.remove}, which also takes an audit-log reason. Removed in 0.3.0. */
88
- deleteChannel(channelId: string): Promise<void>;
89
85
  /** Evicts a channel, dropping its per-channel message manager with it.
90
86
  * Overrides {@link Manager.delete} so cache eviction driven by a Gateway
91
87
  * `CHANNEL_DELETE`/`THREAD_DELETE` — which calls `delete` rather than
@@ -93,8 +89,6 @@ export declare class ChannelManager extends Manager<string, Channel> {
93
89
  * messages too, instead of retaining them for the client's lifetime. */
94
90
  delete(channelId: string): boolean;
95
91
  send(channelId: string, options: MessageCreateOptions): Promise<Message>;
96
- /** @deprecated Use {@link ChannelManager.send}. Removed in 0.3.0. */
97
- sendMessage(channelId: string, options: MessageCreateOptions): Promise<Message>;
98
92
  fetchMessage(channelId: string, messageId: string, options?: MessageFetchOptions): Promise<Message>;
99
93
  fetchMessages(channelId: string, query: MessageQueryOptions | Iterable<string>): Promise<Message[]>;
100
94
  upsertMessage(data: ConstructorParameters<typeof Message>[0]): Message;
@@ -124,6 +118,22 @@ export declare class ChannelManager extends Manager<string, Channel> {
124
118
  removeAllReactions(channelId: string, messageId: string): Promise<void>;
125
119
  /** Fetches the newest pinned messages (one page, up to 50, like the endpoint it replaces). */
126
120
  fetchPinnedMessages(channelId: string): Promise<Message[]>;
121
+ /** Fetches pinned messages a page at a time, newest first (`limit` 1-50, `before` an ISO timestamp from the previous page). */
122
+ fetchPins(channelId: string, options?: {
123
+ before?: string;
124
+ limit?: number;
125
+ }): Promise<{
126
+ messages: Message[];
127
+ hasMore: boolean;
128
+ }>;
129
+ /** Shows "the bot is typing…" for about ten seconds, or until it sends a message. */
130
+ triggerTyping(channelId: string): Promise<void>;
131
+ /** Adds a tag to a forum or media channel and returns the channel's tags. @param reason Audit-log reason. */
132
+ createForumTag(channelId: string, tag: ForumTagInput, reason?: string): Promise<APIForumTag[]>;
133
+ /** Changes a forum tag and returns the channel's tags. */
134
+ editForumTag(channelId: string, tagId: string, changes: Partial<ForumTagInput>, reason?: string): Promise<APIForumTag[]>;
135
+ /** Removes a forum tag and returns the channel's remaining tags. */
136
+ removeForumTag(channelId: string, tagId: string, reason?: string): Promise<APIForumTag[]>;
127
137
  /** Pins a message. @param reason Audit-log reason. */
128
138
  pinMessage(channelId: string, messageId: string, reason?: string): Promise<void>;
129
139
  /** Unpins a message. @param reason Audit-log reason. */
@@ -147,8 +157,6 @@ export declare class ChannelManager extends Manager<string, Channel> {
147
157
  after?: string;
148
158
  hasMore: boolean;
149
159
  }>;
150
- /** @deprecated Use {@link ChannelManager.bulkDeleteMessages}, which also takes an audit-log reason. Removed in 0.3.0. */
151
- bulkDelete(channelId: string, messageIds: string[]): Promise<void>;
152
160
  clear(): void;
153
161
  }
154
162
  export type CreateMessageOptions = MessageCreateOptions;
@@ -159,4 +167,4 @@ export { GuildMemberManager, type MemberEditOptions, type BanOptions, } from "./
159
167
  export { ApplicationCommandManager } from "./application.js";
160
168
  export { GuildBanManager, GuildScheduledEventManager, StageInstanceManager, PermissionOverwriteManager, type APIBan, type GuildBanCreateOptions, type GuildScheduledEventOptions, type StageInstanceCreateOptions, type PermissionOverwriteOptions, type PermissionOverwriteTargetType, type PermissionOverwriteUpdate, } from "./guild-resources.js";
161
169
  export { EmojiManager, type EmojiCreateOptions, type EmojiEditOptions, } from "./emoji.js";
162
- export { GuildStickerManager, GuildSoundboardManager, MonetizationManager, type APIEntitlement, type APISKU, type APISoundboardSound, type APISubscription, type EntitlementQuery, type GuildStickerCreateOptions, type SoundboardSoundCreateOptions, } from "./advanced.js";
170
+ export { GuildStickerManager, GuildSoundboardManager, MonetizationManager, ApplicationEmojiManager, type APIEntitlement, type APISKU, type APISoundboardSound, type APISubscription, type EntitlementQuery, type GuildStickerCreateOptions, type SoundboardSoundCreateOptions, } from "./advanced.js";