import type { FullToolInfo, Logger, McpServerConfig } from '@polka-codes/core';
import type { McpTool } from './types';
type ConfigMcpServerConfig = McpServerConfig;
/**
 * Manages MCP server connections and tools
 */
export declare class McpManager {
    private readonly logger?;
    private connections;
    private tools;
    constructor(logger?: Logger | undefined);
    /**
     * Connect to all configured MCP servers
     */
    connectToServers(servers: Record<string, ConfigMcpServerConfig>): Promise<void>;
    /**
     * Connect to a single MCP server
     */
    connectToServer(serverName: string, serverConfig: ConfigMcpServerConfig): Promise<void>;
    /**
     * Disconnect from all MCP servers
     */
    disconnectAll(): Promise<void>;
    /**
     * Disconnect from a specific MCP server
     */
    disconnectServer(serverName: string): Promise<void>;
    /**
     * Get all available tools from all connected MCP servers
     */
    getAllTools(): Map<string, {
        serverName: string;
        tool: McpTool;
    }>;
    /**
     * Get tools from a specific server
     */
    getServerTools(serverName: string): Map<string, McpTool>;
    /**
     * Call a tool on an MCP server
     */
    callTool(fullToolName: string, args: Record<string, unknown>): Promise<unknown>;
    /**
     * Check if a tool exists
     */
    hasTool(toolName: string): boolean;
    /**
     * Get tool information
     */
    getTool(toolName: string): {
        serverName: string;
        tool: McpTool;
    } | undefined;
    /**
     * List all connected servers
     */
    listConnectedServers(): string[];
    /**
     * Check if a server is connected
     */
    isServerConnected(serverName: string): boolean;
    /**
     * Convert MCP tools to FullToolInfo format for use in workflows
     * This allows MCP tools to be exposed to AI agents
     */
    getFullToolInfos(): FullToolInfo[];
}
export {};
//# sourceMappingURL=manager.d.ts.map