using System.IO;
using System.Threading;
using System.Threading.Tasks;
namespace MediaBrowser.Controller.LiveTv;
///
/// Provides Schedules Direct specific operations.
///
public interface ISchedulesDirectService
{
///
/// Gets the available countries from the Schedules Direct API, using a file cache.
///
/// The cancellation token.
/// A stream containing the raw JSON response.
Task GetAvailableCountries(CancellationToken cancellationToken);
///
/// Gets a value indicating whether the Schedules Direct daily image download limit is currently active.
///
/// true if the image limit has been hit and has not yet reset; otherwise false.
bool IsImageDailyLimitActive();
///
/// Gets a value indicating whether the Schedules Direct service is available.
/// Returns false if a permanent account error has occurred or a transient backoff is active.
///
/// true if the service can accept requests; otherwise false.
bool IsServiceAvailable();
}