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 CreateTerminalAsync(byte id, TerminalSize size, ShellProfile shellProfile, SessionType sessionType); Task PauseTerminalOutputAsync(byte id, bool pause); Task ResizeTerminalAsync(byte id, TerminalSize size); Task UpdateToggleWindowKeyBindingsAsync(); Task WriteAsync(byte terminalId, byte[] data); void SubscribeForTerminalOutput(byte terminalId, Action callback); void UnsubscribeFromTerminalOutput(byte terminalId); Task CloseTerminalAsync(byte terminalId); byte GetNextTerminalId(); Task GetUserNameAsync(); Task SaveTextFileAsync(string path, string content); Task ReadTextFileAsync(string path); Task GetSshConfigDirAsync(); Task GetFilesFromSshConfigDirAsync(); Task CheckFileExistsAsync(string path); Task MuteTerminalAsync(bool mute); void UpdateSettings(ApplicationSettings settings); Task GetCommandPathAsync(string command); Task QuitApplicationAsync(); } }