import type { Generator } from "../generator.js"; import { type RequirementView } from "../requirement-walk.js"; import { type RequirementTestArgs } from "../templates/requirement-test.js"; export type RequirementTestRenderer = (a: RequirementTestArgs) => string; export interface RequirementTestsOpts { /** Generator name — surfaces in diagnostics and drift logs. */ name?: string; /** WHICH requirements get stubs. This is the app's policy declaration. */ filter?: (r: RequirementView) => boolean; /** Renderer per concern key: exact `type.subType`, `type.*`, or `*`. */ renderers?: Record; /** Full control over renderer selection — beats `renderers` when it returns one. */ resolveRenderer?: (concern: string) => RequirementTestRenderer | undefined; /** Where each stub lands. */ path?: (view: RequirementView, concern: string) => string; /** Named output target (registry key). */ target?: string; /** Name requirements no filter covered. Default true; never fails the build. */ warnUncovered?: boolean; /** * FR-038 §8 — which emitted paths this generator is the sole producer of, so * the runner may remove a stub whose requirement was deleted. Given a path * relative to this generator's output directory, `/`-separated. * * Defaults to the namespace `defaultPath` writes into. Supply this whenever you * supply `path`: the two describe the same namespace from opposite directions * and only you can keep them in agreement. */ owns?: (relPathInTarget: string) => boolean; /** * Delete a hand-edited orphan rather than refusing it. Default false. * * A refusal already names the file and tells you the two ways out; this makes * the destructive one automatic. It exists so the decision is yours, not * because it is a good default. */ forceOrphanDelete?: boolean; /** Turn orphan reconciliation off entirely. Default true — a stub whose * requirement is gone is drift, and leaving it is how a deleted claim keeps a * green test. */ reconcileOrphans?: boolean; } export declare function requirementTests(opts?: RequirementTestsOpts): Generator; //# sourceMappingURL=requirement-tests.d.ts.map