import { Types } from "@requestnetwork/request-client.js";
import type { BuyerInfo, Currency, ProductInfo, SellerInfo } from "../types";
export declare const prepareRequestParameters: ({ currency, sellerAddress, payerAddress, amountInCrypto, exchangeRate, amountInUSD, createdWith, builderId, productInfo, sellerInfo, buyerInfo, invoiceNumber, feeAddress, feeAmountInUSD, feeAmountInCrypto, totalAmountInCrypto, }: {
    currency: Currency;
    sellerAddress: string;
    payerAddress: string;
    amountInCrypto: number;
    exchangeRate: number;
    amountInUSD: number;
    builderId: string;
    createdWith: string;
    productInfo: ProductInfo | undefined;
    sellerInfo: SellerInfo;
    buyerInfo: BuyerInfo;
    invoiceNumber?: string;
    feeAddress: string;
    feeAmountInUSD: number;
    feeAmountInCrypto: number;
    totalAmountInCrypto: number;
}) => {
    requestInfo: {
        currency: {
            type: "ERC20" | "ETH";
            value: string | undefined;
            network: "base" | "arbitrum-one" | "avalanche" | "bsc" | "fantom" | "mainnet" | "matic" | "moonbeam" | "optimism" | "sepolia" | "xdai" | "mantle" | "zksyncera";
        };
        expectedAmount: string;
        payee: {
            type: Types.Identity.TYPE;
            value: string;
        };
        payer: {
            type: Types.Identity.TYPE;
            value: string;
        };
        timestamp: number;
    };
    paymentNetwork: {
        id: Types.Extension.PAYMENT_NETWORK_ID;
        parameters: {
            paymentNetworkName: "base" | "arbitrum-one" | "avalanche" | "bsc" | "fantom" | "mainnet" | "matic" | "moonbeam" | "optimism" | "sepolia" | "xdai" | "mantle" | "zksyncera";
            paymentAddress: string;
            feeAddress: string;
            feeAmount: string;
        };
    };
    contentData: {
        meta: {
            format: string;
            version: string;
        };
        creationDate: string;
        invoiceNumber: string;
        note: string;
        sellerInfo: {
            email: string | undefined;
            firstName: string | undefined;
            lastName: string | undefined;
            businessName: string | undefined;
            phone: string | undefined;
            address: {
                streetAddress: string | undefined;
                locality: string | undefined;
                postalCode: string | undefined;
                country: string | undefined;
            } | undefined;
            taxRegistration: string | undefined;
        };
        buyerInfo: {
            email: string | undefined;
            firstName: string | undefined;
            lastName: string | undefined;
            businessName: string | undefined;
            phone: string | undefined;
            address: {
                streetAddress: string | undefined;
                locality: string | undefined;
                postalCode: string | undefined;
                country: string | undefined;
            } | undefined;
            taxRegistration: string | undefined;
        };
        invoiceItems: {
            name: string;
            quantity: number;
            unitPrice: string;
            discount: string;
            tax: {
                type: string;
                amount: string;
            };
            currency: string | undefined;
        }[];
        paymentTerms: {
            dueDate: string;
        };
        miscellaneous: {
            exchangeRate: string;
            amountInUSD: string;
            createdWith: string;
            feeAddress: string;
            feeAmountInUSD: number;
            feeAmountInCrypto: number;
            builderId: string;
            paymentCurrency: {
                type: "ERC20" | "ETH";
                value: string | undefined;
                network: "base" | "arbitrum-one" | "avalanche" | "bsc" | "fantom" | "mainnet" | "matic" | "moonbeam" | "optimism" | "sepolia" | "xdai" | "mantle" | "zksyncera";
            };
        };
    };
    signer: {
        type: Types.Identity.TYPE;
        value: string;
    };
};
export declare const handleRequestPayment: ({ requestParameters, walletProvider, payerAddress, persistRequest, }: {
    requestParameters: any;
    walletProvider: any;
    payerAddress: string;
    persistRequest: boolean;
}) => Promise<import("@requestnetwork/request-client.js").Request>;
