/** * Override loading (D-006): code defaults plus a validated override file; * the override wins, and a malformed file - structurally OR semantically - * throws with the file path and offending harness in the message. A silent * fallback to defaults, or a garbage value flowing onward, would ship an * override bug invisibly. Pure over TEXT: the caller reads the file and * passes its content; nothing here touches the filesystem. * * Merge semantics: recursive to full depth for plain-object sections (a * partial nested override keeps its sibling keys); arrays replace * wholesale; every leaf is type-checked against the code default's shape, * closed string vocabularies are enforced, and any path whose default * carries a RegExp cannot be overridden from JSON. */ import { type HarnessDescriptor, type HarnessName } from "./descriptor.js"; export type DescriptorSet = Partial>; export declare const defaultDescriptors: () => DescriptorSet; /** Tracks which descriptors were produced by an override file and what their * matcher counts are, so the execution layer can emit `matcherOverrides` on * the spawn boundary event without re-deriving it. */ export declare const matcherOverridesOf: WeakMap; export declare class OverrideRefusalError extends Error { readonly path: string; readonly harness?: string | undefined; constructor(path: string, detail: string, harness?: string | undefined); } /** Parse an override document and merge it over the code defaults. */ export declare const parseOverrides: (jsonText: string, path: string) => DescriptorSet; //# sourceMappingURL=overrides.d.ts.map