/**
 * Doctor check: report that the last local `lisa apply` failed.
 *
 * The postinstall apply is deliberately non-fatal — a non-zero postinstall
 * aborts `bun install` / `npm ci`, which would stop a project installing its
 * dependencies at all, including the fix. That caution is correct and stays.
 *
 * What was wrong is that it was also SILENT. The previous one-liner ended in
 * `2>/dev/null || true`: two independent silencers, discarding why it failed
 * and that it failed. A project whose apply could not run therefore received no
 * template updates, no guardrail updates and no signal — install after install,
 * indefinitely. Measured on a consumer: the apply aborted on a module
 * resolution failure before doing any work, and the repository had been frozen
 * at whatever Lisa last managed to write, with every install reporting success.
 *
 * So the failure is now recorded, and this check is what reads it. Non-fatal
 * and observable, rather than non-fatal and invisible.
 *
 * ## Why `warn` and not `fail`
 *
 * The project is not broken; it is STALE, and it may have been stale for a
 * long time before anyone looked. Failing doctor would make every affected
 * repository red simultaneously on the release that ships this, which buries
 * the signal in exactly the population that needs to read it. A warning that
 * names the marker and the command is actionable; a wall of red is not.
 * @module cli/doctor-apply-failure
 */
import type { DoctorCheck } from "./doctor.js";
/** Where the postinstall records a failed apply. */
export declare const APPLY_FAILURE_MARKER: string;
/** The recorded shape of a failed apply. */
export interface ApplyFailure {
    failedAt?: string;
    exitCode?: number | null;
    output?: string;
}
/**
 * The first line of the recorded error, for a one-line detail.
 *
 * The marker holds a tail of the real output, which is frequently a stack
 * trace. A doctor detail that printed all of it would push every other check
 * off the screen, and the full text is already on disk at a named path.
 * @param failure The recorded failure.
 * @returns A short cause, or an empty string when nothing was recorded.
 */
export declare function summariseCause(failure: ApplyFailure): string;
/**
 * Report whether the last local apply failed.
 * @param targetPath Project root.
 * @returns The doctor check result.
 */
export declare function checkApplyFailure(targetPath: string): Promise<DoctorCheck>;
//# sourceMappingURL=doctor-apply-failure.d.ts.map