import { TotalumApiResponse } from "../common/interfaces"; import { GeminiAnalyzeVideoResponse } from "../common/response-types"; import { FetchClient } from "../common/fetch-client"; export declare class GeminiService { private client; constructor(client: FetchClient); /** * Analyzes a video using Google Gemini and returns the model's response. * Default model: gemini-3-flash-preview (with automatic fallback to gemini-2.5-flash on failure). * Set highQuality=true to use gemini-3.1-pro-preview for harder reasoning tasks (~4x cost). * * @param {object} body - The video analysis parameters * @param {string} body.videoUrl - Public or signed URL of the video to analyze. Max 100 MB. * @param {string} body.prompt - Free-form instruction for Gemini (e.g. "Summarize this video", "What products appear?") * @param {boolean} [body.highQuality] - Use gemini-3.1-pro-preview instead of flash. Default: false. * @param {string} [body.mimeType] - MIME type hint (e.g. "video/mp4"). Auto-detected if omitted. * @returns {Promise>} - The Gemini response with the model used and candidates */ analyzeVideo(body: { videoUrl: string; prompt: string; highQuality?: boolean; mimeType?: string; }): Promise>; }