@seedcord/gateway 0.4.0 → 0.5.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.
package/dist/index.d.mts CHANGED
@@ -1,13 +1,14 @@
1
1
  import "reflect-metadata";
2
2
  import { WinstonConsoleSink, WinstonFileSink } from "@seedcord/logger/node";
3
- import { AnyCustomId, AutocompletableNames, AutocompleteRouteBrand, CacheFor, ChoiceValueOf, ComponentDefsBrand, ComponentKindBrand, ContextMenuKindBrand, ContextMenuLeaves, ContextMenuNamesBrand, EntryFor, FocusedField, GateFitsWith, HasComponentDefs, Initializeable, MatchArms, MenuCacheFor, NamesFor, PageCursor, SingleParams, SlashOptions as SlashOptions$1, SlashRouteBrand } from "@seedcord/core/internal";
4
- import { ArraySourceBase, AutocompleteOptions, BaseHandler as BaseHandler$1, BaseReplySender, Bus, CoreBase, CursorSourceBase, DispatchContext, Gate, GateContextBase, GateNoticeOptions, GuildPermissionsContext, ModalLike, Notice, PageSourceBase, PaginatorBase, PaginatorConfig, PermissionNoticeOverrides, PermissionScope, RepliableHandler as RepliableHandler$1, RequiredOf, ResolvedEmoji, SelectMenuKind, SlashRegistry, Subscriber as Subscriber$1, SubscriptionKey, WebhookLog as WebhookLog$1 } from "@seedcord/core";
3
+ import { AutocompletableNames, AutocompleteRouteBrand, CacheFor, ChoiceValueOf, ComponentDefsBrand, ComponentKindBrand, ContextMenuKindBrand, ContextMenuLeaves, ContextMenuNamesBrand, EntryFor, FocusedField, GateFitsWith, HasComponentDefs, Initializeable, MatchArms, MenuCacheFor, NamesFor, PageCursor, SingleParams, SlashOptions as SlashOptions$1, SlashRouteBrand } from "@seedcord/core/internal";
4
+ import { ArraySourceBase, AutocompleteOptions, BaseHandler as BaseHandler$1, BaseReplySender, Bus, CoreBase, CursorSourceBase, DispatchContext, Gate, GateContextBase, GateNoticeOptions, GuildPermissionsContext, InteractionKind, ModalLike, Notice, PageSourceBase, PaginatorBase, PaginatorConfig, PermissionNoticeOverrides, PermissionScope, RepliableHandler as RepliableHandler$1, RequiredOf, ResolvedEmoji, SlashRegistry, Subscriber as Subscriber$1, SubscriptionKey, WebhookLog as WebhookLog$1 } from "@seedcord/core";
5
5
  import { Logger } from "@seedcord/logger";
6
6
  import { APIInteractionGuildMember, APIModalInteractionResponseCallbackData, AnySelectMenuInteraction, ApplicationCommandOptionChoiceData, ApplicationCommandType, ApplicationEmoji, AutocompleteInteraction, BaseMessageOptions, BooleanCache, ButtonInteraction, ButtonStyle, CacheType, CacheTypeReducer, ChannelSelectMenuInteraction, ChatInputCommandInteraction, Client, ClientEvents, ClientOptions, CommandInteractionOption, ContextMenuCommandInteraction, Events, Guild, GuildEmoji, GuildMember, Interaction, MentionableSelectMenuInteraction, Message, MessageContextMenuCommandInteraction, ModalSubmitFields, ModalSubmitInteraction, Role, RoleSelectMenuInteraction, StringSelectMenuInteraction, TextChannel, User, UserContextMenuCommandInteraction, UserSelectMenuInteraction } from "discord.js";
7
7
  import { Plugin as Plugin$1, PluginLifecycleSpec, PluginOptions, PluginOptions as PluginOptions$1 } from "@seedcord/core/plugin";
8
8
  import { CoordinatedShutdown, CoordinatedStartup, Pluggable } from "@seedcord/core/node";
9
9
  import { CommandRegistry } from "@seedcord/core/node/internal";
10
10
  import { HostAugmentTarget, HostVersion, SeedcordBrand, SeedcordInstance } from "@seedcord/types/internal";
11
+ import { AnyCustomId } from "@seedcord/custom-id";
11
12
  import { BotConfig, Config, DeferOpts, EmojiMap, EventFrequency, HealthCheckOption, HmrAware, HmrUpdateEvent, IRateLimiter, ReplyResponse, SendOpts, TypedOmit } from "@seedcord/types";
