/**
 * `opensquid setup wizard mcp` — register opensquid MCP servers at the
 * USER level (`~/.claude.json` mcpServers) so the central brain is
 * reachable from EVERY Claude Code project automatically, without per-
 * project `.mcp.json` setup.
 *
 * Companion to G.1's `setup wizard hooks` — same shape, same `@opensquid`
 * marker contract, same `.bak` semantics. See `mcp-writer.ts` header for
 * the file-level details.
 *
 * Flow:
 *   1. Resolve `opensquidRepoRoot` (cwd-walk for the opensquid package.json,
 *      or explicit `--opensquid-root <path>` override).
 *   2. Dry-run: project the change, print counts, exit. No mutation.
 *   3. Commit: write `~/.claude.json` + `.bak`, print counts.
 *   4. Project cleanup advisory: if `<cwd>/.mcp.json` exists with opensquid
 *      entries, print them with offer-to-remove guidance (we do NOT auto-
 *      remove in this task; doing so is a follow-up). For non-TTY, default
 *      to leaving them alone with a stderr note. Suppress entirely with
 *      `--no-detect-project-cleanup`.
 *
 * Flags:
 *   --dry-run                          Preview without writing.
 *   --opensquid-root <path>            Override auto-detected repo root.
 *   --no-detect-project-cleanup        Skip the project `.mcp.json` advisory.
 *
 * Imports from: commander, node:fs, node:os, node:path, ../wizard/mcp-writer.
 * Imported by: src/cli.ts (via `registerSetupWizardMcp`).
 */
import { type McpWriteResult } from '../wizard/mcp-writer.js';
import type { Command } from 'commander';
export interface McpCliFlags {
    dryRun?: boolean;
    opensquidRoot?: string;
    detectProjectCleanup?: boolean;
    /** Comma-list of host ids or `all`; default (undefined) = claude-code only. */
    hosts?: string;
}
export interface McpCliDeps {
    writer?: (path: string, root: string) => Promise<McpWriteResult>;
    reader?: (path: string) => Promise<unknown>;
    cwd?: () => string;
    home?: () => string;
    stdout?: (s: string) => void;
    stderr?: (s: string) => void;
    isTty?: () => boolean;
    /** Does this path exist? (used to skip a host whose app dir is absent). */
    dirExists?: (path: string) => Promise<boolean>;
    /** Platform for host-path resolution (injected for deterministic tests). */
    platform?: () => NodeJS.Platform;
}
/**
 * Walk up from `start` looking for a `package.json` whose `name` field
 * starts with `opensquid` (covers `opensquid` proper + future scoped
 * packages). Returns the directory containing that file, or null if not
 * found before reaching `/`.
 */
export declare function detectOpensquidRoot(start: string): Promise<string | null>;
/** Report opensquid entries in `<cwd>/.mcp.json` (if any) — read-only. */
export declare function detectProjectMcpCleanup(cwd: string): Promise<{
    path: string;
    opensquidKeys: string[];
} | null>;
/** Pulled out of the commander action so tests can drive it directly. */
export declare function runMcpWizard(flags: McpCliFlags, deps?: McpCliDeps): Promise<void>;
/**
 * Register the `wizard mcp` subcommand under the supplied `wizard` group.
 * Caller is responsible for creating the `wizard` group (G.1 does it via
 * `registerSetupWizard`); G.8 reuses that node by calling `.command('mcp')`
 * on the same `wizard` instance.
 */
export declare function registerSetupWizardMcp(wizard: Command, deps?: McpCliDeps): Command;
//# sourceMappingURL=mcp.d.ts.map