import type { ProjectReadBoundary } from "../io/bootstrap-write-boundary.js"; import { type BoundedProcessOptions, type BoundedProcessResult } from "./bounded-process.js"; import { writeAndRereadCiReverificationArtifact } from "./ci-reverification-artifact.js"; import { captureEvidenceParentIdentity, captureGitIdentity, captureWorkspaceIdentity } from "./ci-reverification-identity.js"; import { captureSourceIdentity } from "./source-identity.js"; import { type CiReverificationFinalStatus } from "./ci-reverification-model.js"; export type CiReverificationMode = "ci" | "local"; export type CiReverificationResult = { readonly artifactPath?: string; readonly diagnosticCodes: readonly string[]; readonly finalStatus: CiReverificationFinalStatus; }; export type CiReverificationRunnerOptions = { readonly attemptBudgetMs?: number; readonly beforeArtifactWrite?: () => void; readonly beforePostCapture?: () => void; readonly captureEvidenceParent?: typeof captureEvidenceParentIdentity; readonly captureGit?: typeof captureGitIdentity; readonly captureSource?: typeof captureSourceIdentity; readonly captureWorkspace?: typeof captureWorkspaceIdentity; readonly commandTimeoutMs?: number; readonly now?: () => number; readonly platform?: NodeJS.Platform; readonly projectReadBoundary?: ProjectReadBoundary; readonly runProcess?: (options: BoundedProcessOptions) => BoundedProcessResult; readonly writeArtifact?: typeof writeAndRereadCiReverificationArtifact; }; export declare function runCiReverification(projectDir: string, mode: CiReverificationMode, options?: CiReverificationRunnerOptions): CiReverificationResult;