import { Chain, FallbackTransport, Hex, HttpTransport, PublicClient, TransactionReceipt } from 'viem';
import { LoggerType } from '../logger';
import { Balance, Networks, NumberRange, TokenContract } from '../types';
import { WalletClient } from './common';
export declare class DefaultClient {
    privateKey: Hex;
    walletAddress: Hex;
    rpcs: string[];
    publicClient: PublicClient;
    walletClient: WalletClient;
    chainData: Chain;
    logger: LoggerType;
    network: Networks;
    currentRpc: string;
    explorerLink: string;
    constructor(privateKey: string, chainData: Chain, logger: LoggerType, network: Networks);
    getTransport(rpc: string, index?: number): HttpTransport;
    getFallbackTransport(): FallbackTransport;
    private getPublicClient;
    private getWalletClient;
    getNativeBalance(): Promise<Balance>;
    getBalanceByContract(contractInfo: TokenContract): Promise<Balance>;
    getSymbolByContract(contractInfo: TokenContract): Promise<string>;
    approve(tokenContract: Hex, projectContract: Hex, amount: bigint, gweiRange?: NumberRange): Promise<void>;
    waitTxReceipt(txHash: Hex): Promise<TransactionReceipt>;
}
export type DefaultClientClass = new (decryptedPrivKey: string, logger: LoggerType) => DefaultClient;
