export type ConfigTarget = "global" | "local" | "project"; export interface ConfigLayer { target: ConfigTarget | "env"; /** Human label for menus and --list-groups provenance. */ label: string; file: string; } /** The file a write target maps to. */ export declare function targetFile(projectDir: string, target: ConfigTarget): string; /** All read layers in precedence order (low -> high), including the env overlay. */ export declare function readLayers(projectDir: string): ConfigLayer[]; /** The `groups` map a single layer file declares for one plugin slug, or {}. */ export declare function readLayerGroups(file: string, slug: string): Record; /** Effective group state and the layer label that last set each group. */ export declare function readEffectiveGroups(projectDir: string, slug: string): { state: Record; source: Record; }; /** * Update the `groups` map for one plugin slug in a single layer file, applying * `mutate` to whatever that layer already declares (empty {} if none). Preserves * every other key in the file; the doc is re-dumped, so YAML comments in a * hand-edited file are not preserved (call sites note this for the tracked * project layer). */ export declare function writeLayerGroups(file: string, slug: string, mutate: (existing: Record) => Record): void;