import { HTMLAttributes, ReactNode } from 'react';
/** Visual variant of the menu button trigger. */
export type MenuButtonVariant = 'button' | 'icon-button' | 'filter-chip';
/** Horizontal alignment of the menu relative to the trigger. */
export type MenuAlignment = 'leading' | 'trailing';
/** Vertical placement of the menu relative to the trigger. */
export type MenuPlacement = 'below' | 'above';
/** Size of the menu button trigger. */
export type MenuButtonSize = 'large' | 'small';
/** Background style for the icon-button variant. */
export type MenuButtonIconBackground = 'none' | 'secondary' | 'primary';
/** Type of filter chip action (only used with filter-chip variant). */
export type MenuButtonChipType = 'filter' | 'sort';
/** Represents a selected menu item displayed in the filter chip. */
export interface MenuButtonSelectedItem {
    /** Unique identifier for the item. */
    id: string;
    /** Display text for the selected item. */
    text: string;
}
export interface MenuButtonProps extends Omit<HTMLAttributes<HTMLDivElement>, 'id' | 'children'> {
    /** Unique identifier for the menu button, used to derive aria-controls and content IDs. */
    id: string;
    /** Text label for the button (or a11y label for icon-button variant). */
    label: string;
    /**
     * Visual variant of the trigger.
     * - `'button'` — standard menu button with caret
     * - `'icon-button'` — icon-only trigger
     * - `'filter-chip'` — filter chip trigger
     */
    variant: MenuButtonVariant;
    /** Enable inverse (dark background) styling via `data-inverse`. */
    inverse?: boolean;
    /** Size of the trigger button. Defaults to `'large'`. */
    size?: MenuButtonSize;
    /** Monochrome styling (button variant only). */
    monochrome?: boolean;
    /** Disables the trigger via `aria-disabled`. */
    disabled?: boolean;
    /** Optional descriptive text below the menu button (button variant only). */
    optionalBody?: string;
    /** Horizontal alignment of the menu. Defaults to `'leading'`. */
    menuAlignment?: MenuAlignment;
    /** Vertical placement of the menu. Defaults to `'below'`. */
    menuPlacement?: MenuPlacement;
    /** Whether the menu is currently shown. Maps to `aria-expanded`. */
    showMenu?: boolean;
    /** Whether the trigger has a popup. Maps to `aria-haspopup`. */
    hasPopUp?: boolean;
    /** Override for `aria-controls` (defaults to `{id}-menu`). */
    controls?: string;
    /** Icon element rendered in the icon-button variant trigger. */
    icon?: ReactNode;
    /** Background for the icon-button variant. Defaults to `'primary'`. */
    variantIconButtonBackground?: MenuButtonIconBackground;
    /** Optional leading icon for the filter-chip variant. */
    leadingIcon?: ReactNode;
    /** Caret/dropdown icon for the filter-chip variant. */
    caretIcon?: ReactNode;
    /** Filter chip action type (filter-chip variant only). */
    chipType?: MenuButtonChipType;
    /** Currently selected menu item (filter-chip variant only). */
    selectedItem?: MenuButtonSelectedItem;
    /** Force focus state for demos. */
    focused?: boolean;
    /** Force hover state for demos. */
    hover?: boolean;
    /** Force pressed state for demos. */
    pressed?: boolean;
    /** Menu content to render inside the dropdown container. */
    renderMenu?: ReactNode;
}
//# sourceMappingURL=MenuButton.types.d.ts.map