/**
 * mcp-setup command — detect AI coding tools and configure the Flow Weaver MCP server.
 */
export type ToolId = 'claude' | 'cursor' | 'vscode' | 'windsurf' | 'codex' | 'openclaw';
/** Tools that can be spawned as interactive CLI sessions */
export declare const CLI_TOOL_IDS: ReadonlySet<ToolId>;
/** Binary name to spawn for each CLI tool */
export declare const CLI_TOOL_BINARY: Partial<Record<ToolId, string>>;
export interface McpSetupDeps {
    execCommand: (cmd: string) => Promise<{
        stdout: string;
        exitCode: number;
    }>;
    fileExists: (filePath: string) => Promise<boolean>;
    readFile: (filePath: string) => Promise<string | null>;
    writeFile: (filePath: string, content: string) => Promise<void>;
    mkdir: (dirPath: string) => Promise<void>;
    cwd: () => string;
    homedir: () => string;
    log: (msg: string) => void;
}
export interface ToolDefinition {
    id: ToolId;
    displayName: string;
    detect: (deps: McpSetupDeps) => Promise<boolean>;
    isConfigured: (deps: McpSetupDeps) => Promise<boolean>;
    configure: (deps: McpSetupDeps) => Promise<string>;
}
export interface McpSetupOptions {
    tool?: string[];
    all?: boolean;
    list?: boolean;
}
interface DetectedTool {
    id: ToolId;
    displayName: string;
    detected: boolean;
    configured: boolean;
}
export declare function defaultDeps(): McpSetupDeps;
export declare function mergeJsonConfig(deps: McpSetupDeps, filePath: string, rootKey: string): Promise<{
    action: 'created' | 'added' | 'already-configured';
    detail: string;
}>;
export declare const TOOL_REGISTRY: ToolDefinition[];
export declare function detectTools(deps: McpSetupDeps): Promise<DetectedTool[]>;
export interface McpSetupFromInitResult {
    configured: string[];
    failed: string[];
    /** Full detection results for each tool (used by init for transparent feedback) */
    detected: DetectedTool[];
    /** Tool IDs that can be spawned as interactive CLI sessions (e.g. claude, codex) */
    cliTools: ToolId[];
    /** Tool IDs that are GUI-only editors (e.g. cursor, vscode, windsurf) */
    guiTools: ToolId[];
}
/**
 * Detect and configure all AI tools without interactive prompts.
 * Used by the init command after the user has already consented.
 */
export declare function runMcpSetupFromInit(deps?: McpSetupDeps): Promise<McpSetupFromInitResult>;
/**
 * Check which CLI agent tools are available on PATH.
 * Lightweight: only runs `which` for known CLI binaries.
 */
export declare function detectCliTools(deps?: McpSetupDeps): Promise<ToolId[]>;
export declare function mcpSetupCommand(options: McpSetupOptions, deps?: McpSetupDeps): Promise<void>;
export {};
//# sourceMappingURL=mcp-setup.d.ts.map