import { Lang } from './constants';
import { IBaseFanyiConfig } from '../../BaseFanyi';
export interface IYoudaoFanyiConfig<L extends string = Lang> {
    /** 待翻译文本  必须是UTF-8编码 */
    q: string;
    /** 源语言  参考下方 支持语言 (可设置为auto) */
    from: L;
    /** 目标语言  参考下方 支持语言 (可设置为auto) */
    to: L;
    /** 应用ID  可在 应用管理 查看 */
    appKey: string;
    /** 应用密钥 */
    appSecret: string;
    /** UUID  UUID */
    salt: string;
    /** 签名  sha256(应用ID+input+salt+curtime+应用密钥) */
    sign: string;
    /** 签名类型  v3 */
    signType: 'v3';
    /** 当前UTC时间戳(秒)  TimeStamp */
    curtime: string;
    /** 翻译结果音频格式，支持mp3 false mp3 */
    ext?: 'mp3';
    /** 翻译结果发音选择
     * 0为女声，1为男声。默认为女声 */
    voice?: '0' | '1';
    /** 是否严格按照指定from和to进行翻译：true/false false 如果为false，
     * 则会自动中译英，英译中。默认为false */
    strict?: 'true' | 'false';
    /** 用户上传的词典 false 用户指定的词典 out_id，目前支持英译中 */
    vocabId?: string;
}
export declare class YoudaoFanyiConfig implements IYoudaoFanyiConfig, IBaseFanyiConfig<Lang> {
    q: string;
    from: Lang;
    to: Lang;
    appKey: string;
    appSecret: string;
    salt: string;
    sign: string;
    signType: 'v3';
    curtime: string;
    ext?: 'mp3' | undefined;
    voice?: '0' | '1' | undefined;
    strict?: 'true' | 'false' | undefined;
    vocabId?: string | undefined;
    constructor(config?: Partial<IYoudaoFanyiConfig>);
    update(part: Partial<IYoudaoFanyiConfig>): void;
    updateQuery(query: string): this;
    updateAppKey(appKey: string): this;
    updateAppSecret(appSecret: string): this;
    updateSalt(salt?: string): this;
    udpateCurtime(curtime?: string): this;
    setLangFrom(lang: Lang): this;
    setLangTo(lang: Lang): this;
    /**
     * 签名生成
     */
    updateSign(): void;
    /**
     * 创建冻结副本
     */
    release(this: YoudaoFanyiConfig): Readonly<Omit<YoudaoFanyiConfig, "updateSign" | "release">>;
}
