import React, { ReactElement, ReactNode } from "react"; declare class ReactChildren { static hasChildren(children: ReactNode): boolean; static childrenCount(children: ReactNode): number; static countByType(children: ReactNode, type: string | Function): number; static countByName(children: ReactNode, name: string): number; static isEmptyChildren(children: ReactNode): boolean; static onlyComponentChildren(children: ReactNode): ReactElement[]; static deepFilter(children: ReactNode, filterFn: (child: React.ReactNode) => boolean): ReactNode[]; static deepFind(children: ReactNode, findFn: (child: React.ReactNode) => boolean): React.ReactNode | undefined; static deepForEach(children: ReactNode, forEachFn: (child: React.ReactNode) => void): void; static deepMap(children: ReactNode, mapFn: (child: React.ReactNode) => React.ReactNode): ReactNode[] | null | undefined; static filter(children: ReactNode, filterFn: (child: React.ReactNode) => boolean): ReactNode[]; static everyChild(children: ReactNode, predicate: (child: ReactNode) => boolean): boolean; static replaceChildren(children: ReactNode, oldChildType: string | Function, newChildren: ReactNode): ReactNode[] | undefined | null; static getElementName(element: ReactElement): string | undefined; static groupByType(children: ReactNode): Record; static isFirstChild(children: ReactNode, childToCheck: ReactNode): boolean; static isLastChild(children: ReactNode, childToCheck: ReactNode): boolean; static isBetween(children: ReactNode, childToCheck: ReactNode): boolean; static hasComplexChildren(children: ReactNode): boolean; static onlyText(children: ReactNode): string[]; static onlyValid(children: ReactNode): ReactNode[]; static flattenChildren(children: ReactNode): ReactNode[]; static findParentType(children: ReactNode, parentType: string): ReactNode | null; static getSibling(children: ReactNode, childToCheck: ReactNode, direction: "next" | "prev"): ReactNode | null; static getChildProps(child: ReactNode): object | null; static getComponentType(child: ReactNode): string | null; static getChildByType(children: ReactNode, type: string | Function): ReactNode[]; static excludeChildByType(children: ReactNode, type: string | Function): ReactNode[]; static getChildrenFromType(children: ReactNode, type: string | Function): ReactNode[]; static getFirstNChildren(children: ReactNode, n: number): ReactNode[]; static getLastNChildren(children: ReactNode, n: number): ReactNode[]; } export { ReactChildren };