import { default as React, RefObject } from 'react'; import { default as Color } from 'color'; import { VariableSizeTree } from 'react-vtree'; import { AccountReport, COABalance, FetchState, NestedClassID } from '@zeniai/client-epic-state'; import { CompareMode } from '../common/compareMode'; import { AccountBalanceClickMeta, ReportElementConfig, ReportTreeKind, ReportTreeNode, ReportTreeNodeData } from './reportTreeTypes'; export type ReportTreeInternalType = VariableSizeTree; export interface ReportTreeScrollPosition { scrollTop: number; scrollLeft?: number; } export interface RootNodes { config: ReportElementConfig; contentNodes: ReportTreeNode[]; headerNodes: ReportTreeNode[]; } export interface Props { compareMode: Exclude; height: number; isSticky: { isStickyHeader: boolean; isStickyName: boolean; }; kind: ReportTreeKind; nodeOpenStatus: Record; rootNodes: RootNodes; backgroundColor?: Color; infiniteLoadingProps?: { itemCount: number; isItemLoaded: (index: number) => boolean; loadMoreItems: () => void; }; scrollPosition?: ReportTreeScrollPosition; treeClassName?: string; treeNodePadding?: { left: number; right: number; }; treeOuterElementRef?: RefObject; treeRef?: RefObject; treeStyle?: React.CSSProperties; variableNodeHeightTree?: { fetchState: FetchState; isSortApplied: boolean; prevFetchState: FetchState; prevRefreshFetchState: FetchState; refreshFetchState: FetchState; reducedFetchState?: FetchState; setIsSortApplied: (sortingChanged: boolean) => void; }; onCompareModeChanged?: (newCompareMode: Exclude) => void; onNodeClick?: (treeNodeId: string, isOpen: boolean, account?: AccountReport, balance?: COABalance, balanceClickMeta?: AccountBalanceClickMeta) => void; onNodeCollapseToggled?: (nodeId: string, isOpen: boolean) => void; onScroll?: (props: ReportTreeScrollPosition) => void; onToggleCheck?: (nodeId: NestedClassID, isChecked: boolean) => void; onTreeInnerElementHeightChanged?: (treeInnerElementHeight: number) => void; } interface StickyInnerElementContextType { backgroundColor: Color | undefined; compareMode: Exclude; isSticky: { isStickyHeader: boolean; isStickyName: boolean; }; kind: ReportTreeKind; rootNodes: RootNodes; treeNodePadding: { left: number; right: number; } | undefined; onCompareModeChanged?: (newCompareMode: Exclude) => void; } export declare const StickyInnerElementContext: React.Context; export declare function ReportTree({ height, kind, rootNodes, compareMode, isSticky, backgroundColor, treeNodePadding, treeClassName, treeStyle, treeRef, treeOuterElementRef, infiniteLoadingProps, variableNodeHeightTree, onNodeClick, onCompareModeChanged, scrollPosition, onScroll, nodeOpenStatus: latestNodeOpenStatus, onNodeCollapseToggled, onTreeInnerElementHeightChanged, onToggleCheck, }: Readonly): import("react/jsx-runtime").JSX.Element; export {};