import React, { Component, type MouseEvent, type KeyboardEvent, type ReactNode } from 'react'; import PropTypes from 'prop-types'; import { type ClassPropsWithDefault } from '../../util'; import type { ChildPropsInMenu, SubMenuProps } from '../types'; export type SubMenuWithDefaultsProps = ClassPropsWithDefault; export type SubMenuInMenuProps = ChildPropsInMenu; export default class SubMenu extends Component { static menuChildType: string; static propTypes: { _key: PropTypes.Requireable; root: PropTypes.Requireable; level: PropTypes.Requireable; inlineLevel: PropTypes.Requireable; groupIndent: PropTypes.Requireable; label: PropTypes.Requireable; selectable: PropTypes.Requireable; mode: PropTypes.Requireable; noIcon: PropTypes.Requireable; children: PropTypes.Requireable; onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>; onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>; subMenuContentClassName: PropTypes.Requireable; triggerType: PropTypes.Requireable; align: PropTypes.Requireable; parentMode: PropTypes.Requireable; parent: PropTypes.Requireable; }; static defaultProps: { groupIndent: number; noIcon: boolean; selectable: boolean; }; readonly props: SubMenuWithDefaultsProps; itemNode: HTMLElement; constructor(props: SubMenuProps); componentDidMount(): void; afterLeave(): void; getOpen(): boolean; handleMouseEnter(e: MouseEvent): void; handleMouseLeave(e: MouseEvent): void; handleClick(e: MouseEvent | KeyboardEvent): void; handleOpen(open: boolean, triggerType?: string, e?: Event): void; passParentToChildren(children: ReactNode): {}[] | null | undefined; renderInline(): React.JSX.Element; renderPopup(): React.JSX.Element; render(): React.JSX.Element; }