/**
 * MCP server config emitter and parser.
 *
 * Translates a canonical MCP server description (the in-skillset shape)
 * into each agent's expected on-disk format, and back. Each agent's MCP
 * config has a different root key, file format (JSON or TOML), and env
 * interpolation syntax — so this module is a single point of branch.
 *
 * Canonical authoring uses ${env:VAR} placeholders. Each emitter rewrites
 * placeholders into the agent's preferred form (Claude/Gemini: ${VAR};
 * Cursor/VSCode/Zed: ${env:VAR} passthrough; Codex: drops placeholders
 * because Codex has no string interpolation).
 */
export type CanonicalAuth = "oauth" | {
    type: "bearer";
    tokenEnv: string;
} | null;
export type CanonicalMcpServer = {
    name: string;
    transport: "stdio" | "http" | "sse";
    command?: string | null;
    args?: ReadonlyArray<string> | null;
    url?: string | null;
    env?: Record<string, string> | null;
    headers?: Record<string, string> | null;
    auth?: CanonicalAuth;
    scope?: "project" | "user" | null;
    worksWith?: ReadonlyArray<string> | null;
};
export type McpTargetFormat = "claude-mcp-json" | "codex-toml" | "gemini-json" | "cursor-json" | "vscode-json" | "zed-json";
export declare const emitMcpServers: (args: {
    servers: ReadonlyArray<CanonicalMcpServer>;
    targetFormat: McpTargetFormat;
}) => string;
export declare const parseAgentConfig: (args: {
    content: string;
    format: McpTargetFormat;
}) => Array<CanonicalMcpServer>;
//# sourceMappingURL=mcpEmitter.d.ts.map