/// <reference types="react" />
import { type ButtonProps } from "../button/Button.js";
import { type IconRotatorProps } from "../icon/IconRotator.js";
import { type TextIconSpacingProps } from "../icon/TextIconSpacing.js";
/** @remarks \@since 5.0.0 */
export type MenuButtonTextIconSpacingProps = Pick<TextIconSpacingProps, "icon" | "iconAfter">;
/** @remarks \@since 5.0.0 */
export type MenuButtonIconRotatorProps = Omit<IconRotatorProps, "children" | "rotated">;
/**
 * @remarks \@since 5.0.0
 * @remarks \@since 6.0.0 No longer extends the {@link ButtonProps}, no longer
 * requires an `id`, and no longer supports `textIconSpacingProps`.
 */
export interface BaseMenuButtonProps extends MenuButtonTextIconSpacingProps {
    /**
     * Any additional props to pass to the {@link IconRotator} component that
     * surrounds the {@link buttonChildren}
     */
    iconRotatorProps?: Readonly<MenuButtonIconRotatorProps>;
    /**
     * Boolean if the dropdown icon should be included with the button children.
     *
     * @defaultValue `buttonType === "icon"`
     */
    disableDropdownIcon?: boolean;
}
/**
 * @remarks \@since 5.0.0
 * @remarks \@since 6.0.0 See {@link BaseMenuButtonProps} for breaking changes.
 */
export interface MenuButtonProps extends ButtonProps, BaseMenuButtonProps {
}
/**
 * **Client Component**
 *
 * An internal component that handles rendering a button for the `DropdownMenu`
 * while implementing the correct accessibility and keyboard movement.
 *
 * @remarks \@since 5.0.0
 * @remarks \@since 6.0.0 See {@link BaseMenuButtonProps} for breaking changes.
 */
export declare const MenuButton: import("react").ForwardRefExoticComponent<MenuButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
