import { type FilterVerdict } from './qa-image-filter.js'; export declare const DEFAULT_QA_IMAGE_VISION_ENDPOINT = "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent"; export type ImageVisionVerdict = FilterVerdict | 'error'; export interface ImageVisionSlide { sceneIndex: number; /** Path to the slide/keyframe image that will seed image-to-video generation. */ imagePath: string; } export interface CheckImageVisionInput { slides: ImageVisionSlide[]; /** * Flag slides at or above this verdict (`ok` turns false). Default * `likely-blocked` — the Python's default; pass `risky` for a stricter gate. */ threshold?: Exclude; /** Override the Gemini endpoint (else VCLAW_GEMINI_API_ENDPOINT, else default). */ endpoint?: string; /** Explicit API key — bypasses the env-backed key pool. */ keyOverride?: string; /** Injectable fetch for offline tests. */ fetcher?: typeof fetch; } export interface ImageVisionResult { sceneIndex: number; verdict: ImageVisionVerdict; reason: string; } export interface CheckImageVisionResult { results: ImageVisionResult[]; /** Results at or above the threshold (never includes `error` results). */ flagged: ImageVisionResult[]; /** False only when at least one slide is at/above the threshold. */ ok: boolean; } /** * The audit prompt, generalized from the Python original (which was worded for * its cricket-recap deck). The four flagged-element categories and the EXACT * two-line `verdict:` / `reason:` reply contract are unchanged. */ export declare function buildImageVisionPrompt(): string; /** * Parse the two-line `verdict:` / `reason:` reply. An unrecognized verdict * value falls back to `error` with the full reply text as the reason, exactly * like the Python original. */ export declare function parseImageVisionReply(text: string): { verdict: ImageVisionVerdict; reason: string; }; /** * Classify content-filter risk for every slide image, sequentially (one * Gemini call per slide, matching the Python). Per-slide failures (missing * image, HTTP error, unparseable reply) become `error` results rather than * aborting the deck. Throws only on invalid input. */ export declare function checkImageVision(input: CheckImageVisionInput): Promise; //# sourceMappingURL=qa-image-vision.d.ts.map