using FluentTerminal.Models; using FluentTerminal.Models.Enums; using FluentTerminal.Models.Responses; using System; using System.Threading.Tasks; namespace FluentTerminal.App.Services { public interface ITrayProcessCommunicationService { event EventHandler TerminalExited; void Initialize(IAppServiceConnection appServiceConnection); Task CreateTerminal(byte id, TerminalSize size, ShellProfile shellProfile, SessionType sessionType); Task PauseTerminalOutput(byte id, bool pause); Task ResizeTerminal(byte id, TerminalSize size); Task UpdateToggleWindowKeyBindings(); Task Write(byte terminalId, byte[] data); void SubscribeForTerminalOutput(byte terminalId, Action callback); void UnsubscribeFromTerminalOutput(byte terminalId); Task CloseTerminal(byte terminalId); byte GetNextTerminalId(); Task GetUserName(); Task SaveTextFileAsync(string path, string content); Task GetSshConfigDirAsync(); Task GetFilesFromSshConfigDirAsync(); Task CheckFileExistsAsync(string path); void MuteTerminal(bool mute); void UpdateSettings(ApplicationSettings settings); Task GetCommandPathAsync(string command); Task QuitApplication(); } }