using JdeScoping.ConfigManager.Models;
namespace JdeScoping.ConfigManager.Services;
///
/// Service for loading and saving configuration files.
///
public interface IConfigFileService
{
///
/// Loads the application settings configuration from the specified file path.
///
/// The file path to load appsettings from.
/// Cancellation token for the operation.
/// The loaded configuration model or a new empty model if deserialization fails.
Task LoadAppSettingsAsync(string path, CancellationToken ct = default);
///
/// Loads the pipelines configuration from the specified file path.
///
/// The file path to load pipelines from.
/// Cancellation token for the operation.
/// The loaded pipelines configuration model or a new empty model if deserialization fails.
Task LoadPipelinesAsync(string path, CancellationToken ct = default);
///
/// Saves the application settings configuration to the specified file path.
///
/// The file path to save appsettings to.
/// The configuration model to save.
/// Cancellation token for the operation.
Task SaveAppSettingsAsync(string path, ConfigModel config, CancellationToken ct = default);
///
/// Saves the pipelines configuration to the specified file path.
///
/// The file path to save pipelines to.
/// The pipelines configuration model to save.
/// Cancellation token for the operation.
Task SavePipelinesAsync(string path, PipelinesConfigModel config, CancellationToken ct = default);
}