import { ethers } from 'ethers'; import { AmountRoutingHook, ArbL2ToL1Hook, CCIPHook, DomainRoutingHook, InterchainGasPaymaster, OPStackHook, PausableHook, ProtocolFee, StaticAggregationHook, StorageGasOracle } from '@hyperlane-xyz/core'; import { Address, Domain, EvmChainId, ProtocolType } from '@hyperlane-xyz/utils'; import { CCIPContractCache } from '../ccip/utils.js'; import { HyperlaneAddresses } from '../contracts/types.js'; import { HyperlaneModule, HyperlaneModuleParams } from '../core/AbstractHyperlaneModule.js'; import { CoreAddresses } from '../core/contracts.js'; import { HyperlaneDeployer } from '../deploy/HyperlaneDeployer.js'; import { ProxyFactoryFactories } from '../deploy/contracts.js'; import { ContractVerifier } from '../deploy/verify/ContractVerifier.js'; import { IgpConfig } from '../gas/types.js'; import { HyperlaneIsmFactory } from '../ism/HyperlaneIsmFactory.js'; import { MultiProvider } from '../providers/MultiProvider.js'; import { AnnotatedEV5Transaction } from '../providers/ProviderType.js'; import { ChainName, ChainNameOrId } from '../types.js'; import { EvmHookReader } from './EvmHookReader.js'; import { DeployedHook, HookFactories } from './contracts.js'; import { AggregationHookConfig, AmountRoutingHookConfig, ArbL2ToL1HookConfig, CCIPHookConfig, DerivedHookConfig, DomainRoutingHookConfig, FallbackRoutingHookConfig, HookConfig, IgpHookConfig, OpStackHookConfig, PausableHookConfig, ProtocolFeeHookConfig } from './types.js'; type HookModuleAddresses = { deployedHook: Address; mailbox: Address; proxyAdmin: Address; }; declare class HookDeployer extends HyperlaneDeployer<{}, HookFactories> { protected cachingEnabled: boolean; deployContracts(_chain: ChainName, _config: {}): Promise; } export declare class EvmHookModule extends HyperlaneModule & HookModuleAddresses> { protected readonly multiProvider: MultiProvider; protected readonly contractVerifier?: ContractVerifier | undefined; static protocols: ProtocolType[]; protected readonly logger: import("pino").default.Logger; protected readonly reader: EvmHookReader; protected readonly hookFactory: HyperlaneIsmFactory; protected readonly deployer: HookDeployer; readonly chain: ChainName; readonly chainId: EvmChainId; readonly domainId: Domain; protected readonly txOverrides: Partial; constructor(multiProvider: MultiProvider, params: HyperlaneModuleParams & HookModuleAddresses>, ccipContractCache?: CCIPContractCache, contractVerifier?: ContractVerifier | undefined); read(): Promise; update(targetConfig: HookConfig): Promise; static create({ chain, config, proxyFactoryFactories, coreAddresses, multiProvider, ccipContractCache, contractVerifier, }: { chain: ChainNameOrId; config: HookConfig; proxyFactoryFactories: HyperlaneAddresses; coreAddresses: Omit; multiProvider: MultiProvider; ccipContractCache?: CCIPContractCache; contractVerifier?: ContractVerifier; }): Promise; protected computeRoutingHooksToSet({ currentDomains, targetDomains, }: { currentDomains: DomainRoutingHookConfig['domains']; targetDomains: DomainRoutingHookConfig['domains']; }): Promise; protected updateMutableHook(configs: { current: Exclude; target: Exclude; }): Promise; protected updatePausableHook({ currentConfig, targetConfig, }: { currentConfig: PausableHookConfig; targetConfig: PausableHookConfig; }): Promise; protected updateIgpHook({ currentConfig, targetConfig, }: { currentConfig: IgpHookConfig; targetConfig: IgpHookConfig; }): Promise; protected updateIgpRemoteGasParams({ interchainGasPaymaster, gasOracle, currentOverheads, targetOverheads, }: { interchainGasPaymaster: Address; gasOracle: Address; currentOverheads?: IgpConfig['overhead']; targetOverheads: IgpConfig['overhead']; }): Promise; protected updateStorageGasOracle({ gasOracle, currentOracleConfig, targetOracleConfig, targetOverhead, }: { gasOracle: Address; currentOracleConfig?: IgpConfig['oracleConfig']; targetOracleConfig: IgpConfig['oracleConfig']; targetOverhead: IgpConfig['overhead']; }): Promise; protected updateProtocolFeeHook({ currentConfig, targetConfig, }: { currentConfig: ProtocolFeeHookConfig; targetConfig: ProtocolFeeHookConfig; }): Promise; protected updateRoutingHook({ currentConfig, targetConfig, }: { currentConfig: DomainRoutingHookConfig | FallbackRoutingHookConfig; targetConfig: DomainRoutingHookConfig | FallbackRoutingHookConfig; }): Promise; protected deploy({ config, }: { config: HookConfig; }): Promise; protected deployProtocolFeeHook({ config, }: { config: ProtocolFeeHookConfig; }): Promise; protected deployPausableHook({ config, }: { config: PausableHookConfig; }): Promise; protected deployAggregationHook({ config, }: { config: AggregationHookConfig; }): Promise; protected deployOpStackHook({ config, }: { config: OpStackHookConfig; }): Promise; protected deployArbL1ToL1Hook({ config, }: { config: ArbL2ToL1HookConfig; }): Promise; protected deployCCIPHook({ config, }: { config: CCIPHookConfig; }): Promise; protected deployRoutingHook({ config, }: { config: DomainRoutingHookConfig | FallbackRoutingHookConfig; }): Promise; protected deployIgpHook({ config, }: { config: IgpHookConfig; }): Promise; protected deployInterchainGasPaymaster({ storageGasOracle, config, }: { storageGasOracle: StorageGasOracle; config: IgpConfig; }): Promise; protected deployAmountRoutingHook({ config, }: { config: AmountRoutingHookConfig; }): Promise; protected deployStorageGasOracle({ config, }: { config: IgpConfig; }): Promise; } export {}; //# sourceMappingURL=EvmHookModule.d.ts.map