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: Ref; childrenEventKeys?: Ref; isLeaf?: boolean; parentKeys: Ref; } export interface MenuContextProps { rootClassName: Ref; registerMenuInfo: (key: string, info: StoreMenuInfo) => void; unRegisterMenuInfo: (key: string) => void; prefixCls: ComputedRef; openKeys: Ref; selectedKeys: Ref; selectedSubMenuKeys: Ref>; rtl?: ComputedRef; inlineCollapsed: Ref; theme?: ComputedRef; siderCollapsed?: Ref; 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; default: any; }; overflowDisabled: { type: BooleanConstructor; default: any; }; }>, () => import("vue").VNode[], {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly; default: any; }; overflowDisabled: { type: BooleanConstructor; default: any; }; }>> & Readonly<{}>, { mode: MenuMode; overflowDisabled: boolean; }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>; export { useProvideMenu, MenuContextKey, useInjectMenu, MenuFirstLevelContextKey, useProvideFirstLevel, useInjectFirstLevel, MenuContextProvider, }; export default useProvideMenu;