import * as React from 'react'; import { Theme } from '@mui/material/styles'; import { SxProps } from '@mui/system/styleFunctionSx'; import { RichTreeViewClasses } from "./richTreeViewClasses.js"; import { RichTreeViewItemsSlotProps, RichTreeViewItemsSlots } from "../internals/components/RichTreeViewItems.js"; import { TreeViewSlotProps, TreeViewSlots } from "../internals/TreeViewProvider/TreeViewStyleContext.js"; import { RichTreeViewStore } from "../internals/RichTreeViewStore/index.js"; import { TreeViewValidItem } from "../models/items.js"; import { UseTreeViewStoreParameters } from "../internals/hooks/useTreeViewStore.js"; import { TreeViewPublicAPI } from "../internals/models/index.js"; export interface RichTreeViewSlots extends TreeViewSlots, Omit { /** * Element rendered at the root. * @default RichTreeViewRoot */ root?: React.ElementType; } export interface RichTreeViewSlotProps extends TreeViewSlotProps, RichTreeViewItemsSlotProps> {} export type RichTreeViewApiRef = any, Multiple extends boolean | undefined = any> = React.RefObject>> | undefined>; export interface RichTreeViewPropsBase extends React.HTMLAttributes { className?: string; /** * Override or extend the styles applied to the component. */ classes?: Partial; /** * The system prop that allows defining system overrides as well as additional CSS styles. */ sx?: SxProps; } export interface RichTreeViewProps extends UseTreeViewStoreParameters>, RichTreeViewPropsBase { /** * Overridable component slots. * @default {} */ slots?: RichTreeViewSlots; /** * The props used for each component slot. * @default {} */ slotProps?: RichTreeViewSlotProps; /** * The ref object that allows Tree View manipulation. Can be instantiated with `useRichTreeViewApiRef()`. */ apiRef?: RichTreeViewApiRef; }