using RdtClient.Data.Models.Data; using RdtClient.Data.Models.TorrentClient; namespace RdtClient.Service.Services.TorrentClients; public interface ITorrentClient { Task> GetTorrents(); Task GetUser(); Task AddMagnet(String magnetLink); Task AddFile(Byte[] bytes); Task> GetAvailableFiles(String hash); /// /// Tell the debrid provider which files to download. /// /// /// Not all providers support this feature. /// /// The torrent to select files for /// Number of files selected Task SelectFiles(Torrent torrent); Task Delete(String torrentId); Task Unrestrict(String link); Task UpdateData(Torrent torrent, TorrentClientTorrent? torrentClientTorrent); Task?> GetDownloadInfos(Torrent torrent); /// /// To be called only when . /// is not set by /// /// /// The download to get the filename of /// The filename of the download Task GetFileName(Download download); }