import type { CSSMotionProps, Key } from '@antdv/ui/es/types'; import type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'; import type { BuiltinPlacements, MenuClickEventHandler, MenuMode, MenuTheme, TriggerSubMenuAction } from '../interface'; 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 function useProvideMenu(props: MenuContextProps): void; declare function useInjectMenu(): MenuContextProps; export declare function useProvideForceRender(forceRender: boolean): void; export declare function useInjectForceRender(): boolean; declare const MenuFirstLevelContextKey: InjectionKey; declare function useProvideFirstLevel(firstLevel: boolean): void; declare function useInjectFirstLevel(): boolean; declare const MenuContextProvider: import("vue").DefineComponent<{ mode: { type: PropType; default: any; }; overflowDisabled: { type: BooleanConstructor; default: any; }; }, () => import("vue").VNode[], unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly; default: any; }; overflowDisabled: { type: BooleanConstructor; default: any; }; }>>, { mode: MenuMode; overflowDisabled: boolean; }, {}>; export { MenuContextKey, MenuContextProvider, MenuFirstLevelContextKey, useInjectFirstLevel, useInjectMenu, useProvideFirstLevel, useProvideMenu, }; export default useProvideMenu;