import { ElementType, ReactElement, ReactNode, Ref } from "react"; export interface CollectionNode { elementType?: ElementType | string; index: number; key: string; props: Record; ref: Ref; type: NodeType; } export interface CollectionItem extends CollectionNode { content: ReactNode; tooltip?: { content: ReactElement; props: Record; }; type: NodeType.item; } export interface CollectionSection extends CollectionNode { items?: CollectionItem[]; type: NodeType.section; } export interface CollectionDivider extends CollectionNode { content: ReactNode; type: NodeType.divider; } export declare enum NodeType { item = "item", section = "section", divider = "divider" } export declare function isSection(node: CollectionNode): node is CollectionSection; export declare function isDivider(node: CollectionNode): node is CollectionDivider; export declare function isItem(node: CollectionNode): node is CollectionItem; export declare function createCollectionItem({ content, elementType, index, key, props, ref }: CollectionItem): { content: ReactNode; elementType: string | import("react").FunctionComponent | import("react").ComponentClass; index: number; key: string; props: Record; ref: Ref; type: NodeType; }; export declare class CollectionBuilder { private parseItem; private parseSection; private parseDivider; private parseTooltip; build(children: ReactNode): CollectionNode[]; } export declare function useCollection(children: ReactNode): CollectionNode[];