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