/// <reference types="node" />
export declare const IvueMenu: import("../../utils/install").SFCWithInstall<{
    name: string;
    emits: string[];
    props: {
        theme: {
            type: StringConstructor;
            validator(value: string): boolean;
            default: string;
        };
        mode: {
            type: StringConstructor;
            validator(value: string): boolean;
            default: string;
        };
        width: {
            type: StringConstructor;
            default: string;
        };
        openNames: {
            type: ArrayConstructor;
            default: () => any[];
        };
        activeName: {
            type: (NumberConstructor | StringConstructor)[];
        };
        accordion: {
            type: BooleanConstructor;
            default: boolean;
        };
    };
    setup(props: import("./types/menu").Props, { emit }: {
        emit: any;
    }): {
        prefixCls: string;
        data: {
            openedNames: any[];
            menuItemList: {
                uid: number;
                activeName: (name: string | number) => void;
            }[];
            submenuList: {
                uid: number;
                submenu: {
                    data: {
                        opened: boolean;
                        active: string | number | boolean;
                    };
                    name: number;
                    activeName: (status: string | number | boolean) => void;
                };
            }[];
            currentActiveName: string | number;
            ready: boolean;
        };
        wrapperClasses: import("vue").ComputedRef<(string | {
            [x: string]: string;
        })[]>;
        wrapperStyles: import("vue").ComputedRef<{
            width?: string;
        }>;
        updateOpenKeys: (name: any) => void;
        updateOpened: (openedNames?: any[]) => void;
        updateActiveName: (activeName?: string | number) => void;
    };
}> & {
    MenuItem: {
        name: string;
        props: {
            name: {
                type: (NumberConstructor | StringConstructor)[];
                required: boolean;
            };
            disabled: {
                type: BooleanConstructor;
                default: boolean;
            };
            to: {
                type: (ObjectConstructor | StringConstructor)[];
            };
            target: {
                type: StringConstructor;
                validator(value: string): boolean;
                default: string;
            };
            replace: {
                type: BooleanConstructor;
                default: boolean;
            };
        };
        setup(props: import("./types/menu-item").Props): {
            active: import("vue").Ref<boolean>;
            wrapperClasses: import("vue").ComputedRef<(string | {
                [x: string]: boolean;
            })[]>;
            wrapperStyles: import("vue").ComputedRef<{
                paddingLeft?: string;
            }>;
            linkUrl: import("vue").ComputedRef<any>;
            handleActive: (event: Event, newWindow?: boolean) => void;
            handleCheckClick: (event: Event, newWindow?: boolean) => boolean;
            handleOpenTo: () => void;
            handleLink: (newWindow?: boolean) => void;
        };
    };
    Submenu: {
        name: string;
        props: {
            name: {
                type: (NumberConstructor | StringConstructor)[];
                required: boolean;
            };
            disabled: {
                type: BooleanConstructor;
                default: boolean;
            };
        };
        setup(props: import("./types/submenu").Props): {
            prefixCls: string;
            reference: import("vue").Ref<HTMLDivElement>;
            dropDown: import("vue").Ref<any>;
            data: {
                opened: boolean;
                dropWidth: number;
                timeout: {
                    hasRef: () => boolean;
                    refresh: () => NodeJS.Timeout;
                    [Symbol.toPrimitive]: () => number;
                    ref: () => NodeJS.Timeout;
                    unref: () => NodeJS.Timeout;
                };
                childSubmenuList: {
                    uid: number;
                    submenu: {
                        data: {
                            opened: boolean;
                            active: string | number | boolean;
                        };
                        name: number;
                        activeName: (status: string | number | boolean) => void;
                    };
                }[];
                active: string | number | boolean;
            };
            Menu: import("./types/menu").MenuContext;
            wrapperClasses: import("vue").ComputedRef<(string | {
                [x: string]: string | number | boolean;
            })[]>;
            titleStyle: import("vue").ComputedRef<{
                paddingLeft?: string;
            }>;
            dropDownStyle: import("vue").ComputedRef<{
                minWidth: string;
            }>;
            iconClasses: import("vue").ComputedRef<(string | {
                [x: string]: boolean;
            })[]>;
            activeName: (status: string | number | boolean) => void;
            handleTitleClick: () => void;
            handleMouseenter: () => void;
            handleMouseleave: () => void;
            handleMenuItemSelect: (name: any) => void;
        };
        components: {
            CollapseTransition: (props: any, context: any) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>;
            DropDown: {
                name: string;
                emits: string[];
                props: {
                    transfer: {
                        type: BooleanConstructor;
                        default(): any;
                    };
                    transitionName: {
                        type: StringConstructor;
                        default: string;
                    };
                    placement: {
                        type: StringConstructor;
                        default: string;
                    };
                    visible: {
                        type: BooleanConstructor;
                    };
                    styles: {
                        type: ObjectConstructor;
                        default: () => void;
                    };
                    classes: {
                        type: ObjectConstructor;
                        default: () => void;
                    };
                    className: {
                        type: StringConstructor;
                    };
                };
                setup(props: import("./types/drop-down").Props, { emit }: {
                    emit: any;
                }): {
                    dropDown: import("vue").Ref<HTMLDivElement>;
                    data: {
                        width: string;
                        zIndex: number;
                        popper: any;
                        popperStatus: boolean;
                    };
                    wrapperClasses: import("vue").ComputedRef<any>;
                    wrapperStyles: import("vue").ComputedRef<{
                        minWidth?: string;
                    }>;
                    update: () => void;
                    destroy: () => void;
                    handleMouseenter: (event: MouseEvent) => void;
                    handleMouseleave: (event: MouseEvent) => void;
                    handleClick: (event: MouseEvent) => void;
                };
            };
            IvueIcon: import("vue").DefineComponent<{
                svgSrc: {
                    type: StringConstructor;
                };
                order: {
                    type: NumberConstructor;
                };
            }, {
                styles: import("vue").ComputedRef<{
                    order: number;
                }>;
                handleSvgLoaded: () => void;
            }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "on-svg-loaded"[], "on-svg-loaded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
                svgSrc: {
                    type: StringConstructor;
                };
                order: {
                    type: NumberConstructor;
                };
            }>> & {
                "onOn-svg-loaded"?: (...args: any[]) => any;
            }, {}>;
        };
    };
    MenuGroup: {
        name: string;
        props: {
            title: {
                type: StringConstructor;
                default: string;
            };
        };
        setup(): {
            prefixCls: string;
            wrapperStyles: import("vue").ComputedRef<{
                paddingLeft: string;
            } | {
                paddingLeft?: undefined;
            }>;
        };
    };
};
export default IvueMenu;
export declare const IvueMenuItem: import("../../utils/install").SFCWithInstall<{
    name: string;
    props: {
        name: {
            type: (NumberConstructor | StringConstructor)[];
            required: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
        to: {
            type: (ObjectConstructor | StringConstructor)[];
        };
        target: {
            type: StringConstructor;
            validator(value: string): boolean;
            default: string;
        };
        replace: {
            type: BooleanConstructor;
            default: boolean;
        };
    };
    setup(props: import("./types/menu-item").Props): {
        active: import("vue").Ref<boolean>;
        wrapperClasses: import("vue").ComputedRef<(string | {
            [x: string]: boolean;
        })[]>;
        wrapperStyles: import("vue").ComputedRef<{
            paddingLeft?: string;
        }>;
        linkUrl: import("vue").ComputedRef<any>;
        handleActive: (event: Event, newWindow?: boolean) => void;
        handleCheckClick: (event: Event, newWindow?: boolean) => boolean;
        handleOpenTo: () => void;
        handleLink: (newWindow?: boolean) => void;
    };
}>;
export declare const IvueSubmenu: import("../../utils/install").SFCWithInstall<{
    name: string;
    props: {
        name: {
            type: (NumberConstructor | StringConstructor)[];
            required: boolean;
        };
        disabled: {
            type: BooleanConstructor;
            default: boolean;
        };
    };
    setup(props: import("./types/submenu").Props): {
        prefixCls: string;
        reference: import("vue").Ref<HTMLDivElement>;
        dropDown: import("vue").Ref<any>;
        data: {
            opened: boolean;
            dropWidth: number;
            timeout: {
                hasRef: () => boolean;
                refresh: () => NodeJS.Timeout;
                [Symbol.toPrimitive]: () => number;
                ref: () => NodeJS.Timeout;
                unref: () => NodeJS.Timeout;
            };
            childSubmenuList: {
                uid: number;
                submenu: {
                    data: {
                        opened: boolean;
                        active: string | number | boolean;
                    };
                    name: number;
                    activeName: (status: string | number | boolean) => void;
                };
            }[];
            active: string | number | boolean;
        };
        Menu: import("./types/menu").MenuContext;
        wrapperClasses: import("vue").ComputedRef<(string | {
            [x: string]: string | number | boolean;
        })[]>;
        titleStyle: import("vue").ComputedRef<{
            paddingLeft?: string;
        }>;
        dropDownStyle: import("vue").ComputedRef<{
            minWidth: string;
        }>;
        iconClasses: import("vue").ComputedRef<(string | {
            [x: string]: boolean;
        })[]>;
        activeName: (status: string | number | boolean) => void;
        handleTitleClick: () => void;
        handleMouseenter: () => void;
        handleMouseleave: () => void;
        handleMenuItemSelect: (name: any) => void;
    };
    components: {
        CollapseTransition: (props: any, context: any) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>;
        DropDown: {
            name: string;
            emits: string[];
            props: {
                transfer: {
                    type: BooleanConstructor;
                    default(): any;
                };
                transitionName: {
                    type: StringConstructor;
                    default: string;
                };
                placement: {
                    type: StringConstructor;
                    default: string;
                };
                visible: {
                    type: BooleanConstructor;
                };
                styles: {
                    type: ObjectConstructor;
                    default: () => void;
                };
                classes: {
                    type: ObjectConstructor;
                    default: () => void;
                };
                className: {
                    type: StringConstructor;
                };
            };
            setup(props: import("./types/drop-down").Props, { emit }: {
                emit: any;
            }): {
                dropDown: import("vue").Ref<HTMLDivElement>;
                data: {
                    width: string;
                    zIndex: number;
                    popper: any;
                    popperStatus: boolean;
                };
                wrapperClasses: import("vue").ComputedRef<any>;
                wrapperStyles: import("vue").ComputedRef<{
                    minWidth?: string;
                }>;
                update: () => void;
                destroy: () => void;
                handleMouseenter: (event: MouseEvent) => void;
                handleMouseleave: (event: MouseEvent) => void;
                handleClick: (event: MouseEvent) => void;
            };
        };
        IvueIcon: import("vue").DefineComponent<{
            svgSrc: {
                type: StringConstructor;
            };
            order: {
                type: NumberConstructor;
            };
        }, {
            styles: import("vue").ComputedRef<{
                order: number;
            }>;
            handleSvgLoaded: () => void;
        }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "on-svg-loaded"[], "on-svg-loaded", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
            svgSrc: {
                type: StringConstructor;
            };
            order: {
                type: NumberConstructor;
            };
        }>> & {
            "onOn-svg-loaded"?: (...args: any[]) => any;
        }, {}>;
    };
}>;
export declare const IvueMenuGroup: import("../../utils/install").SFCWithInstall<{
    name: string;
    props: {
        title: {
            type: StringConstructor;
            default: string;
        };
    };
    setup(): {
        prefixCls: string;
        wrapperStyles: import("vue").ComputedRef<{
            paddingLeft: string;
        } | {
            paddingLeft?: undefined;
        }>;
    };
}>;
export * from './menu.vue';
export * from './menu-item.vue';
export * from './submenu.vue';
