vimcord 1.0.35 → 1.0.36

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.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as discord_js from 'discord.js';
2
- import { SlashCommandBuilder as SlashCommandBuilder$1, SlashCommandOptionsOnlyBuilder, SlashCommandSubcommandBuilder, SlashCommandSubcommandsOnlyBuilder, SlashCommandSubcommandGroupBuilder, PermissionResolvable, ActivityType, ContextMenuCommandBuilder, ChatInputCommandInteraction, ClientEvents, CommandInteraction, RepliableInteraction, TextBasedChannel, Message, GuildMember, User, EmbedBuilder, DMChannel, TextChannel, NewsChannel, ThreadChannel, ColorResolvable, ButtonComponentData, APIThumbnailComponent, ActionRowBuilder, MessageActionRowComponentBuilder, ContainerBuilder, BaseMessageOptions, StickerResolvable, PollData, InteractionReplyOptions, MessageMentionOptions, ReplyOptions, ForwardOptions, Client, APIEmbedField, APIEmbed, ClientOptions, Guild, ContextMenuCommandInteraction, MessageComponentType, UserResolvable as UserResolvable$1, MappedInteractionTypes, InteractionCollector, APITextInputComponent, APIStringSelectComponent, APIChannelSelectComponent, APIUserSelectComponent, APIRoleSelectComponent, APIMentionableSelectComponent, APIFileUploadComponent, AwaitModalSubmitOptions, ModalSubmitInteraction, InteractionDeferUpdateOptions, InteractionResponse, APIModalInteractionResponseCallbackData, ModalBuilder, Interaction, AttachmentBuilder, SelectMenuComponentOptionData, StringSelectMenuOptionBuilder, StringSelectMenuInteraction, ButtonInteraction, MessageReaction, StringSelectMenuBuilder, ButtonBuilder, ReactionCollector, APIButtonComponent, ChannelType, PartialGroupDMChannel, PartialDMChannel, GuildBasedChannel, AnyThreadChannel, VoiceBasedChannel, CategoryChannel, Channel, Role, GuildTextBasedChannel } from 'discord.js';
2
+ import { SlashCommandBuilder as SlashCommandBuilder$1, SlashCommandOptionsOnlyBuilder, SlashCommandSubcommandBuilder, SlashCommandSubcommandsOnlyBuilder, SlashCommandSubcommandGroupBuilder, PermissionResolvable, ActivityType, ContextMenuCommandBuilder, ChatInputCommandInteraction, ClientEvents, CommandInteraction, RepliableInteraction, TextBasedChannel, Message, GuildMember, User, EmbedBuilder, DMChannel, TextChannel, NewsChannel, ThreadChannel, ColorResolvable, ButtonComponentData, APIThumbnailComponent, ActionRowBuilder, MessageActionRowComponentBuilder, ContainerBuilder, BaseMessageOptions, StickerResolvable, PollData, InteractionReplyOptions, MessageMentionOptions, ReplyOptions, ForwardOptions, Client, APIEmbedField, APIEmbed, ClientOptions, Guild, ContextMenuCommandInteraction, MessageComponentType, UserResolvable as UserResolvable$1, MappedInteractionTypes, InteractionCollector, APITextInputComponent, APIStringSelectComponent, APIChannelSelectComponent, APIUserSelectComponent, APIRoleSelectComponent, APIMentionableSelectComponent, APIFileUploadComponent, AwaitModalSubmitOptions, ModalSubmitInteraction, InteractionDeferUpdateOptions, InteractionResponse, MessagePayload, APIModalInteractionResponseCallbackData, ModalBuilder, Interaction, AttachmentBuilder, SelectMenuComponentOptionData, StringSelectMenuOptionBuilder, StringSelectMenuInteraction, ButtonInteraction, MessageReaction, StringSelectMenuBuilder, ButtonBuilder, ReactionCollector, APIButtonComponent, ChannelType, PartialGroupDMChannel, PartialDMChannel, GuildBasedChannel, AnyThreadChannel, VoiceBasedChannel, CategoryChannel, Channel, Role, GuildTextBasedChannel } from 'discord.js';
3
3
  import { DotenvConfigOptions } from 'dotenv';
4
4
  import * as mongoose from 'mongoose';
