import type { ProjectType } from "../core/config.js";
import { readConfinedMergedConfig } from "../cli/ui-confined-project-read.js";
import { type StandardsProof } from "./contract.js";
import { readStandardsGitState, requireStandardsBaseCommit } from "./git-state.js";
import { resolveStandardsCheckPlan, type StandardsCheckSpec } from "./registry.js";
import { writeStandardsProof } from "./storage.js";
/** Bounded result from one standards command invocation. */
export interface StandardsCommandOutcome {
    readonly exitCode: number;
    readonly output: string;
}
/** Injectable boundaries for focused capture verification. */
export interface StandardsCaptureDependencies {
    readonly readGitState: typeof readStandardsGitState;
    readonly requireBaseCommit: typeof requireStandardsBaseCommit;
    readonly readProjectTypes: (root: string) => Promise<readonly ProjectType[]>;
    readonly readConfig: typeof readConfinedMergedConfig;
    readonly resolvePlan: typeof resolveStandardsCheckPlan;
    readonly runCommand: (root: string, check: StandardsCheckSpec) => Promise<StandardsCommandOutcome>;
    readonly writeProof: typeof writeStandardsProof;
    readonly lisaVersion: () => string;
    readonly now: () => Date;
    readonly onProgress: (message: string) => void;
}
/**
 * Run every current applicable check and publish proof only after all pass and
 * every bound input remains unchanged. This establishes automated standards
 * conformance; it does not claim empirical product verification.
 * @param projectRoot - Supported project repository
 * @param dependencies - Injectable process boundaries
 * @returns Strict proof written for the unchanged artifact
 */
export declare function captureStandardsProof(projectRoot: string, dependencies?: Partial<StandardsCaptureDependencies>): Promise<StandardsProof>;
/**
 * Execute one fixed argv with a deadline, no shell, and bounded private output.
 * @param root - Canonical project repository
 * @param check - Fixed registry check to execute
 * @returns Exit status and bounded private output
 */
export declare function runStandardsCommand(root: string, check: StandardsCheckSpec): Promise<StandardsCommandOutcome>;
//# sourceMappingURL=capture.d.ts.map