using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model;
using MediaBrowser.Model.MediaSegments;
namespace MediaBrowser.Controller;
///
/// Provides methods for Obtaining the Media Segments from an Item.
///
public interface IMediaSegmentProvider
{
///
/// Gets the provider name.
///
string Name { get; }
///
/// Enumerates all Media Segments from an Media Item.
///
/// Arguments to enumerate MediaSegments.
/// Abort token.
/// A list of all MediaSegments found from this provider.
Task> GetMediaSegments(MediaSegmentGenerationRequest request, CancellationToken cancellationToken);
///
/// Should return support state for the given item.
///
/// The base item to extract segments from.
/// True if item is supported, otherwise false.
ValueTask Supports(BaseItem item);
}