/**
 * Settings Hierarchy
 *
 * Implements a multi-level settings system with clear priority ordering:
 * 1. ManagedPolicy (highest) - /etc/codebuddy/managed-settings.json
 * 2. CliFlags - command-line arguments
 * 3. ProjectLocal - .codebuddy/settings.local.json
 * 4. Project - .codebuddy/settings.json
 * 5. User - ~/.codebuddy/settings.json
 * 6. Default (lowest) - built-in defaults
 */
export declare enum SettingsLevel {
    ManagedPolicy = 0,
    CliFlags = 1,
    ProjectLocal = 2,
    Project = 3,
    User = 4,
    Default = 5
}
export interface SettingsWithSource {
    value: unknown;
    source: SettingsLevel;
}
export declare class SettingsHierarchy {
    private levels;
    private projectDir;
    constructor(projectDir?: string);
    /**
     * Load settings from all levels
     */
    loadAllLevels(cliFlags?: Record<string, unknown>, projectDir?: string): void;
    /**
     * Get the effective value for a key (highest-priority level wins)
     */
    get(key: string): unknown;
    /**
     * Get the value and its source level
     */
    getWithSource(key: string): SettingsWithSource | undefined;
    /**
     * Check if a key at a given level is overridden by a higher-priority level
     */
    isOverridden(key: string, level: SettingsLevel): boolean;
    /**
     * Get all settings merged (highest priority wins)
     */
    getAllSettings(): Record<string, unknown>;
    /**
     * Get the level name for display
     */
    getLevelName(level: SettingsLevel): string;
    private getManagedPath;
    private getUserPath;
    private getProjectPath;
    private getProjectLocalPath;
    private loadJsonFile;
}
export declare function getSettingsHierarchy(projectDir?: string): SettingsHierarchy;
export declare function resetSettingsHierarchy(): void;
