import type { AgentsConfig, ClaudeScope, CopilotCliPath, IntegrationName, McpServerDefinition, SyncMode } from '../types.js'; export declare const DEFAULT_VSCODE_HIDDEN_PATHS: string[]; /** * Build a fresh `.agents/agents.json` for a new project. * * @param args - Integrations to enable, their options, sync mode and the servers to * start from; every field falls back to the defaults a first-time setup expects. */ export declare function createDefaultAgentsConfig(args?: { enabledIntegrations?: IntegrationName[]; integrationOptions?: { cursorAutoApprove: boolean; antigravityGlobalSync: boolean; claudeScope?: ClaudeScope; copilotCliPath?: CopilotCliPath; }; syncMode?: SyncMode; hideGenerated?: boolean; hiddenPaths?: string[]; mcpServers?: Record; }): AgentsConfig; /** Lowest schema version this CLI can read and migrate forward. */ export declare const MIN_SUPPORTED_SCHEMA_VERSION = 3; /** * Bring an on-disk config up to the current schema version. * * @returns The schema version the config was migrated from, or `null` when it was already current. */ export declare function migrateAgentsConfig(config: AgentsConfig): number | null; export interface LoadedAgentsConfig { config: AgentsConfig; /** Schema version the file was migrated from, or `null` when it was already current. */ migratedFrom: number | null; } /** * Read and normalize the project config, migrating an older schema in memory. * * The migration is not written back here; callers that save go through * {@link saveAgentsConfig}, which keeps a backup of the previous file. */ export declare function loadAgentsConfig(projectRoot: string): Promise; /** * Same as {@link loadAgentsConfig}, but also reports which schema version the file * was migrated from, so a caller can tell the user what happened. */ export declare function loadAgentsConfigDetailed(projectRoot: string): Promise; /** * Write the config, keeping a copy of the previous file when this save replaces an * older schema version. * * Every command that edits the config goes through here, so the backup does not depend * on the caller remembering that the file it loaded was migrated. */ export declare function saveAgentsConfig(projectRoot: string, config: AgentsConfig): Promise; /** Read, modify and save the current config under the same lock as sync and MCP edits. */ export declare function updateAgentsConfig(projectRoot: string, update: (config: AgentsConfig) => T | Promise): Promise<{ config: AgentsConfig; result: T; }>; /** * Write a migrated config back to disk, keeping a copy of the previous file next to it. * * @returns Path of the backup file that was written. */ export declare function persistMigratedConfig(projectRoot: string, config: AgentsConfig, migratedFrom: number): Promise;