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 ResizeTerminal(byte id, TerminalSize size); Task UpdateToggleWindowKeyBindings(); Task Write(byte terminalId, byte[] data); void SubscribeForTerminalOutput(byte terminalId, Action callback); Task CloseTerminal(byte terminalId); Task GetAvailablePort(); byte GetNextTerminalId(); Task GetUserName(); Task SaveTextFileAsync(string path, string content); Task GetSshConfigDirAsync(); Task GetFilesFromSshConfigDirAsync(); Task CheckFileExistsAsync(string path); void MuteTerminal(bool mute); } }