import { ProtocolType } from '@hyperlane-xyz/utils'; import { ChainMap, ProtocolMap } from '../../../types.js'; import { MultiProvider } from '../../MultiProvider.js'; import { TxSubmitterInterface } from './TxSubmitterInterface.js'; import { TxSubmitterBuilder } from './builder/TxSubmitterBuilder.js'; import { SubmissionStrategy } from './builder/types.js'; import { SubmitterMetadata } from './types.js'; export type SubmitterBuilderSettings = { submissionStrategy: SubmissionStrategy; multiProvider: MultiProvider; coreAddressesByChain: ChainMap>; additionalSubmitterFactories?: ProtocolMap>; }; export declare function getSubmitterBuilder({ submissionStrategy, multiProvider, coreAddressesByChain, additionalSubmitterFactories, }: SubmitterBuilderSettings): Promise>; export type SubmitterFactory = (multiProvider: MultiProvider, metadata: SubmitterMetadata, coreAddressesByChain: ChainMap>) => Promise> | TxSubmitterInterface; /** * Retrieves a transaction submitter instance based on the provided metadata. * This function acts as a factory, using a registry of submitter builders * to construct the appropriate submitter for the given protocol and submission strategy. * It allows for extending the default registry with custom submitter types. * * @param multiProvider - The MultiProvider instance * @param submitterMetadata - The metadata defining the type and configuration of the submitter. * @param coreAddressesByChain - The address of the core Hyperlane deployments by chain. Used for filling some default values for the submission strategies. * @param additionalSubmitterFactories optional extension to extend the default registry. Can override if specifying the same key. * @returns A promise that resolves to an instance of a TxSubmitterInterface. * @throws If no submitter factory is registered for the type specified in the metadata. */ export declare function getSubmitter(multiProvider: MultiProvider, submitterMetadata: SubmitterMetadata, coreAddressesByChain: ChainMap>, additionalSubmitterFactories?: ProtocolMap>): Promise>; //# sourceMappingURL=submitterBuilderGetter.d.ts.map