import type { DCloneHTMLElement, DId, DSize } from '../../utils/types';
import type { DFormControl } from '../form';
import type { DTreeItem } from '../tree';
import React from 'react';
export interface DTreeSelectRef {
updatePosition: () => void;
}
export interface DTreeSelectProps> extends React.HTMLAttributes {
dRef?: {
input?: React.ForwardedRef;
};
dFormControl?: DFormControl;
dList: T[];
dModel?: V | null | V[];
dExpands?: V[];
dVisible?: boolean;
dInitialVisible?: boolean;
dPlaceholder?: string;
dSize?: DSize;
dLoading?: boolean;
dSearchable?: boolean;
dSearchValue?: string;
dClearable?: boolean;
dShowLine?: boolean;
dDisabled?: boolean;
dMultiple?: boolean;
dOnlyLeafSelectable?: boolean;
dVirtual?: boolean;
dCustomItem?: (item: T) => React.ReactNode;
dCustomSelected?: (select: T) => string;
dCustomSearch?: {
filter?: (value: string, item: T) => boolean;
sort?: (a: T, b: T) => number;
};
dPopupClassName?: string;
dInputRender?: DCloneHTMLElement>;
onModelChange?: (value: any, item: any) => void;
onVisibleChange?: (visible: boolean) => void;
onSearchValueChange?: (value: string) => void;
onClear?: () => void;
onFirstExpand?: (value: T['value'], item: T) => void;
onExpandsChange?: (ids: T['value'][], items: (T | undefined)[]) => void;
afterVisibleChange?: (visible: boolean) => void;
}
declare function TreeSelect>(props: DTreeSelectProps, ref: React.ForwardedRef): JSX.Element | null;
export declare const DTreeSelect: >(props: DTreeSelectProps & React.RefAttributes) => ReturnType;
export {};