using FluentTerminal.Models; using System; using System.Collections.Generic; namespace FluentTerminal.App.Services { public interface ISettingsService { event EventHandler ApplicationSettingsChanged; event EventHandler CurrentThemeChanged; event EventHandler KeyBindingsChanged; event EventHandler ShellProfileAdded; event EventHandler ShellProfileDeleted; event EventHandler TerminalOptionsChanged; event EventHandler ThemeDeleted; event EventHandler ThemeAdded; void DeleteShellProfile(Guid id); void DeleteTheme(Guid id); ApplicationSettings GetApplicationSettings(); TerminalTheme GetCurrentTheme(); Guid GetCurrentThemeId(); ShellProfile GetDefaultShellProfile(); Guid GetDefaultShellProfileId(); IDictionary> GetCommandKeyBindings(); IEnumerable GetShellProfiles(); IEnumerable GetTabThemes(); TerminalOptions GetTerminalOptions(); TerminalTheme GetTheme(Guid id); IEnumerable GetThemes(); void ResetKeyBindings(); void SaveApplicationSettings(ApplicationSettings applicationSettings); void SaveCurrentThemeId(Guid id); void SaveDefaultShellProfileId(Guid id); void SaveKeyBindings(string command, ICollection keyBindings); void SaveShellProfile(ShellProfile shellProfile, bool newShell = false); void SaveTerminalOptions(TerminalOptions terminalOptions); void SaveTheme(TerminalTheme theme, bool newTheme = false); ShellProfile GetShellProfile(Guid id); } }