/**
 * SSE client implementation for connecting to external MCP servers using official MCP SDK
 * This is used when the Meta-MCP server acts as a CLIENT to SSE-based MCP servers (like Context7)
 */
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { ListToolsResult, CallToolRequest } from "@modelcontextprotocol/sdk/types.js";
import { EventEmitter } from "events";
import { BaseConnection } from "./base.js";
import { SSEServerConfig } from "../../types/config.js";
import { ConnectionOptions } from "../types.js";
/**
 * SSE client wrapper using proper MCP SDK Client
 */
export declare class SSEClient extends EventEmitter {
    private config;
    private client;
    private isConnected;
    constructor(config: SSEServerConfig);
    /**
     * Connect to the SSE-based MCP server using SDK Client
     */
    connect(): Promise<void>;
    /**
     * Disconnect from the SSE server
     */
    disconnect(): Promise<void>;
    /**
     * List tools from the MCP server
     */
    listTools(): Promise<ListToolsResult>;
    /**
     * Call a tool on the MCP server
     */
    callTool(params: CallToolRequest["params"]): Promise<any>;
    /**
     * Get the SDK client instance for advanced operations
     */
    get sdkClient(): Client | null;
}
/**
 * SSE connection implementation
 */
export declare class SSEConnection extends BaseConnection<SSEClient> {
    protected _client: SSEClient | null;
    constructor(serverName: string, config: SSEServerConfig, options?: ConnectionOptions);
    /**
     * Create and return SSE client
     */
    protected createClient(): SSEClient;
    /**
     * Connect to the SSE server
     */
    protected doConnect(): Promise<void>;
    /**
     * Disconnect from the SSE server
     */
    protected doDisconnect(): Promise<void>;
    /**
     * Ping the SSE server
     */
    protected doPing(): Promise<boolean>;
}
//# sourceMappingURL=sse.d.ts.map