import * as React from 'react'; import { FlattenSimpleInterpolation } from 'styled-components'; import * as O from 'fp-ts/lib/Option'; import * as Task from 'fp-ts/lib/Task'; import * as T from 'fp-ts/lib/Tree'; import { IconProps } from '@monorail/exports'; import { MenuAction } from '@monorail/visualComponents/actionsMenu/ActionsMenu'; declare type Key = string; export declare enum TreeViewRowDisplayType { ArbitraryContent = "ArbitraryContent", Default = "Default" } export declare type TreeViewRowDisplay = { tag: typeof TreeViewRowDisplayType.Default; text: string; iconLeft?: IconProps; } | { tag: typeof TreeViewRowDisplayType.ArbitraryContent; content: JSX.Element; }; export declare type ActionReturn = void | Task.Task<{ tag: 'nodeOpen'; nodeOpen: boolean; key: K; }>; interface Props { header?: { main: string; sub?: string; }; forest: T.Forest; getDisplay: (args: { value: A; isLeaf: boolean; isChildSelected: boolean; }) => TreeViewRowDisplay; getTreeViewTextProps?: (args: { value: A; }) => Partial<{ css: FlattenSimpleInterpolation; }>; getKey: (node: A) => Key; numbered?: boolean; selected: O.Option; editable?: boolean; getActions?: (nodeKey: Key) => Array>>; onAddSection: () => void; onSelect?: (key: Key, numbering: string, value: A) => void; } interface TreeViewRowProps extends React.HTMLProps { active?: boolean; } export declare const TreeViewRow: import("styled-components").StyledComponent<"li", any, { className: "" | "is-active"; role: "button"; tabindex: string; } & TreeViewRowProps, "className" | "role" | "tabindex">; export declare const TreeView: (props: Props) => JSX.Element; export {};