import * as React from 'react';
import { SlotComponentProps } from '@mui/utils/types';
import { TreeItem, TreeItemProps } from "../../TreeItem/index.mjs";
import { TreeViewItemId } from "../../models/index.mjs";
export declare const RichTreeViewItem: React.NamedExoticComponent<RichTreeViewItemProps>;
export declare function RichTreeViewItems<TProps extends object>(props: RichTreeViewItemsProps<TProps>): import("react/jsx-runtime").JSX.Element;
interface RichTreeViewItemsOwnerState {
  itemId: TreeViewItemId;
  label: string;
}
export interface RichTreeViewItemsSlots {
  /**
   * Element rendered at the root.
   * @default RichTreeViewProRoot
   */
  root: React.ElementType;
  /**
   * Custom component to render a Tree Item.
   * @default TreeItem.
   */
  item?: React.JSXElementConstructor<TreeItemProps>;
}
export interface RichTreeViewItemsSlotProps<TProps extends object> {
  item?: SlotComponentProps<typeof TreeItem, {}, RichTreeViewItemsOwnerState>;
  root?: SlotComponentProps<'ul', {}, TProps>;
}
export interface RichTreeViewItemsProps<TProps extends object> {
  /**
   * Overridable component slots.
   * @default {}
   */
  slots: RichTreeViewItemsSlots;
  /**
   * The props used for each component slot.
   * @default {}
   */
  slotProps?: RichTreeViewItemsSlotProps<TProps>;
  /**
   * Owner state applied to the root slot component.
   */
  ownerState: TProps;
  /**
   * Props provided to the component and applied to the root element.
   */
  forwardedProps: React.HTMLAttributes<HTMLUListElement>;
  /**
   * Ref forwarded to the root element.
   */
  rootRef: React.Ref<HTMLUListElement>;
}
interface RichTreeViewItemProps extends Pick<TreeItemProps, 'id' | 'itemId' | 'children'> {
  itemSlot: React.JSXElementConstructor<TreeItemProps> | undefined;
  itemSlotProps: SlotComponentProps<typeof TreeItem, {}, RichTreeViewItemsOwnerState> | undefined;
  skipChildren: boolean;
}
export {};