<?php

namespace MintyPHP\Service\Audit;

/**
 * Core-side contract for API request audit tracking.
 *
 * Implemented by the audit module's ApiAuditService when the module is active.
 * Falls back to NullApiAuditService (no-op) when the audit module is disabled.
 */
interface ApiAuditServiceInterface
{
    public function startRequestContext(): void;

    public function finish(int $statusCode, ?string $errorCode = null): void;

    public function currentRequestId(): ?string;
}
