import { KdsBadgeVariant, KdsIconName } from '../../accessories';
import { KdsListItemVariant } from '../ListItem/KdsListItem';
import { KdsAvatarAccessory, KdsIconAccessory, KdsLiveStatusAccessory } from '../ListItem/ListItemAccessory/types';
type KdsMenuItemAccessory = KdsIconAccessory | KdsLiveStatusAccessory | KdsAvatarAccessory;
export type KdsMenuItem = {
    id: string;
    /** Main text to show in the item */
    text: string;
    /** Optional subtext shown below the main label (multiline list item layout) */
    subText?: string;
    /** Optional leading icon shown before a section headline */
    sectionHeadlineIcon?: KdsIconName;
    /**
     * When true, the item is rendered as a non-selectable section headline
     * (styled as a section title row). Section headline items are skipped
     * during keyboard navigation and cannot be clicked.
     */
    sectionHeadline?: boolean;
    /** Disables interaction and dims the content. */
    disabled?: boolean;
    /** Optional leading accessory (icon, data type, or color swatch) shown before the text */
    accessory?: KdsMenuItemAccessory;
    /** Show a separator below the item if it's not the last in the list */
    separator?: boolean;
    /** Optional shortcut text shown at the end of the row (e.g. "Ctrl + 1"). Only shown for regular items (not headlines) */
    shortcut?: string;
    /**
     * `KdsBadge` to show on the item. Only rendered for regular items (not headlines) and when a shortcut is not passed in to this item
     */
    badge?: {
        label: string;
        variant?: KdsBadgeVariant;
    };
    /**
     * Interaction handler callback. This will run whenever the item is interacted with, whether that is
     * via a mouse event or a keyboard event
     */
    handler?: (item: KdsMenuItem, event: MouseEvent | KeyboardEvent) => void;
};
export type KdsMenuContainerProps = {
    /** id of the menu to be linked via aria-controls */
    id: string;
    /** Accessible label for the menu */
    ariaLabel?: string;
    /** Menu items rendered in the list */
    items: KdsMenuItem[];
    /** Limits the height of the menu container */
    menuMaxHeight?: string;
    /** Size variant for all the items in this container */
    variant?: KdsListItemVariant;
};
export type KdsMenuContainerExpose = {
    /** Moves focus to the menu list */
    focus: () => void;
};
export {};
//# sourceMappingURL=types.d.ts.map