/**
 * Model Context Protocol (MCP) Interface for DevOps AI Toolkit
 *
 * Provides MCP server capabilities that expose DevOps AI Toolkit functionality
 * to AI assistants through standardized protocol
 */
import { DotAI } from '../core/index';
import { McpClientInfo } from '../core/telemetry';
import { PluginManager } from '../core/plugin-manager';
export interface MCPServerConfig {
    name: string;
    version: string;
    description: string;
    author?: string;
    port?: number;
    host?: string;
    /** Optional PluginManager for plugin-based tools (PRD #343) */
    pluginManager?: PluginManager;
}
export declare class MCPServer {
    private dotAI;
    private initialized;
    private logger;
    private requestIdCounter;
    private config;
    private httpServer?;
    /** Per-session state: each MCP client gets its own McpServer + transport */
    private sessions;
    private sessionGcTimer?;
    private restRegistry;
    private restApiRouter;
    private pluginManager?;
    private oauthApp?;
    private oauthProvider?;
    private issuerUrl?;
    constructor(dotAI: DotAI, config: MCPServerConfig);
    /**
     * Get the current MCP client info (available after client connects).
     * Returns info from the most recently connected session.
     */
    getMcpClientInfo(): McpClientInfo | undefined;
    /**
     * Register a tool with the REST registry only (shared, one-time).
     */
    private registerRestTool;
    /**
     * Register a tool on a per-session McpServer instance.
     */
    private registerMcpTool;
    /**
     * Tool definitions — shared between REST (registered once) and MCP (registered per session).
     */
    private getToolDefs;
    /**
     * Register tools with the shared REST registry (called once at startup).
     */
    private registerRestTools;
    /**
     * Create a new McpServer instance with all tools and prompts registered.
     * Each MCP client session gets its own server instance (SDK limitation:
     * Protocol only supports one transport per server).
     */
    private createSessionServer;
    /**
     * Register prompts capability on a given McpServer instance.
     */
    private registerPromptsOn;
    private configureHostProvider;
    /**
     * Reap sessions that have been inactive for longer than SESSION_TTL_MS.
     */
    private reapStaleSessions;
    private generateRequestId;
    start(): Promise<void>;
    private startHttpTransport;
    private parseRequestBody;
    stop(): Promise<void>;
    isReady(): boolean;
}
//# sourceMappingURL=mcp.d.ts.map