/**
 * MCP (Model Context Protocol) server implementation
 */
import { MCPConfig, MCPTool, MCPSession, MCPMetrics } from "../utils/types.js";
import { IEventBus } from "../core/event-bus.js";
import { ILogger } from "../core/logger.js";
export interface IMCPServer {
    start(): Promise<void>;
    stop(): Promise<void>;
    registerTool(tool: MCPTool): void;
    getHealthStatus(): Promise<{
        healthy: boolean;
        error?: string;
        metrics?: Record<string, number>;
    }>;
    getMetrics(): MCPMetrics;
    getSessions(): MCPSession[];
    getSession(sessionId: string): MCPSession | undefined;
    terminateSession(sessionId: string): void;
}
/**
 * MCP server implementation
 */
export declare class MCPServer implements IMCPServer {
    private config;
    private eventBus;
    private logger;
    private orchestrator?;
    private swarmCoordinator?;
    private agentManager?;
    private resourceManager?;
    private messagebus?;
    private monitor?;
    private transport;
    private toolRegistry;
    private promptRegistry;
    private router;
    private sessionManager;
    private authManager;
    private loadBalancer?;
    private requestQueue?;
    private running;
    private currentSession?;
    private readonly serverInfo;
    private readonly supportedProtocolVersion;
    private readonly serverCapabilities;
    constructor(config: MCPConfig, eventBus: IEventBus, logger: ILogger, orchestrator?: unknown | undefined, // Reference to orchestrator instance
    swarmCoordinator?: unknown | undefined, // Reference to swarm coordinator instance
    agentManager?: unknown | undefined, // Reference to agent manager instance
    resourceManager?: unknown | undefined, // Reference to resource manager instance
    messagebus?: unknown | undefined, // Reference to message bus instance
    monitor?: unknown | undefined);
    start(): Promise<void>;
    stop(): Promise<void>;
    registerTool(tool: MCPTool): void;
    getHealthStatus(): Promise<{
        healthy: boolean;
        error?: string;
        metrics?: Record<string, number>;
    }>;
    getMetrics(): MCPMetrics;
    getSessions(): MCPSession[];
    getSession(sessionId: string): MCPSession | undefined;
    terminateSession(sessionId: string): void;
    private handleRequest;
    private handleInitialize;
    private getOrCreateSession;
    private createTransport;
    private registerBuiltInTools;
    private registerClaudeFlowTools;
    private errorToMCPError;
}
//# sourceMappingURL=server.d.ts.map