import { JsonRpcProvider } from '@ethersproject/providers'; import { ethers } from 'ethers'; import { Store } from 'vuex'; import { Chain } from '../chain'; import { IEthereumStore } from './IEthereumStore'; import { WalletApplications } from './WalletApplications'; import { WalletInfo } from './WalletInfo'; export declare enum RpcProviderType { JSON = 0, BATCH = 1 } export declare const WALLET_LOCAL_STORAGE_KEY = "ethereum/walletInfo"; export declare class WalletProvider { private readonly defaultChain; private readonly availableChains; private readonly store?; private readonly jsonProviders; private readonly batchProviders; private readonly storage; private initializedEvents; private ethereum; private walletInfo; constructor({ defaultChain, availableChains, store, customRpcs, }: { defaultChain: Chain; availableChains: Chain[]; store?: Store; customRpcs?: { [chain in Chain]?: string; }; }); connect(walletApplication: WalletApplications): Promise; reconnect(): Promise; getWalletInfo(): WalletInfo | null; disconnect(): void; getProvider({ chain, rpcProviderType, }?: { chain?: Chain; rpcProviderType?: RpcProviderType; }): JsonRpcProvider; getSigner(requireChain?: boolean): Promise; request({ method, params }: { method: string; params?: object[]; }): Promise; private getWalletAddress; private getWalletChain; private getValidChain; private commit; private _updateAddress; private _updateChain; private _addEventListener; } export { WalletInfo } from './WalletInfo'; export { WalletApplications } from './WalletApplications'; export { Web3Errors } from './Web3Errors';