using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Dto;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using System;
namespace MediaBrowser.Controller.Library
{
    public interface IMediaSourceProvider
    {
        /// 
        /// Gets the media sources.
        /// 
        /// The item.
        /// The cancellation token.
        /// Task<IEnumerable<MediaSourceInfo>>.
        Task> GetMediaSources(IHasMediaSources item, CancellationToken cancellationToken);
        /// 
        /// Opens the media source.
        /// 
        /// The open token.
        /// The cancellation token.
        /// Task<MediaSourceInfo>.
        Task> OpenMediaSource(string openToken, CancellationToken cancellationToken);
        /// 
        /// Closes the media source.
        /// 
        /// The live stream identifier.
        /// Task.
        Task CloseMediaSource(string liveStreamId);
    }
}