namespace PepperDash.Core.Abstractions;
///
/// Abstracts Crestron.SimplSharp.CrestronConsole to allow unit testing
/// without the Crestron SDK.
///
public interface ICrestronConsole
{
/// Prints a line to the Crestron console/telnet output.
void PrintLine(string message);
/// Prints text (without newline) to the Crestron console/telnet output.
void Print(string message);
///
/// Sends a response string to the console for the currently-executing console command.
///
void ConsoleCommandResponse(string message);
///
/// Registers a new command with the Crestron console.
///
/// Handler invoked when the command is typed.
/// Command name (no spaces).
/// Help text shown by the Crestron console.
/// Minimum access level required to run the command.
void AddNewConsoleCommand(
Action callback,
string command,
string helpText,
ConsoleAccessLevel accessLevel);
}