import { CheckStrategy, TreeNode } from 'treemate'; import { InjectionKey, Ref, VNodeChild } from 'vue'; import type { MergedTheme } from '../../_mixins'; import type { TreeTheme } from '../styles'; export declare type Key = string | number; export interface TreeOptionBase { key?: Key; label?: string; checkboxDisabled?: boolean; disabled?: boolean; isLeaf?: boolean; children?: TreeOption[]; prefix?: () => VNodeChild; suffix?: () => VNodeChild; } export declare type TreeOption = TreeOptionBase & { [k: string]: unknown; }; export declare type TreeOptions = TreeOption[]; export interface TreeRenderProps { option: TreeOption; checked: boolean; selected: boolean; } declare type RenderTreePart = ({ option, checked, selected }: TreeRenderProps) => VNodeChild; export declare type RenderLabel = RenderTreePart; export declare type RenderPrefix = RenderTreePart; export declare type RenderSuffix = RenderTreePart; export interface TreeDragInfo { event: DragEvent; node: TreeOption; } export interface TreeDropInfo { event: DragEvent; node: TreeOption; dragNode: TreeOption; dropPosition: 'before' | 'inside' | 'after'; } export interface InternalDragInfo { event: DragEvent; node: TmNode; } export declare type DropPosition = 'before' | 'inside' | 'after'; export declare type AllowDrop = (info: { dropPosition: DropPosition; node: TreeOption; phase: 'drag' | 'drop'; }) => boolean; export interface InternalDropInfo { event: DragEvent; node: TmNode; dropPosition: DropPosition; } export interface TreeInjection { loadingKeysRef: Ref; highlightKeySetRef: Ref>; displayedCheckedKeysRef: Ref; displayedIndeterminateKeysRef: Ref; mergedSelectedKeysRef: Ref; mergedExpandedKeysRef: Ref; fNodesRef: Ref>>; remoteRef: Ref; draggableRef: Ref; mergedThemeRef: Ref>; onLoadRef: Ref<((node: TreeOption) => Promise) | undefined>; blockLineRef: Ref; indentRef: Ref; draggingNodeRef: Ref; droppingMouseNodeRef: Ref; droppingNodeParentRef: Ref; droppingPositionRef: Ref; droppingOffsetLevelRef: Ref; disabledRef: Ref; checkableRef: Ref; cascadeRef: Ref; mergedCheckStrategyRef: Ref; selectableRef: Ref; pendingNodeKeyRef: Ref; internalScrollableRef: Ref; internalCheckboxFocusableRef: Ref; renderLabelRef: Ref; renderPrefixRef: Ref; renderSuffixRef: Ref; labelFieldRef: Ref; handleSwitcherClick: (node: TreeNode) => void; handleSelect: (node: TreeNode) => void; handleCheck: (node: TreeNode, checked: boolean) => void; handleDragStart: (info: InternalDragInfo) => void; handleDragEnter: (info: InternalDragInfo) => void; handleDragLeave: (info: InternalDragInfo) => void; handleDragEnd: (info: InternalDragInfo) => void; handleDragOver: (info: InternalDragInfo) => void; handleDrop: (info: InternalDropInfo) => void; } export declare const treeInjectionKey: InjectionKey; export declare type TmNode = TreeNode; export interface MotionData { __motion: true; height: number | undefined; mode: 'expand' | 'collapse'; nodes: TmNode[]; } export interface InternalTreeInst { handleKeyup: (e: KeyboardEvent) => void; handleKeydown: (e: KeyboardEvent) => void; } export {};