import type { LanguageCode } from '@arvinxu/languages'; import type { RequestMethod } from 'umi-request'; import type { TranslatorEnv, TranslateResult, TranslatorOptions, Languages, TranslateQueryResult } from './type'; import type { RequestErrorCode } from './type'; /** * 翻译器 */ export declare abstract class Translator = {}> { request: RequestMethod; protected readonly env: TranslatorEnv; /** * 自定义选项 */ config: Config; /** * 翻译器标识符 */ abstract readonly name: string; /** * 可选的request实例 */ constructor(options?: TranslatorOptions); /** * 获取翻译器所支持的语言列表: 语言标识符数组 */ abstract getSupportLanguages(): Languages; /** * 下游应用调用的接口 */ translate(text: string, from: LanguageCode, to: LanguageCode, config?: Config): Promise; /** * 更新 token 的方法 */ updateToken?(): Promise; /** * 翻译源需要实现的方法 */ protected abstract query(text: string, from: LanguageCode, to: LanguageCode, config: Config): Promise; /** * 如果翻译源提供了单独的检测语言的功能,请实现此接口 */ detect(text: string): Promise; /** * 获取错误结构 * @param code * @param message */ protected getErrorResult(code: RequestErrorCode, message: string): Omit; }