import type { Key } from '../../../_util/type'; import type { ComputedRef, CSSProperties, InjectionKey, PropType, Ref, UnwrapRef } 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; selectedSubMenuEventKeys: 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, className: Ref) => CSSMotionProps); }> | null>; subMenuOpenDelay: ComputedRef; subMenuCloseDelay: ComputedRef; builtinPlacements?: ComputedRef; triggerSubMenuAction?: ComputedRef; expandIcon?: (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; 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, Record, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{ mode?: unknown; overflowDisabled?: unknown; isRootMenu?: unknown; } & {} & { mode?: MenuMode; overflowDisabled?: boolean; isRootMenu?: boolean; }>, { mode: MenuMode; overflowDisabled: boolean; isRootMenu: boolean; }>; export { useProvideMenu, MenuContextKey, useInjectMenu, MenuFirstLevelContextKey, useProvideFirstLevel, useInjectFirstLevel, MenuContextProvider, }; export default useProvideMenu;