import React, { Component, type MouseEvent, type KeyboardEvent, type ReactNode } from 'react'; import PropTypes from 'prop-types'; import { type ClassPropsWithDefault } from '../../util'; import type { ChildItemPropsInMenu, ItemProps as NormalItemProps } from '../types'; export type ItemProps = Omit; export type ItemWithDefaultsProps = ClassPropsWithDefault; export type ItemInMenuProps = ChildItemPropsInMenu; export default class Item extends Component { static propTypes: { _key: PropTypes.Requireable; level: PropTypes.Requireable; inlineLevel: PropTypes.Requireable; groupIndent: PropTypes.Requireable; root: PropTypes.Requireable; menu: PropTypes.Requireable; parent: PropTypes.Requireable; parentMode: PropTypes.Requireable; type: PropTypes.Requireable; component: PropTypes.Requireable; disabled: PropTypes.Requireable; className: PropTypes.Requireable; onClick: PropTypes.Requireable<(...args: any[]) => any>; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; needIndent: PropTypes.Requireable; replaceClassName: PropTypes.Requireable; }; static defaultProps: { component: string; groupIndent: number; replaceClassName: boolean; needIndent: boolean; }; readonly props: ItemWithDefaultsProps; itemNode: HTMLElement; menuNode: HTMLElement | undefined | null; lastFocusedKey: string | undefined | null; constructor(props: ItemProps); componentDidMount(): void; componentDidUpdate(): void; focusable(): boolean; getFocused(): boolean; setFocus(): void; handleClick(e: MouseEvent | KeyboardEvent): void; handleKeyDown(e: KeyboardEvent): void; getTitle(children: ReactNode): string | undefined; render(): React.JSX.Element; }