import React, { Dispatch, FC, HTMLAttributes, ReactElement, ReactNode } from "react"; import { SourceArray } from "../../hooks/source"; import { FitToOuter } from "../../styles/css-var"; import { IconImage } from "../icon"; export declare type TreeViewHook = { getSelectedItems: () => Array; }; declare type Data = { [key: string]: any; }; declare type TreeViewItemProps = { id: string | number; data: Data; parent?: TreeViewItemProps; selected: boolean; setSelect?: Dispatch; selectPropagate: (selected?: boolean, mode?: "s" | "p" | "c") => boolean; opened: boolean; setOpen?: Dispatch; openPropagate: (opened?: boolean, deep?: boolean) => boolean; visible?: boolean; setVisible?: Dispatch; children?: Array; }; export declare type TreeViewItemAttributes = HTMLAttributes & { $clickToggleOpen?: boolean; $clickToggleSelect?: boolean; children?: ReactNode; }; export declare type TreeViewItemTemplateFC

= FC

) => void; $$toggleSelect?: (select?: boolean, deep?: boolean) => void; $$toggleOpenChildren?: (open?: boolean, deep?: boolean) => void; }>; export declare type TreeViewAttributes = HTMLAttributes & { $hook?: TreeViewHook; $fto?: FitToOuter; $items?: SourceArray; $filter?: (item: Data) => boolean; $checkBox?: boolean; $checkPropagation?: boolean; $idDataName?: string; $parentIdDataName?: string; $selectedDataName?: string; $defaultOpenedDataName?: string; $openedIconImage?: IconImage; $closedIconImage?: IconImage; $animationDuration?: number; $border?: boolean; $grouping?: Array<{ id: string; dataName: string; labelDataName?: string | ((data: { [key: string]: any; }) => string); }>; children: ReactElement; }; declare const TreeView: React.ForwardRefExoticComponent & { $hook?: TreeViewHook; $fto?: FitToOuter; $items?: SourceArray; $filter?: (item: Data) => boolean; $checkBox?: boolean; $checkPropagation?: boolean; $idDataName?: string; $parentIdDataName?: string; $selectedDataName?: string; $defaultOpenedDataName?: string; $openedIconImage?: IconImage; $closedIconImage?: IconImage; $animationDuration?: number; $border?: boolean; $grouping?: { id: string; dataName: string; labelDataName?: string | ((data: { [key: string]: any; }) => string); }[]; children: ReactElement; } & React.RefAttributes>; export declare const useTreeView: () => TreeViewHook; export default TreeView;