/** 当前环境是否为客户端 */
export declare const isClient: boolean;
/** 当前环境是否为 IOS */
export declare const isIOS: boolean | "";
/**
 * 判断一个值是否为指定的类型
 *
 * @param value 需判断的值
 * @param type 指定的类型，注意大小写
 *
 * @returns 类型是否匹配
 */
export declare function is(value: unknown, type: string): boolean;
/**
 * 判断一个对象是否包含指定的键值
 *
 * @param value 需判断的对象
 * @param key 指定的键值
 *
 * @returns 是否包含键值
 */
export declare function has(value: Record<string, any>, key: string | symbol): key is keyof typeof value;
/**
 * 判断一个值是否已定义
 *
 * @param value 需判断的值
 *
 * @returns 是否已定义
 */
export declare function isDefined<T = unknown>(value: T | undefined | null): value is Exclude<T, undefined | null>;
/**
 * 判断一个值是否未被定义
 *
 * @param value 需判断的值
 *
 * @returns 是否未定义
 */
export declare function isNull(value: unknown): value is null | undefined;
/**
 * 判断一个值是否为数字
 *
 * @param value 需判断的值
 *
 * @returns 是否为数字
 */
export declare function isNumber(value: unknown): value is number;
/**
 * 判断一个值是否为 `NaN`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `NaN`
 */
export declare function isNaN(value: unknown): value is number;
/**
 * 判断一个值是否为字符串
 *
 * @param value 需判断的值
 *
 * @returns 是否为字符串
 */
export declare function isString(value: unknown): value is string;
/**
 * 判断一个值是否为布尔值
 *
 * @param value 需判断的值
 *
 * @returns 是否为布尔值
 */
export declare function isBoolean(value: unknown): value is boolean;
/**
 * 判断一个值是否为 `true`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `true`
 */
export declare function isTrue(value: unknown): value is true;
/**
 * 判断一个值是否为 `false`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `false`
 */
export declare function isFalse(value: unknown): value is false;
/**
 * 判断一个值是否为 `Symbol`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `Symbol`
 */
export declare function isSymbol(value: unknown): value is symbol;
/**
 * 判断一个值是否为 `BigInt`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `BigInt`
 */
export declare function isBigInt(value: unknown): value is bigint;
/**
 * 判断一个值是否为数组
 *
 * @param value 需判断的值
 *
 * @returns 是否为数组
 */
export declare function isArray<T = any>(value: unknown): value is T[];
/**
 * 判断一个值是否为对象
 *
 * 注意，`null` 与原生的特殊对象不被包含
 *
 * @param value 需判断的值
 *
 * @returns 是否为对象
 */
export declare function isObject<T extends Record<any, any> = Record<any, any>>(value: unknown): value is T;
/**
 * 判断一个值是否为 `Promise`
 *
 * 如果一个对象包含 `then` 和 `catch` 方法，则被认为是一个 `Promise`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `Promise`
 */
export declare function isPromise<T = any>(value: unknown): value is Promise<T>;
/**
 * 判断一个值是否为函数
 *
 * @param value 需判断的值
 *
 * @returns 是否为函数
 */
export declare function isFunction(value: unknown): value is (...any: any[]) => any;
/**
 * 判断一个值是否为 `Set`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `Set`
 */
export declare function isSet<T = any>(value: unknown): value is Set<T>;
/**
 * 判断一个值是否为 `Map`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `Map`
 */
export declare function isMap<K = any, V = any>(value: unknown): value is Map<K, V>;
/**
 * 判断一个值是否为 `Date`
 *
 * @param value 需判断的值
 *
 * @returns 是否为 `Date`
 */
export declare function isDate(value: unknown): value is Date;
/**
 * 判断一个值是否为正则
 *
 * @param value 需判断的值
 *
 * @returns 是否为正则
 */
export declare function isRegExp(value: unknown): value is RegExp;
/**
 * 判断一个值是否为空
 *
 * - 如果这是一个数组或字符串，则 `length` 为 `0` 时为空
 * - 如果这是一个 `Set` 或 `Map`，则 `size` 为 `0` 时为空
 * - 如果这是一个对象，则无任何键值时为空
 * - 如果这是一个数字，则为 `NaN` 时为空
 * - 其余情况下，未定义时为空
 *
 * @param value 需判断的值
 *
 * @returns 是否为空
 */
export declare function isEmpty(value: unknown): boolean;
/**
 * 是否为空对象
 * @param obj
 */
export declare function isEmptyObject(obj: any): boolean;
/**
 * 判断一个值是否为 `Element`
 *
 * @param value 需判断的值
 * @param ssr 是否考虑服务端渲染
 *
 * @returns 是否为 `Element`
 */
export declare function isElement<T extends Element = Element>(value: unknown, ssr?: boolean): value is T;
/**
 * 判断一个值能否被迭代
 *
 * @param value 需判断的值
 *
 * @returns 能否被迭代
 */
export declare function isIterable(value: unknown): boolean;
/**
 * 一个空的占位函数
 */
export declare function noop(...args: any[]): any;
/**
 * 一个返回 `true` 的占位函数
 *
 * @returns `true`
 */
export declare function toTrue(...args: any[]): true;
/**
 * 一个返回 `false` 的占位函数
 *
 * @returns `false`
 */
export declare function toFalse(...args: any[]): false;
/**
 * 生成一个值递进的数组
 *
 * @param size 大小
 * @param start 开始的数值，默认为 1
 * @param step 跨度，默认为 1
 *
 * @returns 生成的数组
 */
export declare function range(size: number, start?: number, step?: number): number[];
/**
 * 获取变量的类型
 *
 * @param value 任意变量
 *
 * @returns 变量的类型
 */
export declare function getType(value: unknown): string;
/**
 * 根据长度生成一串随机的字符串
 *
 * @param length 字符串的长度
 *
 * @returns 生成的字符串
 */
export declare function randomString(length?: number): string;
/**
 * 根据一系列判断条件，执行第一个为 `true` 的条件所对应的回调函数
 *
 * @param conditions 判断条件及回调函数
 * @param options 额外的选项
 *
 * @returns 是否匹配了任一条件
 */
export declare function decide(conditions: [boolean | (() => boolean), () => void | Promise<void>][], options?: {
    /**
     * 当匹配任意一个条件时，会在该条件对应的回调函数执行前执行
     */
    beforeMatchAny?: () => void | Promise<void>;
    /**
     * 当匹配任意一个条件时，会在该条件对应的回调函数执行完后执行
     */
    afterMatchAny?: () => void | Promise<void>;
}): Promise<boolean>;
