<?php
/**
 * Payment gateway interface — WooCommerce-ready abstraction.
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

interface ZINV_Gateway_Interface {

    /**
     * Charge a payment method.
     */
    public function charge( float $amount, string $currency, string $payment_method_id ): array;

    /**
     * Refund a previous charge.
     */
    public function refund( string $transaction_id, float $amount, string $reason = '' ): array;

    /**
     * Create a customer in the gateway.
     */
    public function create_customer( array $client_data ): string;

    /**
     * Get the gateway identifier.
     */
    public function get_id(): string;

    /**
     * Check if the gateway is configured and ready.
     */
    public function is_configured(): bool;
}
