import { type PreparedRunArtifactPaths } from "./run-paths.js"; import { type StudyAnalysisExecutionStart, type StudyAnalysisExecutionReceipt } from "./study-analysis-validation.js"; import type { LoadedStudyAnalysis, StudyAnalysisArtifact, StudyAnalysisCorrection } from "./study-analysis.js"; export declare const STUDY_ANALYSIS_DIRECTORY = "analysis"; export interface StudyAnalysisListEntry { id: string; state: "ready" | "stale" | "invalid"; analysis: StudyAnalysisArtifact | null; warnings: string[]; } /** Check room for both immutable publications before a new provider dispatch. * This is read-only; the service's dispatch lock protects ordinary concurrent writers. */ export declare function assertStudyAnalysisPublicationCapacity(prepared: PreparedRunArtifactPaths): Promise; /** A claimed version is never reused, including after interruption before publication. */ export declare function writeStudyAnalysis(prepared: PreparedRunArtifactPaths, value: StudyAnalysisArtifact): Promise; /** Read one exact result without reading automatic job state or unrelated history. */ export declare function readStudyAnalysisVersion(prepared: PreparedRunArtifactPaths, id: string): Promise; /** Includes failed attempts; callers must not equate the newest attempt with usable findings. */ export declare function listStudyAnalyses(prepared: PreparedRunArtifactPaths): Promise; export declare function loadStudyAnalysis(prepared: PreparedRunArtifactPaths, id?: string): Promise; export declare function appendStudyAnalysisCorrection(prepared: PreparedRunArtifactPaths, value: StudyAnalysisCorrection): Promise; export type { StudyAnalysisExecutionReceipt } from "./study-analysis-validation.js"; export declare const STUDY_ANALYSIS_EXECUTION_DIRECTORY = "analysis-attempts"; /** Exact bounded receipt lookup for an already claimed execution, never a dispatch decision. */ export declare function readStudyAnalysisExecution(prepared: PreparedRunArtifactPaths, id: string): Promise; /** * Publish accounting first. Unlike a usable report, this receipt does not claim * the source still matches; its digests name the exact input that was attempted. */ export declare function writeStudyAnalysisExecutionReceipt(prepared: PreparedRunArtifactPaths, value: StudyAnalysisArtifact): Promise; /** The returned closure owns one exact directory; persisted IDs never authorize overwriting it. */ export declare function beginStudyAnalysisExecution(prepared: PreparedRunArtifactPaths, context: Omit): Promise<(value: StudyAnalysisArtifact) => Promise>; export declare function listStudyAnalysisExecutions(prepared: PreparedRunArtifactPaths): Promise<{ receipts: StudyAnalysisExecutionReceipt[]; warnings: string[]; }>; export interface StudyAnalysisAccountingRecord { id: string; receipt: StudyAnalysisExecutionReceipt | null; start: StudyAnalysisExecutionStart | null; legacy: boolean; } /** Accounting is independent of source freshness and findings validation. No evidence is opened. */ export declare function readStudyAnalysisAccountingRecords(prepared: PreparedRunArtifactPaths): Promise<{ records: StudyAnalysisAccountingRecord[]; warnings: string[]; }>;