import { ChainEventListener, IProviderAdapter } from '../data-structures/provider-adapter/IProviderAdapter';
import { ContractType, EthereumNetwork } from '../types/ethereum-network.types';
import { ethers } from 'ethers';
import { Connector } from 'wagmi';
import { Call } from '../types/eip5792.types';
export declare class WagmiProviderAdapter implements IProviderAdapter<Connector> {
    private connector;
    private chainId;
    private originalProvider;
    private fetchProviders;
    private signer;
    private chainEventListener?;
    private config?;
    private unsubscribeFns;
    constructor();
    initConnector(connector: Connector): void;
    initConfig(config: any): void;
    init(chainId?: number): Promise<void>;
    disconnectFromConnector(): Promise<void>;
    connectToConnector(connector: Connector): Promise<number>;
    getChainId(): number | undefined;
    waitForTransaction(chainId: number, transactionHash: string, confirmations: number): Promise<boolean>;
    signMessage(message: string): Promise<string>;
    signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, unknown>): Promise<string>;
    switchNetwork(network: EthereumNetwork): Promise<import('viem').Chain>;
    getAddress(): Promise<string>;
    setChainEventListener(chainEventListener: ChainEventListener): void;
    onAccountChanged(): Promise<unknown>;
    onChainChanged(chainId?: number): Promise<unknown>;
    release(): void;
    private removeListeners;
    getContract(chainId: number, contractType: ContractType, contractAddress?: undefined, runner?: ethers.ContractRunner): ethers.Contract;
    getContractWithSigner(chainId: number, contract: ContractType, contractAddress?: undefined): ethers.Contract;
    getContractWithFetcher(chainId: number, contract: ContractType, contractAddress?: undefined): ethers.Contract;
    sendTransaction(tx: ethers.TransactionRequest): Promise<ethers.TransactionResponse>;
    connectAndPatchProvider(connector: Connector): Promise<number>;
    isPermitterAvailable(): boolean;
    getGasPrice(chainId: number): Promise<bigint>;
    private static readonly FALLBACK_METHODS;
    private wrapTransportWithRpcFallback;
    walletClientToSigner(walletClient: any, chainId: number): Promise<ethers.JsonRpcSigner>;
    supportsBatchCall(chainId: number): Promise<boolean>;
    private waitForBatchTransactionStatus;
    sendBatchCallsTransaction(chainId: number, calls: Call[]): Promise<ethers.TransactionResponse>;
}
export declare const wagmiProviderAdapter: WagmiProviderAdapter;
declare const _default: <T = unknown>() => IProviderAdapter<T>;
export default _default;
