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);
}