/**
 * Readiness journey-evidence wiring (RRR-6, #1858).
 *
 * The execution/proof readiness dimension may not *assume* end-to-end
 * operability — the PRD requires it to be backed by at least one representative
 * journey executed by the configured worker. #1742 already ships that journey
 * machinery inside `lisa doctor`; this module connects it to the readiness
 * verdict without building a second harness (intake decision F5). It consumes
 * the shared runner in `doctor-worker-journey.ts`, applies a freshness contract
 * (same worker signature, evidence newer than the current artifact head), and:
 *
 * - reuses fresh qualification evidence, running no journey;
 * - triggers a `lisa-use-the-product` journey when evidence is absent or stale,
 *   respecting the per-environment mutation policy from `.lisa.config.json`
 *   (a `forbidden` policy renders `SKIP` naming the policy — readiness never
 *   overrides it);
 * - reports the claim as *not established* (a stated-reason `SKIP`, never a
 *   guessed pass) when a journey cannot be run;
 * - files a build-ready ticket through the existing #1742 path and stands up
 *   blocker 7 when a journey fails, expressed in PRD #1738's claim→evidence
 *   shape so there is one evidence definition across both PRDs.
 *
 * It also surfaces #1742's scaffolding-subtraction candidate count into the
 * proportionality dimension's `machinery_to_remove` field — surfaced, never
 * auto-deleted. Warn-only per intake decision O1: nothing here hard-blocks.
 * @module cli/doctor-readiness-journey
 */
import { type MutationPolicy, resolveMutationPolicy } from "./doctor-readiness-journey-freshness.js";
import type { ReadinessDimensionRecord } from "./doctor-readiness-types.js";
import { type RuntimeWorkerSignature } from "./doctor-worker-journey.js";
export { resolveMutationPolicy, type MutationPolicy };
/** The execution/proof readiness dimension id (readiness-rubric, RRR-1). */
export declare const EXECUTION_PROOF_DIMENSION_ID = "execution-proof";
/** The proportionality readiness dimension id (readiness-rubric, RRR-1). */
export declare const PROPORTIONALITY_DIMENSION_ID = "proportionality";
export type { ReadinessDimensionRecord };
/** The outcome of running a representative journey. */
export type JourneyOutcome = {
    readonly result: "passed";
    readonly evidence: string;
} | {
    readonly result: "failed";
    readonly evidence: string;
    readonly failureDetail?: string;
};
/** Context handed to a representative-journey runner. */
export interface JourneyRunContext {
    readonly targetPath: string;
    readonly signature: RuntimeWorkerSignature;
    readonly mutationPolicy: MutationPolicy;
}
/** Runs one representative journey through `lisa-use-the-product`. */
export type JourneyRunner = (context: JourneyRunContext) => Promise<JourneyOutcome>;
/** The build-ready ticket a failing journey files through the #1742 path. */
export interface JourneyTicketRequest {
    readonly summary: string;
    readonly detail: string;
    readonly signature: RuntimeWorkerSignature;
}
/** Files a build-ready ticket and returns its reference. */
export type JourneyTicketFiler = (request: JourneyTicketRequest) => Promise<string>;
/** Options for {@link assessExecutionProofDimension}. */
export interface ExecutionProofOptions {
    /** Injected "now"; defaults to the current time. */
    readonly now?: Date;
    /**
     * Injected artifact-head timestamp for the freshness comparison. When omitted,
     * it is resolved from the git HEAD commit time; when that cannot be resolved,
     * freshness falls back to "no drift and evidence present".
     */
    readonly artifactHead?: Date | null;
    /**
     * The representative-journey runner. Omitted means the journey cannot be run
     * in this context (headless/no worker) — the claim is reported as *not
     * established* rather than assumed.
     */
    readonly runJourney?: JourneyRunner;
    /** Files a build-ready ticket on a failing journey (default: no-op recorder). */
    readonly fileTicket?: JourneyTicketFiler;
    /** Overrides the resolved mutation policy (default: read `.lisa.config.json`). */
    readonly mutationPolicy?: MutationPolicy;
}
/** Options for {@link assessProportionalityDimension}. */
export interface ProportionalityOptions {
    /** Overrides the resolved subtraction-candidate count (default: scan the repo). */
    readonly subtractionCount?: number;
}
/**
 * Assess the execution/proof dimension by reusing #1742's journey machinery.
 * @param targetPath - Project path to assess
 * @param options - Injected collaborators and freshness inputs
 * @returns The execution/proof dimension record
 */
export declare function assessExecutionProofDimension(targetPath: string, options?: ExecutionProofOptions): Promise<ReadinessDimensionRecord>;
/**
 * Assess the proportionality dimension: surface #1742's scaffolding-subtraction
 * candidate count into `machinery_to_remove`. Surfaced, never auto-deleted
 * (intake decision, RRR-6 technical approach point 6); it is never a blocker.
 * @param targetPath - Project path to scan
 * @param options - Injected subtraction count
 * @returns The proportionality dimension record
 */
export declare function assessProportionalityDimension(targetPath: string, options?: ProportionalityOptions): Promise<ReadinessDimensionRecord>;
//# sourceMappingURL=doctor-readiness-journey.d.ts.map