function _loadManifestModelClasses(mModelConfigurations, sLogComponentName, bSync) {
		const aLoadPromises = [];

		function logLoadingError(sModelClassName, sModelName, oError) {
			future.errorThrows(`${sLogComponentName}: Component Manifest: Class "${sModelClassName}" for model "${sModelName}" could not be loaded. ["sap.ui5"]["models"]["${sModelName}"].`, { cause: oError });
		}

		for (const sModelName in mModelConfigurations) {
			const oModelConfig = mModelConfigurations[sModelName];
			const sModelClass = oModelConfig.type.replace(/\./g, "/");

			/** @deprecated since 1.120 */
			if (bSync) {
				// load model class and log error message if it couldn't be loaded.
				// error gets caught to continue creating the other models and not breaking the execution here
				try {
					sap.ui.requireSync(sModelClass); // legacy-relevant
				} catch (oError) {
					logLoadingError(oModelConfig.type, sModelName, oError);
				}
				continue; // note: we want to skip the below async processing!
			}

			aLoadPromises.push(new Promise((resolve, reject) => {
				sap.ui.require([sModelClass], resolve, reject);
			}).catch(logLoadingError.bind(null, oModelConfig.type, sModelName)));
		}

		return Promise.all(aLoadPromises);
	}
@private
@ui5-transform-hint replace-param bSync false