/**
 * Atomic configuration file utilities for persisting project settings.
 *
 * Project/source-control selections are stored in `.atomic/settings.json`.
 * Resolution order:
 * 1) local `.atomic/settings.json` (project override)
 * 2) global `~/.atomic/settings.json` (default fallback)
 */
import { type AgentKey, type ProviderOverrides } from "./index.ts";
/** Source control providers Atomic can auto-configure MCP servers for. */
export declare const SCM_PROVIDERS: readonly ["github", "azure-devops", "sapling"];
export type ScmProvider = (typeof SCM_PROVIDERS)[number];
export declare function isScmProvider(value: unknown): value is ScmProvider;
/**
 * Atomic project configuration schema.
 */
export interface AtomicConfig {
    /** Version of config schema */
    version?: number;
    /** Selected source control provider (drives MCP server enable/disable sync). */
    scm?: ScmProvider;
    /** Per-provider overrides for chatFlags and envVars */
    providers?: Partial<Record<AgentKey, ProviderOverrides>>;
}
/**
 * Read atomic config with local override semantics.
 */
export declare function readAtomicConfig(projectDir: string): Promise<AtomicConfig | null>;
/**
 * Save project config to `.atomic/settings.json`.
 */
export declare function saveAtomicConfig(projectDir: string, updates: Partial<AtomicConfig>): Promise<void>;
/**
 * Resolve provider overrides from global + local settings (local wins).
 *
 * Returns `{ chatFlags, envVars }` that are meant to be layered on top
 * of the provider's hardcoded defaults:
 * - `chatFlags`: when set, replaces the provider's default chat_flags entirely
 * - `envVars`: merged on top of the provider's default env_vars (user values win)
 */
export declare function getProviderOverrides(agentKey: AgentKey, projectDir: string): Promise<ProviderOverrides>;
//# sourceMappingURL=atomic-config.d.ts.map