<?php

declare(strict_types=1);

namespace App\Framework\Http;

interface HttpMiddleware
{
    /**
     * Verarbeitet den Middleware-Kontext und ruft den nächsten Handler in der Kette auf.
     *
     * @param MiddlewareContext $context Der Middleware-Kontext mit Request und optionaler Response
     * @param Next $next Der nächste Handler in der Kette
     * @param RequestStateManager $stateManager
     * @return MiddlewareContext Der aktualisierte Kontext
     */
    public function __invoke(MiddlewareContext $context, Next $next, RequestStateManager $stateManager): MiddlewareContext;
}
