using OF_DL.Models.Config; namespace OF_DL.Services; public interface IConfigService { /// /// Gets the active configuration in memory. /// Config CurrentConfig { get; } /// /// Gets whether the CLI requested non-interactive mode. /// bool IsCliNonInteractive { get; } /// /// Loads configuration from disk and applies runtime settings. /// Task LoadConfigurationAsync(string[] args); /// /// Saves the current configuration to disk. /// Task SaveConfigurationAsync(string filePath = "config.conf"); /// /// Replaces the current configuration and applies runtime settings. /// void UpdateConfig(Config newConfig); /// /// Returns property names and current values for toggleable config properties. /// List<(string Name, bool Value)> GetToggleableProperties(); /// /// Applies selected toggleable properties. Returns true if any changed. /// bool ApplyToggleableSelections(List selectedNames); }