import e from "./isObject.js";
import t from "./isFunction.js";
import n from "./_assignMergeValue.js";
import r from "./_cloneBuffer.js";
import i from "./_cloneTypedArray.js";
import a from "./_copyArray.js";
import o from "./_initCloneObject.js";
import s from "./isArguments.js";
import c from "./isArray.js";
import l from "./isArrayLikeObject.js";
import u from "./isBuffer.js";
import d from "./isPlainObject.js";
import f from "./isTypedArray.js";
import p from "./_safeGet.js";
import m from "./toPlainObject.js";
//#region ../../node_modules/lodash-es/_baseMergeDeep.js
function h(h, g, _, v, y, b, x) {
	var S = p(h, _), C = p(g, _), w = x.get(C);
	if (w) {
		n(h, _, w);
		return;
	}
	var T = b ? b(S, C, _ + "", h, g, x) : void 0, E = T === void 0;
	if (E) {
		var D = c(C), O = !D && u(C), k = !D && !O && f(C);
		T = C, D || O || k ? c(S) ? T = S : l(S) ? T = a(S) : O ? (E = !1, T = r(C, !0)) : k ? (E = !1, T = i(C, !0)) : T = [] : d(C) || s(C) ? (T = S, s(S) ? T = m(S) : (!e(S) || t(S)) && (T = o(C))) : E = !1;
	}
	E && (x.set(C, T), y(T, C, v, b, x), x.delete(C)), n(h, _, T);
}
//#endregion
export { h as default };
