import type { Key } from '../../../_util/type'; import type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'; import type { BuiltinPlacements, MenuClickEventHandler, MenuMode, MenuTheme, TriggerSubMenuAction } from '../interface'; import type { CSSMotionProps } from '../../../_util/transition'; export interface StoreMenuInfo { eventKey: string; key: Key; parentEventKeys: ComputedRef; childrenEventKeys?: Ref; isLeaf?: boolean; parentKeys: ComputedRef; } export interface MenuContextProps { isRootMenu: Ref; store: Ref>; registerMenuInfo: (key: string, info: StoreMenuInfo) => void; unRegisterMenuInfo: (key: string) => void; prefixCls: ComputedRef; openKeys: Ref; selectedKeys: Ref; selectedSubMenuKeys: Ref>; rtl?: ComputedRef; inlineCollapsed: Ref; antdMenuTheme?: ComputedRef; siderCollapsed?: ComputedRef; mode: Ref; disabled?: ComputedRef; overflowDisabled?: Ref; activeKeys: Ref; changeActiveKeys: (keys: Key[]) => void; inlineIndent: ComputedRef; motion?: ComputedRef; defaultMotions?: ComputedRef CSSMotionProps); }> | null>; subMenuOpenDelay: ComputedRef; subMenuCloseDelay: ComputedRef; forceSubMenuRender: ComputedRef; builtinPlacements?: ComputedRef; triggerSubMenuAction?: ComputedRef; expandIcon?: ComputedRef<(p?: { isOpen: boolean; [key: string]: any; }) => any>; onItemClick: MenuClickEventHandler; onOpenChange: (key: Key, open: boolean) => void; getPopupContainer: ComputedRef<(node: HTMLElement) => HTMLElement>; } declare const MenuContextKey: InjectionKey; declare const useProvideMenu: (props: MenuContextProps) => void; declare const useInjectMenu: () => MenuContextProps; export declare const useProvideForceRender: (forceRender: boolean) => void; export declare const useInjectForceRender: () => boolean; declare const MenuFirstLevelContextKey: InjectionKey; declare const useProvideFirstLevel: (firstLevel: Boolean) => void; declare const useInjectFirstLevel: () => Boolean; declare const MenuContextProvider: import("vue").DefineComponent<{ mode: { type: PropType; default: any; }; overflowDisabled: { type: BooleanConstructor; default: any; }; isRootMenu: { type: BooleanConstructor; default: any; }; }, () => import("vue").VNode[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly; default: any; }; overflowDisabled: { type: BooleanConstructor; default: any; }; isRootMenu: { type: BooleanConstructor; default: any; }; }>>, { mode: MenuMode; overflowDisabled: boolean; isRootMenu: boolean; }>; export { useProvideMenu, MenuContextKey, useInjectMenu, MenuFirstLevelContextKey, useProvideFirstLevel, useInjectFirstLevel, MenuContextProvider, }; export default useProvideMenu;