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 the s.
///
public interface ITunerHostManager
{
///
/// Gets the available s.
///
IReadOnlyList TunerHosts { get; }
///
/// Gets the s for the available s.
///
/// The s.
IEnumerable GetTunerHostTypes();
///
/// Saves the tuner host.
///
/// Turner host to save.
/// Option to specify that data source has changed.
/// Tuner host information wrapped in a task.
Task SaveTunerHost(TunerHostInfo info, bool dataSourceChanged = true);
///
/// Discovers the available tuners.
///
/// A value indicating whether to only return new devices.
/// The s.
IAsyncEnumerable DiscoverTuners(bool newDevicesOnly);
///
/// Scans for tuner devices that have changed URLs.
///
/// The to use.
/// A task that represents the scanning operation.
Task ScanForTunerDeviceChanges(CancellationToken cancellationToken);
}