import type { ProjectType } from "../core/config.js";
import { type JsonObject } from "../sync/json-path.js";
import type { StandardsCheckCategory } from "./contract.js";
import { type TestEvidenceFormat } from "./test-evidence.js";
/** One fixed, no-shell command in the current standards registry. */
export interface StandardsCheckSpec {
    readonly id: string;
    readonly category: StandardsCheckCategory;
    readonly argv: readonly [string, ...string[]];
    readonly timeoutMs: number;
    readonly testEvidence?: TestEvidenceFormat;
    readonly environment?: Readonly<Record<string, string>>;
}
/** Fully resolved current check plan and its tamper-evident registry digest. */
export interface StandardsCheckPlan {
    readonly checks: readonly StandardsCheckSpec[];
    readonly registryDigest: string;
    readonly configDigest: string;
}
/**
 * Resolve the exact ordered union of checks for current detected stacks.
 * Missing managed scripts and threshold tooling fail before any command runs.
 * @param projectRoot - Canonical project root
 * @param projectTypes - Expanded, canonical detected types
 * @param config - Current bounded merged Lisa config
 * @returns Closed current check plan
 */
export declare function resolveStandardsCheckPlan(// eslint-disable-line max-lines-per-function -- the closed multi-stack registry is one auditable ordered plan
projectRoot: string, projectTypes: readonly ProjectType[], config: JsonObject): Promise<StandardsCheckPlan>;
/**
 * Digest only configuration that changes standards applicability or policy.
 * @param config - Current merged Lisa config
 * @returns Canonical standards configuration digest
 */
export declare function digestStandardsConfig(config: JsonObject): string;
/**
 * Return a canonical SHA-256 digest without retaining config values.
 * @param value - JSON-like value to digest
 * @returns Canonical SHA-256 digest
 */
export declare function digestStandardsValue(value: unknown): string;
//# sourceMappingURL=registry.d.ts.map