/**
 * Source-control-driven MCP server enable/disable sync.
 *
 * When the user sets `scm` in `.atomic/settings.json` to one of
 * `github`, `azure-devops`, or `sapling`, Atomic keeps the corresponding
 * MCP servers in the project's agent configs consistent on every
 * `atomic chat` / `atomic workflow` startup:
 *
 * - `.claude/settings.json`    → updates the `disabledMcpjsonServers` array
 * - `.opencode/opencode.json`  → flips `mcp.<server>.enabled` flags
 *
 * Only servers that already exist in the config are touched — we never
 * add MCP server definitions the user didn't set up. Files that don't
 * exist are skipped (the user may not use that agent).
 */
import type { ScmProvider } from "./atomic-config.ts";
/**
 * Pure helper: returns the `--disable-mcp-server <name>` flag sequence to
 * append when spawning Copilot CLI, given a selected scm provider.
 *
 * Copilot has no on-disk MCP server enable/disable store, so Atomic
 * injects the flags on the CLI invocation instead. Returns an empty
 * array when scm is unset so callers can spread unconditionally.
 */
export declare function copilotScmDisableFlags(scm: ScmProvider | undefined): string[];
/**
 * Resolve Copilot's scm-derived `--disable-mcp-server` flags from the
 * project's atomic config. Best-effort — returns `[]` on any failure.
 */
export declare function getCopilotScmDisableFlags(projectRoot: string): Promise<string[]>;
/**
 * Apply the current `scm` selection to the project's agent config files.
 * No-op when `scm` is unset. Swallows errors so a malformed agent
 * config never blocks `atomic chat` / `atomic workflow` startup.
 */
export declare function syncScmMcpServers(projectRoot: string): Promise<void>;
//# sourceMappingURL=scm-sync.d.ts.map