import { TNode } from '../common';
declare const _default: import("vue").ComponentOptions<import("vue").default, import("@vue/composition-api").ShallowUnwrapRef<{
    theme: import("@vue/composition-api").Ref<string>;
    mode: import("@vue/composition-api").Ref<string>;
    isHead: boolean;
    isNested: import("@vue/composition-api").Ref<boolean>;
    popupVisible: import("@vue/composition-api").Ref<boolean>;
    classes: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    subClass: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    isOpen: import("@vue/composition-api").ComputedRef<boolean>;
    transitionClass: import("@vue/composition-api").ComputedRef<string>;
    arrowClass: import("@vue/composition-api").ComputedRef<{
        [x: string]: boolean;
    }[]>;
    overlayInnerClassName: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    overlayClassName: import("@vue/composition-api").ComputedRef<import("../common").ClassName[]>;
    submenuClass: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    rippleColor: import("@vue/composition-api").ComputedRef<"#E7E7E7" | "#383838">;
    popupWrapperRef: import("@vue/composition-api").Ref<HTMLElement>;
    handleEnterPopup: () => void;
    handleMouseEnter: () => void;
    handleMouseLeave: (e: MouseEvent) => void;
    handleMouseLeavePopup: (e: any) => void;
    handleSubmenuItemClick: () => void;
    classPrefix: import("@vue/composition-api").ComputedRef<string>;
}> & import("@vue/composition-api").Data, {
    renderPopup(triggerElement: TNode[]): JSX.Element;
    renderHeadSubmenu(): JSX.Element | JSX.Element[];
    renderSubmenu(): JSX.Element | JSX.Element[];
}, {}, {
    content: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    default: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    disabled: BooleanConstructor;
    icon: {
        type: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    };
    popupProps: {
        type: import("vue").PropType<import("../popup").TdPopupProps>;
    };
    title: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    value: {
        type: import("vue").PropType<import("./type").MenuValue>;
    };
}, import("@vue/composition-api").ExtractPropTypes<{
    content: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    default: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    disabled: BooleanConstructor;
    icon: {
        type: import("vue").PropType<(h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue>;
    };
    popupProps: {
        type: import("vue").PropType<import("../popup").TdPopupProps>;
    };
    title: {
        type: import("vue").PropType<string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue)>;
    };
    value: {
        type: import("vue").PropType<import("./type").MenuValue>;
    };
}>> & Omit<import("vue").VueConstructor<import("vue").default>, never> & (new (...args: any[]) => import("@vue/composition-api").ComponentRenderProxy<{
    disabled: boolean;
} & {
    default?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    content?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    value?: import("./type").MenuValue;
    title?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    icon?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
    popupProps?: unknown;
}, import("@vue/composition-api").ShallowUnwrapRef<{
    theme: import("@vue/composition-api").Ref<string>;
    mode: import("@vue/composition-api").Ref<string>;
    isHead: boolean;
    isNested: import("@vue/composition-api").Ref<boolean>;
    popupVisible: import("@vue/composition-api").Ref<boolean>;
    classes: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    subClass: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    isOpen: import("@vue/composition-api").ComputedRef<boolean>;
    transitionClass: import("@vue/composition-api").ComputedRef<string>;
    arrowClass: import("@vue/composition-api").ComputedRef<{
        [x: string]: boolean;
    }[]>;
    overlayInnerClassName: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    overlayClassName: import("@vue/composition-api").ComputedRef<import("../common").ClassName[]>;
    submenuClass: import("@vue/composition-api").ComputedRef<(string | {
        [x: string]: boolean;
    })[]>;
    rippleColor: import("@vue/composition-api").ComputedRef<"#E7E7E7" | "#383838">;
    popupWrapperRef: import("@vue/composition-api").Ref<HTMLElement>;
    handleEnterPopup: () => void;
    handleMouseEnter: () => void;
    handleMouseLeave: (e: MouseEvent) => void;
    handleMouseLeavePopup: (e: any) => void;
    handleSubmenuItemClick: () => void;
    classPrefix: import("@vue/composition-api").ComputedRef<string>;
}>, import("@vue/composition-api").Data, {}, {
    renderPopup(triggerElement: TNode[]): JSX.Element;
    renderHeadSubmenu(): JSX.Element | JSX.Element[];
    renderSubmenu(): JSX.Element | JSX.Element[];
}, {}, {}, {}, {
    disabled: boolean;
} & {
    default?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    content?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    value?: import("./type").MenuValue;
    title?: string | ((h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue);
    icon?: (h: import("vue").CreateElement) => import("vue/types/vnode").ScopedSlotReturnValue;
    popupProps?: unknown;
}, {
    disabled: boolean;
}, true>);
export default _default;
