import { type Content as GeminiMessageContent } from "@google/generative-ai";
import { type GenerateContentResponse } from "@google-cloud/vertexai";
import type { ChatMessage, MessageContent, MessageType } from "../types.js";
import type { ChatContext, GeminiChatParamsNonStreaming, GeminiChatParamsStreaming, GeminiMessageRole, Part } from "./types.js";
export declare const getPartsText: (parts: Part[]) => string;
/**
 * Returns all text found in all parts of first candidate.
 */
export declare const getText: (response: GenerateContentResponse) => string;
export declare const cleanParts: (message: GeminiMessageContent) => GeminiMessageContent;
export declare const getChatContext: (params: GeminiChatParamsStreaming | GeminiChatParamsNonStreaming) => ChatContext;
/**
 * Helper class providing utility functions for Gemini
 */
export declare class GeminiHelper {
    static readonly ROLES_TO_GEMINI: Record<MessageType, GeminiMessageRole>;
    static readonly ROLES_FROM_GEMINI: Record<GeminiMessageRole, MessageType>;
    static mergeNeighboringSameRoleMessages(messages: GeminiMessageContent[]): GeminiMessageContent[];
    static messageContentToGeminiParts(content: MessageContent): Part[];
    static chatMessageToGemini(message: ChatMessage): GeminiMessageContent;
}
