import { VNodeChild, InjectionKey, Ref, UnwrapRef, VNode } from 'vue'; import { TreeNode } from 'treemate'; import type { SelectBaseOption, SelectGroupOption, SelectIgnoredOption } from '../../../select/src/interface'; export declare type Size = 'small' | 'medium' | 'large' | 'huge'; export declare type RenderLabel = (option: SelectBaseOption & SelectGroupOption & SelectIgnoredOption, selected: boolean) => VNodeChild; export declare type RenderLabelImpl = (option: SelectBaseOption | SelectGroupOption | SelectIgnoredOption, selected: boolean) => VNodeChild; export declare type RenderOption = (info: { node: VNode; option: SelectBaseOption & SelectGroupOption & SelectIgnoredOption; selected: boolean; }) => VNodeChild; export declare type RenderOptionImpl = (info: { node: VNode; option: SelectBaseOption | SelectGroupOption | SelectIgnoredOption; selected: boolean; }) => VNodeChild; export interface InternalSelectMenuInjection { handleOptionMouseEnter: (e: MouseEvent, tmNode: TreeNode) => void; handleOptionClick: (e: MouseEvent, tmNode: TreeNode) => void; valueSetRef: Ref>; pendingTmNodeRef: Ref | null>; multipleRef: Ref; valueRef: Ref | null>; renderLabelRef: Ref; renderOptionRef: Ref; } export interface InternalExposedProps { selfRef: Ref; getPendingTmNode: () => TreeNode | null; prev: () => void; next: () => void; } export declare const internalSelectionMenuInjectionKey: InjectionKey; export declare const internalSelectionMenuBodyInjectionKey: InjectionKey>; export declare type InternalSelectMenuRef = UnwrapRef;