import React, { LiHTMLAttributes, ReactElement, ReactNode } from 'react'; import { IconProps } from '../icons/generated'; export interface MenuItemBaseProps extends Omit, 'children' | 'onClick'> { id: string; /** * 메뉴 깊이에 따른 시각적 형태 * @default 'default' */ variant?: 'default' | 'sub'; leftIcon?: ReactElement; rightContent?: ReactNode; } export interface MenuItemDefaultProps extends MenuItemBaseProps { asChild?: false; label: string; children?: never; } export interface MenuItemAsChildProps extends MenuItemBaseProps { /** 단일 ReactElement를 메뉴 아이템 루트로 합성합니다. */ asChild: true; label?: never; children: ReactElement; } export type MenuItemProps = MenuItemDefaultProps | MenuItemAsChildProps; export declare const MenuIcon: ({ selected, children }: { selected: boolean; children: ReactElement; }) => React.ReactElement> | null; export declare const MenuItem: React.ForwardRefExoticComponent>;