/**
 * Pi MCP Adapter Integration for Bolloon
 *
 * Bridges MCP (Model Context Protocol) servers with Bolloon's tool system.
 * Based on the pi-mcp-adapter philosophy: on-demand tool loading with minimal token overhead.
 *
 * Key differences from Claude Code MCP:
 * - White-box design: every schema, parameter, and return value is visible
 * - Minimal primitives: only read, write, edit, bash under the hood
 * - No schema validation black boxes - interfaces are simple by design
 */
export interface McpServerConfig {
    name: string;
    command: string;
    args?: string[];
    env?: Record<string, string>;
}
export interface McpTool {
    name: string;
    description: string;
    inputSchema: Record<string, unknown>;
    serverName: string;
}
export interface McpRequest {
    jsonrpc: '2.0';
    id: string | number;
    method: string;
    params?: Record<string, unknown>;
}
export interface McpResponse {
    jsonrpc: '2.0';
    id: string | number;
    result?: unknown;
    error?: {
        code: number;
        message: string;
        data?: unknown;
    };
}
export interface McpToolCall {
    name: string;
    arguments: Record<string, unknown>;
}
/**
 * Discover MCP servers from standard config locations
 */
export declare function discoverMcpServers(): Promise<McpServerConfig[]>;
/**
 * Initialize the MCP adapter
 */
export declare function initializeMcpAdapter(): Promise<void>;
/**
 * Register an MCP server configuration
 */
export declare function registerServer(config: McpServerConfig): void;
/**
 * Register an MCP tool
 */
export declare function registerTool(tool: McpTool): void;
/**
 * List all available MCP tools
 */
export declare function listTools(): McpTool[];
/**
 * Check if a tool exists
 */
export declare function hasTool(name: string): boolean;
/**
 * Get a specific tool
 */
export declare function getTool(name: string): McpTool | undefined;
/**
 * Get tool call log for debugging
 */
export declare function getToolCallLog(): Array<{
    timestamp: string;
    tool: string;
    args: unknown;
    result: unknown;
}>;
/**
 * Clear tool call log
 */
export declare function clearToolCallLog(): void;
/**
 * Execute an MCP tool via JSON-RPC protocol
 */
export declare function executeTool(name: string, args: Record<string, unknown>): Promise<{
    success: boolean;
    content?: unknown[];
    error?: string;
}>;
/**
 * Start an MCP server process
 */
export declare function startServer(serverName: string): Promise<boolean>;
/**
 * Stop an MCP server
 */
export declare function stopServer(serverName: string): void;
/**
 * Discover tools from a server using MCP protocol
 */
export declare function discoverTools(serverName: string): Promise<McpTool[]>;
/**
 * Create a Tavily search tool (common MCP integration)
 */
export declare function createTavilyTool(apiKey: string): McpTool;
/**
 * Create an Amap maps tool
 */
export declare function createAmapTool(apiKey: string): McpTool;
/**
 * Get adapter status
 */
export declare function getAdapterStatus(): {
    initialized: boolean;
    serverCount: number;
    toolCount: number;
    servers: string[];
    runningServers: string[];
};
/**
 * Event subscription
 */
export declare function on(event: 'initialized' | 'toolRegistered', callback: (...args: unknown[]) => void): void;
export declare function off(event: 'initialized' | 'toolRegistered', callback: (...args: unknown[]) => void): void;
