import type { CSSMotionProps, FocusEventHandler, Key, MouseEventHandler } from '@antdv/ui/es/types';
import type { ExtractPropTypes, PropType } from 'vue';
import type { BuiltinPlacements, ItemType, MenuClickEventHandler, MenuMode, MenuTheme, SelectEventHandler, TriggerSubMenuAction } from './interface';
export declare function menuDividerProps(): {
    prefixCls: StringConstructor;
    dashed: BooleanConstructor;
};
export declare function menuItemGroupProps(): {
    title: any;
    originItemValue: {
        type: PropType<ItemType>;
        default: ItemType;
    };
};
export declare function menuProps(): {
    id: StringConstructor;
    prefixCls: StringConstructor;
    items: PropType<ItemType[]>;
    disabled: BooleanConstructor;
    inlineCollapsed: BooleanConstructor;
    disabledOverflow: BooleanConstructor;
    forceSubMenuRender: BooleanConstructor;
    openKeys: PropType<Key[]>;
    selectedKeys: PropType<Key[]>;
    activeKey: StringConstructor;
    selectable: {
        type: BooleanConstructor;
        default: boolean;
    };
    multiple: {
        type: BooleanConstructor;
        default: boolean;
    };
    tabindex: {
        type: (NumberConstructor | StringConstructor)[];
    };
    motion: PropType<CSSMotionProps>;
    role: StringConstructor;
    theme: {
        type: PropType<MenuTheme>;
        default: string;
    };
    mode: {
        type: PropType<MenuMode>;
        default: string;
    };
    inlineIndent: {
        type: NumberConstructor;
        default: number;
    };
    subMenuOpenDelay: {
        type: NumberConstructor;
        default: number;
    };
    subMenuCloseDelay: {
        type: NumberConstructor;
        default: number;
    };
    builtinPlacements: {
        type: PropType<BuiltinPlacements>;
    };
    triggerSubMenuAction: {
        type: PropType<TriggerSubMenuAction>;
        default: string;
    };
    getPopupContainer: PropType<(node: HTMLElement) => HTMLElement>;
    expandIcon: PropType<(p?: {
        [key: string]: any;
        isOpen: boolean;
    }) => any>;
    onOpenChange: PropType<(keys: Key[]) => void>;
    onSelect: PropType<SelectEventHandler>;
    onDeselect: PropType<SelectEventHandler>;
    onClick: PropType<MenuClickEventHandler>;
    onFocus: PropType<FocusEventHandler>;
    onBlur: PropType<FocusEventHandler>;
    onMousedown: PropType<MouseEventHandler>;
    'onUpdate:openKeys': PropType<(keys: Key[]) => void>;
    'onUpdate:selectedKeys': PropType<(keys: Key[]) => void>;
    'onUpdate:activeKey': PropType<(key: Key) => void>;
};
export declare function menuItemProps(): {
    id: StringConstructor;
    role: StringConstructor;
    disabled: BooleanConstructor;
    danger: BooleanConstructor;
    title: {
        type: (BooleanConstructor | StringConstructor)[];
        default: any;
    };
    icon: any;
    onMouseenter: PropType<MouseEventHandler>;
    onMouseleave: PropType<MouseEventHandler>;
    onClick: PropType<MouseEventHandler>;
    onKeydown: PropType<MouseEventHandler>;
    onFocus: PropType<MouseEventHandler>;
    originItemValue: {
        type: PropType<ItemType>;
        default: ItemType;
    };
};
export declare function subMenuProps(): {
    icon: any;
    title: any;
    disabled: BooleanConstructor;
    level: NumberConstructor;
    popupClassName: StringConstructor;
    popupOffset: PropType<[number, number]>;
    internalPopupClose: BooleanConstructor;
    eventKey: StringConstructor;
    expandIcon: PropType<(p?: {
        [key: string]: any;
        isOpen: boolean;
    }) => any>;
    theme: PropType<MenuTheme>;
    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>>>;
export type MenuItemProps = Partial<ExtractPropTypes<ReturnType<typeof menuItemProps>>>;
export type MenuProps = Partial<ExtractPropTypes<ReturnType<typeof menuProps>>>;
export type MenuDividerProps = Partial<ExtractPropTypes<ReturnType<typeof menuDividerProps>>>;
export type MenuItemGroupProps = Partial<ExtractPropTypes<ReturnType<typeof menuItemGroupProps>>>;
