import { ethers, providers } from 'ethers'; import { Logger } from 'pino'; import { ChainMap, ChainName, DispatchedMessage, HookConfig, HyperlaneCore, IsmConfig, MultiProvider } from '@hyperlane-xyz/sdk'; import { Address, WithAddress } from '@hyperlane-xyz/utils'; import { BaseMetadataBuilder } from '../metadata/builder.js'; import { RelayerCache } from './cache.js'; import { RelayerObserver } from './events.js'; type DerivedHookConfig = WithAddress>; type DerivedIsmConfig = WithAddress>; export declare class HyperlaneRelayer { protected multiProvider: MultiProvider; protected metadataBuilder: BaseMetadataBuilder; protected readonly core: HyperlaneCore; protected readonly retryTimeout: number; protected readonly whitelist: ChainMap> | undefined; protected readonly observer: RelayerObserver; backlog: RelayerCache['backlog']; cache: RelayerCache | undefined; protected stopRelayingHandler: ((chains?: ChainName[]) => void) | undefined; readonly logger: Logger; constructor({ core, caching, retryTimeout, whitelist, observer, }: { core: HyperlaneCore; caching?: boolean; retryTimeout?: number; whitelist?: ChainMap; observer?: RelayerObserver; }); getHookConfig(chain: ChainName, hook: Address, messageContext?: DispatchedMessage): Promise; getIsmConfig(chain: ChainName, ism: Address, messageContext?: DispatchedMessage): Promise; getSenderHookConfig(message: DispatchedMessage): Promise; getRecipientIsmConfig(message: DispatchedMessage): Promise; relayAll(dispatchTx: providers.TransactionReceipt, messages?: DispatchedMessage[]): Promise>; relayMessage(dispatchTx: providers.TransactionReceipt, messageIndex?: number, message?: DispatchedMessage): Promise; hydrate(cache: RelayerCache): void; hydrateDefaults(): Promise; protected flushBacklog(): Promise; protected whitelistChains(): string[] | undefined; start(): void; stop(): void; } export {}; //# sourceMappingURL=HyperlaneRelayer.d.ts.map