"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isString = exports.isReactText = exports.isObject = exports.isNumber = exports.isJsx = exports.isFunction = exports.isArray = void 0;
const react_1 = __importDefault(require("react"));
/** Is value an array. */
function isArray(value) {
    return Array.isArray(value);
}
exports.isArray = isArray;
/** Is value a function. */
function isFunction(value) {
    return typeof value === 'function';
}
exports.isFunction = isFunction;
/** Is value JSX / React Element */
function isJsx(value) {
    return react_1.default.isValidElement(value);
}
exports.isJsx = isJsx;
/** Is value a number. */
function isNumber(value) {
    return typeof value === 'number';
}
exports.isNumber = isNumber;
/** Is value a regular object (functions, arrays and React elements excluded). */
function isObject(value) {
    return !!value && typeof value === 'object' && !isFunction(value) && !isArray(value) && !react_1.default.isValidElement(value);
}
exports.isObject = isObject;
/** Is value a valid ReactText - string or number. */
function isReactText(value) {
    return isNumber(value) || isString(value);
}
exports.isReactText = isReactText;
/** Is value a string. */
function isString(value) {
    return Object.prototype.toString.call(value) === '[object String]';
}
exports.isString = isString;
//# sourceMappingURL=assertion.js.map