import { LLM } from '../../agents/providers.js'; import type { GoogleLLMModel } from './models.js'; /** Configuration options for the Google Gemini LLM provider. */ export type GoogleLLMOptions = { /** Google AI (Gemini) API key. Falls back to the `GOOGLE_API_KEY` environment variable, then `null`. Not used for Vertex AI auth. */ apiKey?: string | null; /** Gemini model id. Default `'gemini-2.5-flash-lite'`. */ model?: GoogleLLMModel | string; /** Sampling temperature controlling randomness. Default `0.7`. */ temperature?: number; /** Maximum number of tokens to generate in the response. Default `8192`. */ maxOutputTokens?: number; /** Token budget for Gemini "thinking" (reasoning). `0` disables thinking. Default `0`. */ thinkingBudget?: number | null; /** Whether to include the model's thought/reasoning content in responses. Default `false`. */ includeThoughts?: boolean; /** Gemini safety/content-filter settings, as an array of category/threshold maps. Default `null` (provider defaults). */ safetySettings?: Array> | null; /** Nucleus sampling probability mass. Default `null` (model default). */ topP?: number | null; /** Top-K sampling cutoff. Default `null` (model default). */ topK?: number | null; /** Presence penalty discouraging repeated topics. Default `null` (model default). */ presencePenalty?: number | null; /** Frequency penalty discouraging repeated tokens. Default `null` (model default). */ frequencyPenalty?: number | null; /** Seed for reproducible sampling. Default `null` (non-deterministic). */ seed?: number | null; /** Route requests through Vertex AI instead of the Gemini API. When `true`, `projectId` is required. Default `false`. */ vertexai?: boolean; /** Google Cloud project id for Vertex AI auth. Required when `vertexai` is `true`; falls back to `GOOGLE_CLOUD_PROJECT`. Default `null`. */ projectId?: string | null; /** Vertex AI region. Default `'us-central1'`. Only used when `vertexai` is `true`. */ location?: string; /** Vertex AI service-account credentials, as a JSON string or parsed object. Used when `vertexai` is `true`. Default `null`. */ serviceAccountJson?: string | Record | null; /** Path to a Vertex AI service-account JSON file. Used when `vertexai` is `true`; falls back to `GOOGLE_APPLICATION_CREDENTIALS`. Default `null`. */ serviceAccountPath?: string | null; /** Additional/forward-compatible options. Unrecognized keys are ignored by the provider. */ [key: string]: any; }; declare class GoogleLLMImpl extends LLM { static readonly displayName = "GoogleLLM"; _providerName: string; apiKey: string | null; model: string; temperature: number; maxOutputTokens: number; thinkingBudget: number | null; includeThoughts: boolean; safetySettings: Array> | null; topP: number | null; topK: number | null; presencePenalty: number | null; frequencyPenalty: number | null; seed: number | null; vertexProjectId: string | null; vertexLocation: string | null; vertexServiceAccountJson: string | null; vertexServiceAccountPath: string | null; constructor(opts?: GoogleLLMOptions); getRuntimeConfig(): Record; } /** A configured Google Gemini LLM provider instance. */ export type GoogleLLM = GoogleLLMImpl; /** * Google Gemini LLM provider. * * Supports both the Gemini API (via `apiKey`) and Vertex AI (set `vertexai: true` * with `projectId` and service-account credentials). */ export declare const GoogleLLM: (opts?: GoogleLLMOptions) => GoogleLLM; export {};