using System; using System.Text; using System.Threading.Tasks; using NzbDrone.Core.IndexerSearch.Definitions; using NzbDrone.Core.ThingiProvider; namespace NzbDrone.Core.Indexers { public interface IIndexer : IProvider { bool SupportsRss { get; } bool SupportsSearch { get; } bool SupportsRedirect { get; } IndexerCapabilities Capabilities { get; } string[] IndexerUrls { get; } string[] LegacyUrls { get; } string Description { get; } Encoding Encoding { get; } string Language { get; } DownloadProtocol Protocol { get; } IndexerPrivacy Privacy { get; } Task Fetch(MovieSearchCriteria searchCriteria); Task Fetch(MusicSearchCriteria searchCriteria); Task Fetch(TvSearchCriteria searchCriteria); Task Fetch(BookSearchCriteria searchCriteria); Task Fetch(BasicSearchCriteria searchCriteria); Task Download(Uri link); bool IsObsolete(); IndexerCapabilities GetCapabilities(); } }