using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; using MediaBrowser.Model.Dto; using MediaBrowser.Model.LiveTv; namespace MediaBrowser.Controller.LiveTv; /// /// Service responsible for managing s and mapping /// their channels to channels provided by s. /// public interface IListingsManager { /// /// Saves the listing provider. /// /// The listing provider information. /// A value indicating whether to validate login. /// A value indicating whether to validate listings.. /// Task. Task SaveListingProvider(ListingsProviderInfo info, bool validateLogin, bool validateListings); /// /// Deletes the listing provider. /// /// The listing provider's id. void DeleteListingsProvider(string? id); /// /// Gets the lineups. /// /// Type of the provider. /// The provider identifier. /// The country. /// The location. /// The available lineups. Task> GetLineups(string? providerType, string? providerId, string? country, string? location); /// /// Gets the programs for a provided channel. /// /// The channel to retrieve programs for. /// The earliest date to retrieve programs for. /// The latest date to retrieve programs for. /// The to use. /// The available programs. Task> GetProgramsAsync( ChannelInfo channel, DateTime startDateUtc, DateTime endDateUtc, CancellationToken cancellationToken); /// /// Adds metadata from the s to the provided channels. /// /// The channels. /// A value indicating whether to use the EPG channel cache. /// The to use. /// A task representing the metadata population. Task AddProviderMetadata(IList channels, bool enableCache, CancellationToken cancellationToken); /// /// Gets the channel mapping options for a provider. /// /// The id of the provider to use. /// The channel mapping options. Task GetChannelMappingOptions(string? providerId); /// /// Sets the channel mapping. /// /// The id of the provider for the mapping. /// The tuner channel number. /// The provider channel number. /// The updated channel mapping. Task SetChannelMapping(string providerId, string tunerChannelNumber, string providerChannelNumber); }