import { TreeNode } from 'treemate'; import { VNodeChild, HTMLAttributes } from 'vue'; export declare type Key = string | number; export declare type MenuOptionProps = HTMLAttributes; export interface MenuOptionSharedPart { key?: Key; disabled?: boolean; icon?: () => VNodeChild; children?: Array; extra?: string | (() => VNodeChild); props?: HTMLAttributes; type?: 'group' | 'submenu' | 'ignored' | 'divider' | 'render' | undefined; [key: string]: unknown; /** @deprecated */ titleExtra?: string | (() => VNodeChild); } export interface MenuIgnoredOption extends MenuOptionSharedPart { key: Key; type: 'ignored' | 'divider'; } export interface MenuDividerOption extends MenuOptionSharedPart { key: Key; type: 'divider'; } export interface MenuRenderOption extends MenuOptionSharedPart { type: 'render'; render: () => VNodeChild; } export interface MenuGroupOptionBase extends MenuOptionSharedPart { type: 'group' | 'submenu'; children: Array; } export declare type MenuOption = (MenuOptionSharedPart & { /** @deprecated */ title?: string | (() => VNodeChild); }) | (MenuOptionSharedPart & { label?: string | (() => VNodeChild); }) | MenuRenderOption; export declare type MenuGroupOption = (MenuGroupOptionBase & { /** @deprecated */ title?: string | (() => VNodeChild); }) | (MenuGroupOptionBase & { label?: string | (() => VNodeChild); }); export declare type MenuMixedOption = MenuIgnoredOption | MenuOption | MenuGroupOption; export declare type TmNode = TreeNode; export declare type OnUpdateValue = (value: string & number & (string | number), item: MenuOption) => void; export declare type OnUpdateKeys = (keys: string[] & number[] & Array) => void; export declare type OnUpdateValueImpl = (value: string | number | (string | number), item: MenuOption) => void; export declare type OnUpdateKeysImpl = (keys: string[] | number[] | Array) => void;