import { type HTMLAttributes, type ReactNode } from "react";
import { type ListItemChildrenProps, type ListItemHeight } from "../list/types.js";
import { type CircularProgressProps } from "../progress/CircularProgress.js";
/**
 * @since 6.0.0
 */
export interface MenuItemCircularProgressProps extends CircularProgressProps {
    /** @defaultValue `"Loading"` */
    "aria-label"?: string;
    /** @defaultValue `"none"` */
    role?: string;
    /** @defaultValue `true` */
    dense?: boolean;
    liProps?: HTMLAttributes<HTMLLIElement>;
    height?: ListItemHeight;
    leftAddon?: ReactNode;
    rightAddon?: ReactNode;
    listItemChildrenProps?: ListItemChildrenProps;
}
/**
 * @example Simple Example
 * ```tsx
 * "use client";
 * import { DropdownMenu } from "@react-md/core/menu/DropdownMenu";
 * import { MenuItem } from "@react-md/core/menu/MenuItem";
 * import { MenuItemCircularProgress } from "@react-md/core/menu/MenuItemCircularProgress";
 * import { useAsyncFunction } from "@react-md/core/useAsyncFunction";
 *
 * function Example() {
 *   const { handleAsync, pending } = useAsyncFunction();
 *   const [visible, setVisible] = useState(false);
 *
 *   return (
 *     <DropdownMenu buttonChildren="Options" visible={visible} setVisible={setVisible}>
 *       {pending && <MenuItemCircularProgress />}
 *       <MenuItem
 *         onClick={handleAsync(async (event) => {
 *           // prevent menu from closing until action completes
 *           event.stopPropagation()
 *
 *           // do something async
 *           await ...
 *
 *           // close menu once completed
 *           setVisible(false)
 *         })}
 *       >
 *         Some Action
 *       </MenuItem>
 *     </DropdownMenu>
 *   )
 * }
 * ```
 *
 * @since 6.0.0
 */
export declare const MenuItemCircularProgress: import("react").ForwardRefExoticComponent<MenuItemCircularProgressProps & import("react").RefAttributes<HTMLLIElement>>;
