import { type PanelKeybindings } from "./panel-keys.ts"; import type { ImportKind } from "./types.ts"; import { type ConfigWritePreview, type KnownServerPreset, type McpDiscoverySummary } from "./config.ts"; import type { McpOnboardingState } from "./onboarding-state.ts"; export interface SetupPanelCallbacks { previewImports: (imports: ImportKind[]) => ConfigWritePreview; previewStarterProject: () => ConfigWritePreview; previewRepoPrompt: () => ConfigWritePreview | null; previewKnownServer: (preset: KnownServerPreset) => ConfigWritePreview; adoptImports: (imports: ImportKind[]) => Promise<{ added: ImportKind[]; path: string; }>; scaffoldProjectConfig: () => Promise<{ path: string; }>; addRepoPrompt: () => Promise<{ path: string; serverName: string; }>; addKnownServer: (preset: KnownServerPreset) => Promise<{ path: string; serverName: string; }>; openPath: (path: string) => Promise; markSetupCompleted: () => void; } export interface SetupPanelOptions { mode: "empty" | "setup"; onboardingState: McpOnboardingState; keybindings?: PanelKeybindings; } export declare class McpSetupPanel { private discovery; private callbacks; private options; private done; private screen; private actionCursor; private importCursor; private pathCursor; private selectedImports; private busy; private notice; private tui; private t; private keys; private inactivityTimeout; private static readonly INACTIVITY_MS; constructor(discovery: McpDiscoverySummary, callbacks: SetupPanelCallbacks, options: SetupPanelOptions, tui: { requestRender(): void; }, done: () => void); private resetInactivityTimeout; private cleanup; private getActions; private getDetectedPaths; private getSelectedAction; handleInput(data: string): void; private handleImportsInput; private handlePathsInput; private runAction; private applySelectedImports; private runBusy; render(width: number): string[]; private renderActions; private renderImports; private renderPaths; private discoverySummaryLine; private secondarySummaryLine; private visibleActionRange; private contentWidth; private previewWidth; private getActionPreview; private formatPreview; private formatWritePreview; private padLine; invalidate(): void; dispose(): void; } export declare function createMcpSetupPanel(discovery: McpDiscoverySummary, callbacks: SetupPanelCallbacks, options: SetupPanelOptions, tui: { requestRender(): void; }, done: () => void): McpSetupPanel & { dispose(): void; };