/** * MCP server selector component for managing MCP server connections. * Uses pi-tui overlay pattern with navigation. */ import { Box } from '@mariozechner/pi-tui'; import type { Focusable, TUI } from '@mariozechner/pi-tui'; import type { McpServerStatus, McpSkippedServer } from '../../mcp/types.js'; export interface McpSelectorOptions { /** TUI instance for rendering */ tui: TUI; /** Server statuses */ statuses: McpServerStatus[]; /** Skipped servers */ skipped: McpSkippedServer[]; /** Config file paths for display */ configPaths: { project: string; global: string; claude: string; }; /** Get current statuses (for polling during initial connect) */ getStatuses: () => { statuses: McpServerStatus[]; skipped: McpSkippedServer[]; }; /** Callback to reload all servers — should return fresh statuses/skipped */ onReloadAll: () => Promise<{ statuses: McpServerStatus[]; skipped: McpSkippedServer[]; }>; /** Callback to reconnect a single server by name — returns updated status */ onReconnectServer: (name: string) => Promise; /** Get captured stderr logs for a server */ getServerLogs: (name: string) => string[]; /** Show an info message in the chat area */ showInfo: (msg: string) => void; /** Callback when selector is dismissed */ onClose: () => void; } export declare class McpSelectorComponent extends Box implements Focusable { private listContainer; private statuses; private skipped; private selectedIndex; private getStatusesCallback; private onReloadAllCallback; private onReconnectServerCallback; private getServerLogsCallback; private showInfoCallback; private onCloseCallback; private tui; private pollTimer; private subMenuOpen; private subMenuIndex; private subMenuActions; private _detailView; private _reloading; private _focused; get focused(): boolean; set focused(value: boolean); constructor(options: McpSelectorOptions); private buildUI; private getTotalItems; private updateList; private startPollingIfNeeded; private stopPolling; /** Clean up resources when component is removed. */ dispose(): void; handleInput(data: string): void; private openSubMenu; private handleSubMenuInput; private executeAction; private doReloadAll; private doReconnectServer; private showToolList; private showError; private showLogs; } //# sourceMappingURL=mcp-selector.d.ts.map