import { probeMedia } from '../../video/final-media.js'; import { nextAvailableKey } from '../../video/gemini-key-pool.js'; import { uploadGeminiFile } from '../../video/gemini-files.js'; import { createInteraction } from '../../video/gemini-interactions.js'; import { type SportPrompts } from '../../video/match-highlights.js'; import { type EventsFileRow, type PlacementLeadOverrides } from '../../video/match-highlights-place.js'; /** Every effect this handler performs, injectable so tests never spawn ffmpeg or call Gemini. */ export interface MatchHighlightsRunners { ffmpeg?: (args: string[]) => Promise; probe?: typeof probeMedia; upload?: typeof uploadGeminiFile; interact?: typeof createInteraction; pickKey?: typeof nextAvailableKey; binaryAvailable?: (bin: string) => Promise; } export interface MatchHighlightsFlags { source: string; out: string; segmentSeconds: number; types: string[]; pre: number; post: number; prompt: string; promptFile?: string; parallel: number; model: string; sport: SportPrompts; judge: boolean; gapPass: boolean; timeoutSeconds: number; dryRun: boolean; /** * `--events-file`: take the events as GIVEN instead of listing them. Set * together with the rows read out of that file, so the run never re-reads it. */ eventsFile?: string; eventsRows?: EventsFileRow[]; /** `--place`: buy a model call to time the `--types` events in the file. */ place: boolean; /** `--lead` / `--lead-four` / `--lead-wicket`; absent means the measured per-type default. */ leads?: PlacementLeadOverrides; /** `--no-unknown`: leave `unknown` events out of the placement candidates. */ noUnknown: boolean; /** `--replace-cache`: spend again even though the cached answers are for other windows. */ replaceCache: boolean; /** True when `--source` was given explicitly, so a mismatch with the file can be caught. */ sourceFromFlag: boolean; /** The recording the events file names, when it names one. */ eventsFileSource?: string; } export declare function handleVideoMatchHighlights(args: string[], runners?: MatchHighlightsRunners): Promise; //# sourceMappingURL=match-highlights.d.ts.map