import type { AnyApplicationCommand, ApplicationCommandOptionConversion, CreateApplicationCommandOptions, EditApplicationCommandOptions, EditApplicationCommandPermissionsOptions, RESTGuildApplicationCommandPermissions, CreateGuildApplicationCommandOptions, EditGuildApplicationCommandOptions, GetApplicationCommandOptions } from "../types/application-commands"; import ApplicationCommand from "../structures/ApplicationCommand"; import type RESTManager from "../rest/RESTManager"; /** Various methods for interacting with application commands. */ export default class ApplicationCommands { #private; constructor(manager: RESTManager); /** * Overwrite all existing global application commands. * @param applicationID The ID of the application. * @param options The commands. */ bulkEditGlobalCommands(applicationID: string, options: Array): Promise>; /** * Overwrite all existing application commands in a guild. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param options The commands. */ bulkEditGuildCommands(applicationID: string, guildID: string, options: Array): Promise>; /** * Create a global application command. * @param applicationID The ID of the application. * @param options The options for the command. */ createGlobalCommand(applicationID: string, options: T): Promise>; /** * Create a guild application command. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param options The options for the command. */ createGuildCommand(applicationID: string, guildID: string, options: T): Promise>; /** * Delete a global application command. * @param applicationID The ID of the application. * @param commandID The ID the command to delete. */ deleteGlobalCommand(applicationID: string, commandID: string): Promise; /** * Delete a guild application command. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param commandID The ID of the command to delete. */ deleteGuildCommand(applicationID: string, guildID: string, commandID: string): Promise; /** * Edit a global application command. * @param applicationID The ID of the application. * @param commandID The ID of the command to edit. * @param options The options for editing the command. */ editGlobalCommand(applicationID: string, commandID: string, options: T): Promise>; /** * Edit a guild application command. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param commandID The ID of the command to edit. * @param options The options for editing the command. */ editGuildCommand(applicationID: string, guildID: string, commandID: string, options: T): Promise>; /** * Edit a guild application command's permissions. This requires a bearer token with the `applications.commands.permissions.update` scope. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param commandID The ID of the command. * @param options The options for editing the permissions. */ editGuildCommandPermissions(applicationID: string, guildID: string, commandID: string, options: EditApplicationCommandPermissionsOptions): Promise; /** * Get a global application command. * @param applicationID The ID of the application. * @param commandID The ID of the command. * @param options The options for getting the command. */ getGlobalCommand(applicationID: string, commandID: string, options?: GetApplicationCommandOptions): Promise; /** * Get an application's global commands. * @param applicationID The ID of the application. * @param options The options for getting the command. */ getGlobalCommands(applicationID: string, options?: GetApplicationCommandOptions): Promise>; /** * Get a global application command. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param commandID The ID of the command. * @param options The options for getting the command. */ getGuildCommand(applicationID: string, guildID: string, commandID: string, options?: GetApplicationCommandOptions): Promise; /** * Get an application's application commands in a specific guild. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param options The options for getting the command. */ getGuildCommands(applicationID: string, guildID: string, options?: GetApplicationCommandOptions): Promise>; /** * Get an application command's permissions in a guild. * @param applicationID The ID of the application. * @param guildID The ID of the guild. * @param commandID The ID of the command. */ getGuildPermission(applicationID: string, guildID: string, commandID: string): Promise; /** * Get the permissions for all application commands in a guild. * @param applicationID The ID of the application. * @param guildID The ID of the guild. */ getGuildPermissions(applicationID: string, guildID: string): Promise>; }