import { ArtifactNew, UnsetArtifactAddress } from './artifact.js'; import { ChainLookup } from './chain.js'; import type { DerivedHookConfig, HookConfig } from './hook.js'; import type { DerivedIsmConfig, IsmConfig } from './ism.js'; import { DeployedMailboxArtifact, MailboxArtifactConfig } from './mailbox.js'; import { DeployedValidatorAnnounceArtifact } from './validator-announce.js'; export type CoreModuleType = { config: CoreConfig; derived: DerivedCoreConfig; addresses: DeployedCoreAddresses; }; export interface CoreConfig { owner: string; defaultIsm: IsmConfig | string; defaultHook: HookConfig | string; requiredHook: HookConfig | string; } export interface DerivedCoreConfig extends CoreConfig { defaultIsm: DerivedIsmConfig | UnsetArtifactAddress; defaultHook: DerivedHookConfig | UnsetArtifactAddress; requiredHook: DerivedHookConfig | UnsetArtifactAddress; } export type DeployedCoreAddresses = { staticMerkleRootMultisigIsmFactory: string; staticMessageIdMultisigIsmFactory: string; staticAggregationIsmFactory: string; staticAggregationHookFactory: string; domainRoutingIsmFactory: string; incrementalDomainRoutingIsmFactory: string; staticMerkleRootWeightedMultisigIsmFactory: string; staticMessageIdWeightedMultisigIsmFactory: string; mailbox: string; validatorAnnounce: string; proxyAdmin: string; testRecipient: string; timelockController?: string; interchainAccountRouter: string; merkleTreeHook?: string; interchainGasPaymaster?: string; protocolFee?: string; }; /** * Converts CoreConfig to MailboxOnChain artifact format. * Converts nested ISM and hook configs to artifact format. * * @param config CoreConfig with ISM/hook configs or addresses * @param chainLookup Chain lookup for domain resolution * @returns Mailbox artifact ready for deployment */ export declare function coreConfigToArtifact(config: CoreConfig, chainLookup: ChainLookup): ArtifactNew; /** * Converts CoreWriter result to DeployedCoreAddresses format. * Maps deployed ISM and hook types to factory address fields. * * @param result CoreWriter create() result with mailbox and validator announce artifacts * @returns DeployedCoreAddresses with factory addresses mapped */ export declare function coreResultToDeployedAddresses(result: { mailbox: DeployedMailboxArtifact; validatorAnnounce: DeployedValidatorAnnounceArtifact | null; }): DeployedCoreAddresses; //# sourceMappingURL=core.d.ts.map