import type { PreparedRunArtifactPaths } from "./run-paths.js"; import type { StudyAnalysisArtifact, StudyAnalysisInput } from "./study-analysis.js"; import { type PreparedOutputRoot } from "./selected-output-paths.js"; /** Analysis inputs are retained local artifacts, never URLs or caller-selected outputs. */ export declare function isStudyEvidencePath(value: string): boolean; /** * Bounded companion to readContainedRegularFile. A growing or swapped file must * not turn an analysis budget into an unbounded read. No returned bytes have * authority to select another file or initiate a network request. */ export declare function readBoundedStudyFile(root: PreparedOutputRoot, relativePath: string, maxBytes: number): Promise; export declare const STUDY_EVIDENCE_LIMITS: Readonly<{ participants: 16; evidence: 800; captures: 40; textBytes: number; imageBytes: number; totalImageBytes: number; sourceBytes: number; }>; export type StudyEvidenceLimits = { [Key in keyof typeof STUDY_EVIDENCE_LIMITS]?: number; }; /** Select once from retained source. Models receive no filesystem or network resolver. */ export declare function captureStudyEvidence(prepared: PreparedRunArtifactPaths, bundleBytes: Buffer, requested?: StudyEvidenceLimits): Promise; /** Validate exact source membership before any stored path may be read. */ export declare function validateStudyAnalysisEvidence(prepared: PreparedRunArtifactPaths, artifact: StudyAnalysisArtifact, bundleBytes: Buffer): Promise;