<?php

namespace MintyPHP\Service\Audit;

/**
 * Core-side contract for recording system audit events.
 *
 * Implemented by the audit module's SystemAuditService when the module is active.
 * Falls back to NullAuditRecorder (no-op) when the audit module is disabled.
 */
interface AuditRecorderInterface
{
    /**
     * @param array<string, mixed> $context
     */
    public function record(
        string $eventType,
        string $outcome = 'success',
        array $context = []
    ): ?int;
}
