import type { GateConfig } from "./doctor-gate-recommendation.js";
import type { DoctorCheck } from "./doctor.js";
/** The gate id as the registry declares it. */
export declare const GATE_ID = "traceability";
/** The moment the registry permits for this gate. */
export declare const GATE_MOMENT = "pull-request";
/** What an undeclared project is repaired to. */
export declare const GATE_LEVEL = "required";
/**
 * Whether a config declares the traceability gate at all.
 *
 * Declared-as-`off` counts as declared. A repair that overwrote an explicit
 * opt-out would make the gate un-declinable, which is worse than the hole it
 * closes: the project could never express a considered exemption, and the next
 * `lisa doctor` would silently undo a deliberate decision.
 * @param config - Parsed `.lisa.config.json`
 * @returns True when the project has already made a decision about this gate.
 */
export declare function declaresTraceability(config: GateConfig): boolean;
/**
 * Add the gate at its registry-legal moment, without touching anything else.
 *
 * Returns a new object rather than mutating, so a caller that decides not to
 * write still holds the original.
 * @param config - Parsed `.lisa.config.json`
 * @returns A copy declaring the gate
 */
export declare function withTraceabilityGate<T extends GateConfig>(config: T): T;
/**
 * Report — and repair — an undeclared traceability gate.
 * @param targetPath - Project path to inspect and repair
 * @returns The doctor check result
 */
export declare function checkTraceabilityGate(targetPath: string): Promise<DoctorCheck>;
//# sourceMappingURL=doctor-traceability-gate.d.ts.map