/**
 * Enhanced Hypertool MCP server with request routing capabilities
 */
import { MetaMCPServer } from "./base.js";
import { MetaMCPServerConfig, ServerInitOptions } from "./types.js";
import { RuntimeOptions } from "../types/runtime.js";
import { Tool } from "@modelcontextprotocol/sdk/types.js";
import { IToolDiscoveryEngine } from "../discovery/index.js";
import { IConnectionManager } from "../connection/index.js";
import { PersonaManager } from "../persona/manager.js";
/**
 * Enhanced Hypertool MCP server with routing capabilities
 */
export declare class EnhancedMetaMCPServer extends MetaMCPServer {
    private requestRouter?;
    private discoveryEngine?;
    private connectionManager?;
    private extensionManager?;
    private toolsetManager;
    private personaManager?;
    private configToolsManager?;
    private configurationMode;
    private enterConfigurationModeTool?;
    private runtimeOptions?;
    private configToolsMenuEnabled;
    private serverInitOptions?;
    private currentServerConfigs;
    private isPersonaMode;
    constructor(config: MetaMCPServerConfig);
    /**
     * Getter methods for safe access to shared objects
     */
    getPersonaManager(): PersonaManager | undefined;
    /**
     * Check if server is in persona mode
     */
    getIsPersonaMode(): boolean;
    getConnectionManager(): IConnectionManager | undefined;
    getDiscoveryEngine(): IToolDiscoveryEngine | undefined;
    /**
     * Initialize PersonaManager early in boot sequence
     */
    private initializePersonaManager;
    /**
     * Update PersonaManager MCP configuration handlers with actual implementations
     */
    private updatePersonaMcpHandlers;
    /**
     * Phase 2: Collect ALL MCP configurations (persona + file + extensions)
     */
    private collectAllMcpConfigs;
    /**
     * Handle mode change request from ConfigToolsManager (toggle mode)
     */
    private handleConfigToolsModeChange;
    /**
     * Enhanced start method with routing initialization
     */
    start(options: ServerInitOptions, runtimeOptions?: RuntimeOptions): Promise<void>;
    private loadMcpConfigOrExit;
    /**
     * Filter out server configurations that would cause HyperTool to connect to itself
     */
    private filterSelfReferencingServers;
    /**
     * Check if a server configuration references HyperTool itself
     */
    private isSelfReferencingServer;
    private connectToDownstreamServers;
    /**
     * Initialize routing components
     */
    private initializeRouting;
    /**
     * Initialize tool modules with dependency injection
     */
    private initializeToolModules;
    /**
     * Initialize and activate a persona
     */
    private initializePersona;
    /**
     * Load MCP configuration from persona directory
     */
    private loadPersonaMcpConfig;
    /**
     * Initialize configuration mode components
     */
    private initializeConfigurationMode;
    /**
     * Check toolset status and warn if no toolset is equipped
     */
    private checkToolsetStatus;
    /**
     * Get available tools based on current mode
     */
    protected getAvailableTools(): Promise<Tool[]>;
    /**
     * Check if a tool is an internal tool that should be handled directly
     */
    private isInternalTool;
    /**
     * Handle tool call requests with mode-based routing
     */
    protected handleToolCall(name: string, args?: any): Promise<any>;
    /**
     * Enhanced stop method
     */
    stop(): Promise<void>;
    /**
     * Get routing statistics (if enabled)
     */
    getRoutingStats(): {
        router: import("../router/types.js").RouterStats;
        discovery: import("../discovery/types.js").DiscoveryStats | undefined;
        connections: Record<string, import("../connection/types.js").ConnectionStatus> | undefined;
    } | null;
}
//# sourceMappingURL=enhanced.d.ts.map