<?php

declare(strict_types=1);

namespace App\Framework\Debug\Formatters;

use App\Framework\Debug\DebugEntry;

/**
 * Interface für alle Debug-Formatierungen.
 */
interface FormatterInterface
{
    /**
     * Formatiert einen Debug-Eintrag zur Ausgabe
     */
    public function format(DebugEntry $entry): string;

    /**
     * Formatiert eine Liste von Debug-Einträgen
     *
     * @param DebugEntry[] $entries
     */
    public function formatHistory(array $entries): string;

    /**
     * Formatiert einen beliebigen Wert zur Ausgabe
     */
    public function formatValue(mixed $value): string;
}
