<?php
declare(strict_types=1);

namespace App\Modules\Shipments;

interface ShipmentProviderInterface
{
    public function code(): string;

    /**
     * @return array<int, array<string, mixed>>
     */
    public function getDeliveryServices(): array;

    /**
     * @param array<string, mixed> $formData
     * @return array<string, mixed>
     */
    public function createShipment(int $orderId, array $formData): array;

    /**
     * @return array<string, mixed>
     */
    public function checkCreationStatus(int $packageId): array;

    /**
     * @return array<string, mixed>
     */
    public function downloadLabel(int $packageId, string $storagePath): array;
}
