import React from "react";
import { RecursiveArray } from "react-native";
export declare type ComponentType
= React.ComponentType
| ((props: P) => JSX.Element);
export declare type OmitEx = Pick>;
export declare type PropsOf | keyof JSX.IntrinsicElements> = C extends React.ComponentType ? P : (C extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[C] : {});
export declare type EnumOf> = T[keyof T];
export declare type Falsy = false | null | undefined | "" | 0;
export declare const getGlobal: () => any;
export declare const getDocument: () => Document;
export declare const isSsr: () => boolean;
export declare const isWeb: () => boolean;
export declare const isBrowser: () => boolean;
export declare const isNative: () => boolean;
export declare const flatAndRemoveFalsy: (array: RecursiveArray) => T[];
export declare type EqualityFunction = (a: T, b: T) => boolean;
export declare const shallowEqual: (a: Record, b: Record, customEquals?: Record> | undefined) => boolean;
export declare const isEmptyOrFalsy: (array: Array | Falsy) => boolean;
export declare const arrayify: (arrayOrItem: T | T[]) => T[];
export declare const getReactComponentName: (component: ComponentType) => string;