import * as React from 'react'; import type { ButtonProps, ButtonSize, ButtonVariant, IconPosition } from '../../button/button'; import type { BasicHTMLHandle } from '../../handle/handle'; import type { Icon, IconSize } from '../../icons/icons'; import type { MenuItemProps, MenuProps } from '../../menu/menu'; import { MenuDivider } from '../../menu/menu'; import type { HeaderAndFooterProps, Offset, Placement } from '../../surface/popover/popover'; import { FlyoutMenuStore, useNavigableRef } from './flyout_menu_util'; export { FlyoutMenuStore, MenuDivider as FlyoutMenuDivider, useNavigableRef }; export type StatelessFlyoutMenuProps = { children: React.ReactNode trigger?: (props: FlyoutMenuTriggerProps) => React.ReactNode label?: React.ReactNode tooltipLabel?: ButtonProps['tooltipLabel'] tooltipPlacement?: ButtonProps['tooltipPlacement'] tooltipDisabled?: ButtonProps['tooltipDisabled'] open: boolean disabled?: boolean tone?: Extract size?: Extract icon?: Icon iconSize?: Extract iconPosition?: Extract triggerContainerRef?: React.Ref triggerFocusRef?: React.Ref menuContainerRef?: React.Ref className?: string flyoutPlacement?: Placement flyoutOffset?: Offset blockOutsidePointerEvents?: boolean captureFocus?: boolean id?: string tagName?: 'div' | 'li' role?: 'none' ariaLabel?: string ariaLabelledBy?: string onRequestOpen(): void onRequestClose(): void onClose?: () => void } & Pick & HeaderAndFooterProps; export type FlyoutMenuProps = Omit & Partial> & { end?: MenuItemProps['end'] store?: FlyoutMenuStore onOpen?: () => void onClose?: () => void flyoutPlacement?: Placement }; export type FlyoutMenuContentProps = Pick & React.PropsWithChildren<{ className?: string store?: FlyoutMenuStore }>; export type FlyoutMenuTriggerProps = Pick & { ariaHasPopup: 'menu' focusRef: StatelessFlyoutMenuProps['triggerFocusRef'] onClick: NonNullable onRequestToggle(): void }; export type FlyoutMenuItemProps = Pick; export declare function StatelessFlyoutMenu(props: StatelessFlyoutMenuProps): React.JSX.Element; export declare const FlyoutMenu: React.ComponentType>; export declare function FlyoutMenuContent(props: FlyoutMenuContentProps & React.RefAttributes): React.ReactNode; export declare function FlyoutMenuItem(props: FlyoutMenuItemProps & React.RefAttributes): React.ReactNode;