import { ApplicationCommandData, CommandInteraction, Interaction } from "discord.js"; interface ApiTypeMap { STRING: 3; INTEGER: 4; BOOLEAN: 5; USER: 6; CHANNEL: 7; ROLE: 8; } interface Choice { name: string; value: string | number; } declare type Options = { [K in keyof E]: { description: string; required?: boolean; type: keyof ApiTypeMap; choices?: Choice[]; }; }; interface SlashCommandRequirements { commandOptions: Options; response: (response: T, interaction: CommandInteraction) => void; } export default abstract class SlashCommand { /** * The guilds where this command can execute (empty array means all guilds) */ private _domains; private options; private response; constructor({ commandOptions, response }: SlashCommandRequirements); readonly argNames: () => [name: keyof T, type: keyof ApiTypeMap][]; readonly executeWithArgs: (args: T, interaction: CommandInteraction) => void; readonly registrationData: () => ApplicationCommandData; readonly onMessage: (interaction: Interaction) => Promise; setName(name: string): void; setDescription(description: string): void; domainSubtraction(...domains: string[]): void; domainUnion(...domains: string[]): void; domainIterable(): Iterable; isGlobal(): boolean; verify(): void; } export {}; //# sourceMappingURL=SlashCommand.d.ts.map