/**
 * Report where the settings file and the ruleset that enforces it disagree.
 *
 * The machine payload under `--json` carries the whole comparison, three states
 * and all. This is the line an operator reads without asking for JSON, and it
 * is deliberately the OFFLINE half: doctor is documented as making no network
 * call, and the template is what a repository's protection is provisioned
 * from, so a disagreement with it is drift the moment anyone provisions —
 * whether or not the live ruleset has caught up. The live half runs in
 * `lisa health`, which already reaches GitHub.
 *
 * A `warn` here is not a softer `fail`. Two of the verdicts are contradictions
 * — the two surfaces state opposite things and one of them is wrong — and
 * those fail. The other two are silences, and a silence must not send an
 * operator to delete a required check; those warn and say what to declare.
 * @module cli/doctor-declared-contexts
 */
import type { DeclarationDriftReport } from "../core/gate-declaration-drift.js";
import type { DoctorCheck } from "./doctor.js";
/**
 * Turn a completed comparison into one operator-readable line.
 * @param report - The comparison
 * @returns The check
 */
export declare function declaredContextsCheck(report: DeclarationDriftReport): DoctorCheck;
/**
 * Compare the settings file with the ruleset template it is enforced by.
 * @param projectRoot - Project root
 * @returns The check
 */
export declare function checkDeclaredContexts(projectRoot: string): Promise<DoctorCheck>;
//# sourceMappingURL=doctor-declared-contexts.d.ts.map