import { ethers } from 'ethers'; import { ChainMap, ChainName, IChainConnection, Remotes } from '../types'; import { MultiGeneric } from '../utils/MultiGeneric'; import { ChainConnection } from './ChainConnection'; export declare class MultiProvider extends MultiGeneric { constructor(chainConnectionConfigs: ChainMap); /** * Get chainConnection for a chain * @throws if chain is invalid or has not been set */ getChainConnection(chain: Chain): ChainConnection; /** * Get chainConnection for a chain * @returns value or null if chain value has not been set */ tryGetChainConnection(chain: Chain): ChainConnection | null; /** * Set value for a chain * @throws if chain is invalid or has not been set */ setChainConnection(chain: Chain, chainConnectionConfig: IChainConnection): ChainConnection; /** * Get provider for a chain * @throws if chain is invalid or has not been set */ getChainProvider(chain: Chain): ethers.providers.Provider; /** * Get provider for a chain * @returns value or null if chain value has not been set */ tryGetChainProvider(chain: Chain): ethers.providers.Provider | null; /** * Get signer for a chain * @throws if chain is invalid or has not been set */ getChainSigner(chain: Chain): ethers.Signer; /** * Get signer for a chain * @returns value or null if chain value has not been set */ tryGetChainSigner(chain: Chain): ethers.Signer | null; /** * Create a new MultiProvider which includes the provided chain connection config */ extendWithChain>(chain: New, chainConnectionConfig: IChainConnection): MultiProvider; /** * Create a new MultiProvider from the intersection * of current's chains and the provided chain list */ intersect(chains: ChainName[]): { intersection: IntersectionChain[]; multiProvider: MultiProvider; }; } //# sourceMappingURL=MultiProvider.d.ts.map