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: (ObjectConstructor | 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;
    prefix: StringConstructor;
    suffix: StringConstructor;
    checkbox: 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<import("vue").ExtractPropTypes<{
    item: {
        type: PropType<MenuArrayItem>;
        default: () => void;
    };
    active: BooleanConstructor;
    attrs: {
        type: ObjectConstructor;
        default: () => void;
    };
    onClick: FunctionConstructor;
    value: (StringConstructor | NumberConstructor)[];
    to: (ObjectConstructor | 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;
    prefix: StringConstructor;
    suffix: StringConstructor;
    checkbox: 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;
    };
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("click" | "active" | "checkbox-click")[], "click" | "active" | "checkbox-click", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    item: {
        type: PropType<MenuArrayItem>;
        default: () => void;
    };
    active: BooleanConstructor;
    attrs: {
        type: ObjectConstructor;
        default: () => void;
    };
    onClick: FunctionConstructor;
    value: (StringConstructor | NumberConstructor)[];
    to: (ObjectConstructor | 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;
    prefix: StringConstructor;
    suffix: StringConstructor;
    checkbox: 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;
    };
}>> & Readonly<{
    onClick?: ((...args: any[]) => any) | undefined;
    onActive?: ((...args: any[]) => any) | undefined;
    "onCheckbox-click"?: ((...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;
    checkbox: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    prefix?(_: {
        item: MenuItemProps;
    }): any;
    default?(_: {
        item: MenuItemProps;
    }): any;
    suffix?(_: {
        item: MenuItemProps;
    }): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
