import { CommandGroupBuilder } from "@discord-interactions/builders"; import { AutocompleteContext, Component, Modal, SlashCommandContext } from "../index.js"; import { CommandManager } from "../managers/CommandManager.js"; import { RegisteredDiscordCommand } from "./Base.js"; import { ICommand } from "./index.js"; export interface ISubcommandHandler { handler: (ctx: SlashCommandContext) => Promise; autocompleteHandler?: (ctx: AutocompleteContext) => Promise; } export declare type ISubcommandGroup = Record; export declare type ISubcommandHandlers = Record; export interface ICommandGroup { builder: CommandGroupBuilder; handlers: ISubcommandHandlers; components?: (Component | Modal)[]; } export declare class CommandGroup implements ICommandGroup { builder: CommandGroupBuilder; handlers: ISubcommandHandlers; constructor(builder: CommandGroupBuilder, handlers: ISubcommandHandlers, components?: (Component | Modal)[]); components: (Component | Modal)[]; setHandlers(handlers: ISubcommandHandlers): this; } export declare class RegisteredCommandGroup extends RegisteredDiscordCommand { handlers: Record; constructor(manager: CommandManager, command: { builder: CommandGroupBuilder; handlers: ISubcommandHandlers; }); /** * Update this command's handler function * @param handler New command handler */ setHandlers(handler: ISubcommandHandlers): void; } export declare function isCommandGroup(command: ICommand): command is ICommandGroup;