import { VNode } from 'vue';
export type BxMenuItem = {
    label: string | (() => VNode[] | VNode);
    key: string | number;
    disabled?: boolean;
    disabledOpacity?: number;
    icon?: () => VNode[] | VNode;
    isActive?: boolean;
    suffix?: () => VNode[] | VNode;
};
type __VLS_Props = {
    items: BxMenuItem[];
    primary?: boolean;
    secondary?: boolean;
    showActiveSymbol?: boolean;
    divided?: boolean;
    /**
     * Opt-in ARIA semantics + keyboard navigation. 'listbox' marks items as
     * `option` with `aria-selected` (use for selects); 'menu' marks them as
     * `menuitem`. Omit for a plain click menu with no roving focus.
     */
    ariaRole?: 'menu' | 'listbox';
    /** Move focus to the active (or first enabled) item on mount. */
    autofocusItem?: boolean;
};
type __VLS_Slots = {
    'render-items'?: (scope: {
        items: BxMenuItem[];
    }) => VNode[];
    'render-item-label'?: (scope: {
        item: BxMenuItem;
        isActive: boolean;
        index: number;
    }) => VNode[];
    'render-item-active-symbol'?: (scope: {
        item: BxMenuItem;
        isActive: boolean;
    }) => VNode[];
    'render-item-icon'?: (scope: {
        item: BxMenuItem;
        isActive: boolean;
    }) => VNode[];
    label?: (scope: {
        label?: string | (() => VNode[] | VNode);
    }) => VNode[];
};
declare const __VLS_component: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    close: () => any;
    action: (item: BxMenuItem) => any;
}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
    onClose?: (() => any) | undefined;
    onAction?: ((item: BxMenuItem) => any) | undefined;
}>, {
    primary: boolean;
    secondary: boolean;
    showActiveSymbol: boolean;
    divided: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
