import { type ArtifactReader, type ArtifactWriter } from '@hyperlane-xyz/provider-sdk/artifact'; import { type DeployedHookAddress, type DeployedHookArtifact, type HookType, type IRawHookArtifactManager, type RawHookArtifactConfigs } from '@hyperlane-xyz/provider-sdk/hook'; import { type CosmosNativeSigner } from '../clients/signer.js'; /** * Cosmos Hook Artifact Manager implementing IRawHookArtifactManager. * * This manager: * - Lazily initializes the query client on first use * - Provides factory methods for creating readers and writers * - Supports IGP and MerkleTree hook types * * Design: Uses lazy initialization to keep the constructor synchronous while * deferring the async query client creation until actually needed. */ export declare class CosmosHookArtifactManager implements IRawHookArtifactManager { private readonly config; private readonly query; constructor(config: { rpcUrls: [string, ...string[]]; mailboxAddress?: string; nativeTokenDenom: string; }); /** * Lazy initialization - creates query client on first use. * Subsequent calls return the cached promise. */ private getQuery; /** * Creates a Cosmos query client with PostDispatch extension. */ private createQuery; /** * Read a hook of unknown type from the blockchain. * * @param address - Address of the hook to read * @returns Deployed hook artifact with configuration */ readHook(address: string): Promise; /** * Factory method to create type-specific hook readers. * * @param type - Hook type to create reader for * @returns Type-specific hook reader */ createReader(type: T): ArtifactReader; /** * Internal helper to create type-specific hook readers with query client. * * @param type - Hook type to create reader for * @param query - Query client to use for reading * @returns Type-specific hook reader */ private createReaderWithQuery; /** * Factory method to create type-specific hook writers. * * @param type - Hook type to create writer for * @param signer - Signer to use for writing transactions * @returns Type-specific hook writer */ createWriter(type: T, signer: CosmosNativeSigner): ArtifactWriter; /** * Internal helper to create type-specific hook writers with query client and signer. * * @param type - Hook type to create writer for * @param query - Query client to use for reading * @param signer - Signer to use for writing * @returns Type-specific hook writer */ private createWriterWithQuery; } //# sourceMappingURL=hook-artifact-manager.d.ts.map