import { Interaction, RESTPostAPIApplicationCommandsJSONBody } from "discord.js"; import { Provider } from "nconf"; import { ILogger } from "tsdatautils-core"; import { CommandInputSettings, CommandInteraction, CommandInteractionRegistrationContext, CommandUserInput, ICommand, ICommandConfig, ICommandFactory, ICommandLogger, ICommandResult } from "../../models/Command"; import { InputParseResult } from "../../models/CommandInputParse"; import { IDiscordBot } from "../../models/DiscordBot"; import { CommandReplyService } from "../services/command-reply.service"; export declare abstract class InteractionCommand implements ICommand, ICommandFactory, ICommandConfig, ICommandLogger { configProvider: Provider; logger: ILogger; commandName: string; commandDescription: string; inputSettings: CommandInputSettings; protected interactionRegistrationContext: CommandInteractionRegistrationContext; protected deferReply: boolean; protected warnOldCommand: boolean; protected oldCommandPrefix: string; constructor(commandName: string, commandDescription: string, logger: ILogger, configProvider: Provider); abstract makeCommand(): ICommand; abstract getCommandBuilder(): RESTPostAPIApplicationCommandsJSONBody; abstract executeInteraction(bot: IDiscordBot, input: Interaction, inputParseResult: InputParseResult, replyService: CommandReplyService): Promise; setupInputSettings(bot: IDiscordBot): Promise; addInteractions(bot: IDiscordBot): CommandInteraction[]; execute(bot: IDiscordBot, input: CommandUserInput): Promise; }