using System.Threading;
using System.Threading.Tasks;
using Jellyfin.Plugin.SRFPlay.Api.Models;
namespace Jellyfin.Plugin.SRFPlay.Services.Interfaces;
///
/// Interface for fetching media composition with caching support.
///
public interface IMediaCompositionFetcher
{
///
/// Gets media composition by URN, using cache if available.
///
/// The URN to fetch.
/// Cancellation token.
/// Optional override for cache duration (e.g., 5 min for livestreams).
/// The media composition, or null if not found.
Task GetMediaCompositionAsync(
string urn,
CancellationToken cancellationToken,
int? cacheDurationOverride = null);
}