using MediaBrowser.Controller.Entities; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Providers { public interface IRemoteMetadataProvider : IMetadataProvider { } public interface IRemoteMetadataProvider : IMetadataProvider, IRemoteMetadataProvider where TItemType : IHasMetadata, IHasLookupInfo where TLookupInfoType : ItemLookupInfo, new() { Task> GetMetadata(TLookupInfoType info, CancellationToken cancellationToken); } public interface IRemoteSearchProvider where TLookupInfoType : ItemLookupInfo { Task>> GetSearchResults(TLookupInfoType searchInfo, CancellationToken cancellationToken); } public class SearchResult where T : ItemLookupInfo { public T Item { get; set; } public string ImageUrl { get; set; } } }