/** Strict, agent-neutral contract for one standards-conformance proof. */
import type { ProjectType } from "../core/config.js";
export declare const STANDARDS_PROOF_PATH = ".lisa/standards/latest.json";
export declare const STANDARDS_PROOF_ARTIFACT = "lisa-standards-proof";
export declare const STANDARDS_PROOF_SCHEMA_VERSION = 1;
export declare const STANDARDS_CHECK_CATEGORIES: readonly ["lint", "static-analysis", "test", "guardrail", "threshold"];
/** Closed category names accepted in standards proof results. */
export type StandardsCheckCategory = (typeof STANDARDS_CHECK_CATEGORIES)[number];
/** One successful bounded check, without stdout, stderr, or environment data. */
export interface StandardsProofResult {
    readonly check: string;
    readonly category: StandardsCheckCategory;
    readonly status: "pass";
    readonly startedAt: string;
    readonly completedAt: string;
}
/** Git artifact identity established by a standards run. */
export interface StandardsRepositoryProof {
    readonly identity: string;
    readonly head: string;
    readonly tree: string;
}
/** Complete immutable proof envelope. */
export interface StandardsProof {
    readonly schemaVersion: 1;
    readonly artifact: typeof STANDARDS_PROOF_ARTIFACT;
    readonly lisaVersion: string;
    readonly registryDigest: string;
    readonly configDigest: string;
    readonly repository: StandardsRepositoryProof;
    readonly projectTypes: readonly ProjectType[];
    readonly applicableChecks: readonly string[];
    readonly capturedAt: string;
    readonly results: readonly StandardsProofResult[];
}
/**
 * Validate untrusted proof data into a detached, deeply frozen envelope.
 * Timestamps are audit metadata only: they must be ordered and not in the
 * future, but proof freshness is established by recomputed bound inputs.
 * @param candidate - Untrusted proof candidate
 * @param now - Observation time used only to reject future timestamps
 * @returns Strict immutable proof
 */
export declare function validateStandardsProof(candidate: unknown, now?: Date): StandardsProof;
//# sourceMappingURL=contract.d.ts.map