import { type TreeMate, type TreeNode } from 'treemate'; import { type HTMLAttributes, type Ref, type VNodeChild } from 'vue'; import type { TreeOptionBase, TreeOption } from '../../tree/src/interface'; export type TreeSelectOption = Omit & { children?: TreeSelectOption[]; [k: string]: unknown; }; export type TreeSelectTmNode = TreeNode; export type OnUpdateValue = (value: string & number & (string | number) & string[] & number[] & Array & null, option: TreeSelectOption & null & TreeSelectOption[] & Array, meta: { node: TreeSelectOption; action: 'select' | 'unselect'; } | { node: TreeSelectOption | null; action: 'delete'; } | { node: null; action: 'clear'; }) => void; export type OnUpdateValueImpl = (value: string | number | (string | number) | string[] | number[] | Array | null, option: TreeSelectOption | null | Array, meta: { node: TreeSelectOption; action: 'select' | 'unselect'; } | { node: TreeSelectOption | null; action: 'delete'; } | { node: null; action: 'clear'; }) => void; export type OnUpdateIndeterminateKeysImpl = (value: string | number | (string | number) | string[] | number[] | Array | null, option: TreeSelectOption | null | Array) => void; export type Value = string | number | Array | null; export interface TreeSelectInjection { pendingNodeKeyRef: Ref; dataTreeMate: Ref>; } export declare const treeSelectInjectionKey: import("vue").InjectionKey; export type TreeSelectRenderTag = (props: { option: TreeSelectOption; handleClose: () => void; }) => VNodeChild; export interface TreeSelectRenderProps { option: TreeSelectOption; checked: boolean; selected: boolean; } export type TreeSelectRenderTreePart = ({ option, checked, selected }: TreeSelectRenderProps) => VNodeChild; export type TreeSelectRenderLabel = TreeSelectRenderTreePart; export type TreeSelectRenderPrefix = TreeSelectRenderTreePart; export type TreeSelectRenderSuffix = TreeSelectRenderTreePart; export type TreeSelectNodeProps = (info: { option: TreeSelectOption; }) => HTMLAttributes & Record; export interface TreeSelectInst { getCheckedData: () => { keys: Array; options: Array; }; getIndeterminateData: () => { keys: Array; options: Array; }; focus: () => void; focusInput: () => void; blur: () => void; blurInput: () => void; }