namespace Cleanuparr.Infrastructure.Health;
///
/// Service for checking the health of download clients and arr instances
///
public interface IHealthCheckService
{
///
/// Occurs when a client's health status changes
///
event EventHandler ClientHealthChanged;
///
/// Checks the health of a specific download client
///
/// The client ID to check
/// The health status of the client
Task CheckClientHealthAsync(Guid clientId);
///
/// Checks the health of all enabled download clients
///
/// A dictionary of client IDs to health statuses
Task> CheckAllClientsHealthAsync();
///
/// Gets the current health status of a download client
///
/// The client ID
/// The current health status, or null if the client hasn't been checked
HealthStatus? GetClientHealth(Guid clientId);
///
/// Gets the current health status of all download clients that have been checked
///
/// A dictionary of client IDs to health statuses
IDictionary GetAllClientHealth();
///
/// Checks the health of a specific arr instance
///
/// The arr instance ID to check
/// The health status of the arr instance
Task CheckArrInstanceHealthAsync(Guid instanceId);
///
/// Checks the health of all enabled arr instances
///
/// A dictionary of instance IDs to health statuses
Task> CheckAllArrInstancesHealthAsync();
///
/// Gets the current health status of an arr instance
///
/// The arr instance ID
/// The current health status, or null if the instance hasn't been checked
ArrHealthStatus? GetArrInstanceHealth(Guid instanceId);
///
/// Gets the current health status of all arr instances that have been checked
///
/// A dictionary of instance IDs to health statuses
IDictionary GetAllArrInstanceHealth();
}