import { B as BlindpayApiResponse, S as StablecoinToken, N as Network } from '../../index.d-Gvol1faW.js';
import { I as InternalApiClient } from '../../api-client-Bklw4zQi.js';

type BankingPartner = "jpmorgan" | "citi" | "hsbc" | "cfsb";
type SoleProprietorDocType = "master_service_agreement" | "salary_slip" | "bank_statement";
type VirtualAccount = {
    id: string;
    banking_partner: BankingPartner;
    kyc_status: string;
    us: {
        ach: {
            routing_number: string;
            account_number: string;
        };
        wire: {
            routing_number: string;
            account_number: string;
        };
        rtp: {
            routing_number: string;
            account_number: string;
        };
        swift_bic_code: string;
        swift_account_number?: string | null;
        account_type: string;
        beneficiary: {
            name: string;
            address_line_1: string;
            address_line_2: string;
        };
        receiving_bank: {
            name: string;
            address_line_1: string;
            address_line_2: string;
        };
        swift_receiving_bank?: {
            name: string | null;
            address_line_1: string | null;
            address_line_2: string | null;
        } | null;
    };
    token: StablecoinToken;
    blockchain_wallet_id: string;
    blockchain_wallet: {
        network: Network;
        address: string;
    } | null;
};
type ListVirtualAccountsInput = string;
type ListVirtualAccountsResponse = VirtualAccount[];
type CreateVirtualAccountInput = {
    receiver_id: string;
    banking_partner: BankingPartner;
    token: StablecoinToken;
    blockchain_wallet_id: string;
    signed_agreement_id?: string | null;
    sole_proprietor_doc_type?: SoleProprietorDocType | null;
    sole_proprietor_doc_file?: string | null;
};
type CreateVirtualAccountResponse = VirtualAccount;
type GetVirtualAccountInput = {
    receiver_id: string;
    id: string;
};
type GetVirtualAccountResponse = VirtualAccount;
type UpdateVirtualAccountInput = {
    receiver_id: string;
    id: string;
    token: StablecoinToken;
    blockchain_wallet_id: string;
};
declare function createVirtualAccountsResource(instanceId: string, client: InternalApiClient): {
    list(receiver_id: ListVirtualAccountsInput): Promise<BlindpayApiResponse<ListVirtualAccountsResponse>>;
    get({ receiver_id, id, }: GetVirtualAccountInput): Promise<BlindpayApiResponse<GetVirtualAccountResponse>>;
    create({ receiver_id, ...data }: CreateVirtualAccountInput): Promise<BlindpayApiResponse<CreateVirtualAccountResponse>>;
    update({ receiver_id, id, ...data }: UpdateVirtualAccountInput): Promise<BlindpayApiResponse<void>>;
};

export { type BankingPartner, type CreateVirtualAccountInput, type CreateVirtualAccountResponse, type GetVirtualAccountInput, type GetVirtualAccountResponse, type ListVirtualAccountsInput, type ListVirtualAccountsResponse, type SoleProprietorDocType, type UpdateVirtualAccountInput, type VirtualAccount, createVirtualAccountsResource };
