/// <reference types="node" />
import type BN from 'bn.js';
import type { ECDSASignature } from 'ethereumjs-util';
import type Web3 from 'web3';
import type { Contract } from 'web3-eth-contract';
import type { ContractABI } from '../../utils';
import type { EthWeb3Manager } from '../ethWeb3Manager';
import type { AudiusTokenClient } from './AudiusTokenClient';
export declare class WormholeClient {
    ethWeb3Manager: EthWeb3Manager;
    contractABI: ContractABI['abi'];
    contractAddress: string;
    web3: Web3;
    audiusTokenClient: AudiusTokenClient;
    WormholeContract: Contract;
    constructor(ethWeb3Manager: EthWeb3Manager, contractABI: ContractABI['abi'], contractAddress: string, audiusTokenClient: AudiusTokenClient);
    nonces(wallet: string): Promise<number>;
    initialize(fromAcct: string, wormholeAddress: string, relayer: string): Promise<{
        txReceipt: import("../../utils").Maybe<{
            txHash: string;
            txParams: {
                data: string;
                gasLimit: string;
                gasPrice: number;
                nonce: string;
                to: string;
                value: string;
            };
        }>;
    }>;
    /**
     * Transfers in eth from the user's wallet to the wormhole contract and
     * specifies a solana wallet to realized the tokens in SOL
     */
    transferTokens(fromAcct: string, amount: BN, chainId: number, solanaAccount: Buffer, arbiterFee: BN, deadline: number, signedDigest: ECDSASignature, relayer: string): Promise<import("../../utils").Maybe<{
        txHash: string;
        txParams: {
            data: string;
            gasLimit: string;
            gasPrice: number;
            nonce: string;
            to: string;
            value: string;
        };
    }>>;
}
