import { S as StablecoinToken, N as Network, B as BlindpayApiResponse, T as TransactionStatus, t as TrackingStatus, P as PaginationParams, l as PaginationMetadata } from '../../index.d-Gvol1faW.js';
import { I as InternalApiClient } from '../../api-client-Bklw4zQi.js';

type TransferTrackingStep = {
    step: TrackingStatus;
    transaction_hash: string | null;
    gas_fee: string | null;
    completed_at: string | null;
    error_message: string | null;
};
type TransferTrackingTransactionMonitoring = {
    step: TrackingStatus;
    blockchain_screening: number | null;
    risk_score: number | null;
    completed_at: string | null;
};
type Transfer = {
    id: string;
    status: TransactionStatus;
    transfer_quote_id: string;
    instance_id: string;
    tracking_transaction_monitoring: TransferTrackingTransactionMonitoring;
    tracking_paymaster: TransferTrackingStep;
    tracking_bridge_swap: TransferTrackingStep;
    tracking_complete: TransferTrackingStep;
    tracking_partner_fee: TransferTrackingStep;
    created_at: string;
    updated_at: string;
    image_url?: string;
    first_name?: string;
    last_name?: string;
    legal_name?: string;
    wallet_id: string;
    sender_token: StablecoinToken;
    sender_amount: number;
    receiver_amount: number;
    receiver_network: Network;
    receiver_token: StablecoinToken;
    receiver_wallet_address: string;
    partner_fee_amount: number | null;
};
type CreateTransferQuoteInput = {
    wallet_id: string;
    sender_token: StablecoinToken;
    receiver_wallet_address: string;
    receiver_token: StablecoinToken;
    receiver_network: Network;
    request_amount: number;
    cover_fees: boolean;
    amount_reference: "sender" | "receiver";
    partner_fee_id?: string | null;
};
type CreateTransferQuoteResponse = {
    id: string;
    expires_at: number;
    commercial_quotation: number;
    blindpay_quotation: number;
    receiver_amount: number;
    sender_amount: number;
    partner_fee_amount: number | null;
    flat_fee: number;
};
type CreateTransferInput = {
    transfer_quote_id: string;
};
type CreateTransferResponse = {
    id: string;
    status: TransactionStatus;
    tracking_bridge_swap: TransferTrackingStep;
    tracking_complete: TransferTrackingStep;
    tracking_paymaster: TransferTrackingStep;
    tracking_transaction_monitoring: TransferTrackingTransactionMonitoring;
    tracking_partner_fee: TransferTrackingStep;
};
type ListTransfersInput = PaginationParams;
type ListTransfersResponse = {
    data: Transfer[];
    pagination: PaginationMetadata;
};
type GetTransferInput = string;
type GetTransferResponse = Transfer;
type GetTransferTrackInput = string;
type GetTransferTrackResponse = Transfer;
declare function createTransfersResource(instanceId: string, client: InternalApiClient): {
    quotes: {
        create({ ...data }: CreateTransferQuoteInput): Promise<BlindpayApiResponse<CreateTransferQuoteResponse>>;
    };
    create({ ...data }: CreateTransferInput): Promise<BlindpayApiResponse<CreateTransferResponse>>;
    list(params?: ListTransfersInput): Promise<BlindpayApiResponse<ListTransfersResponse>>;
    get(transferId: GetTransferInput): Promise<BlindpayApiResponse<GetTransferResponse>>;
    getTrack(transferId: GetTransferTrackInput): Promise<BlindpayApiResponse<GetTransferTrackResponse>>;
};

export { type CreateTransferInput, type CreateTransferQuoteInput, type CreateTransferQuoteResponse, type CreateTransferResponse, type GetTransferInput, type GetTransferResponse, type GetTransferTrackInput, type GetTransferTrackResponse, type ListTransfersInput, type ListTransfersResponse, type Transfer, type TransferTrackingStep, type TransferTrackingTransactionMonitoring, createTransfersResource };
