"""Payments tool — cryptocurrency payments, balances, withdrawals, credentials.

Modular payments capabilities:
- Balance: account balance
- Payments: create invoices, check status, cancel
- Credentials: provider credential management
- Currencies: list currencies and get estimates
- Transactions: transaction history
- Withdrawals: withdrawal requests

Example::

    from sdkrouter import SDKRouter

    client = SDKRouter(api_key="sk_live_xxx")

    balance = client.payments.get_balance()
    payment = client.payments.create(
        amount_usd="100.00",
        currency_code="USDTTRC20",
    )
"""

from __future__ import annotations

from ._resource import AsyncPaymentsResource, PaymentsResource
from ..._api.generated.payments.payments__api__payments.models import (
    Balance,
    CustomerBalance,
    CustomerCreateRequest,
    CustomerDetail,
    CustomerList,
    CustomerTransaction,
    PaginatedCustomerListList,
    PaginatedCustomerTransactionList,
    PatchedCustomerUpdateRequest,
    ProviderCredentialList,
    ProviderCredentialDetail,
    ProviderCredentialCreateRequest,
    ProviderCredentialTestResponse,
    PaginatedProviderCredentialListList,
    Currency,
    CurrencyEstimateResponse,
    PaginatedCurrencyList,
    PaymentList,
    PaymentDetail,
    PaymentStatus,
    PaymentCreateRequest,
    PaymentCreateResponse,
    PaginatedPaymentListList,
    Transaction,
    PaginatedTransactionList,
    WithdrawalList,
    WithdrawalDetail,
    WithdrawalCreateRequest,
    WithdrawalCreateResponse,
    WithdrawalCancelResponse,
    PaginatedWithdrawalListList,
)

__all__ = [
    "PaymentsResource",
    "AsyncPaymentsResource",
    "Balance",
    "CustomerBalance",
    "CustomerCreateRequest",
    "CustomerDetail",
    "CustomerList",
    "CustomerTransaction",
    "PaginatedCustomerListList",
    "PaginatedCustomerTransactionList",
    "PatchedCustomerUpdateRequest",
    "ProviderCredentialList",
    "ProviderCredentialDetail",
    "ProviderCredentialCreateRequest",
    "ProviderCredentialTestResponse",
    "PaginatedProviderCredentialListList",
    "Currency",
    "CurrencyEstimateResponse",
    "PaginatedCurrencyList",
    "PaymentList",
    "PaymentDetail",
    "PaymentStatus",
    "PaymentCreateRequest",
    "PaymentCreateResponse",
    "PaginatedPaymentListList",
    "Transaction",
    "PaginatedTransactionList",
    "WithdrawalList",
    "WithdrawalDetail",
    "WithdrawalCreateRequest",
    "WithdrawalCreateResponse",
    "WithdrawalCancelResponse",
    "PaginatedWithdrawalListList",
]
