import type { ChainMap, ChainMetadata, ChainName, WarpCoreConfig, WarpRouteDeployConfig } from '@hyperlane-xyz/sdk'; import { AddWarpRouteConfigOptions, ChainAddresses, MaybePromise, WarpDeployConfigMap, WarpRouteConfigMap, WarpRouteId, WarpRouteFilterParams, UpdateChainParams } from '../types.js'; type MethodsOf = { [K in keyof T]: T[K] extends (...args: any[]) => any ? K : never; }[keyof T]; /** * A type listing all method names on IRegistry. * It is derived from IRegistry to ensure it's always in sync. * Omit is used to avoid a circular reference with the `unimplementedMethods` property. */ export type IRegistryMethods = MethodsOf>; export interface ChainFiles { metadata?: string; addresses?: string; logo?: string; 'darkmode-logo'?: string; } export interface RegistryContent { chains: ChainMap; deployments: { warpRoutes: Record; warpDeployConfig: Record; }; } export declare enum RegistryType { Github = "github", FileSystem = "filesystem", Merged = "merged", Partial = "partial", Http = "http" } export interface IRegistry { type: RegistryType; uri: string; /** * An optional set of method names that are not implemented by the registry. * If a method is in this set, it should not be called. * If this property is undefined, all methods are assumed to be implemented. */ readonly unimplementedMethods?: Set; getUri(itemPath?: string): string; listRegistryContent(): MaybePromise; getChains(): MaybePromise>; getMetadata(): MaybePromise>; getChainMetadata(chainName: ChainName): MaybePromise; getAddresses(): MaybePromise>; getChainAddresses(chainName: ChainName): MaybePromise; getChainLogoUri(chainName: ChainName): Promise; addChain(chain: UpdateChainParams): MaybePromise; updateChain(chain: UpdateChainParams): MaybePromise; removeChain(chain: ChainName): MaybePromise; getWarpRoute(routeId: string): MaybePromise; getWarpRoutes(filter?: WarpRouteFilterParams): MaybePromise; addWarpRoute(config: WarpCoreConfig, options?: AddWarpRouteConfigOptions): MaybePromise; addWarpRouteConfig(config: WarpRouteDeployConfig, options: AddWarpRouteConfigOptions): MaybePromise; getWarpDeployConfig(routeId: string): MaybePromise; getWarpDeployConfigs(filter?: WarpRouteFilterParams): MaybePromise; merge(otherRegistry: IRegistry): IRegistry; } export {};