import type { Config, Settings } from '../types';
export declare function runWithScopedConfig<T>(scope: {
    ccsHome?: string;
    ccsDir?: string;
}, fn: () => Promise<T> | T): Promise<T>;
export declare function runWithScopedCcsHome<T>(ccsHome: string, fn: () => Promise<T> | T): Promise<T>;
export declare function runWithScopedConfigDir<T>(ccsDir: string, fn: () => Promise<T> | T): Promise<T>;
/**
 * Set global config directory from --config-dir CLI flag.
 * Must be called before any config loading.
 * Pass undefined to clear (useful for tests).
 */
export declare function setGlobalConfigDir(dir: string | undefined): void;
/**
 * Get the CCS home directory (respects CCS_HOME env var for test isolation)
 * @returns Home directory path
 */
export declare function getCcsHome(): string;
/**
 * Get the CCS directory path.
 * Precedence: --config-dir flag > CCS_DIR env > CCS_HOME env (legacy, appends .ccs) > ~/.ccs default
 * @returns Path to CCS config directory
 */
export declare function getCcsDir(): string;
/**
 * Get which source determined the CCS directory (for diagnostics).
 * @returns [source_label, resolved_path] tuple
 */
export declare function getCcsDirSource(): [string, string];
/**
 * Get the CCS directory as a user-facing display path.
 * Keeps the default path concise while preserving explicit overrides.
 */
export declare function getCcsDirDisplay(): string;
/**
 * Get a CCS path as a user-facing display path.
 * Keeps the default location concise while preserving explicit overrides.
 */
export declare function getCcsPathDisplay(...segments: string[]): string;
/**
 * Check if a path is under a cloud-synced folder.
 * @returns Detected service name or null
 */
export declare function detectCloudSyncPath(dir: string): string | null;
/**
 * Get CCS hooks directory (respects CCS_HOME for test isolation)
 * @returns Path to hooks directory
 */
export declare function getCcsHooksDir(): string;
/**
 * Get config file path (legacy JSON path)
 * @deprecated Use getActiveConfigPath() for mode-aware config path
 */
export declare function getConfigPath(): string;
/**
 * Get the active config file path based on current mode.
 * Returns config.yaml in unified mode, config.json in legacy mode.
 * @returns Path to the active config file
 */
export declare function getActiveConfigPath(): string;
/**
 * Load and validate config.json
 */
export declare function loadConfig(): Config;
/**
 * Load and validate settings.json
 */
export declare function loadSettings(settingsPath: string): Settings;
/**
 * Read and parse config (legacy compatibility)
 */
export declare function readConfig(): Config;
/**
 * Load config safely with unified mode support.
 * Returns Config with profiles from unified config.yaml or legacy config.json.
 * Throws on error (catchable) instead of process.exit.
 * Use this in web server routes where try/catch is needed.
 */
export declare function loadConfigSafe(): Config;
/**
 * Get settings path for profile.
 * In unified mode (config.yaml exists), reads from config.yaml first,
 * then falls back to config.json for backward compatibility.
 */
export declare function getSettingsPath(profile: string): string;
/**
 * Get display name for a profile by reading ANTHROPIC_MODEL from settings
 * @param profile - Profile name (glm, km, glmt compatibility, custom, etc.)
 * @returns Formatted display name (e.g., 'GLM-4.7', 'Kimi', 'Custom-Model')
 */
export declare function getModelDisplayName(profile: string): string;
//# sourceMappingURL=config-manager.d.ts.map