import { type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact'; import { type DeployedIsmAddress, type DeployedRawIsmArtifact, type IRawIsmArtifactManager, type IsmType, type RawIsmArtifactConfigs } from '@hyperlane-xyz/provider-sdk/ism'; import { type CosmosNativeSigner } from '../clients/signer.js'; /** * Cosmos ISM Artifact Manager implementing IRawIsmArtifactManager. * * This manager: * - Lazily initializes the query client on first use * - Detects ISM types and delegates to specialized readers * - Provides factory methods for creating readers and writers * * Design: Uses lazy initialization to keep the constructor synchronous while * deferring the async query client creation until actually needed. */ export declare class CosmosIsmArtifactManager implements IRawIsmArtifactManager { private readonly rpcUrls; private readonly query; constructor(rpcUrls: string[]); /** * Lazy initialization - creates query client on first use. * Subsequent calls return the cached promise. */ private getQuery; /** * Creates a Cosmos query client with ISM extension. */ private createQuery; /** * Read an ISM of unknown type from the blockchain. * * @param address - Address of the ISM to read * @returns Deployed ISM artifact with configuration */ readIsm(address: string): Promise; /** * Factory method to create type-specific ISM readers (public interface). * Note: This method doesn't have access to query client yet, so it must be async. * * @param type - ISM type to create reader for * @returns Type-specific ISM reader */ createReader(type: T): ArtifactReader; /** * Internal helper to create type-specific ISM readers with query client. * * @param type - ISM type to create reader for * @param query - Query client to use for reading * @returns Type-specific ISM reader */ private createReaderWithQuery; /** * Factory method to create type-specific ISM writers. * * @param type - ISM type to create writer for * @param signer - Signer to use for writing transactions * @returns Type-specific ISM writer */ createWriter(type: T, signer: CosmosNativeSigner): ArtifactWriter; /** * Internal helper to create type-specific ISM writers with query client and signer. * * @param type - ISM type to create writer for * @param query - Query client to use for reading * @param signer - Signer to use for writing * @returns Type-specific ISM writer */ private createWriterWithQuery; } //# sourceMappingURL=ism-artifact-manager.d.ts.map