import { ElementType, ReactNode } from 'react'; import { MenuCommonProps } from './Menu.types'; interface MenuBaseProps extends MenuCommonProps { /** * 자식 wrapper로 사용할 element 또는 컴포넌트. * `MenuLink`에서는 `'a'` 또는 주입된 컴포넌트, `MenuButton`에서는 `'button'`이 들어옵니다. */ as: ElementType; /** * `as` 컴포넌트에 그대로 전달되는 native props (href, onClick, target 등). */ wrapperProps?: Record; } /** * `MenuLink`와 `MenuButton`이 공유하는 내부 컴포넌트. * presentation 로직(className 계산, leadingIcon, name, badge, trailing IconButton/Dropdown)을 담당합니다. * * 외부에 export 되지 않으며, `MenuLink` / `MenuButton`을 통해서만 사용됩니다. */ declare const MenuBase: ({ type, variant, name, isSelected, badgeCount, leadingIcon, iconButtonName, onOptionClick, items, selectedItem, onItemClick, as: Component, wrapperProps, }: MenuBaseProps) => ReactNode; export { MenuBase };