import { ReactNode, ReactElement } from 'react'; export type Discoverer = (element: ReactElement) => ReactNode; export type Collector = () => { accumulator: Result; visit(accumulator: Result, element: ReactElement, parent: ReactElement | undefined, context: Context): Context; }; /** * A function that allows you to traverse a tree of React elements using * varying methods to discover child nodes and collect data along the way. */ export declare function traverseElementTree(options: { root: ReactNode; discoverers: Discoverer[]; collectors: { [name in keyof Results]: Collector; }; }): Results; export declare function createCollector(accumulatorFactory: () => Result, visit: ReturnType>['visit']): Collector; export declare function childDiscoverer(element: ReactElement): ReactNode; export declare function routeElementDiscoverer(element: ReactElement): ReactNode;