"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const callBound$1 = require("../call-bind/callBound.cjs");
const shams = require("../has-tostringtag/shams.cjs");
var callBound = callBound$1.callBound;
var $strValueOf = callBound("String.prototype.valueOf");
var tryStringObject = function tryStringObject2(value) {
  try {
    $strValueOf(value);
    return true;
  } catch (e) {
    return false;
  }
};
var $toString = callBound("Object.prototype.toString");
var strClass = "[object String]";
var hasToStringTag = shams.shams();
var isString = function isString2(value) {
  if (typeof value === "string") {
    return true;
  }
  if (!value || typeof value !== "object") {
    return false;
  }
  return hasToStringTag ? tryStringObject(value) : $toString(value) === strClass;
};
exports.isString = isString;
//# sourceMappingURL=index.cjs.map
