import { SelectBaseOption, SelectGroupOption, SelectIgnoredOption } from "../../../select/src/interface.js"; import { HTMLAttributes, Ref, UnwrapRef, VNode, VNodeChild } from "vue"; import { TreeNode } from "treemate"; //#region src/_internal/select-menu/src/interface.d.ts type Size = 'tiny' | 'small' | 'medium' | 'large' | 'huge'; type RenderLabel = (option: SelectBaseOption & SelectGroupOption & SelectIgnoredOption, selected: boolean) => VNodeChild; type RenderLabelImpl = (option: SelectBaseOption | SelectGroupOption | SelectIgnoredOption, selected: boolean) => VNodeChild; type RenderOption = (info: { node: VNode; option: SelectBaseOption & SelectGroupOption & SelectIgnoredOption; selected: boolean; }) => VNodeChild; type RenderOptionImpl = (info: { node: VNode; option: SelectBaseOption | SelectGroupOption | SelectIgnoredOption; selected: boolean; }) => VNodeChild; type NodeProps = (option: SelectBaseOption | SelectGroupOption) => HTMLAttributes & Record; interface InternalSelectMenuInjection { handleOptionMouseEnter: (e: MouseEvent, tmNode: TreeNode) => void; handleOptionClick: (e: MouseEvent, tmNode: TreeNode) => void; showCheckmarkRef: Ref; valueSetRef: Ref>; pendingTmNodeRef: Ref | null>; multipleRef: Ref; valueRef: Ref | null>; renderLabelRef: Ref; renderOptionRef: Ref; labelFieldRef: Ref; valueFieldRef: Ref; nodePropsRef: Ref; } interface InternalExposedProps { selfRef: Ref; getPendingTmNode: () => TreeNode | null; prev: () => void; next: () => void; } declare const internalSelectionMenuInjectionKey: import("vue").InjectionKey; declare const internalSelectionMenuBodyInjectionKey: import("vue").InjectionKey>; type InternalSelectMenuRef = UnwrapRef; //#endregion export { InternalExposedProps, InternalSelectMenuInjection, InternalSelectMenuRef, NodeProps, RenderLabel, RenderLabelImpl, RenderOption, RenderOptionImpl, Size, internalSelectionMenuBodyInjectionKey, internalSelectionMenuInjectionKey };