import type { ChatMessage, NativeToolCall, ReasoningArtifact, ReasoningArtifactReplayObserver, ReasoningArtifactReplayTarget, ToolDefinition } from "../../types.js"; import { type ToolChoice } from "../tool-protocol.js"; import "../../tools/definitions.js"; export declare function toGeminiFunctionDeclarations(defs: ToolDefinition[]): Array<{ name: string; description: string; parameters: Record; }>; export declare function geminiToolBodyFields(options: { tools?: ToolDefinition[] | undefined; toolChoice?: ToolChoice | undefined; }): Record; type GeminiPart = ({ text: string; thought?: boolean; thoughtSignature?: string; } & Record) | { inlineData: { mimeType: string; data: string; }; } | { functionCall: { name: string; args?: Record; id?: string; }; thoughtSignature?: string; } | { functionResponse: { name: string; response: Record; id?: string; }; }; export interface GeminiReasoningPart { readonly kind: "thought" | "thought-signature"; readonly raw: ReasoningArtifact["raw"]; readonly sequence: number; readonly displaySummary?: string | undefined; readonly toolCallIndex?: number | undefined; } interface GeminiReasoningReplayOptions { readonly target: ReasoningArtifactReplayTarget; readonly observe?: ReasoningArtifactReplayObserver | undefined; } /** * Convert dialect-neutral history to Gemini contents with functionCall / * functionResponse parts. The first system message is owned by * `systemInstruction`; later system messages become marked user turns in place *. */ export declare function toGeminiToolContents(messages: ChatMessage[], replay?: GeminiReasoningReplayOptions): Array<{ role: "user" | "model"; parts: GeminiPart[]; }>; export declare function parseGeminiFunctionCalls(parts: Array<{ text?: string; thought?: boolean; thoughtSignature?: string; functionCall?: { name?: string; args?: Record; id?: string; }; }> | undefined): { text: string; toolCalls: NativeToolCall[]; reasoningParts: GeminiReasoningPart[]; }; export {};