/**
 * Stdio client implementation for MCP servers using official MCP SDK
 */
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { ListToolsResult, CallToolRequest } from "@modelcontextprotocol/sdk/types.js";
import { EventEmitter } from "events";
import { StdioServerConfig } from "../../types/config.js";
import { ConnectionOptions } from "../types.js";
import { BaseConnection } from "./base.js";
/**
 * Stdio client wrapper using proper MCP SDK Client
 */
export declare class StdioClient extends EventEmitter {
    private config;
    private client;
    private isConnected;
    constructor(config: StdioServerConfig);
    get isRunning(): boolean;
    /**
     * Start the MCP server process using SDK Client
     */
    start(): Promise<void>;
    /**
     * Stop the MCP server process
     */
    stop(): Promise<void>;
    /**
     * List tools from the MCP server
     */
    listTools(): Promise<ListToolsResult>;
    /**
     * Call a tool on the MCP server
     */
    callTool(params: CallToolRequest["params"]): Promise<any>;
    /**
     * Ping the server to check if it's responsive
     */
    ping(): Promise<boolean>;
    /**
     * Get the SDK client instance for advanced operations
     */
    get sdkClient(): Client | null;
}
/**
 * Stdio connection implementation
 */
export declare class StdioConnection extends BaseConnection<StdioClient> {
    protected _client: StdioClient | null;
    constructor(serverName: string, config: StdioServerConfig, options?: ConnectionOptions);
    /**
     * Connect to the stdio server
     */
    protected doConnect(): Promise<void>;
    /**
     * Disconnect from the stdio server
     */
    protected doDisconnect(): Promise<void>;
    /**
     * Ping the stdio server
     */
    protected doPing(): Promise<boolean>;
}
//# sourceMappingURL=stdio.d.ts.map