<?php

declare(strict_types=1);

namespace App\Services\Reports\Formatters;

/**
 * Форматтер сериализует таблицу (headers + rows) в бинарную строку нужного
 * формата (csv/xlsx/json/pdf). Возвращает контент готовый к Storage::put.
 */
interface ReportFormatter
{
    /**
     * @param  array<int, string>  $headers
     * @param  array<int, array<int, scalar|null>>  $rows
     */
    public function format(array $headers, array $rows): string;

    public function fileExtension(): string;
}
