using MediaBrowser.Controller.Entities; using MediaBrowser.Controller.Library; using MediaBrowser.Model.Entities; using MediaBrowser.Model.Providers; using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Providers { /// /// Interface IProviderManager /// public interface IProviderManager { /// /// Executes the metadata providers. /// /// The item. /// The cancellation token. /// if set to true [force]. /// if set to true [allow slow providers]. /// Task{System.Boolean}. Task ExecuteMetadataProviders(BaseItem item, CancellationToken cancellationToken, bool force = false, bool allowSlowProviders = true); /// /// Saves the image. /// /// The item. /// The URL. /// The resource pool. /// The type. /// Index of the image. /// The cancellation token. /// Task. Task SaveImage(BaseItem item, string url, SemaphoreSlim resourcePool, ImageType type, int? imageIndex, CancellationToken cancellationToken); /// /// Saves the image. /// /// The item. /// The source. /// Type of the MIME. /// The type. /// Index of the image. /// The source URL. /// The cancellation token. /// Task. Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, string sourceUrl, CancellationToken cancellationToken); /// /// Adds the metadata providers. /// /// The providers. /// The image providers. void AddParts(IEnumerable providers, IEnumerable imageProviders); /// /// Gets the available remote images. /// /// The item. /// The cancellation token. /// Name of the provider. /// The type. /// Task{IEnumerable{RemoteImageInfo}}. Task> GetAvailableRemoteImages(BaseItem item, CancellationToken cancellationToken, string providerName = null, ImageType? type = null); /// /// Gets the image providers. /// /// The item. /// IEnumerable{IImageProvider}. IEnumerable GetImageProviders(BaseItem item); } }