import { type McpConfigRootKey, type McpServerEntry } from "./installDescriptor.js"; /** * Client adapters. * * Every MCP client stores the same information in a slightly different place * and shape: Claude Code uses `.mcp.json` with a `mcpServers` root, VS Code * uses `.vscode/mcp.json` with a `servers` root. Isolating those differences * here keeps `setup` and `doctor` free of per-client branching, and adding * Codex or Cursor later is a matter of appending one entry. */ export declare const clientIds: readonly ["claude-code", "vscode"]; export type ClientId = (typeof clientIds)[number]; export type McpClientDocument = Record; export type ClientAdapter = { id: ClientId; label: string; rootKey: McpConfigRootKey; /** Relative to the project root, so callers can inject a cwd for testing. */ relativePath: string; targetPath: (cwd: string) => string; /** Documentation note printed after setup writes the file. */ note?: string; }; export declare const clientAdapters: Record; export declare const defaultClientIds: ClientId[]; export declare const isClientId: (value: string) => value is ClientId; export declare const parseClientIds: (csv: string) => ClientId[]; /** * Merges the server entry into an existing document without disturbing * anything else. A client config routinely holds other servers and unrelated * top-level keys, so replacing the file wholesale would destroy user data. */ export declare const mergeServerEntry: (doc: McpClientDocument | undefined, rootKey: McpConfigRootKey, entry: McpServerEntry, serverKey?: string) => McpClientDocument; export declare const serializeClientDocument: (doc: McpClientDocument) => string; export declare const validateForClient: (adapter: ClientAdapter, doc: unknown, options?: { strictLauncher?: boolean; serverKey?: string; }) => { ok: boolean; errors: string[]; warnings: string[]; }; /** * Renders a paste-ready config block for any MCP client, including ones this * package does not write directly. */ export declare const renderGenericConfig: (entry: McpServerEntry, serverKey?: string) => string; //# sourceMappingURL=clients.d.ts.map