using System;
using System.Threading;
using System.Threading.Tasks;
namespace Jellyfin.Plugin.RecentlyAddedGuard.Core;
///
/// An external source for the first "date added" of a medium, e.g. the import history of Radarr or Sonarr.
///
///
/// Extension point for v2: implementations registered in the DI container are consulted by the
/// ledger synchronization, and earlier dates lower the ledger via .
/// v1 ships no implementation.
///
public interface IExternalDateSource
{
///
/// Gets the name of the source for logs.
///
string Name { get; }
///
/// Looks up when the medium was first imported.
///
/// The medium.
/// The cancellation token.
/// The first import date (UTC), or null if unknown.
Task GetFirstAddedAsync(MediaIdentity identity, CancellationToken cancellationToken);
}