import type { ChatRequest } from "ollama";
import type { ChatSession, StartChatParams } from "@google/generative-ai";
import type { MessageCreateParams } from "@anthropic-ai/sdk/resources";
import type OpenAI from "openai";
import type PromptMode from "./enums/prompt_mode";
export type Chat = ChatSession | OpenAI.Completion;
export type ChatParams = StartChatParams | OpenAI.ChatCompletionCreateParamsNonStreaming | ChatRequest | MessageCreateParams;
export type Model = "gemini-pro" | OpenAI.ChatCompletionCreateParamsNonStreaming["model"] | string;
export type ModelArgs = {
    model: Model;
    chatParams: ChatParams;
    rateLimitMs: number;
    apiKey: string | undefined;
    host: string | undefined;
    promptMode: PromptMode;
    batchSize: number;
    batchMaxTokens: number;
    concurrency: number;
    tokensPerMinute?: number;
};
export type GenerateStateCSV = {
    fixedTranslationMappings: {
        [input: string]: string;
    };
    translationToRetryAttempts: {
        [translation: string]: number;
    };
    inputLineToTemplatedString: {
        [index: number]: Array<string>;
    };
    splitInput: Array<string>;
    generationRetries: number;
};
export type TranslationStats = {
    translate: TranslationStatsItem;
    verify: TranslationStatsItem;
};
export type TranslationStatsItem = {
    batchStartTime: number;
    processedItems: number;
    processedTokens: number;
    enqueuedItems: number;
    totalItems: number;
    totalTokens: number;
};
