import { type StudyAnalysisArtifact, type StudyAnalysisConfig, type StudyAnalysisInput } from "./study-analysis.js"; export declare const STUDY_ANALYSIS_PROMPT_VERSION = "study-evidence-5"; export declare const SUPPORTED_STUDY_ANALYSIS_MODELS: readonly string[]; export interface StudyAnalysisAdmission { allowed: boolean; error: string | null; inputTokenAllowance: number; outputTokenAllowance: number; estimatedCostUsd: number | null; ratesAsOf: string | null; } export interface StudyAnalysisProgress { phase: "admitted" | "requesting" | "validating" | "finished"; evidenceCount: number; captureCount: number; estimatedAdmissionUsd: number | null; status?: StudyAnalysisArtifact["status"]; } /** * Local admission ESTIMATE, not a provider-enforced billed-spend guarantee. No token-count API * call, credential, or network access. One UTF-8 byte/token for all text/schema plus framing is * intentionally conservative. Explicit high-detail images on these supported model families * use at most 2,500 patches × 1.2 = 3,000 input tokens per image (official vision guide, * 2026-09-14). Unknown models/rates fail closed rather than inheriting those assumptions. * https://developers.openai.com/api/docs/guides/images-vision * Known-sensitive decoded text denies admission with analysis_input_sensitive or * analysis_question_sensitive. Neither error includes rejected input values. */ export declare function estimateStudyAnalysisAdmission(input: StudyAnalysisInput, config: StudyAnalysisConfig): StudyAnalysisAdmission; /** Only for an omitted output limit. Preserve the established allowance when * more reasoning/report space would refuse a study its declared budget admits. * This is one pre-dispatch choice, never a fallback request or a budget increase. */ export declare function preferLargerStudyAnalysisOutput(input: StudyAnalysisInput, config: StudyAnalysisConfig): StudyAnalysisConfig; export type StudyAnalysisDispatchContext = Pick; /** Explicit invocation or an opted-in post-run owner; Observer readers never call this. */ export declare function runStudyAnalysis(input: StudyAnalysisInput, config: StudyAnalysisConfig, options: { apiKey: string; signal?: AbortSignal; onProgress?: (progress: StudyAnalysisProgress) => void; fetch?: typeof fetch; /** Internal orchestration: bind a permanent automatic claim before any provider call. */ analysisId?: string; beforeDispatch?: (context: StudyAnalysisDispatchContext) => Promise; }): Promise;