import { HttpEndpoint, WebSocketEndpoint } from '@interchainjs/utils'; import { ICosmosQueryClient, ICosmosEventClient } from './types/cosmos-client-interfaces'; import { ProtocolVersion } from './types/protocol'; export interface ClientOptions { protocolVersion?: ProtocolVersion; timeout?: number; headers?: Record; } export interface WebSocketClientOptions extends ClientOptions { reconnect?: { maxRetries?: number; retryDelay?: number; exponentialBackoff?: boolean; }; } export declare class CosmosClientFactory { private static detectProtocolAdapter; private static getProtocolAdapter; private static convertToHttpEndpoint; /** * Create a Cosmos query client using HTTP transport */ static createQueryClient(endpoint: string | HttpEndpoint, options?: ClientOptions): Promise; /** * Create a Cosmos event client using WebSocket transport */ static createEventClient(endpoint: string | WebSocketEndpoint, options?: WebSocketClientOptions): Promise; /** * Create both query and event clients sharing the same protocol adapter */ static createClients(httpEndpoint: string | HttpEndpoint, wsEndpoint: string | WebSocketEndpoint, options?: WebSocketClientOptions): Promise<{ queryClient: ICosmosQueryClient; eventClient: ICosmosEventClient; }>; /** * Create a query client with WebSocket support (for both queries and events) */ static createUnifiedClient(endpoint: string | WebSocketEndpoint, options?: WebSocketClientOptions): Promise<{ queryClient: ICosmosQueryClient; eventClient: ICosmosEventClient; }>; } export declare function createCosmosQueryClient(endpoint: string, options?: ClientOptions): Promise; export declare function createCosmosEventClient(endpoint: string, options?: WebSocketClientOptions): Promise;