UNPKG

@globalart/nestcord

Version:

A module for creating Discord bots using NestJS, based on Discord.js

116 lines (115 loc) 4.63 kB
import { ApplicationCommand, ApplicationCommandOptionType, ApplicationCommandSubCommandData, ApplicationCommandSubGroupData, ApplicationCommandType, AutocompleteInteraction, ChatInputApplicationCommandData, ChatInputCommandInteraction, Collection, CommandInteractionOptionResolver, Snowflake } from 'discord.js'; import { APIApplicationCommandOptionBase } from 'discord-api-types/payloads/v10/_interactions/_applicationCommands/_chatInput/base'; import { BaseCommandMeta, CommandDiscovery } from '../command.discovery'; interface BaseSlashCommandMeta { category?: string; guilds?: Snowflake[]; discordResponse?: ApplicationCommand; } export interface ChatInputSlashCommandMeta extends BaseSlashCommandMeta, ChatInputApplicationCommandData { type: ApplicationCommandType.ChatInput; } export interface SubcommandSlashCommandMeta extends BaseSlashCommandMeta, ApplicationCommandSubCommandData { type: ApplicationCommandOptionType.Subcommand; } export interface SubcommandGroupSlashCommandMeta extends BaseCommandMeta, ApplicationCommandSubGroupData { type: ApplicationCommandOptionType.SubcommandGroup; } export type SlashCommandMeta = ChatInputSlashCommandMeta | SubcommandSlashCommandMeta | SubcommandGroupSlashCommandMeta; export interface OptionMeta extends APIApplicationCommandOptionBase<ApplicationCommandOptionType> { resolver?: keyof CommandInteractionOptionResolver; } /** * Represents a slash command discovery. */ export declare class SlashCommandDiscovery extends CommandDiscovery<SlashCommandMeta> { readonly subcommands: Collection<string, SlashCommandDiscovery>; /** * Returns the command description. */ getDescription(): string; /** * Sets the command description. * @param command The command discovery. */ setSubcommand(command: SlashCommandDiscovery): void; /** * Ensures a subcommand exists. * @param command */ ensureSubcommand(command: SlashCommandDiscovery): SlashCommandDiscovery; /** * Returns the subcommand. * @param name */ getSubcommand(name: string): SlashCommandDiscovery; /** * Returns the subcommands. */ getSubcommands(): Collection<string, SlashCommandDiscovery>; /** * Returns raw options from metadata. */ getRawOptions(): Record<string, OptionMeta>; /** * Returns the options. */ getOptions(): any; /** * Executes the command. * @param interaction * @param depth */ execute(interaction: ChatInputCommandInteraction | AutocompleteInteraction, depth?: number): any; /** * Returns whether the discovery is a slash command. */ isSlashCommand(): this is SlashCommandDiscovery; /** * Returns the JSON representation of the discovery. */ toJSON(): { options: any; type: ApplicationCommandType.ChatInput; category?: string; guilds?: Snowflake[]; discordResponse?: ApplicationCommand; description: string; descriptionLocalizations?: import("discord.js").LocalizationMap; name: string; nameLocalizations?: import("discord.js").LocalizationMap; dmPermission?: boolean; defaultMemberPermissions?: import("discord.js").PermissionResolvable | null; nsfw?: boolean; contexts?: readonly import("discord.js").InteractionContextType[]; integrationTypes?: readonly import("discord.js").ApplicationIntegrationType[]; } | { options: any; type: ApplicationCommandOptionType.Subcommand; category?: string; guilds?: Snowflake[]; discordResponse?: ApplicationCommand; name: string; description: string; descriptionLocalizations?: import("discord.js").LocalizationMap; nameLocalizations?: import("discord.js").LocalizationMap; autocomplete?: never; } | { options: any; type: ApplicationCommandOptionType.SubcommandGroup; guilds?: Snowflake[]; category?: string; discordResponse?: ApplicationCommand; name: string; nameLocalizations?: import("discord.js").LocalizationMap; dmPermission?: boolean; defaultMemberPermissions?: import("discord.js").PermissionResolvable | null; nsfw?: boolean; contexts?: readonly import("discord.js").InteractionContextType[]; integrationTypes?: readonly import("discord.js").ApplicationIntegrationType[]; description: string; descriptionLocalizations?: import("discord.js").LocalizationMap; autocomplete?: never; }; } export {};