import { type ExtractPublicPropTypes, type PropType, type Ref } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
import type { MenuArrayItem } from './Menu.vue';
declare const menuItemProps: {
    item: {
        type: PropType<MenuArrayItem>;
        default: () => void;
    };
    active: BooleanConstructor;
    attrs: {
        type: ObjectConstructor;
        default: () => void;
    };
    onClick: FunctionConstructor;
    value: (StringConstructor | NumberConstructor)[];
    to: StringConstructor;
    exact: BooleanConstructor;
    href: StringConstructor;
    target: StringConstructor;
    label: StringConstructor;
    icon: StringConstructor;
    iconRight: StringConstructor;
    loading: BooleanConstructor;
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    filled: {
        type: BooleanConstructor;
        default: boolean;
    };
    selected: BooleanConstructor;
    disabled: BooleanConstructor;
    minimal: BooleanConstructor;
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
};
export type MenuItemProps = ExtractPublicPropTypes<typeof menuItemProps>;
type InternalClasses = 'wrapper';
type InternalExtraData = {
    isActive: Ref<boolean>;
};
export interface MenuItemTheme extends ThemeComponent<MenuItemProps, InternalClasses, InternalExtraData> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    item: {
        type: PropType<MenuArrayItem>;
        default: () => void;
    };
    active: BooleanConstructor;
    attrs: {
        type: ObjectConstructor;
        default: () => void;
    };
    onClick: FunctionConstructor;
    value: (StringConstructor | NumberConstructor)[];
    to: StringConstructor;
    exact: BooleanConstructor;
    href: StringConstructor;
    target: StringConstructor;
    label: StringConstructor;
    icon: StringConstructor;
    iconRight: StringConstructor;
    loading: BooleanConstructor;
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    filled: {
        type: BooleanConstructor;
        default: boolean;
    };
    selected: BooleanConstructor;
    disabled: BooleanConstructor;
    minimal: BooleanConstructor;
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("active" | "click")[], "active" | "click", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    item: {
        type: PropType<MenuArrayItem>;
        default: () => void;
    };
    active: BooleanConstructor;
    attrs: {
        type: ObjectConstructor;
        default: () => void;
    };
    onClick: FunctionConstructor;
    value: (StringConstructor | NumberConstructor)[];
    to: StringConstructor;
    exact: BooleanConstructor;
    href: StringConstructor;
    target: StringConstructor;
    label: StringConstructor;
    icon: StringConstructor;
    iconRight: StringConstructor;
    loading: BooleanConstructor;
    rounded: {
        type: BooleanConstructor;
        default: boolean;
    };
    filled: {
        type: BooleanConstructor;
        default: boolean;
    };
    selected: BooleanConstructor;
    disabled: BooleanConstructor;
    minimal: BooleanConstructor;
    color: {
        readonly type: StringConstructor;
        readonly default: string | undefined;
    };
    size: {
        readonly type: PropType<import("../../composables/useCommon").Size>;
        readonly default: "md";
        readonly validator: (value: string) => boolean;
    };
}>> & {
    onClick?: ((...args: any[]) => any) | undefined;
    onActive?: ((...args: any[]) => any) | undefined;
}, {
    disabled: boolean;
    color: string;
    rounded: boolean;
    size: import("../../composables/useCommon").Size;
    item: MenuArrayItem;
    active: boolean;
    loading: boolean;
    filled: boolean;
    minimal: boolean;
    attrs: Record<string, any>;
    exact: boolean;
    selected: boolean;
}, {}>, {
    prefix?(_: {}): any;
    default?(_: {}): any;
    suffix?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
