import { default as LanguageDetect } from 'languagedetect';

export declare abstract class Translation {
    protected lang: LanguageDetect;
    protected languagesToCodes: Map<string, string>;
    supportedLanguages: Map<string, string>;
    translate(text: string, options?: TranslationOptions): Promise<TranslationResult>;
    protected getCanonicalLocale(text: string): string;
    protected isSupported(tag: string): boolean;
    /**
     * @param text - 要检测的文本
     * @param limit - 最大匹配数
     * @returns 返回匹配的语言列表
     */
    protected detectedLanguages(text: string, limit?: number): [string, number][];
    protected abstract request(text: string, from: string, to: string): Promise<TranslationResult>;
}
export type TranslationOptions = {
    from?: string;
    to?: string;
};
export type TranslationResult = {
    lang: string;
    result: string;
    alternatives: string[];
};
