import React, { Component, type KeyboardEvent, type MouseEvent } from 'react'; import PropTypes from 'prop-types'; import { type ClassPropsWithDefault } from '../../util'; import type { ChildItemPropsInMenu, ItemProps } from '../types'; export type ItemWithDefaultsProps = ClassPropsWithDefault; export type ItemInMenuProps = ChildItemPropsInMenu; export default class SelectableItem extends Component { static menuChildType: string; static propTypes: { _key: PropTypes.Requireable; root: PropTypes.Requireable; selected: PropTypes.Requireable; onSelect: PropTypes.Requireable<(...args: any[]) => any>; inlineIndent: PropTypes.Requireable; disabled: PropTypes.Requireable; helper: PropTypes.Requireable; children: PropTypes.Requireable; className: PropTypes.Requireable; onKeyDown: PropTypes.Requireable<(...args: any[]) => any>; onClick: PropTypes.Requireable<(...args: any[]) => any>; needIndent: PropTypes.Requireable; hasSelectedIcon: PropTypes.Requireable; isSelectIconRight: PropTypes.Requireable; icons: PropTypes.Requireable; }; static defaultProps: { disabled: boolean; needIndent: boolean; icons: {}; }; readonly props: ItemWithDefaultsProps; constructor(props: ItemProps); getSelected(): boolean; handleSelect(e: MouseEvent | KeyboardEvent): void; handleKeyDown(e: KeyboardEvent): void; handleClick(e: MouseEvent): void; renderSelectedIcon(selected: boolean): React.ReactElement> | null; render(): React.JSX.Element; }