import React from "react"; import { ITreeViewState, TreeViewAction } from "./reducer"; import { ClickActions, INode, INodeRefs, INodeRendererProps, NodeAction, NodeId } from "./types"; import { IFlatMetadata } from "./utils"; import { baseClassNames } from "./constants"; export interface INodeProps { element: INode; dispatch: React.Dispatch; data: INode[]; nodeAction: NodeAction; selectedIds: Set; tabbableId: NodeId; isFocused: boolean; expandedIds: Set; disabledIds: Set; halfSelectedIds: Set; lastUserSelect: NodeId; nodeRefs: INodeRefs; leafRefs: INodeRefs; baseClassNames: typeof baseClassNames; nodeRenderer: (props: INodeRendererProps) => React.ReactNode; setsize: number; posinset: number; level: number; propagateCollapse: boolean; propagateSelect: boolean; multiSelect: boolean; togglableSelect: boolean; clickAction?: ClickActions; state: ITreeViewState; propagateSelectUpwards: boolean; } export interface INodeGroupProps extends Omit, "setsize" | "posinset"> { getClasses: (className: string) => string; /** don't send this. The NodeGroup render function, determines it for you */ setsize?: undefined; /** don't send this. The NodeGroup render function, determines it for you */ posinset?: undefined; } export declare const Node: (props: INodeProps) => JSX.Element; export declare const NodeGroup: ({ data, element, expandedIds, getClasses, baseClassNames, level, ...rest }: INodeGroupProps) => JSX.Element;