#nullable disable
#pragma warning disable CS1591
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;
using MediaBrowser.Controller.Entities;
using MediaBrowser.Model.Channels;
using MediaBrowser.Model.Dto;
using MediaBrowser.Model.Querying;
namespace MediaBrowser.Controller.Channels
{
public interface IChannelManager
{
///
/// Gets the channel features.
///
/// The identifier.
/// ChannelFeatures.
ChannelFeatures GetChannelFeatures(Guid? id);
///
/// Gets all channel features.
///
/// IEnumerable{ChannelFeatures}.
ChannelFeatures[] GetAllChannelFeatures();
bool EnableMediaSourceDisplay(BaseItem item);
bool CanDelete(BaseItem item);
Task DeleteItem(BaseItem item);
///
/// Gets the channel.
///
/// The identifier.
/// Channel.
Channel GetChannel(string id);
///
/// Gets the channels internal.
///
/// The query.
/// The channels.
Task> GetChannelsInternalAsync(ChannelQuery query);
///
/// Gets the channels.
///
/// The query.
/// The channels.
Task> GetChannelsAsync(ChannelQuery query);
///
/// Gets the latest channel items.
///
/// The item query.
/// The cancellation token.
/// The latest channels.
Task> GetLatestChannelItems(InternalItemsQuery query, CancellationToken cancellationToken);
///
/// Gets the latest channel items.
///
/// The item query.
/// The cancellation token.
/// The latest channels.
Task> GetLatestChannelItemsInternal(InternalItemsQuery query, CancellationToken cancellationToken);
///
/// Gets the channel items.
///
/// The query.
/// The cancellation token.
/// The channel items.
Task> GetChannelItems(InternalItemsQuery query, CancellationToken cancellationToken);
///
/// Gets the channel items.
///
/// The query.
/// The progress to report to.
/// The cancellation token.
/// The channel items.
Task> GetChannelItemsInternal(InternalItemsQuery query, IProgress progress, CancellationToken cancellationToken);
///
/// Gets the channel item media sources.
///
/// The item.
/// The cancellation token.
/// The item media sources.
IEnumerable GetStaticMediaSources(BaseItem item, CancellationToken cancellationToken);
}
}