export declare const DEFAULT_AGENTIC_MODEL = "gemini-3.8-flash"; /** Models Google lists as supporting agentic video processing (2026-09-16). */ export declare const AGENTIC_MODELS: readonly string[]; /** Allowlist check; `VCLAW_GEMINI_AGENTIC_MODELS=a,b` extends the built-in list. */ export declare function isAgenticModel(model: string, env?: NodeJS.ProcessEnv): boolean; export declare function isYouTubeUrl(source: string): boolean; export type InteractionProcessing = 'static' | 'agentic'; export interface InteractionVideoInput { uri?: string; /** Base64 bytes — the alternative to `uri` for small clips. */ data?: string; mimeType?: string; processing: InteractionProcessing; } export interface InteractionUsage { inputTokens?: number; outputTokens?: number; totalTokens?: number; thoughtTokens?: number; toolUseTokens?: number; cachedTokens?: number; byModality?: Array<{ modality: string; tokens: number; }>; } export interface InteractionResult { id?: string; model: string; status: string; text: string; usage?: InteractionUsage; } /** Joins the text of every `model_output` step; accepts `steps` or `outputs`. */ export declare function extractInteractionText(payload: unknown): string; export declare function normalizeInteractionUsage(raw: unknown): InteractionUsage | undefined; /** * The exact request body `createInteraction` sends. Extracted so a `--dry-run` * can print the real payload instead of a hand-copied shape that drifts. * PURE — no network, no key. */ export declare function buildInteractionRequestBody(input: { model: string; video: InteractionVideoInput; text: string; /** Passed through verbatim; the API wants snake_case keys. */ generationConfig?: Record; }): Record; export declare function createInteraction(input: { model: string; video: InteractionVideoInput; text: string; /** Passed through verbatim; the API wants snake_case keys. */ generationConfig?: Record; apiBase?: string; fetcher?: typeof fetch; keyOverride?: string; /** Stderr prefix for retry notices; defaults to `[analyze/gemini]`. */ logPrefix?: string; }): Promise; //# sourceMappingURL=gemini-interactions.d.ts.map