import { Address, HexString } from '@hyperlane-xyz/utils'; import type { ChainMetadata } from '../metadata/chainMetadataTypes.js'; import type { ChainMap, ChainName, ChainNameOrId } from '../types.js'; import { MinimalProviderRegistry, MinimalProviderRegistryOptions } from './MinimalProviderRegistry.js'; import { MultiProvider, MultiProviderOptions } from './MultiProvider.js'; import { ProviderType, TypedTransaction, TypedProvider } from './ProviderType.js'; import { TransactionFeeEstimate } from './transactionFeeEstimators.js'; export interface MultiProviderAdapterOptions extends MinimalProviderRegistryOptions { } export declare function wrapMultiProviderProviders(chainMetadata: ChainMap>, providers: MultiProvider['providers']): ChainMap; export declare function createAdapterFromMultiProvider = MultiProviderAdapter>(AdapterClass: new (chainMetadata: ChainMap>, options?: TOptions) => TAdapter, mp: MultiProvider, options?: TOptions): TAdapter; export declare class MultiProviderAdapter extends MinimalProviderRegistry { protected readonly options: MultiProviderAdapterOptions; protected getDefaultProviderType(chainNameOrId: ChainNameOrId): ProviderType | undefined; constructor(chainMetadata: ChainMap>, options?: MultiProviderAdapterOptions); static fromMultiProvider(mp: MultiProvider, options?: MultiProviderAdapterOptions): MultiProviderAdapter; tryGetProvider(chainNameOrId: ChainNameOrId, type?: ProviderType): TypedProvider | null; toMultiProvider(options?: MultiProviderOptions): MultiProvider; extendChainMetadata(additionalMetadata: ChainMap): MultiProviderAdapter; intersect(chains: ChainName[], throwIfNotSubset?: boolean): { intersection: ChainName[]; result: MultiProviderAdapter; }; estimateTransactionFee({ chainNameOrId, transaction, sender, senderPubKey, }: { chainNameOrId: ChainNameOrId; transaction: TypedTransaction; sender: Address; senderPubKey?: HexString; }): Promise; } //# sourceMappingURL=MultiProviderAdapter.d.ts.map