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); }