/**
 * Configuration Manager
 * Handles reading, writing, and managing configuration files
 */
import type { ProjectConfig } from '../config/ConfigSchema';
export interface IConfigManager {
    load(): Promise<ProjectConfig>;
    save(config?: ProjectConfig): Promise<void>;
    getConfig(): ProjectConfig;
    get(key: string): unknown;
    set(key: string, value: unknown): void;
    exists(): Promise<boolean>;
    create(initialConfig?: Partial<ProjectConfig>): Promise<void>;
    reset(): Promise<void>;
    merge(partial: Partial<ProjectConfig>): void;
    export(): string;
    getAllKeys(): string[];
}
/**
 * Configuration Manager
 * Handles reading, writing, and managing configuration files
 * Sealed namespace for immutability
 */
export declare const ConfigManager: Readonly<{
    /**
     * Create a new config manager instance
     */
    create(configPath?: string): IConfigManager;
    /**
     * Create global config directory if not exists
     */
    ensureGlobalConfigDir(): Promise<void>;
    /**
     * Get or create global config manager
     */
    getGlobalConfig(): Promise<IConfigManager>;
    /**
     * Get or create project config manager
     */
    getProjectConfig(): Promise<IConfigManager>;
}>;
//# sourceMappingURL=ConfigManager.d.ts.map