<?php

declare(strict_types=1);

namespace PpPhp\Core\Diagnostics\Contracts;

use PpPhp\Core\Diagnostics\Context\DiagnosticContext;
use PpPhp\Core\Diagnostics\Results\DiagnosticResult;

interface DiagnosticProviderInterface
{
    public function id(): string;

    public function label(): string;

    public function description(): string;

    public function priority(): int;

    public function diagnose(DiagnosticContext $context): DiagnosticResult;
}
