import type { ChainMetadata } from '@hyperlane-xyz/sdk/metadata/chainMetadataTypes'; import type { WarpRouteDeployConfig } from '@hyperlane-xyz/sdk/token/types'; import type { ChainMap, ChainName } from '@hyperlane-xyz/sdk/types'; import type { WarpCoreConfig } from '@hyperlane-xyz/sdk/warp/types'; import type { Logger } from 'pino'; import { AddWarpRouteConfigOptions, ChainAddresses, UpdateChainParams, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteFilterParams, WarpRouteId } from '../types.js'; import { IRegistry, IRegistryMethods, RegistryContent, RegistryType } from './IRegistry.js'; export interface MergedRegistryOptions { registries: Array; logger?: Logger; } /** * A registry that accepts multiple sub-registries. * Read methods are performed on all sub-registries and the results are merged. * Write methods are performed on all sub-registries. * Can be created manually or by calling `.merge()` on an existing registry. */ export declare class MergedRegistry implements IRegistry { readonly type = RegistryType.Merged; readonly uri = "__merged_registry__"; readonly registries: Array; protected readonly logger: Logger; constructor({ registries, logger }: MergedRegistryOptions); getUri(): string; listRegistryContent(): Promise; getChains(): Promise>; getMetadata(): Promise>; getChainMetadata(chainName: ChainName): Promise; getAddresses(): Promise>; getChainAddresses(chainName: ChainName): Promise; getChainLogoUri(chainName: ChainName): Promise; addChain(chain: UpdateChainParams): Promise; updateChain(chain: UpdateChainParams): Promise; removeChain(chain: ChainName): Promise; getWarpRoute(id: WarpRouteId): Promise; getWarpDeployConfig(id: WarpRouteId): Promise; getWarpRoutes(filter?: WarpRouteFilterParams): Promise; getWarpDeployConfigs(filter?: WarpRouteFilterParams): Promise; addWarpRoute(config: WarpCoreConfig, options?: AddWarpRouteConfigOptions): Promise; addWarpRouteConfig(config: WarpRouteDeployConfig, options: AddWarpRouteConfigOptions): Promise; protected multiRegistryRead(readFn: (registry: IRegistry) => Promise | R): Promise; protected multiRegistryWrite(writeFn: (registry: IRegistry) => Promise, methodName: IRegistryMethods, logMsg: string): Promise; merge(otherRegistry: IRegistry): IRegistry; }