<?php

namespace App\Modules\HR\Attendance\Contracts;

/**
 * Translates vendor-specific raw payloads into normalized punch rows.
 */
interface BiometricPayloadNormalizer
{
    /**
     * @param  array<string, mixed>  $raw
     * @return array{employee_fingerprint_id: string, punch_time: string, meta?: array<string, mixed>}|null
     */
    public function normalize(array $raw): ?array;

    public function supports(string $apiType): bool;
}
