"use strict";
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const _baseKeys = require("./_baseKeys.cjs");
const _getTag = require("./_getTag.cjs");
const isArguments = require("./isArguments.cjs");
const isArray = require("./isArray.cjs");
const isArrayLike = require("./isArrayLike.cjs");
const isBuffer = require("./isBuffer.cjs");
const _isPrototype = require("./_isPrototype.cjs");
const isTypedArray = require("./isTypedArray.cjs");
var mapTag = "[object Map]", setTag = "[object Set]";
var objectProto = Object.prototype;
var hasOwnProperty = objectProto.hasOwnProperty;
function isEmpty(value) {
  if (value == null) {
    return true;
  }
  if (isArrayLike.default(value) && (isArray.default(value) || typeof value == "string" || typeof value.splice == "function" || isBuffer.default(value) || isTypedArray.default(value) || isArguments.default(value))) {
    return !value.length;
  }
  var tag = _getTag.default(value);
  if (tag == mapTag || tag == setTag) {
    return !value.size;
  }
  if (_isPrototype.default(value)) {
    return !_baseKeys.default(value).length;
  }
  for (var key in value) {
    if (hasOwnProperty.call(value, key)) {
      return false;
    }
  }
  return true;
}
exports.default = isEmpty;
//# sourceMappingURL=isEmpty.cjs.map
