using Data.Models.Configuration.DownloadCleaner;
namespace Infrastructure.Verticals.DownloadClient;
public interface IDownloadService : IDisposable
{
///
/// Gets the unique identifier for this download client
///
/// The client ID
Guid GetClientId();
public Task LoginAsync();
///
/// Performs a health check on the download client
///
/// The health check result
public Task HealthCheckAsync();
///
/// Checks whether the download should be removed from the *arr queue.
///
/// The download hash.
/// Downloads to ignore from processing.
public Task ShouldRemoveFromArrQueueAsync(string hash,
IReadOnlyList ignoredDownloads);
///
/// Fetches all seeding downloads.
///
/// A list of downloads that are seeding.
Task?> GetSeedingDownloads();
///
/// Filters downloads that should be cleaned.
///
/// The downloads to filter.
/// The categories by which to filter the downloads.
/// A list of downloads for the provided categories.
List