import type { VueComponent } from '@/types';
import { type MenuMethods as PrimeMenuMethods, type MenuProps as PrimeMenuProps } from 'primevue/menu';
import type { MenuItem } from 'primevue/menuitem';
/** Menu item model for BccMenu: icon can be a PrimeVue icon class string or a Vue icon component. */
export type BccMenuItem = Omit<MenuItem, 'icon' | 'items'> & {
    icon?: VueComponent;
    items?: BccMenuItem[];
};
export type MenuProps = {
    model?: BccMenuItem[];
} & Omit<PrimeMenuProps, 'model'>;
declare var __VLS_16: {
    item: MenuItem;
    label: string | ((...args: any) => string) | undefined;
    props: import("primevue").MenuRouterBindProps;
};
type __VLS_Slots = {} & {
    item?: (props: typeof __VLS_16) => any;
};
declare const __VLS_base: import("vue").DefineComponent<MenuProps, PrimeMenuMethods, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<MenuProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
