import { ChainName, DomainRoutingIsmConfig, IsmType, MailboxDefaultIsmConfig, RoutingIsmConfig } from '@hyperlane-xyz/sdk'; import { WithAddress } from '@hyperlane-xyz/utils'; import type { BaseMetadataBuilder } from './builder.js'; import type { MetadataBuilder, MetadataContext, RoutingMetadataBuildResult, StructuredMetadata } from './types.js'; export type RoutingMetadata = { type: typeof IsmType.ROUTING | typeof IsmType.MAILBOX_DEFAULT; origin: ChainName; metadata: T; }; export declare class StaticRoutingMetadataBuilder implements MetadataBuilder { protected baseMetadataBuilder: BaseMetadataBuilder; constructor(baseMetadataBuilder: BaseMetadataBuilder); build(context: MetadataContext>, maxDepth?: number): Promise; static decode(metadata: string, context: MetadataContext>, decodeFn: (metadata: string, context: MetadataContext) => StructuredMetadata): RoutingMetadata; } export declare class DynamicRoutingMetadataBuilder extends StaticRoutingMetadataBuilder { protected baseMetadataBuilder: BaseMetadataBuilder; constructor(baseMetadataBuilder: BaseMetadataBuilder); build(context: MetadataContext>, maxDepth?: number): Promise; /** * The mailbox default ISM picks its sub-module through an on-chain * `route(message)` call (see build), which a synchronous decode cannot make. * The sub-module's metadata is therefore surfaced as raw bytes instead of * being decoded against a module that may not be the one that verified. */ static decodeMailboxDefault(metadata: string, context: MetadataContext>): RoutingMetadata; } //# sourceMappingURL=routing.d.ts.map