import { ChainData, Token } from "@0xsquid/squid-types";
import { OfflineSigner } from "@cosmjs/proto-signing";
import { Connection as SolanaConnection } from "@solana/web3.js";
import { JsonRpcSigner } from "ethers";
import { BitcoinConnector } from "../../core/types/bitcoin";
import { SolanaConnector } from "../../core/types/solana";
import { StellarConnector } from "../../core/types/stellar";
import { SuiAccount, SuiConnector } from "../../core/types/sui";
import { XrplConnector } from "../../core/types/xrpl";
interface SendTransactionParams {
    /**
     * The recipient address
     */
    to: string;
    /**
     * The amount of tokens to send, without decimals
     * e.g. 1000000 for 1 USDC
     */
    amount: string;
    token: Token;
}
export interface SendTransactionResponse {
    txHash: string;
}
interface SendTransactionEvmParams extends SendTransactionParams {
    signer: JsonRpcSigner;
    rpcUrl: string;
}
export declare function sendTransactionEvm({ to, amount, token, signer, rpcUrl, }: SendTransactionEvmParams): Promise<SendTransactionResponse>;
interface SendTransactionCosmosParams extends SendTransactionParams {
    signer: OfflineSigner;
    rpcUrl: string;
    nativeToken: Token;
}
export declare function sendTransactionCosmos({ amount, rpcUrl, signer, to, token, nativeToken, }: SendTransactionCosmosParams): Promise<SendTransactionResponse>;
interface SendTxSolanaParams extends SendTransactionParams {
    signer: SolanaConnector;
    connection: SolanaConnection;
}
export declare function sendTransactionSolana({ signer, amount, to, token, connection, }: SendTxSolanaParams): Promise<SendTransactionResponse>;
interface SendTxBitcoinParams extends SendTransactionParams {
    signer: BitcoinConnector;
}
export declare function sendTransactionBitcoin({ amount, signer, to, }: SendTxBitcoinParams): Promise<SendTransactionResponse>;
interface SendTxSuiParams extends SendTransactionParams {
    account: SuiAccount["account"];
    chain: ChainData;
    signer: SuiConnector;
}
export declare function sendTransactionSui({ account, amount, chain, signer, to, token, }: SendTxSuiParams): Promise<SendTransactionResponse>;
interface SendTxXrplParams extends SendTransactionParams {
    signer: XrplConnector;
    from: string;
}
export declare function sendTransactionXrpl({ amount, signer, to, token, from, }: SendTxXrplParams): Promise<SendTransactionResponse>;
interface SendTxStellarParams extends SendTransactionParams {
    signer: StellarConnector;
    chain: ChainData;
}
export declare function sendTransactionStellar({ amount, signer, to, token, chain, }: SendTxStellarParams): Promise<SendTransactionResponse>;
export {};
