namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands
{
/// A console command to register.
internal interface IConsoleCommand
{
/*********
** Accessors
*********/
/// The command name the user must type.
string Name { get; }
/// The command description.
string Description { get; }
/// Whether the command may need to perform logic when the game updates. This value shouldn't change.
bool MayNeedUpdate { get; }
/// Whether the command may need to perform logic when the player presses a button. This value shouldn't change.
bool MayNeedInput { get; }
/*********
** Public methods
*********/
/// Handle the command.
/// Writes messages to the console and log file.
/// The command name.
/// The command arguments.
void Handle(IMonitor monitor, string command, ArgumentParser args);
/// Perform any logic needed on update tick.
/// Writes messages to the console and log file.
void OnUpdated(IMonitor monitor);
/// Perform any logic when input is received.
/// Writes messages to the console and log file.
/// The button that was pressed.
void OnButtonPressed(IMonitor monitor, SButton button);
}
}