import { Tiktoken } from "tiktoken";
import type { TranslationStats } from "../types";
import type Chats from "../interfaces/chats";
import type TranslateOptions from "../interfaces/translate_options";
export default class GenerateTranslationJSON {
    tikToken: Tiktoken;
    templatedStringRegex: RegExp;
    constructor(options: TranslateOptions);
    /**
     * Complete the initial translation of the input text.
     * @param flatInput - The flatinput object containing the json to translate
     * @param options - The options to generate the translation
     * @param chats - The options to generate the translation
     * @param translationStats - The translation statistics
     */
    translateJSON(flatInput: {
        [key: string]: string;
    }, options: TranslateOptions, chats: Chats, translationStats: TranslationStats): Promise<{
        [key: string]: string;
    }>;
    private generateTranslateItemsInput;
    private generateVerifyItemsInput;
    private generateTranslateItem;
    private getBatchTranslateItemArray;
    private getBatchVerifyItemArray;
    private generateTranslateItemArray;
    private getTranslateItemToken;
    private getVerifyItemToken;
    private generateTranslationJSON;
    private generateVerificationJSON;
    private convertTranslateItemToIndex;
    private parseTranslationToJSON;
    private parseVerificationToJSON;
    private isValidTranslateItem;
    private isValidVerificationItem;
    private createTranslateItemsWithTranslation;
    private createVerifyItemsWithTranslation;
    private runTranslationJob;
    private runVerificationJob;
    private verifyGenerationAndRetry;
    private generateJob;
}
