using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
namespace MediaBrowser.Controller.Providers
{
    public interface IMetadataService
    {
        /// 
        /// Determines whether this instance can refresh the specified item.
        /// 
        /// The item.
        /// true if this instance can refresh the specified item; otherwise, false.
        bool CanRefresh(IHasMetadata item);
        /// 
        /// Refreshes the metadata.
        /// 
        /// The item.
        /// The options.
        /// The cancellation token.
        /// Task.
        Task RefreshMetadata(IHasMetadata item, MetadataRefreshOptions refreshOptions, CancellationToken cancellationToken);
        /// 
        /// Gets the order.
        /// 
        /// The order.
        int Order { get; }
    }
}