5
- import mongoose__default, { ClientSessionOptions, Connection, Schema, Model, SchemaDefinition, mongo, ClientSession, Require_id, RootFilterQuery, MongooseBaseQueryOptions, CreateOptions, QueryOptions, ProjectionType, HydratedDocument, UpdateQuery, MongooseUpdateQueryOptions, PipelineStage, AggregateOptions } from 'mongoose';
5
+ import mongoose__default, { ClientSessionOptions, Connection, Schema, Model, SchemaDefinition, mongo, ClientSession, Require_id, RootFilterQuery, MongooseBaseQueryOptions, CreateOptions, Document, QueryOptions, ProjectionType, HydratedDocument, UpdateQuery, MongooseUpdateQueryOptions, PipelineStage, AggregateOptions, AnyBulkWriteOperation, MongooseBulkWriteOptions } from 'mongoose';
6
6
  import { PartialDeep } from 'type-fest';
7
7
  import EventEmitter from 'node:events';
8
8
  import { Loop } from 'qznt';
@@ -118,7 +118,7 @@ declare class MongoDatabase {
118
118
 
119
119
  type DatabaseManager = MongoDatabase;
120
120
 
121
- interface VimcordAppConfig {
121
+ interface AppConfig {
122
122
  devMode: boolean;
123
123
  name: string;
124
124
  appVersion: string;
@@ -140,9 +140,9 @@ interface VimcordAppConfig {
140
140
  event: "event";
141
141
  };
142
142
  }
143
- declare function createVimcordAppConfig(options?: PartialDeep<VimcordAppConfig>): VimcordAppConfig;
143
+ declare function createAppConfig(options?: PartialDeep<AppConfig>): AppConfig;
144
144
 
145
- interface VimcordStaffConfig {
145
+ interface StaffConfig {
146
146
  ownerId: string | null;
147
147
  superUsers: string[];
148
148
  superUserRoles: string[];
@@ -162,13 +162,13 @@ interface VimcordStaffConfig {
162
162
  channels: Record<string, string>;
163
163
  };
164
164
  }
165
- declare function createVimcordStaffConfig(options?: PartialDeep<VimcordStaffConfig>): VimcordStaffConfig;
165
+ declare function createStaffConfig(options?: PartialDeep<StaffConfig>): StaffConfig;
166
166
 
167
- interface VimcordSlashCommandConfig extends BaseCommandConfig<CommandType.Slash> {
167
+ interface SlashCommandConfig extends BaseCommandConfig<CommandType.Slash> {
168
168
  }
169
- declare function createVimcordSlashCommandConfig(options?: PartialDeep<VimcordSlashCommandConfig>): VimcordSlashCommandConfig;
169
+ declare function createSlashCommandConfig(options?: PartialDeep<SlashCommandConfig>): SlashCommandConfig;
170
170
 
171
- interface VimcordPrefixCommandConfig extends BaseCommandConfig<CommandType.Prefix> {
171
+ interface PrefixCommandConfig extends BaseCommandConfig<CommandType.Prefix> {
172
172
  /** @defaultValue ! */
173
173
  defaultPrefix: string;
174
174
  /** @defaultValue true */
@@ -181,11 +181,11 @@ interface VimcordPrefixCommandConfig extends BaseCommandConfig<CommandType.Prefi
181
181
  */
182
182
  guildPrefixResolver?: (client: Vimcord, guildId: string) => Promise<string | null | undefined> | string | null | undefined;
183
183
  }
184
- declare function createVimcordPrefixCommandConfig(options?: PartialDeep<VimcordPrefixCommandConfig>): VimcordPrefixCommandConfig;
184
+ declare function createPrefixCommandConfig(options?: PartialDeep<PrefixCommandConfig>): PrefixCommandConfig;
185
185
 
186
- interface VimcordContextCommandConfig extends BaseCommandConfig<CommandType.Context> {
186
+ interface ContextCommandConfig extends BaseCommandConfig<CommandType.Context> {
187
187
  }
188
- declare function createVimcordContextCommandConfig(options?: PartialDeep<VimcordContextCommandConfig>): VimcordContextCommandConfig;
188
+ declare function createContextCommandConfig(options?: PartialDeep<ContextCommandConfig>): ContextCommandConfig;
189
189
 
190
190
  interface LoggerOptions {
191
191
  colors?: Partial<typeof LOGGER_COLORS>;
@@ -307,28 +307,28 @@ declare class StatusManager {
307
307
  clear(): Promise<this>;
308
308
  }
309
309
 
310
- interface ContextCommandConfig extends BaseCommandConfig<CommandType.Context>, BaseAppCommandConfig {
310
+ interface _ContextCommandConfig extends BaseCommandConfig<CommandType.Context>, BaseAppCommandConfig {
311
311
  builder: ContextMenuCommandBuilder | ((builder: ContextMenuCommandBuilder) => ContextMenuCommandBuilder);
312
312
  deferReply?: boolean | {
313
313
  ephemeral?: boolean;
314
314
  };
315
315
  }
316
- declare class ContextCommandBuilder extends BaseCommandBuilder<CommandType.Context, ContextCommandConfig> {
316
+ declare class ContextCommandBuilder extends BaseCommandBuilder<CommandType.Context, _ContextCommandConfig> {
317
317
  builder: ContextMenuCommandBuilder;
318
- constructor(config: ContextCommandConfig);
318
+ constructor(config: _ContextCommandConfig);
319
319
  private handleExecution;
320
320
  private validateBuilder;
321
- setBuilder(builder: ContextCommandConfig["builder"]): this;
322
- setDeferReply(defer: ContextCommandConfig["deferReply"]): this;
321
+ setBuilder(builder: _ContextCommandConfig["builder"]): this;
322
+ setDeferReply(defer: _ContextCommandConfig["deferReply"]): this;
323
323
  setDeployment(deployment: AppCommandDeployment): this;
324
- setExecute(fn: ContextCommandConfig["execute"]): this;
325
- toConfig(): ContextCommandConfig;
324
+ setExecute(fn: _ContextCommandConfig["execute"]): this;
325
+ toConfig(): _ContextCommandConfig;
326
326
  }
327
327
 
328
328
  /**
329
329
  * Configuration specific to Prefix-based commands
330
330
  */
331
- interface PrefixCommandConfig extends BaseCommandConfig<CommandType.Prefix> {
331
+ interface _PrefixCommandConfig extends BaseCommandConfig<CommandType.Prefix> {
332
332
  /** The primary name of the command */
333
333
  name: string;
334
334
  /** Alternative triggers for this command */
@@ -336,9 +336,9 @@ interface PrefixCommandConfig extends BaseCommandConfig<CommandType.Prefix> {
336
336
  /** A brief explanation of what the command does */
337
337
  description?: string;
338
338
  }
339
- declare class PrefixCommandBuilder extends BaseCommandBuilder<CommandType.Prefix, PrefixCommandConfig> {
340
- options: PrefixCommandConfig;
341
- constructor(options: PrefixCommandConfig);
339
+ declare class PrefixCommandBuilder extends BaseCommandBuilder<CommandType.Prefix, _PrefixCommandConfig> {
340
+ options: _PrefixCommandConfig;
341
+ constructor(options: _PrefixCommandConfig);
342
342
  /**
343
343
  * Specialized execution logic for Prefix Commands.
344
344
  */
@@ -364,14 +364,14 @@ declare class PrefixCommandBuilder extends BaseCommandBuilder<CommandType.Prefix
364
364
  * Override setExecute to ensure handleExecution remains the entry point.
365
365
  * This is the only base method we need to redefine.
366
366
  */
367
- setExecute(fn: PrefixCommandConfig["execute"]): this;
367
+ setExecute(fn: _PrefixCommandConfig["execute"]): this;
368
368
  /**
369
369
  * Converts the current builder state back into a config object.
370
370
  */
371
- toConfig(): PrefixCommandConfig;
371
+ toConfig(): _PrefixCommandConfig;
372
372
  }
373
373
 
374
- interface SlashCommandConfig extends BaseCommandConfig<CommandType.Slash>, BaseAppCommandConfig {
374
+ interface _SlashCommandConfig extends BaseCommandConfig<CommandType.Slash>, BaseAppCommandConfig {
375
375
  builder: AnySlashCommandBuilder | ((builder: SlashCommandBuilder$1) => AnySlashCommandBuilder);
376
376
  deferReply?: boolean | {
377
377
  ephemeral?: boolean;
@@ -382,20 +382,20 @@ interface SlashCommandConfig extends BaseCommandConfig<CommandType.Slash>, BaseA
382
382
  }>;
383
383
  onUnknownRouteHandler?: (client: Vimcord<true>, interaction: ChatInputCommandInteraction) => any;
384
384
  }
385
- declare class SlashCommandBuilder extends BaseCommandBuilder<CommandType.Slash, SlashCommandConfig> {
385
+ declare class SlashCommandBuilder extends BaseCommandBuilder<CommandType.Slash, _SlashCommandConfig> {
386
386
  builder: AnySlashCommandBuilder;
387
387
  readonly routes: Map<string, (client: Vimcord<true>, interaction: ChatInputCommandInteraction) => any>;
388
- constructor(config: SlashCommandConfig);
388
+ constructor(config: _SlashCommandConfig);
389
389
  private handleExecution;
390
390
  private validateBuilder;
391
- setBuilder(builder: SlashCommandConfig["builder"]): this;
392
- setDeferReply(defer: SlashCommandConfig["deferReply"]): this;
391
+ setBuilder(builder: _SlashCommandConfig["builder"]): this;
392
+ setDeferReply(defer: _SlashCommandConfig["deferReply"]): this;
393
393
  setDeployment(deployment: AppCommandDeployment): this;
394
- setRoutes(...routes: NonNullable<SlashCommandConfig["routes"]>): this;
395
- addRoutes(...routes: NonNullable<SlashCommandConfig["routes"]>): this;
396
- setUnknownRouteHandler(handler: SlashCommandConfig["onUnknownRouteHandler"]): this;
397
- setExecute(fn: SlashCommandConfig["execute"]): this;
398
- toConfig(): SlashCommandConfig;
394
+ setRoutes(...routes: NonNullable<_SlashCommandConfig["routes"]>): this;
395
+ addRoutes(...routes: NonNullable<_SlashCommandConfig["routes"]>): this;
396
+ setUnknownRouteHandler(handler: _SlashCommandConfig["onUnknownRouteHandler"]): this;
397
+ setExecute(fn: _SlashCommandConfig["execute"]): this;
398
+ toConfig(): _SlashCommandConfig;
399
399
  }
400
400
 
401
401
  type VimcordCommandBuilderByType<T extends CommandType> = T extends CommandType.Slash ? SlashCommandBuilder : T extends CommandType.Context ? ContextCommandBuilder : T extends CommandType.Prefix ? PrefixCommandBuilder : never;
@@ -593,7 +593,7 @@ type InteractionResolveable = CommandInteraction | RepliableInteraction;
593
593
  type UserResolvable = GuildMember | User | string;
594
594
  type SendableTextChannel = DMChannel | TextChannel | NewsChannel | ThreadChannel;
595
595
 
596
- interface VimcordToolsConfig {
596
+ interface ToolsConfig {
597
597
  devMode: boolean;
598
598
  embedColor: ColorResolvable[];
599
599
  embedColorDev: ColorResolvable[];
@@ -629,9 +629,9 @@ interface VimcordToolsConfig {
629
629
  rejectLabel: string;
630
630
  };
631
631
  }
632
- declare const globalVimcordToolsConfig: VimcordToolsConfig;
633
- declare function defineGlobalToolsConfig(options: PartialDeep<VimcordToolsConfig>): void;
634
- declare function createToolsConfig(options?: PartialDeep<VimcordToolsConfig>): VimcordToolsConfig & {
632
+ declare const globalToolsConfig: ToolsConfig;
633
+ declare function defineGlobalToolsConfig(options: PartialDeep<ToolsConfig>): void;
634
+ declare function createToolsConfig(options?: PartialDeep<ToolsConfig>): ToolsConfig & {
635
635
  devMode?: boolean | undefined;
636
636
  embedColor?: ColorResolvable[] | undefined;
637
637
  embedColorDev?: ColorResolvable[] | undefined;
@@ -703,8 +703,8 @@ declare function createToolsConfig(options?: PartialDeep<VimcordToolsConfig>): V
703
703
  };
704
704
 
705
705
  interface BetterContainerData {
706
- color?: string | string[] | null;
707
- config?: VimcordToolsConfig;
706
+ color?: ColorResolvable | ColorResolvable[] | null;
707
+ config?: PartialDeep<ToolsConfig>;
708
708
  }
709
709
  declare class BetterContainer {
710
710
  private container;
@@ -713,6 +713,8 @@ declare class BetterContainer {
713
713
  constructor(data?: BetterContainerData);
714
714
  private configure;
715
715
  build(): void;
716
+ setColor(color: ColorResolvable | ColorResolvable[]): this;
717
+ clearColor(): this;
716
718
  addSeparator(options?: {
717
719
  divider?: boolean;
718
720
  spacing?: number;
@@ -827,7 +829,7 @@ interface BetterEmbedData {
827
829
  color?: ColorResolvable | ColorResolvable[] | null;
828
830
  timestamp?: number | boolean | Date | null;
829
831
  acf?: boolean;
830
- config?: VimcordToolsConfig;
832
+ config?: PartialDeep<ToolsConfig>;
831
833
  }
832
834
  declare class BetterEmbed {
833
835
  private embed;
@@ -920,7 +922,7 @@ interface VimcordFeatures {
920
922
  * }
921
923
  * ``` */
922
924
  enableCommandErrorMessage?: boolean | CommandErrorMessageConfig;
923
- /** Update the state of {@link globalVimcordToolsConfig.devMode} whenever {@link VimcordAppConfig.devMode} is updated in the client. This is mainly useful for {@link BetterEmbed} to switch between devMode and production colors during runtime without having to update the global config manually @defaultValue `false` */
925
+ /** Update the state of {@link globalToolsConfig.devMode} whenever {@link AppConfig.devMode} is updated in the client. This is mainly useful for {@link BetterEmbed} to switch between devMode and production colors during runtime without having to update the global config manually @defaultValue `false` */
924
926
  hookToolsDevMode?: boolean;
925
927
  /** Setup and configure `dotenv` @defaultValue `false` */
926
928
  useEnv?: boolean | DotenvConfigOptions;
@@ -935,11 +937,11 @@ interface VimcordFeatures {
935
937
  };
936
938
  }
937
939
  interface VimcordConfig {
938
- app: VimcordAppConfig;
939
- staff: VimcordStaffConfig;
940
- slashCommands: VimcordSlashCommandConfig;
941
- prefixCommands: VimcordPrefixCommandConfig;
942
- contextCommands: VimcordContextCommandConfig;
940
+ app: AppConfig;
941
+ staff: StaffConfig;
942
+ slashCommands: SlashCommandConfig;
943
+ prefixCommands: PrefixCommandConfig;
944
+ contextCommands: ContextCommandConfig;
943
945
  }
944
946
  declare class Vimcord<Ready extends boolean = boolean> extends Client<Ready> {
945
947
  static instances: Map<number, Vimcord<boolean>>;
@@ -969,11 +971,11 @@ declare class Vimcord<Ready extends boolean = boolean> extends Client<Ready> {
969
971
  };
970
972
  /** Makes a clone of this client. */
971
973
  clone(): Vimcord<boolean>;
972
- configureApp(options?: PartialDeep<VimcordAppConfig>): this;
973
- configureStaff(options?: PartialDeep<VimcordStaffConfig>): this;
974
- configureSlashCommands(options?: PartialDeep<VimcordSlashCommandConfig>): this;
975
- configurePrefixCommands(options?: PartialDeep<VimcordPrefixCommandConfig>): this;
976
- configureContextCommands(options?: PartialDeep<VimcordContextCommandConfig>): this;
974
+ configureApp(options?: PartialDeep<AppConfig>): this;
975
+ configureStaff(options?: PartialDeep<StaffConfig>): this;
976
+ configureSlashCommands(options?: PartialDeep<SlashCommandConfig>): this;
977
+ configurePrefixCommands(options?: PartialDeep<PrefixCommandConfig>): this;
978
+ configureContextCommands(options?: PartialDeep<ContextCommandConfig>): this;
977
979
  importEventModules(dir: string | string[], replaceAll?: boolean): Promise<this>;
978
980
  importSlashCommandModules(dir: string | string[], replaceAll?: boolean): Promise<this>;
979
981
  importPrefixCommandModules(dir: string | string[], replaceAll?: boolean): Promise<this>;
@@ -1249,12 +1251,12 @@ declare class MongoSchemaBuilder<Definition extends object = any> {
1249
1251
  createHexId(bytes: number, path: keyof Require_id<Definition>, maxRetries?: number): Promise<string>;
1250
1252
  count(filter?: RootFilterQuery<Definition>, options?: mongo.CountOptions & MongooseBaseQueryOptions<Definition> & mongo.Abortable): Promise<number>;
1251
1253
  exists(filter: RootFilterQuery<Definition>): Promise<boolean>;
1252
- create(query: Partial<Require_id<Definition>>[], options?: CreateOptions): Promise<(mongoose.Document<unknown, {}, Definition, {}, {}> & (Require_id<Definition> extends infer T ? T extends Require_id<Definition> ? T extends {
1254
+ create(query: Partial<Require_id<Definition>>[], options?: CreateOptions): Promise<(Document<unknown, {}, Definition, {}, {}> & (Require_id<Definition> extends infer T ? T extends Require_id<Definition> ? T extends {
1253
1255
  __v?: infer U;
1254
1256
  } ? T : T & {
1255
1257
  __v: number;
1256
1258
  } : never : never))[]>;
1257
- upsert(filter: RootFilterQuery<Definition>, query: Partial<Require_id<Definition>>, options?: QueryOptions<Definition>): Promise<mongoose.Document<unknown, {}, Definition, {}, {}> & (Require_id<Definition> extends infer T ? T extends Require_id<Definition> ? T extends {
1259
+ upsert(filter: RootFilterQuery<Definition>, query: Partial<Require_id<Definition>>, options?: QueryOptions<Definition>): Promise<Document<unknown, {}, Definition, {}, {}> & (Require_id<Definition> extends infer T ? T extends Require_id<Definition> ? T extends {
1258
1260
  __v?: infer U;
1259
1261
  } ? T : T & {
1260
1262
  __v: number;
@@ -1267,6 +1269,13 @@ declare class MongoSchemaBuilder<Definition extends object = any> {
1267
1269
  update<Options extends QueryOptions<Definition>>(filter: RootFilterQuery<Definition>, update: UpdateQuery<Definition>, options?: Options): Promise<LeanOrHydratedDocument<Definition, Options> | null | undefined>;
1268
1270
  updateAll(filter: RootFilterQuery<Definition>, update: UpdateQuery<Definition>, options?: mongo.UpdateOptions & MongooseUpdateQueryOptions<Definition>): Promise<mongoose.UpdateWriteOpResult>;
1269
1271
  aggregate<T extends any>(pipeline: PipelineStage[], options?: AggregateOptions): Promise<T[]>;
1272
+ bulkWrite(ops: AnyBulkWriteOperation[], options?: MongooseBulkWriteOptions): Promise<mongo.BulkWriteResult>;
1273
+ bulkSave(docs: Document[], options?: MongooseBulkWriteOptions): Promise<mongo.BulkWriteResult & {
1274
+ mongoose?: {
1275
+ validationErrors: mongoose.Error[];
1276
+ results: Array<mongoose.Error | mongo.WriteError | null>;
1277
+ };
1278
+ }>;
1270
1279
  }
1271
1280
 
1272
1281
  interface BetterCollectorOptions<T extends MessageComponentType> {
@@ -1282,7 +1291,7 @@ interface BetterCollectorOptions<T extends MessageComponentType> {
1282
1291
  maxComponents?: number;
1283
1292
  maxUsers?: number;
1284
1293
  onTimeout?: CollectorTimeoutType;
1285
- config?: VimcordToolsConfig;
1294
+ config?: PartialDeep<ToolsConfig>;
1286
1295
  }
1287
1296
  interface ListenerOptions<ComponentType extends MessageComponentType = MessageComponentType, InGuild extends boolean = boolean> {
1288
1297
  participants?: UserResolvable$1[];
@@ -1361,7 +1370,7 @@ interface BetterModalOptions {
1361
1370
  /** Max 5 components. */
1362
1371
  components?: BetterModalComponent[];
1363
1372
  /** A custom Vimcord config. */
1364
- config?: VimcordToolsConfig;
1373
+ config?: ToolsConfig;
1365
1374
  }
1366
1375
  interface AwaitSubmitOptions extends Omit<AwaitModalSubmitOptions<ModalSubmitInteraction>, "filter" | "time"> {
1367
1376
  /** The time to wait for the modal to be submitted in milliseconds. */
@@ -1381,6 +1390,8 @@ interface ModalSubmitResult<T extends any = any> {
1381
1390
  reply: (options: RequiredDynaSendOptions) => Promise<Message | null>;
1382
1391
  /** Defers the interaction, closing the modal. */
1383
1392
  deferUpdate: (options?: InteractionDeferUpdateOptions) => Promise<InteractionResponse>;
1393
+ /** Follow up the interaction. */
1394
+ followUp: (options: string | MessagePayload | InteractionReplyOptions) => Promise<Message | null>;
1384
1395
  }
1385
1396
  declare class BetterModal {
1386
1397
  readonly id: string;
@@ -1460,7 +1471,7 @@ interface PaginatorOptions {
1460
1471
  dynamic?: boolean;
1461
1472
  timeout?: number;
1462
1473
  onTimeout?: PaginationTimeoutType;
1463
- config?: VimcordToolsConfig;
1474
+ config?: PartialDeep<ToolsConfig>;
1464
1475
  }
1465
1476
  interface PaginatorData {
1466
1477
  message: Message | null;
@@ -1489,7 +1500,7 @@ interface PaginatorData {
1489
1500
  };
1490
1501
  components: {
1491
1502
  chapterSelect: StringSelectMenuBuilder;
1492
- navigation: Record<keyof VimcordToolsConfig["paginator"]["buttons"], ButtonBuilder>;
1503
+ navigation: Record<keyof ToolsConfig["paginator"]["buttons"], ButtonBuilder>;
1493
1504
  actionRows: {
1494
1505
  chapterSelect: ActionRowBuilder<StringSelectMenuBuilder>;
1495
1506
  navigation: ActionRowBuilder<ButtonBuilder>;
@@ -1571,7 +1582,7 @@ interface PromptOptions {
1571
1582
  /** @defaultValue [PromptResolveType.DeleteOnConfirm, PromptResolveType.DeleteOnReject] */
1572
1583
  onResolve?: PromptResolveType[];
1573
1584
  timeout?: number;
1574
- config?: VimcordToolsConfig;
1585
+ config?: PartialDeep<ToolsConfig>;
1575
1586
  }
1576
1587
  interface PromptResult {
1577
1588
  message: Message | null;
@@ -1596,7 +1607,7 @@ declare class Prompt {
1596
1607
  }>;
1597
1608
  readonly onResolve: PromptResolveType[];
1598
1609
  readonly timeout: number;
1599
- readonly config: VimcordToolsConfig;
1610
+ readonly config: ToolsConfig;
1600
1611
  private message;
1601
1612
  constructor(options?: PromptOptions);
1602
1613
  private createDefaultForm;
@@ -1717,4 +1728,4 @@ declare function sendCommandErrorEmbed(client: Vimcord, error: Error, guild: Gui
1717
1728
 
1718
1729
  declare function validateCommandPermissions(permissions: CommandPermissions, client: Vimcord<true>, user: GuildMember | User, command: CommandInteraction | string): CommandPermissionResults;
1719
1730
 
1720
- export { type AnySlashCommandBuilder, type AppCommandDeployment, type AwaitSubmitOptions, BUILTIN_ContextCommandHandler, BUILTIN_PrefixCommandHandler, BUILTIN_SlashCommandHandler, type BaseAppCommandConfig, BaseCommandBuilder, type BaseCommandConfig, BaseCommandManager, type BaseCommandParameters, type BetterChannelSelectComponent, BetterCollector, type BetterCollectorOptions, BetterContainer, type BetterContainerData, BetterEmbed, type BetterEmbedAuthor, type BetterEmbedContext, type BetterEmbedData, type BetterEmbedFooter, type BetterEmbedTitle, type BetterFileUploadSelectComponent, type BetterMentionableSelectComponent, BetterModal, type BetterModalComponent, type BetterModalOptions, type BetterRoleSelectComponent, type BetterStringSelectComponent, type BetterTextInputComponent, type BetterUserSelectComponent, type ButtonHandler, CLI, type Chapter, type ChapterData, type ClientActivity, type ClientStatus, CollectorTimeoutType, type CommandByCategory, type CommandErrorMessageConfig, type CommandFilter, type CommandInternalRateLimitData, CommandManager, type CommandMetadata, type CommandPermissionResults, type CommandPermissions, type CommandRateLimitOptions, CommandType, ContextCommandBuilder, type ContextCommandConfig, ContextCommandManager, type CustomButton, type DatabaseManager, DynaSend, type DynaSendOptions, type EmbedResolvable, EventBuilder, type EventConfig, type EventDeployment, EventManager, type EventMetadata, type EventParameters, type EventRateLimitOptions, type ExtractReturn, type FetchedChannel, type FetchedMessageMention, type GetMessageMentionOptions, type InteractionBasedSendHandler, type InteractionResolveable, LOGGER_COLORS, type LeanOrHydratedDocument, type ListenerOptions, LogLevel, Logger, type LoggerOptions, type MentionType, MissingPermissionReason, type ModalSubmitResult, MongoDatabase, type MongoPlugin, MongoSchemaBuilder, type MongoSchemaOptions, type PageIndex, type PageResolvable, type PaginationEvent, PaginationTimeoutType, PaginationType, Paginator, type PaginatorData, type PaginatorOptions, PrefixCommandBuilder, type PrefixCommandConfig, PrefixCommandManager, Prompt, type PromptOptions, PromptResolveType, type PromptResult, RateLimitScope, type RequiredDynaSendOptions, type SendHandler, SendMethod, type SendableComponent, type SendableTextChannel, type SinglePageResolvable, SlashCommandBuilder, type SlashCommandConfig, SlashCommandManager, StatusManager, StatusType, type UserResolvable, Vimcord, type VimcordAppConfig, VimcordCLI, type VimcordCLIOptions, type VimcordClientStatus, type VimcordCommandBuilderByType, type VimcordConfig, type VimcordConfigOptions, type VimcordContextCommandConfig, type VimcordFeatures, type VimcordPrefixCommandConfig, type VimcordSlashCommandConfig, type VimcordStaffConfig, type VimcordToolsConfig, __zero, cleanMention, createClient, createMongoPlugin, createMongoSchema, createToolsConfig, createVimcordAppConfig, createVimcordContextCommandConfig, createVimcordPrefixCommandConfig, createVimcordSlashCommandConfig, createVimcordStaffConfig, createVimcordStatusConfig, defineGlobalToolsConfig, dynaSend, fetchChannel, fetchGuild, fetchMember, fetchMessage, fetchRole, fetchUser, getCallerFileName, getFirstMentionId, getMessageMention, getProcessDir, globalVimcordToolsConfig, importModulesFromDir, initCLI, isMentionOrSnowflake, logger, prompt, sendCommandErrorEmbed, useClient, useReadyClient, validateCommandPermissions };
1731
+ export { type AnySlashCommandBuilder, type AppCommandDeployment, type AppConfig, type AwaitSubmitOptions, BUILTIN_ContextCommandHandler, BUILTIN_PrefixCommandHandler, BUILTIN_SlashCommandHandler, type BaseAppCommandConfig, BaseCommandBuilder, type BaseCommandConfig, BaseCommandManager, type BaseCommandParameters, type BetterChannelSelectComponent, BetterCollector, type BetterCollectorOptions, BetterContainer, type BetterContainerData, BetterEmbed, type BetterEmbedAuthor, type BetterEmbedContext, type BetterEmbedData, type BetterEmbedFooter, type BetterEmbedTitle, type BetterFileUploadSelectComponent, type BetterMentionableSelectComponent, BetterModal, type BetterModalComponent, type BetterModalOptions, type BetterRoleSelectComponent, type BetterStringSelectComponent, type BetterTextInputComponent, type BetterUserSelectComponent, type ButtonHandler, CLI, type Chapter, type ChapterData, type ClientActivity, type ClientStatus, CollectorTimeoutType, type CommandByCategory, type CommandErrorMessageConfig, type CommandFilter, type CommandInternalRateLimitData, CommandManager, type CommandMetadata, type CommandPermissionResults, type CommandPermissions, type CommandRateLimitOptions, CommandType, ContextCommandBuilder, type ContextCommandConfig, ContextCommandManager, type CustomButton, type DatabaseManager, DynaSend, type DynaSendOptions, type EmbedResolvable, EventBuilder, type EventConfig, type EventDeployment, EventManager, type EventMetadata, type EventParameters, type EventRateLimitOptions, type ExtractReturn, type FetchedChannel, type FetchedMessageMention, type GetMessageMentionOptions, type InteractionBasedSendHandler, type InteractionResolveable, LOGGER_COLORS, type LeanOrHydratedDocument, type ListenerOptions, LogLevel, Logger, type LoggerOptions, type MentionType, MissingPermissionReason, type ModalSubmitResult, MongoDatabase, type MongoPlugin, MongoSchemaBuilder, type MongoSchemaOptions, type PageIndex, type PageResolvable, type PaginationEvent, PaginationTimeoutType, PaginationType, Paginator, type PaginatorData, type PaginatorOptions, PrefixCommandBuilder, type PrefixCommandConfig, PrefixCommandManager, Prompt, type PromptOptions, PromptResolveType, type PromptResult, RateLimitScope, type RequiredDynaSendOptions, type SendHandler, SendMethod, type SendableComponent, type SendableTextChannel, type SinglePageResolvable, SlashCommandBuilder, type SlashCommandConfig, SlashCommandManager, type StaffConfig, StatusManager, StatusType, type ToolsConfig, type UserResolvable, Vimcord, VimcordCLI, type VimcordCLIOptions, type VimcordClientStatus, type VimcordCommandBuilderByType, type VimcordConfig, type VimcordConfigOptions, type VimcordFeatures, __zero, cleanMention, createAppConfig, createClient, createContextCommandConfig, createMongoPlugin, createMongoSchema, createPrefixCommandConfig, createSlashCommandConfig, createStaffConfig, createToolsConfig, createVimcordStatusConfig, defineGlobalToolsConfig, dynaSend, fetchChannel, fetchGuild, fetchMember, fetchMessage, fetchRole, fetchUser, getCallerFileName, getFirstMentionId, getMessageMention, getProcessDir, globalToolsConfig, importModulesFromDir, initCLI, isMentionOrSnowflake, logger, prompt, sendCommandErrorEmbed, useClient, useReadyClient, validateCommandPermissions };