<?php
declare(strict_types=1);

namespace App\Services\Payout;

interface PayoutProviderInterface
{
    public function createWithdrawalRequest(array $data): array;

    public function approve(int $withdrawalId, int $adminId, ?string $note = null): array;

    public function markProcessing(int $withdrawalId, int $adminId, ?string $note = null): array;

    public function markSent(int $withdrawalId, int $adminId, array $data = []): array;

    public function reject(int $withdrawalId, int $adminId, string $reason): array;

    public function cancel(int $withdrawalId, int $userId): array;
}
