import { ExtractPropTypes, PropType, DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
import { MouseEventHandler } from '../../_util/EventInterface';
import { CustomSlotsType, Key } from '../../_util/type';
import { ItemType, MenuTheme } from './interface';
import { VueTypeValidableDef } from 'vue-types';
export declare const subMenuProps: () => {
    icon: VueTypeValidableDef<any>;
    title: VueTypeValidableDef<any>;
    disabled: BooleanConstructor;
    level: NumberConstructor;
    popupClassName: StringConstructor;
    popupOffset: PropType<[number, number]>;
    internalPopupClose: BooleanConstructor;
    eventKey: StringConstructor;
    expandIcon: PropType<(p?: {
        isOpen: boolean;
        [key: string]: any;
    }) => any>;
    theme: PropType<MenuTheme>;
    mode: PropType<"vertical" | "horizontal" | "inline">;
    onMouseenter: PropType<MouseEventHandler>;
    onMouseleave: PropType<MouseEventHandler>;
    onTitleClick: PropType<(e: MouseEvent, key: Key) => void>;
    originItemValue: {
        type: PropType<ItemType>;
        default: ItemType;
    };
};
export type SubMenuProps = Partial<ExtractPropTypes<ReturnType<typeof subMenuProps>>>;
declare const _default: DefineComponent<ExtractPropTypes<{
    icon: VueTypeValidableDef<any>;
    title: VueTypeValidableDef<any>;
    disabled: BooleanConstructor;
    level: NumberConstructor;
    popupClassName: StringConstructor;
    popupOffset: PropType<[number, number]>;
    internalPopupClose: BooleanConstructor;
    eventKey: StringConstructor;
    expandIcon: PropType<(p?: {
        isOpen: boolean;
        [key: string]: any;
    }) => any>;
    theme: PropType<MenuTheme>;
    mode: PropType<"vertical" | "horizontal" | "inline">;
    onMouseenter: PropType<MouseEventHandler>;
    onMouseleave: PropType<MouseEventHandler>;
    onTitleClick: PropType<(e: MouseEvent, key: Key) => void>;
    originItemValue: {
        type: PropType<ItemType>;
        default: ItemType;
    };
}>, () => any, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<ExtractPropTypes<{
    icon: VueTypeValidableDef<any>;
    title: VueTypeValidableDef<any>;
    disabled: BooleanConstructor;
    level: NumberConstructor;
    popupClassName: StringConstructor;
    popupOffset: PropType<[number, number]>;
    internalPopupClose: BooleanConstructor;
    eventKey: StringConstructor;
    expandIcon: PropType<(p?: {
        isOpen: boolean;
        [key: string]: any;
    }) => any>;
    theme: PropType<MenuTheme>;
    mode: PropType<"vertical" | "horizontal" | "inline">;
    onMouseenter: PropType<MouseEventHandler>;
    onMouseleave: PropType<MouseEventHandler>;
    onTitleClick: PropType<(e: MouseEvent, key: Key) => void>;
    originItemValue: {
        type: PropType<ItemType>;
        default: ItemType;
    };
}>> & Readonly<{}>, {
    disabled: boolean;
    originItemValue: ItemType;
    internalPopupClose: boolean;
}, CustomSlotsType<{
    icon?: any;
    title?: any;
    expandIcon?: {
        isOpen: boolean;
        [key: string]: any;
    };
    default?: any;
}>, {}, {}, string, ComponentProvideOptions, true, {}, any>;
export default _default;
