using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace MediaBrowser.Controller.Providers { public interface IItemIdentity { string Type { get; } } public interface IHasIdentities where TIdentity : IItemIdentity { IEnumerable Identities { get; } Task FindIdentities(IProviderManager providerManager, CancellationToken cancellationToken); } public interface IItemIdentityProvider : IHasOrder { } public interface IItemIdentityProvider : IItemIdentityProvider where TLookupInfo : ItemLookupInfo where TIdentity : IItemIdentity { Task FindIdentity(TLookupInfo info); } public interface IItemIdentityConverter : IHasOrder { } public interface IItemIdentityConverter : IItemIdentityConverter where TIdentity : IItemIdentity { Task Convert(TIdentity identity); string SourceType { get; } string ResultType { get; } } }