import { Domain, EvmChainId, ProtocolType } from '@hyperlane-xyz/utils'; import { HyperlaneAddresses } from '../contracts/types.js'; import { ContractVerifier } from '../deploy/verify/ContractVerifier.js'; import { EvmIcaRouterReader } from '../ica/EvmIcaReader.js'; import { DerivedIcaRouterConfig } from '../ica/types.js'; import { InterchainAccountConfig } from '../index.js'; import { InterchainAccountFactories } from '../middleware/account/contracts.js'; import { MultiProvider } from '../providers/MultiProvider.js'; import { AnnotatedEV5Transaction } from '../providers/ProviderType.js'; import { ChainNameOrId } from '../types.js'; import { HyperlaneModule, HyperlaneModuleParams } from './AbstractHyperlaneModule.js'; export declare class EvmIcaModule extends HyperlaneModule> { protected readonly multiProvider: MultiProvider; protected logger: import("pino").default.Logger; protected icaRouterReader: EvmIcaRouterReader; readonly domainId: Domain; readonly chainId: EvmChainId; constructor(multiProvider: MultiProvider, args: HyperlaneModuleParams>); read(): Promise; update(expectedConfig: InterchainAccountConfig): Promise; private updateRemoteRoutersEnrollment; /** * Generates transactions to approve fee tokens for hooks. * Only generates transactions for approvals that are not already set to max. */ private getFeeTokenApprovalTxs; private getEnrollRemoteRoutersTxs; private getUnenrollRemoteRoutersTxs; /** * Creates a new EvmIcaModule instance by deploying an ICA with an ICA ISM. * * @param chain - The chain on which to deploy the ICA. * @param config - The configuration for the ICA. * @param multiProvider - The MultiProvider instance to use for deployment. * @returns {Promise} - A new EvmIcaModule instance. */ static create({ chain, config, multiProvider, contractVerifier, }: { chain: ChainNameOrId; config: InterchainAccountConfig; multiProvider: MultiProvider; contractVerifier?: ContractVerifier; }): Promise; } //# sourceMappingURL=EvmIcaModule.d.ts.map