<?php

declare(strict_types=1);

namespace PpPhp\Core\Diagnostics\Contracts;

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

interface DiagnosticRuleInterface
{
    public function id(): string;

    public function label(): string;

    public function description(): string;

    public function severity(): string;

    /**
     * @return DiagnosticIssue[]
     */
    public function evaluate(DiagnosticContext $context): array;
}
