<?php

declare(strict_types=1);

namespace App\Shared\Infrastructure\Monitoring;

/**
 * Interface for infrastructure health checking.
 *
 * Allows testing controllers that depend on health checks without
 * requiring real infrastructure connections.
 */
interface InfrastructureHealthCheckerInterface
{
    public function checkPostgres(): bool;

    public function checkRedis(): bool;

    public function checkRabbitMQ(): bool;

    /**
     * Check all services and return aggregated status.
     *
     * @return array{postgres: bool, redis: bool, rabbitmq: bool}
     */
    public function checkAll(): array;
}
