export interface CommandSection { id: string; name: string; icon?: string; } export interface ApplicationCommand { description: string; name: string; options: ApplicationCommandOption[]; execute: (args: any[], ctx: CommandContext) => CommandResult | void | Promise | Promise; id?: string; applicationId?: string; displayName?: string; displayDescription?: string; inputType?: ApplicationCommandInputType; type?: ApplicationCommandType; } export interface AliucordCommand extends ApplicationCommand { __plugin?: string; } export declare enum ApplicationCommandInputType { BUILT_IN = 0, BUILT_IN_TEXT = 1, BUILT_IN_INTEGRATION = 2, BOT = 3, PLACEHOLDER = 4 } export interface ApplicationCommandOption { name: string; description: string; required?: boolean; type: ApplicationCommandOptionType; displayName?: string; displayDescription?: string; } export declare enum ApplicationCommandOptionType { SUB_COMMAND = 1, SUB_COMMAND_GROUP = 2, STRING = 3, INTEGER = 4, BOOLEAN = 5, USER6 = 6, CHANNEL = 7, ROLE = 8, MENTIONABLE = 9, NUMBER = 10, ATTACHMENT = 11 } export declare enum ApplicationCommandType { CHAT = 1, USER = 2, MESSAGE = 3 } export interface CommandContext { channel: any; guild: any; } export interface CommandResult { content: string; tts?: boolean; } export declare class Commands { private plugin; private static _idIncrementNum; static generateId: () => string; static _aliucordSection: CommandSection; static _commands: AliucordCommand[]; constructor(plugin: string); registerCommand(command: AliucordCommand): void; unregisterAll(): void; }