import { ChainTypeName } from "../constants/interopAddress.js"; /** Default onchain ENS registry domain for chain resolution. */ export declare const DEFAULT_REGISTRY_DOMAIN = "on.eth"; export interface ResolvedChainFromRegistry { chainType: ChainTypeName; chainReference: string; } /** Clears the resolver and resolution caches. Useful for testing. */ export declare function clearRegistryCache(): void; /** * Resolves a chain label to chainType and chainReference using an onchain ENS-based registry. * * This implements forward resolution via the ChainResolver contract: * 1. Gets the resolver for the registry domain (e.g., on.eth) from ENS registry * 2. Calls interoperableAddress(label) on the resolver with the label string * 3. Decodes the returned ERC-7930 binary format * * Results are cached in memory. Concurrent calls for the same label+domain share a single * in-flight request. Transient errors are not cached and will be retried on the next call. * * @param label - The chain label to resolve (e.g., "optimism", "arbitrum", "base") * @param registryDomain - The ENS registry domain (e.g., "on.eth") * @param rpcUrl - Optional custom mainnet RPC URL. Falls back to MAINNET_RPC_URL env var, then a default public endpoint. * @returns The resolved chainType and chainReference, or null if resolution fails * * @example * ```ts * // Resolve "optimism" using on.eth registry * const result = await resolveChainFromRegistry("optimism", "on.eth"); * // result: { chainType: "eip155", chainReference: "10" } * ``` */ export declare function resolveChainFromRegistry(label: string, registryDomain: string, rpcUrl?: string): Promise; //# sourceMappingURL=resolveChainFromRegistry.d.ts.map