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, DeepPartial, WarpRouteId } from '../types.js'; import { IRegistry, RegistryContent, RegistryType } from './IRegistry.js'; import { SynchronousRegistry } from './SynchronousRegistry.js'; /** * A registry that accepts partial data, such as incomplete chain metadata or addresses. * Useful for merging with other registries force overrides of subsets of data. */ export interface PartialRegistryOptions { chainMetadata?: ChainMap>; chainAddresses?: ChainMap>; warpRoutes?: Array>; warpDeployConfigs?: Array>; logger?: Logger; } export declare class PartialRegistry extends SynchronousRegistry implements IRegistry { readonly type = RegistryType.Partial; chainMetadata: ChainMap>; chainAddresses: ChainMap>; warpRoutes: Array>; warpDeployConfigs: Array>; constructor({ chainMetadata, chainAddresses, warpRoutes, warpDeployConfigs, logger, }: PartialRegistryOptions); listRegistryContent(): RegistryContent; getMetadata(): ChainMap; getAddresses(): ChainMap; removeChain(chainName: ChainName): void; addWarpRoute(_config: WarpCoreConfig): void; addWarpRouteConfig(_config: WarpRouteDeployConfig, _options: AddWarpRouteConfigOptions): void; protected getWarpRoutesForIds(ids: WarpRouteId[]): WarpCoreConfig[]; protected getWarpDeployConfigForIds(_ids: WarpRouteId[]): WarpRouteDeployConfig[]; protected createOrUpdateChain(chain: { chainName: ChainName; metadata?: ChainMetadata; addresses?: ChainAddresses; }): void; }