export { hasDimensions, hasIntrinsicDimensions, invariant };
export { isKeyOf, isEmpty, isFunction, isNullish, isNumber, isPlainObject, isString, isUrl };
/**
 * Determines if a value is a plain object.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is a valid URL.
 */
declare function isPlainObject(value: unknown): value is Record<string, unknown>;
/**
 * Determines if a value is a valid URL string.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is a valid URL.
 */
declare function isUrl(value: unknown): value is string;
/**
 * Checks if the input object possesses defined numeric `width` and `height` properties.
 *
 * @remarks This is a type predicate that narrows the input's type if true. *
 * @internal
 * @typeParam Dimensions - The shape of the dimensions object.
 * @typeParam Input - The shape of the input object.
 * @param input - The object to check, potentially having optional width and height.
 * @returns True if `input.width` and `input.height` are both valid numbers.
 */
declare function hasDimensions<Dimensions extends {
    width: number;
    height: number;
}, Input extends Record<string, unknown>>(input?: Input): input is Dimensions & Input;
/**
 * @deprecated Use `hasDimensions` instead.
 * @internal
 */
declare const hasIntrinsicDimensions: typeof hasDimensions;
/**
 * Determines if a value is a function.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is a function.
 */
declare function isFunction(value: unknown): value is (...args: unknown[]) => unknown;
/**
 * Determines if a value is a string.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is a string.
 */
declare function isString(value: unknown): value is string;
/**
 * Determines if a value is a finite number.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is a number and finite.
 */
declare function isNumber(value: unknown): value is number;
/**
 * Determines if a value is empty — `null`, `undefined`, or an empty string.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is nullish or an empty string.
 */
declare function isEmpty(value: unknown): value is null | undefined | '';
/**
 * Determines if a value is `null` or `undefined`.
 *
 * @internal
 * @param value - The value to check.
 * @returns True if the value is nullish.
 */
declare function isNullish(value: unknown): value is null | undefined;
/**
 * Returns true if `key` exists in `map`; narrows to known keys.
 * @internal
 */
declare function isKeyOf<K extends keyof T, T extends object>(key: unknown, map: T): key is K;
/**
 * Provide a condition and if that condition is falsey, this throws an error
 * with the given message.
 *
 * @remarks
 * Based on https://github.com/epicweb-dev/invariant/blob/main/src/index.ts
 * License: MIT
 *
 * @example
 * invariant(typeof value === 'string', `value must be a string`)
 *
 * @internal
 * @param condition - Condition to check
 * @param message - Message to throw (or a callback to generate the message)
 * @throws InvariantError if condition is falsey
 */
declare function invariant(condition: unknown, message: string | (() => string)): asserts condition;
