import { IMessageModel } from '@tencentcloud/chat-uikit-engine';

/**
 * three type for origin text to be translated
 * 1. image: small face text
 * 2. text: plain text
 * 3. mention: mention '@'
 */
interface ITextFace {
    type: 'face';
    value: string;
}
interface ITextPlain {
    type: 'text';
    value: string;
}
interface ITextAt {
    type: 'mention';
    value: string;
}
export type TranslationTextType = ITextFace | ITextPlain | ITextAt;
declare class Translator {
    isUseCache: boolean;
    private translationCache;
    private static instance;
    private constructor();
    static getInstance(): Translator;
    get(message: IMessageModel): Promise<TranslationTextType[]>;
    /**
     * Clears the translation cache.
     */
    clear(): void;
    disableCache(): void;
    enableCache(): void;
    private getTranslationStandard;
    /**
     * the nick list is used to split the text by @ + {nick or userID}
     * @param message
     * @returns e.g. ['@james', '@john']
     */
    private getNickList;
    /**
     * Splits the given text into substrings based on the provided splitString array.
     *
     * @param {string} text - The text to be split.
     * @param {string[]} splitString - The array of strings to split the text by.
     * @return {{ transSplitingList: string[]; atNickList: string[] }} - An object containing two arrays:
     *   - transSplitingList: An array of substrings extracted from the text.
     *   - atNickList: An array of split strings that were found in the text.
     */
    private getSplitResult;
}
export declare const translator: Translator;
export {};
