import type { ExtractPublicPropTypes, PropType } from 'vue';
import { type Size } from '../../composables/useCommon';
import { type ThemeComponent } from '../../composables/useTheme';
declare const menuProps: {
    items: PropType<MenuArrayItem[]>;
    collapsible: {
        type: BooleanConstructor;
        default: boolean;
    };
    collapseIcon: StringConstructor;
    expanded: BooleanConstructor;
    disabled: BooleanConstructor;
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    filled: {
        type: BooleanConstructor;
        default: boolean;
    };
    minimal: BooleanConstructor;
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
};
export type MenuArrayItem = {
    collapsible?: boolean;
    collapseIcon?: string;
    expanded?: boolean;
    divider?: boolean;
    items?: MenuArrayItem[];
    value?: string | number;
    to?: string | object;
    href?: string;
    target?: string;
    exact?: boolean;
    color?: string;
    size?: Size;
    label?: string;
    icon?: string;
    iconRight?: string;
    loading?: boolean;
    rounded?: boolean;
    filled?: boolean;
    disabled?: boolean;
    active?: boolean;
    attrs?: Record<string, unknown>;
    prefix?: string;
    suffix?: string;
    onClick?: (e: MouseEvent) => void;
};
export type MenuProps = ExtractPublicPropTypes<typeof menuProps>;
type InternalClasses = 'wrapper';
export interface MenuTheme extends ThemeComponent<MenuProps, InternalClasses> {
}
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    items: PropType<MenuArrayItem[]>;
    collapsible: {
        type: BooleanConstructor;
        default: boolean;
    };
    collapseIcon: StringConstructor;
    expanded: BooleanConstructor;
    disabled: BooleanConstructor;
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    filled: {
        type: BooleanConstructor;
        default: boolean;
    };
    minimal: BooleanConstructor;
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("expand" | "item-click")[], "expand" | "item-click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    items: PropType<MenuArrayItem[]>;
    collapsible: {
        type: BooleanConstructor;
        default: boolean;
    };
    collapseIcon: StringConstructor;
    expanded: BooleanConstructor;
    disabled: BooleanConstructor;
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    filled: {
        type: BooleanConstructor;
        default: boolean;
    };
    minimal: BooleanConstructor;
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>> & Readonly<{
    onExpand?: ((...args: any[]) => any) | undefined;
    "onItem-click"?: ((...args: any[]) => any) | undefined;
}>, {
    disabled: boolean;
    expanded: boolean;
    color: string;
    rounded: boolean;
    size: Size;
    filled: boolean;
    collapsible: boolean;
    minimal: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
