import { type McpCapabilitySnapshot, type McpServerConfig, type McpToolEffects } from "./mcp.js"; export interface McpJsonRpcError { code: number; message: string; data?: unknown; } export interface McpJsonRpcResponse { jsonrpc: "2.0"; id?: string | number | null; result?: unknown; error?: McpJsonRpcError; } export interface McpCallResult { result: unknown; requestId: string; effect: McpToolEffects; } export type McpConnectionState = "starting" | "ready" | "degraded" | "reconnecting" | "failed" | "stopped"; export interface McpClientOptions { cwd?: string; env?: NodeJS.ProcessEnv; onEvent?: (event: McpHealthEvent) => void; } export interface McpHealthEvent { state: McpConnectionState; reason: string; at: string; attempt: number; } export declare class McpTransportError extends Error { readonly code: "configuration" | "timeout" | "cancelled" | "authentication" | "schema" | "network" | "protocol" | "process"; readonly retryable: boolean; constructor(code: McpTransportError["code"], message: string, retryable?: boolean); } export declare class McpClient { private readonly config; private readonly options; private identity?; private snapshot?; private state; private readonly stdio?; private readonly http?; constructor(config: McpServerConfig, options?: McpClientOptions); get health(): McpConnectionState; get capabilitySnapshot(): McpCapabilitySnapshot | undefined; connect(): Promise; callTool(name: string, argumentsValue: unknown, signal?: AbortSignal): Promise; listResources(signal?: AbortSignal): Promise; readResource(uri: string, signal?: AbortSignal): Promise; listPrompts(signal?: AbortSignal): Promise; inspectPrompt(name: string, argumentsValue?: Record, signal?: AbortSignal): Promise; refreshCapabilities(): Promise; close(): Promise; private requestRaw; private emit; } export declare function createMcpClient(config: McpServerConfig, options?: McpClientOptions): McpClient; export declare function redactMcpError(error: unknown): string; //# sourceMappingURL=mcp-client.d.ts.map