import { NativeModules } from 'react-native'; import languages from './languages/mlkitSupportedLanguages.json'; const { GoogleMlkitTranslate } = NativeModules; type SupportedLanguages = typeof languages; interface GoogleMlkitTranslateType { supportedLanguages: SupportedLanguages; translate( text: string, sourceLanguage: string, targetLanguage: string, requireWifiToDownloadModel?: boolean ): Promise; translateMany( texts: string[], sourceLanguage: string, targetLanguage: string, requireWifiToDownloadModel?: boolean ): Promise; // getDownloadedModels(): Promise; // deleteDownloadedModel(languageCode: string): Promise; // downloadModel(languageCode: string, requireWifi?: boolean): Promise; } export default { supportedLanguages: languages, translate( text: string, sourceLanguage: string, targetLanguage: string, requireWifiToDownloadModel = true ): Promise { return GoogleMlkitTranslate.translate( text, sourceLanguage, targetLanguage, requireWifiToDownloadModel ); }, translateMany( texts: string[], sourceLanguage: string, targetLanguage: string, requireWifiToDownloadModel = true ): Promise { return GoogleMlkitTranslate.translateMany( texts, sourceLanguage, targetLanguage, requireWifiToDownloadModel ); }, // getDownloadedModels: GoogleMlkitTranslate.getDownloadedModels, // deleteDownloadedModel: GoogleMlkitTranslate.deleteDownloadedModel, // downloadModel( // languageCode: string, // requireWifi: boolean = true // ): Promise { // return GoogleMlkitTranslate.downloadModel(languageCode, requireWifi); // }, } as GoogleMlkitTranslateType;