using Cleanuparr.Domain.Entities; using Cleanuparr.Domain.Entities.HealthCheck; using Cleanuparr.Persistence.Models.Configuration; namespace Cleanuparr.Infrastructure.Features.DownloadClient; /// /// Base contract every download client implements, regardless of protocol or capabilities. /// Protocol-specific behaviour lives behind the I*Capable interfaces. /// public interface IDownloadService : IDisposable { DownloadClientConfig ClientConfig { get; } Task LoginAsync(); /// /// Performs a health check on the download client /// /// The health check result Task HealthCheckAsync(); /// /// Deletes a download item. /// /// The download item. /// Whether to delete the source files along with the download. Defaults to true. Task DeleteDownload(IDownloadItem item, bool deleteSourceFiles); }