import { TransactionResponse } from '@ethersproject/abstract-provider';
import { Signer } from '@ethersproject/abstract-signer';
import { BigNumber } from '@ethersproject/bignumber';
import { JsonRpcProvider } from '@ethersproject/providers';
import { Eip3770Address, IEvmNetworkManager, IEvmNetworkManagerTransaction, SmartAccountVersion, SmartWalletContract } from '@biconomy-devx/core-types';
import { ethers } from 'ethers';
type Ethers = typeof ethers;
export interface EthersAdapterConfig {
    /** ethers - Ethers v5 library */
    ethers: Ethers;
    /** signer - Ethers signer */
    signer: Signer;
    provider: JsonRpcProvider;
}
declare class EvmNetworkManager implements IEvmNetworkManager {
    #private;
    constructor({ ethers, signer, provider }: EthersAdapterConfig);
    getProvider(): JsonRpcProvider;
    getSigner(): Signer;
    getEip3770Address(fullAddress: string): Promise<Eip3770Address>;
    getBalance(address: string): Promise<BigNumber>;
    getChainId(): Promise<number>;
    getSmartWalletContract(smartAccountVersion: SmartAccountVersion, address: string): SmartWalletContract;
    getMultiSendContract(smartAccountVersion: SmartAccountVersion, address: string): import("./contracts/MultiSend/v1.0.0/MultiSendEthersContract").default;
    getMultiSendCallOnlyContract(smartAccountVersion: SmartAccountVersion, address: string): import("./contracts/MultiSendCallOnly/v1.0.0/MultiSendCallOnlyEthersContract").default;
    getSmartWalletFactoryContract(smartAccountVersion: SmartAccountVersion, address: string): import("./contracts/SmartWalletFactory/v1.0.0/SmartWalletProxyFactoryEthersContract").default;
    getFallbackGasTankContract(smartAccountVersion: SmartAccountVersion, address: string): import("./contracts/FallbackGasTank/v1.0.0/FallbackGasTankEthersContract").default;
    getDefaultCallbackHandlerContract(smartAccountVersion: SmartAccountVersion, address: string): import("./contracts/DefaultCallbackHandlerContract/v1.0.0/DefaultCallbackHandlerEthersContract").default;
    getContractCode(address: string): Promise<string>;
    isContractDeployed(address: string): Promise<boolean>;
    getTransaction(transactionHash: string): Promise<TransactionResponse>;
    getSignerAddress(): Promise<string>;
    signMessage(message: string): Promise<string>;
    estimateGas(transaction: IEvmNetworkManagerTransaction): Promise<number>;
    call(transaction: IEvmNetworkManagerTransaction): Promise<string>;
}
export default EvmNetworkManager;
