/**
 * Unified config directory discovery and management.
 *
 * Collects built-in + custom directories scanned for skills, MCP servers, and tools.
 * Custom directories are stored in `config_directories` in project.yaml,
 * with backward compatibility for the legacy `skill_directories` key.
 */
export type ConfigType = "skills" | "mcp" | "tools" | "agents";
export interface ConfigDirectory {
    path: string;
    types: ConfigType[];
    scope: "built-in" | "user" | "project" | "custom";
    exists: boolean;
    isRemovable: boolean;
}
export interface CustomDirEntry {
    path: string;
    types: ConfigType[];
}
/** Minimal interface for reading project config values. */
export interface ProjectConfigReader {
    get(key: string): string | undefined;
    /** Optional native-YAML accessor; when present, used instead of parsing
     *  the legacy JSON-string returned by `get("config_directories")`. */
    getConfigDirectories?(): Array<{
        path: string;
        types: string[];
    }>;
}
/** Extended interface that also supports writing. */
export interface ProjectConfigWriter extends ProjectConfigReader {
    set(key: string, value: string): void;
    remove(key: string): void;
    /** Optional native-YAML setter; when present, used instead of stringifying
     *  through `set("config_directories", JSON.stringify(...))`. */
    setConfigDirectories?(dirs: Array<{
        path: string;
        types: string[];
    }>): void;
}
/**
 * Parse custom directories from project config, merging both
 * `config_directories` and legacy `skill_directories` keys.
 *
 * Deduplicates by normalized path. If the same path exists in both,
 * `config_directories` wins (it may have broader types).
 */
export declare function parseCustomDirectories(projectConfigStore: ProjectConfigReader): CustomDirEntry[];
export declare function getAllConfigDirectories(cwd: string, projectConfigStore: ProjectConfigReader): ConfigDirectory[];
/**
 * Remove a built-in directory from scanning by adding it to the
 * `disabled_config_directories` list in project config.
 */
export declare function removeBuiltinDirectory(projectConfigStore: ProjectConfigWriter, dirPath: string): void;
/**
 * Reset config directories to defaults by clearing both custom and disabled lists.
 */
export declare function resetConfigDirectories(projectConfigStore: ProjectConfigWriter): void;
/**
 * Save custom directories to project config via the `config_directories` key.
 * Also removes the legacy `skill_directories` key to prevent stale entries
 * from reappearing on next read (migrate forward).
 */
export declare function saveCustomDirectories(projectConfigStore: ProjectConfigWriter, dirs: CustomDirEntry[]): void;
//# sourceMappingURL=config-directories.d.ts.map