import { BaseProvider, type ProviderInfo } from './base.js'; import type { CompletionRequest } from '../types/messages.js'; import type { GoogleProviderConfig } from '../types/config.js'; import type { NexusResponse, NexusStream } from '../types/response.js'; /** Google's Gemini API. */ export declare class GoogleProvider extends BaseProvider { /** Always `google`, hosted. */ readonly info: ProviderInfo; private config; constructor(config: GoogleProviderConfig); /** Runs one completion. */ complete(request: CompletionRequest): Promise; /** Streams one completion. */ stream(request: CompletionRequest): NexusStream; private generate; private createBody; /** * Maps portable reasoning controls onto Gemini's thinking budget. * * Returns undefined when the request says nothing about reasoning, leaving the model's own * default in place rather than forcing a budget on it. */ private thinkingConfig; private toolConfig; private formatMessages; private formatParts; private formatToolsGoogle; /** Reasoning summaries are marked `thought` and are excluded from visible output. */ private extractText; private extractToolCalls; private mapFinishReason; private extractModel; private baseUrl; private compact; }