import type { AutocompleteInteraction, ChatInputCommandInteraction, ContextMenuCommandBuilder, MessageContextMenuCommandInteraction, SlashCommandBuilder, SlashCommandOptionsOnlyBuilder, UserContextMenuCommandInteraction, } from "discord.js"; export type CommandBuilder = | SlashCommandBuilder | SlashCommandOptionsOnlyBuilder | ContextMenuCommandBuilder; type InferInteraction = B extends | SlashCommandBuilder | SlashCommandOptionsOnlyBuilder ? ChatInputCommandInteraction : B extends ContextMenuCommandBuilder ? MessageContextMenuCommandInteraction | UserContextMenuCommandInteraction : never; export interface Command { data: B; execute(interaction: InferInteraction): Promise; autocomplete?(interaction: AutocompleteInteraction): Promise; category?: string; maxConcurrency?: number; isOwnerOnly?: boolean; }