using MultiTerm.Core.Types;
using MultiTerm.Protocols;
using MultiTerm.Protocols.Types;
namespace MultiTerm.Core.ViewModel;
public interface ITerminalViewModel
{
///
/// Title of the Terminal View.
///
string Title { get; }
///
/// Type of view.
///
TerminalViewType ViewType { get; }
///
/// Type of Protocol.
///
ProtocolType ProtocolType { get; set; }
///
/// Communication Protocol instance.
///
ICommunicationProtocol? CommunicationProtocol { get; set; }
///
/// Settings ViewModel that displays protocol specific settings to user.
///
IProtocolSettingsViewModel? ProtocolSettings { get; set; }
///
/// Request Closing of Terminal.
///
void CloseRequest();
///
/// Force close the Terminal and disconnect communication protocol.
/// Does not raise .
///
void ForceClose();
///
/// Closing of Terminal was initiated.
///
event EventHandler ClosingEvent;
}