/** * The ONE per-target config file (Proposal 010 §1.2 — the unified * `.loopgraph/` namespace: model, config, adapter, agent kit and side-channel * all live under one directory). * * It is deliberately one file with several independent top-level sections * (`guardedTables`/`aliases`/… for INV-1, `components` for the target's * process map) rather than one file per feature: a target repo maintains a * single place, and each consumer parses only the section it owns. That means * the READ must be shared — two readers of the same path with two copies of * "absent → skip, malformed → loud error" is exactly the kind of duplicated * derived judgement that drifts (CONTRIBUTING: 派生判断只定义一处). */ export declare const LOOPGRAPH_CONFIG_RELATIVE_PATH: string; export interface ReadConfigResult { /** Parsed JSON, or undefined when the file is simply absent. */ json?: unknown; /** Set when the file exists but is not parseable — a loud error, never a silent skip. */ error?: string; } /** * Reads and JSON-parses `/.loopgraph/config.json`. * * Absent file → `{}` (the feature is just not configured for this target). * Present but unparseable → `{ error }`. The two are held apart on purpose: * "no config" is a normal state, "config you meant to write but broke" must * never degrade into it. */ export declare function readLoopgraphConfig(dir: string): Promise; //# sourceMappingURL=config-file.d.ts.map