12
13
  import { REST } from "@discordjs/rest";
13
14
  export * from "@seedcord/errors";
@@ -126,17 +127,7 @@ declare class InteractionDispatcher implements Initializeable, HmrAware {
126
127
  protected core: Core;
127
128
  private readonly logger;
128
129
  private isInitialized;
129
- private readonly slashMap;
130
- private readonly buttonMap;
131
- private readonly modalMap;
132
- private readonly stringSelectMap;
133
- private readonly userSelectMap;
134
- private readonly roleSelectMap;
135
- private readonly channelSelectMap;
136
- private readonly mentionableSelectMap;
137
- private readonly messageContextMenuMap;
138
- private readonly userContextMenuMap;
139
- private readonly autocompleteMap;
130
+ private readonly maps;
140
131
  private readonly handlerFiles;
141
132
  private readonly keysToIgnore;
142
133
  private readonly middlewares;
@@ -146,7 +137,6 @@ declare class InteractionDispatcher implements Initializeable, HmrAware {
146
137
  private readonly loadedHandlers;
147
138
  private readonly loadedMiddlewares;
148
139
  private readonly hmrHandler?;
149
- private readonly routeTypes;
150
140
  constructor(core: Core);
151
141
  warnUnhandledRoutes(commandLeaves: Iterable<string>): void;
152
142
  warnUnhandledContextMenuRoutes(leaves: ContextMenuLeaves): void;
@@ -617,8 +607,8 @@ declare class ReplySender extends BaseReplySender<SentMessage, GatewayFile> {
617
607
  * Shared base the repliable interaction handlers extend.
618
608
  *
619
609
  * Not a public entry point. Extend {@link SlashHandler}, {@link ButtonHandler}, {@link ModalHandler},
620
- * {@link SelectMenuHandler}, or {@link ContextMenuHandler} instead. This class binds the core reply base
621
- * to the gateway sender.
610
+ * {@link ContextMenuHandler}, or one of the select menu bases instead. This class binds the core
611
+ * reply base to the gateway sender.
622
612
  *
623
613
  * @typeParam Event - The repliable interaction type this handler processes
624
614
  */
@@ -633,8 +623,8 @@ declare abstract class RepliableHandler<Event extends Repliables> extends Replia
633
623
  * Shared base the typed interaction handlers extend.
634
624
  *
635
625
  * Not a public entry point. Extend {@link SlashHandler}, {@link ButtonHandler}, {@link ModalHandler},
636
- * or {@link SelectMenuHandler} instead. This class adds `showModal` on top of the reply members those bases
637
- * share.
626
+ * or one of the select menu bases instead. This class adds `showModal` on top of the reply members
627
+ * those bases share.
638
628
  *
639
629
  * @typeParam Repliable - The interaction type this handler processes
640
630
  */
@@ -744,7 +734,7 @@ interface Ungateable {
744
734
  readonly [UngateableBrand]: true;
745
735
  }
746
736
  type ProvidedContext<TCtor extends AnyHandlerCtor> = InstanceType<TCtor> extends InteractionHandler<infer Repliable> ? InteractionGateContext<Repliable> : InstanceType<TCtor> extends EventHandler<infer Names> ? EventGateContext<Names> : Ungateable;
747
- type KindName<Ctx> = Ctx extends Ungateable ? 'autocomplete' : Ctx extends InteractionGateContext<infer R> ? R extends ChatInputCommandInteraction ? 'Slash' : R extends MessageContextMenuCommandInteraction ? 'MessageMenu' : R extends UserContextMenuCommandInteraction ? 'UserMenu' : R extends StringSelectMenuInteraction ? 'StringSelect' : R extends UserSelectMenuInteraction ? 'UserSelect' : R extends RoleSelectMenuInteraction ? 'RoleSelect' : R extends ChannelSelectMenuInteraction ? 'ChannelSelect' : R extends MentionableSelectMenuInteraction ? 'MentionableSelect' : R extends ButtonInteraction ? 'Button' : R extends ModalSubmitInteraction ? 'Modal' : 'an interaction' : Ctx extends EventGateContext<infer N> ? `${N & string} event` : 'an agnostic';
737
+ type KindName<Ctx> = Ctx extends Ungateable ? 'autocomplete' : Ctx extends InteractionGateContext<infer R> ? R extends ChatInputCommandInteraction ? 'Slash' : R extends MessageContextMenuCommandInteraction ? 'MessageContextMenu' : R extends UserContextMenuCommandInteraction ? 'UserContextMenu' : R extends StringSelectMenuInteraction ? 'StringMenu' : R extends UserSelectMenuInteraction ? 'UserMenu' : R extends RoleSelectMenuInteraction ? 'RoleMenu' : R extends ChannelSelectMenuInteraction ? 'ChannelMenu' : R extends MentionableSelectMenuInteraction ? 'MentionableMenu' : R extends ButtonInteraction ? 'Button' : R extends ModalSubmitInteraction ? 'Modal' : 'an interaction' : Ctx extends EventGateContext<infer N> ? `${N & string} event` : 'an agnostic';
748
738
  type FitAll<TCtor extends AnyHandlerCtor, Gates extends readonly Gate<GateContextBase>[]> = { [Index in keyof Gates]: GateFitsWith<ProvidedContext<TCtor>, KindName<ProvidedContext<TCtor>>, Gates[Index], KindName<RequiredOf<Gates[Index]>>>; };
749
739
  //#endregion
750
740
  //#region src/bot/decorators/Gated.d.ts
@@ -1072,8 +1062,8 @@ type ComponentInteraction = ButtonInteraction | ModalSubmitInteraction | AnySele
1072
1062
  /**
1073
1063
  * Shared base the customId-routed component handlers extend.
1074
1064
  *
1075
- * Not a public entry point. Extend {@link ButtonHandler}, {@link SelectMenuHandler}, or {@link ModalHandler}
1076
- * instead. This class defines the customId decode and the route matching those bases share.
1065
+ * Not a public entry point. Extend {@link ButtonHandler}, {@link ModalHandler}, or one of the select menu
1066
+ * bases instead. This class defines the customId decode and the route matching those bases share.
1077
1067
  *
1078
1068
  * @typeParam Event - The component interaction type this handler processes
1079
1069
  * @typeParam Defs - The customId route definitions registered on the concrete handler
@@ -1150,7 +1140,7 @@ declare abstract class ComponentHandler<Event extends ComponentInteraction, Defs
1150
1140
  */
1151
1141
  declare abstract class ButtonHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends ComponentHandler<ButtonInteraction<Cache>, Defs> {
1152
1142
  /** @internal */
1153
- readonly [ComponentKindBrand]?: 'button';
1143
+ readonly [ComponentKindBrand]?: InteractionKind.Button;
1154
1144
  }
1155
1145
  //#endregion
1156
1146
  //#region src/handlers/interaction/components/ModalHandler.d.ts
@@ -1179,7 +1169,7 @@ declare abstract class ButtonHandler<Defs extends readonly AnyCustomId[], Cache
1179
1169
  */
1180
1170
  declare abstract class ModalHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends ComponentHandler<ModalSubmitInteraction<Cache>, Defs> {
1181
1171
  /** @internal */
1182
- readonly [ComponentKindBrand]?: 'modal';
1172
+ readonly [ComponentKindBrand]?: InteractionKind.Modal;
1183
1173
  /** The fields this modal submitted, read by custom id. */
1184
1174
  protected get fields(): ModalSubmitFields<Cache>;
1185
1175
  /** Rewrite the message this modal was opened from. Throws when a command opened the modal. */
@@ -1190,27 +1180,58 @@ declare abstract class ModalHandler<Defs extends readonly AnyCustomId[], Cache e
1190
1180
  }
1191
1181
  //#endregion
1192
1182
  //#region src/handlers/interaction/components/SelectMenuHandler.d.ts
1193
- type SelectKey = 'values' | 'users' | 'members' | 'roles' | 'channels';
1194
- type EventMember<Kind extends SelectMenuKind, Cache extends CacheType, Key extends SelectKey> = Key extends keyof SelectMenuInteractionFor<Kind, Cache> ? SelectMenuInteractionFor<Kind, Cache>[Key] : never;
1195
- type SelectMenuInteractionFor<SelectMenu extends SelectMenuKind, Cache extends CacheType = CacheType> = SelectMenu extends SelectMenuKind.String ? StringSelectMenuInteraction<Cache> : SelectMenu extends SelectMenuKind.User ? UserSelectMenuInteraction<Cache> : SelectMenu extends SelectMenuKind.Role ? RoleSelectMenuInteraction<Cache> : SelectMenu extends SelectMenuKind.Channel ? ChannelSelectMenuInteraction<Cache> : SelectMenu extends SelectMenuKind.Mentionable ? MentionableSelectMenuInteraction<Cache> : never;
1196
1183
  /**
1197
- * Base class for a select menu handler.
1184
+ * Shared base the select menu handlers extend.
1198
1185
  *
1199
- * Pass the select kind first and the customId definitions second, the same order as `@SelectMenuRoute`.
1200
- * Read the picked ids from `this.values`. The kind decides which of `this.users`, `this.members`,
1201
- * `this.roles`, and `this.channels` this handler carries. The rest are `never`.
1186
+ * Not a public entry point. Extend {@link StringMenuHandler}, {@link UserMenuHandler},
1187
+ * {@link RoleMenuHandler}, {@link ChannelMenuHandler}, or {@link MentionableMenuHandler} instead. This
1188
+ * class defines the `values` getter those bases share.
1202
1189
  *
1203
- * Read `this.params` for a single route or `this.match` for several. Reply through the handler members, or
1204
- * rewrite the source message with `this.update`.
1190
+ * @typeParam Event - The select menu interaction type this handler processes
1191
+ * @typeParam Defs - The customId route definitions registered on the concrete handler
1192
+ */
1193
+ declare abstract class SelectMenuHandler<Event extends AnySelectMenuInteraction, Defs extends readonly AnyCustomId[]> extends ComponentHandler<Event, Defs> {
1194
+ /** The values this select picked. On every kind but the string menu they are snowflake ids. */
1195
+ protected get values(): string[];
1196
+ }
1197
+ /**
1198
+ * Base class for a string select menu handler.
1199
+ *
1200
+ * Register the customId definitions with `@StringMenuRoute`, list the same ones in the generic, then read
1201
+ * the chosen option values from `this.values`. Read `this.params` for a single route or `this.match` for
1202
+ * several. Reply through the handler members, or rewrite the source message with `this.update`.
1203
+ *
1204
+ * @typeParam Defs - The customId definitions this handler decodes, e.g. `[typeof TopicsId]`.
1205
+ * @typeParam Cache - The interaction cache state, `'cached'` by default.
1206
+ *
1207
+ * @example
1208
+ * ```ts
1209
+ * \@StringMenuRoute(TopicsId)
1210
+ * class Topics extends StringMenuHandler<[typeof TopicsId]> {
1211
+ * async execute() {
1212
+ * const { userId } = this.params;
1213
+ * await this.update(`<@${userId}> now follows ${this.values.join(', ')}`);
1214
+ * }
1215
+ * }
1216
+ * ```
1217
+ */
1218
+ declare abstract class StringMenuHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends SelectMenuHandler<StringSelectMenuInteraction<Cache>, Defs> {
1219
+ /** @internal */
1220
+ readonly [ComponentKindBrand]?: InteractionKind.StringMenu;
1221
+ }
1222
+ /**
1223
+ * Base class for a user select menu handler.
1224
+ *
1225
+ * Beside `this.values` this handler declares `this.users` and `this.members`. Register the customId
1226
+ * definitions with `@UserMenuRoute` and list the same ones in the generic.
1205
1227
  *
1206
- * @typeParam Kind - The select kind from {@link SelectMenuKind}, e.g. `SelectMenuKind.User`.
1207
1228
  * @typeParam Defs - The customId definitions this handler decodes, e.g. `[typeof AssignId]`.
1208
1229
  * @typeParam Cache - The interaction cache state, `'cached'` by default.
1209
1230
  *
1210
1231
  * @example
1211
1232
  * ```ts
1212
- * \@SelectMenuRoute(SelectMenuKind.User, AssignId)
1213
- * class AssignSelect extends SelectMenuHandler<SelectMenuKind.User, [typeof AssignId]> {
1233
+ * \@UserMenuRoute(AssignId)
1234
+ * class Assign extends UserMenuHandler<[typeof AssignId]> {
1214
1235
  * async execute() {
1215
1236
  * const { roleId } = this.params;
1216
1237
  * await this.reply(`assigning ${this.users.size} member(s) to <@&${roleId}>`);
@@ -1218,20 +1239,92 @@ type SelectMenuInteractionFor<SelectMenu extends SelectMenuKind, Cache extends C
1218
1239
  * }
1219
1240
  * ```
1220
1241
  */
1221
- declare abstract class SelectMenuHandler<Kind extends SelectMenuKind, Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends ComponentHandler<SelectMenuInteractionFor<Kind, Cache>, Defs> {
1242
+ declare abstract class UserMenuHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends SelectMenuHandler<UserSelectMenuInteraction<Cache>, Defs> {
1222
1243
  /** @internal */
1223
- readonly [ComponentKindBrand]?: Kind;
1224
- private eventMember;
1225
- /** The ids this select picked. */
1226
- protected get values(): string[];
1244
+ readonly [ComponentKindBrand]?: InteractionKind.UserMenu;
1227
1245
  /** The users this select picked. */
1228
- protected get users(): EventMember<Kind, Cache, 'users'>;
1246
+ protected get users(): UserSelectMenuInteraction<Cache>['users'];
1229
1247
  /** The guild members behind the picked users. Discord resolves these only inside a guild. */
1230
- protected get members(): EventMember<Kind, Cache, 'members'>;
1248
+ protected get members(): UserSelectMenuInteraction<Cache>['members'];
1249
+ }
1250
+ /**
1251
+ * Base class for a role select menu handler.
1252
+ *
1253
+ * Beside `this.values` this handler declares `this.roles`. Register the customId definitions with
1254
+ * `@RoleMenuRoute` and list the same ones in the generic.
1255
+ *
1256
+ * @typeParam Defs - The customId definitions this handler decodes, e.g. `[typeof GrantId]`.
1257
+ * @typeParam Cache - The interaction cache state, `'cached'` by default.
1258
+ *
1259
+ * @example
1260
+ * ```ts
1261
+ * \@RoleMenuRoute(GrantId)
1262
+ * class Grant extends RoleMenuHandler<[typeof GrantId]> {
1263
+ * async execute() {
1264
+ * await this.update(`granting ${this.roles.size} role(s)`);
1265
+ * }
1266
+ * }
1267
+ * ```
1268
+ */
1269
+ declare abstract class RoleMenuHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends SelectMenuHandler<RoleSelectMenuInteraction<Cache>, Defs> {
1270
+ /** @internal */
1271
+ readonly [ComponentKindBrand]?: InteractionKind.RoleMenu;
1231
1272
  /** The roles this select picked. */
1232
- protected get roles(): EventMember<Kind, Cache, 'roles'>;
1273
+ protected get roles(): RoleSelectMenuInteraction<Cache>['roles'];
1274
+ }
1275
+ /**
1276
+ * Base class for a channel select menu handler.
1277
+ *
1278
+ * Beside `this.values` this handler declares `this.channels`. Register the customId definitions with
1279
+ * `@ChannelMenuRoute` and list the same ones in the generic.
1280
+ *
1281
+ * @typeParam Defs - The customId definitions this handler decodes, e.g. `[typeof LogTargetId]`.
1282
+ * @typeParam Cache - The interaction cache state, `'cached'` by default.
1283
+ *
1284
+ * @example
1285
+ * ```ts
1286
+ * \@ChannelMenuRoute(LogTargetId)
1287
+ * class LogTarget extends ChannelMenuHandler<[typeof LogTargetId]> {
1288
+ * async execute() {
1289
+ * await this.update(`logging to ${this.channels.size} channel(s)`);
1290
+ * }
1291
+ * }
1292
+ * ```
1293
+ */
1294
+ declare abstract class ChannelMenuHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends SelectMenuHandler<ChannelSelectMenuInteraction<Cache>, Defs> {
1295
+ /** @internal */
1296
+ readonly [ComponentKindBrand]?: InteractionKind.ChannelMenu;
1233
1297
  /** The channels this select picked. */
1234
- protected get channels(): EventMember<Kind, Cache, 'channels'>;
1298
+ protected get channels(): ChannelSelectMenuInteraction<Cache>['channels'];
1299
+ }
1300
+ /**
1301
+ * Base class for a mentionable select menu handler.
1302
+ *
1303
+ * A mentionable menu accepts users and roles together. `this.users`, `this.members`, and `this.roles`
1304
+ * can each come back empty.
1305
+ *
1306
+ * @typeParam Defs - The customId definitions this handler decodes, e.g. `[typeof InviteId]`.
1307
+ * @typeParam Cache - The interaction cache state, `'cached'` by default.
1308
+ *
1309
+ * @example
1310
+ * ```ts
1311
+ * \@MentionableMenuRoute(InviteId)
1312
+ * class Invite extends MentionableMenuHandler<[typeof InviteId]> {
1313
+ * async execute() {
1314
+ * await this.update(`inviting ${this.users.size} user(s) and ${this.roles.size} role(s)`);
1315
+ * }
1316
+ * }
1317
+ * ```
1318
+ */
1319
+ declare abstract class MentionableMenuHandler<Defs extends readonly AnyCustomId[], Cache extends CacheType = 'cached'> extends SelectMenuHandler<MentionableSelectMenuInteraction<Cache>, Defs> {
1320
+ /** @internal */
1321
+ readonly [ComponentKindBrand]?: InteractionKind.MentionableMenu;
1322
+ /** The users this select picked. */
1323
+ protected get users(): MentionableSelectMenuInteraction<Cache>['users'];
1324
+ /** The guild members behind the picked users. Discord resolves these only inside a guild. */
1325
+ protected get members(): MentionableSelectMenuInteraction<Cache>['members'];
1326
+ /** The roles this select picked. */
1327
+ protected get roles(): MentionableSelectMenuInteraction<Cache>['roles'];
1235
1328
  }
1236
1329
  //#endregion
1237
1330
  //#region src/bot/decorators/Middlewares.d.ts
@@ -1763,5 +1856,5 @@ declare class Seedcord extends Pluggable<'gateway', 'server'> implements Core, S
1763
1856
  /** Package version */
1764
1857
  declare const version: string;
1765
1858
  //#endregion
1766
- export { ArraySource, AssignRoleNoticeOverrides, AutocompleteHandler, BaseHandler, ButtonHandler, type CheckPermissionOptions, ComponentHandler, type ConfirmOptions, type Core, CursorSource, type DefaultConfirmOptions, Emojis, type EventGateContext, EventHandler, EventMiddleware, type EventSpec, type EventsConfig, type GateContext, Gated, type GatewayBotConfig, type GatewayConfig, GatewayEmoji, type GatewayFile, type GatewayPluginOptions, type GatewayReplyResponse, HasPermsToAssignOptions, IgnoreBots, type InjectedEmojiMap, type InteractionGateContext, InteractionHandler, InteractionMiddleware, MessageContextMenuHandler, Middleware, type MiddlewareOptions, MiddlewareType, ModalHandler, Nsfw, type PageContext, type PageSource, Paginator, Plugin, type PluginLifecycleSpec, type PluginOptions, RegisterEvent, type RegisterEventOptions, RepliableHandler, type Repliables, ReplySender, Seedcord, SelectMenuHandler, type SentMessage, SlashHandler, type SlashOptions, Subscriber, UserContextMenuHandler, type ValidEventTypes, type ValidInteractionTypes, type ValidNonInteractionKeys, WebhookLog, WinstonConsoleSink, WinstonFileSink, checkBotPermissions, checkPermissions, getConfirmation, hasPermsToAssign, version };
1859
+ export { ArraySource, AssignRoleNoticeOverrides, AutocompleteHandler, BaseHandler, ButtonHandler, ChannelMenuHandler, type CheckPermissionOptions, ComponentHandler, type ConfirmOptions, type Core, CursorSource, type DefaultConfirmOptions, Emojis, type EventGateContext, EventHandler, EventMiddleware, type EventSpec, type EventsConfig, type GateContext, Gated, type GatewayBotConfig, type GatewayConfig, GatewayEmoji, type GatewayFile, type GatewayPluginOptions, type GatewayReplyResponse, HasPermsToAssignOptions, IgnoreBots, type InjectedEmojiMap, type InteractionGateContext, InteractionHandler, InteractionMiddleware, MentionableMenuHandler, MessageContextMenuHandler, Middleware, type MiddlewareOptions, MiddlewareType, ModalHandler, Nsfw, type PageContext, type PageSource, Paginator, Plugin, type PluginLifecycleSpec, type PluginOptions, RegisterEvent, type RegisterEventOptions, RepliableHandler, type Repliables, ReplySender, RoleMenuHandler, Seedcord, SelectMenuHandler, type SentMessage, SlashHandler, type SlashOptions, StringMenuHandler, Subscriber, UserContextMenuHandler, UserMenuHandler, type ValidEventTypes, type ValidInteractionTypes, type ValidNonInteractionKeys, WebhookLog, WinstonConsoleSink, WinstonFileSink, checkBotPermissions, checkPermissions, getConfirmation, hasPermsToAssign, version };
1767
1860
  //# sourceMappingURL=index.d.mts.map