{"version":3,"sources":["src/sdk/AutoDetectSourceLanguageConfig.ts"],"names":[],"mappings":"AAKA,OAAO,EACH,kBAAkB,EAElB,oBAAoB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;GAIG;AACH,qBAAa,8BAA8B;IACvC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,kBAAkB,CAAiB;IAE3C,OAAO;IAMP;;;;;;;;OAQG;WACW,aAAa,IAAI,8BAA8B;IAO7D;;;;;;;OAOG;WACW,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,8BAA8B;IAOhF;;;;;;;OAOG;WACW,yBAAyB,CAAC,OAAO,EAAE,oBAAoB,EAAE,GAAG,8BAA8B;IAkBxG;;;;;;OAMG;IACH,IAAW,UAAU,IAAI,kBAAkB,CAE1C;IAED;;;;;;OAMG;IACH,IAAW,IAAI,CAAC,IAAI,EAAE,cAAc,EASnC;CACJ","file":"AutoDetectSourceLanguageConfig.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { AutoDetectSourceLanguagesOpenRangeOptionName } from \"../common.speech/Exports.js\";\nimport {Contracts} from \"./Contracts.js\";\nimport {\n    PropertyCollection,\n    PropertyId,\n    SourceLanguageConfig,\n} from \"./Exports.js\";\nimport { LanguageIdMode } from \"./LanguageIdMode.js\";\n\n/**\n * Language auto detect configuration.\n * @class AutoDetectSourceLanguageConfig\n * Added in version 1.13.0.\n */\nexport class AutoDetectSourceLanguageConfig {\n    private privProperties: PropertyCollection;\n    private privLanguageIdMode: LanguageIdMode;\n\n    private constructor() {\n        this.privProperties = new PropertyCollection();\n        this.privProperties.setProperty(PropertyId.SpeechServiceConnection_LanguageIdMode, \"AtStart\");\n        this.privLanguageIdMode = LanguageIdMode.AtStart;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.fromOpenRange\n     * @function\n     * @public\n     * Only [[SpeechSynthesizer]] supports source language auto detection from open range,\n     * for [[Recognizer]], please use AutoDetectSourceLanguageConfig with specific source languages.\n     * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig\n     * @summary Creates an instance of the AutoDetectSourceLanguageConfig with open range.\n     */\n    public static fromOpenRange(): AutoDetectSourceLanguageConfig {\n        const config = new AutoDetectSourceLanguageConfig();\n        config.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, AutoDetectSourceLanguagesOpenRangeOptionName);\n        config.properties.setProperty(PropertyId.SpeechServiceConnection_RecoLanguage, \"en-US\");\n        return config;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.fromLanguages\n     * @function\n     * @public\n     * @param {string[]} languages Comma-separated string of languages (eg. \"en-US,fr-FR\") to populate properties of config.\n     * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig\n     * @summary Creates an instance of the AutoDetectSourceLanguageConfig with given languages.\n     */\n    public static fromLanguages(languages: string[]): AutoDetectSourceLanguageConfig {\n        Contracts.throwIfArrayEmptyOrWhitespace(languages, \"languages\");\n        const config = new AutoDetectSourceLanguageConfig();\n        config.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, languages.join());\n        return config;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.fromSourceLanguageConfigs\n     * @function\n     * @public\n     * @param {SourceLanguageConfig[]} configs SourceLanguageConfigs to populate properties of config.\n     * @return {AutoDetectSourceLanguageConfig} Instance of AutoDetectSourceLanguageConfig\n     * @summary Creates an instance of the AutoDetectSourceLanguageConfig with given SourceLanguageConfigs.\n     */\n    public static fromSourceLanguageConfigs(configs: SourceLanguageConfig[]): AutoDetectSourceLanguageConfig {\n        if (configs.length < 1) {\n            throw new Error(\"Expected non-empty SourceLanguageConfig array.\");\n        }\n        const autoConfig = new AutoDetectSourceLanguageConfig();\n        const langs: string[] = [];\n        configs.forEach((config: SourceLanguageConfig): void => {\n            langs.push(config.language);\n            if (config.endpointId !== undefined && config.endpointId !== \"\") {\n                const customProperty = config.language + PropertyId.SpeechServiceConnection_EndpointId.toString();\n                autoConfig.properties.setProperty(customProperty, config.endpointId);\n            }\n        });\n        autoConfig.properties.setProperty(PropertyId.SpeechServiceConnection_AutoDetectSourceLanguages, langs.join());\n\n        return autoConfig;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.prototype.properties\n     * @function\n     * @public\n     * @return {PropertyCollection} Properties of the config.\n     * @summary Gets an auto detected language config properties\n     */\n    public get properties(): PropertyCollection {\n        return this.privProperties;\n    }\n\n    /**\n     * @member AutoDetectSourceLanguageConfig.prototype.mode\n     * @function\n     * @public\n     * @param {LanguageIdMode} mode LID mode desired.\n     * @summary Sets LID operation to desired mode\n     */\n    public set mode(mode: LanguageIdMode) {\n        if (mode === LanguageIdMode.Continuous) {\n            this.privProperties.setProperty(PropertyId.SpeechServiceConnection_RecognitionEndpointVersion, \"2\");\n            this.privProperties.setProperty(PropertyId.SpeechServiceConnection_LanguageIdMode, \"Continuous\");\n        } else { // LanguageIdMode.AtStart\n            this.privProperties.setProperty(PropertyId.SpeechServiceConnection_RecognitionEndpointVersion, \"1\");\n            this.privProperties.setProperty(PropertyId.SpeechServiceConnection_LanguageIdMode, \"AtStart\");\n        }\n        this.privLanguageIdMode = mode;\n    }\n}\n"]}