import type { ResolvedMcpServer } from '../types.js'; export interface RenderResult { content: string; warnings: string[]; } export interface TomlRenderOptions { /** Sub-table used for HTTP headers: Codex calls it `http_headers`, Grok calls it `headers`. */ headersTable: string; /** Emit `type = "sse"` for legacy SSE servers (Grok) instead of a plain url (Codex). */ emitSseType: boolean; label: string; } /** * Render MCP servers into the `[mcp_servers.*]` TOML dialect shared by Codex and Grok Build. * * @param servers - Resolved MCP servers * @param options - Dialect differences between the two tools */ export declare function renderMcpToml(servers: ResolvedMcpServer[], options: TomlRenderOptions): RenderResult; /** Render MCP servers for Codex, whose headers live in an `http_headers` table. */ export declare function renderCodexToml(servers: ResolvedMcpServer[]): RenderResult; /** Render MCP servers for Grok Build, which uses a plain `headers` table and marks sse. */ export declare function renderGrokToml(servers: ResolvedMcpServer[]): RenderResult; export declare function renderGeminiServers(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** * Builds a VS Code MCP servers map from a list of resolved MCP servers. * * @param servers - The resolved MCP servers to render * @returns An object with: * - `servers`: a mapping from server name to its VS Code MCP configuration. For `stdio` servers the entry contains `type: 'stdio'`, `command`, `args` (array), and optional `cwd` and `env`. For non-stdio servers the entry contains `type` (transport), `url`, and optional `headers`. * - `warnings`: an array of warnings for servers that were skipped or adjusted during rendering */ export declare function renderVscodeMcp(servers: ResolvedMcpServer[]): { servers: Record; warnings: string[]; }; /** * Produce an Antigravity-compatible mapping of MCP servers and collect conversion warnings. * * @param servers - Array of resolved MCP server entries to convert * @returns An object with `mcpServers` (mapping server name -> Antigravity entry) and `warnings` (messages about skipped or adjusted servers). * `mcpServers` entries: * - For `transport === 'stdio'`: `{ command, args, cwd? , env? }` * - For non-stdio transports: `{ serverUrl, headers? }` * `warnings` includes notices for servers skipped due to missing `command` or `url`, and a note when legacy `sse` transports are rendered as `serverUrl`. */ export declare function renderAntigravityMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** * Render Copilot CLI's project MCP config. * * @param servers Resolved MCP servers from the shared registry. * @returns A Copilot CLI `mcpServers` map plus warnings for skipped entries. * Stdio servers without commands and remote servers without URLs are omitted. */ export declare function renderCopilotCliMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** * Render Claude Desktop's local JSON config. Claude Desktop remote MCP servers * are account/UI-managed connectors, so only local stdio servers are emitted. */ export declare function renderClaudeDesktopMcp(servers: ResolvedMcpServer[], projectRoot: string): { mcpServers: Record; warnings: string[]; }; export declare function renderWindsurfMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; export declare function renderOpencodeMcp(servers: ResolvedMcpServer[]): { mcp: Record; warnings: string[]; }; /** Render MCP servers for Junie, which reads a plain `mcpServers` map. */ export declare function renderJunieMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** * Render the project-scoped `.mcp.json` read by Claude Code and Copilot CLI. * * @param servers - Resolved MCP servers * @param options.tools - Emit the Copilot CLI `tools` allowlist (defaults to `['*']`) */ export declare function renderProjectMcpJson(servers: ResolvedMcpServer[], options?: { tools?: boolean; label?: string; }): { mcpServers: Record; warnings: string[]; }; /** Render Amp's `amp.mcpServers` map (workspace `.amp/settings.json`). */ export declare function renderAmpMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** Render Factory Droid's `.factory/mcp.json`. */ export declare function renderDroidMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** Render Kilo's `mcp` block (`.kilo/kilo.jsonc`), which uses the local/remote shape. */ export declare function renderKiloMcp(servers: ResolvedMcpServer[]): { mcp: Record; warnings: string[]; }; /** Render Devin CLI's `.devin/mcp_config.json`. */ export declare function renderDevinMcp(servers: ResolvedMcpServer[]): { mcpServers: Record; warnings: string[]; }; /** Render Zed's `context_servers` block. */ export declare function renderZedContextServers(servers: ResolvedMcpServer[]): { contextServers: Record; warnings: string[]; }; /** * Render Goose extensions. * * Goose stores secrets as `env_keys` (names resolved from the environment), never as values, * so env values are dropped here and only their keys are passed through. */ export declare function renderGooseExtensions(servers: ResolvedMcpServer[]): { extensions: Record; warnings: string[]; }; /** * Render Cursor's `.cursor/mcp.json`. * * Same shape as VS Code, plus `envFile`, which Cursor documents and VS Code does not. */ export declare function renderCursorMcp(servers: ResolvedMcpServer[]): { servers: Record; warnings: string[]; };