import type { ToolsCallMessage, ResourcesReadMessage, LoggingMessage } from "./messages"; import type { TRpcMessageParams } from "./rpc"; import type { MaybePromise } from "./utils"; export interface McpClientConfig { name?: string; version?: string; transport?: "streamableHttp"; url: string | URL; headers?: Record; fetch?: typeof fetch | ((url: string | RequestInfo | URL, options?: RequestInit) => MaybePromise); } export declare class McpClient { readonly config: McpClientConfig; private id; private sessionId; constructor(config: McpClientConfig); private request; connect(): Promise<{ protocolVersion: string; capabilities: { tools: {} | undefined; resources: {} | undefined; logging: {}; completions: {}; }; serverInfo: { version: string; name: string; }; } | undefined>; ping(): Promise<{} | undefined>; setLoggingLevel(level: TRpcMessageParams["level"]): Promise<{} | undefined>; listResources(): Promise<{ resources: { [x: string]: string | number | { [key: string]: unknown; } | undefined; name: any; title: string | undefined; description: string | undefined; mimeType: string | undefined; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; }[]; } | undefined>; listResourceTemplates(): Promise<{ resourceTemplates: { [x: string]: string | number | { [key: string]: unknown; } | undefined; name: any; title: string | undefined; description: string | undefined; mimeType: string | undefined; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; }[]; } | undefined>; readResource(message: TRpcMessageParams): Promise<{ contents: ({ mimeType: string; title?: string; description?: string; text?: string; uri: `${string}://${string}`; name: string; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; } | { mimeType: string; title?: string; description?: string; blob?: string; uri: `${string}://${string}`; name: string; size: number | undefined; _meta: { [key: string]: unknown; } | undefined; })[]; } | undefined>; callTool(message: TRpcMessageParams): Promise<{ content: (import("./tool").ToolResponseText & any[]) | import("./tool").ToolResponseText[]; } | { content: { type: string; text: string; }[]; isError: boolean; } | undefined>; listTools(): Promise<{ tools: { name: any; title: string | undefined; description: string | undefined; inputSchema: import("../lib").JSONSchemaDefinition; outputSchema: import("../lib").JSONSchemaDefinition | undefined; annotations: { title?: string | undefined; readOnlyHint?: boolean | undefined; destructiveHint?: boolean | undefined; idempotentHint?: boolean | undefined; openWorldHint?: boolean | undefined; } | undefined; _meta: { [key: string]: unknown; } | undefined; }[]; } | undefined>; }