import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
import { EventEmitter } from "events";
import { TransportType } from "./transports.js";
import type { MCPServerConfig, MCPTool, ServerStatus } from "./types.js";
export type { MCPServerConfig, MCPTool, ServerStatus } from "./types.js";
export declare class MCPManager extends EventEmitter {
    private clients;
    private transports;
    private tools;
    private serverConfigs;
    private serverStatuses;
    private retryCounts;
    private healthCheckIntervals;
    addServer(config: MCPServerConfig): Promise<void>;
    private startHealthCheck;
    private stopHealthCheck;
    private handleServerError;
    getServerStatus(serverName: string): ServerStatus | undefined;
    removeServer(serverName: string): Promise<void>;
    callTool(toolName: string, arguments_: Record<string, unknown>): Promise<CallToolResult>;
    getTools(): MCPTool[];
    getServers(): string[];
    shutdown(): Promise<void>;
    /**
     * Dispose and cleanup all resources
     */
    dispose(): Promise<void>;
    getTransportType(serverName: string): TransportType | undefined;
    ensureServersInitialized(): Promise<void>;
}
