import type { DCloneHTMLElement, DId, DSize } from '../../utils/types'; import type { DFormControl } from '../form'; import type { DSelectItem } from '../select'; import type { AbstractTreeNode, TreeOrigin } from '../tree/abstract-node'; import React from 'react'; import { TREE_NODE_KEY } from '../tree/utils'; export interface DCascaderRef { updatePosition: () => void; } export type DSearchItem = DSelectItem & { [TREE_NODE_KEY]: AbstractTreeNode; }; export interface DCascaderItem { label: string; value: V; loading?: boolean; disabled?: boolean; children?: DCascaderItem[]; } export interface DCascaderProps> extends React.HTMLAttributes { dRef?: { input?: React.ForwardedRef; }; dFormControl?: DFormControl; dList: T[]; dModel?: V | null | V[]; dVisible?: boolean; dInitialVisible?: boolean; dPlaceholder?: string; dSize?: DSize; dLoading?: boolean; dSearchable?: boolean; dSearchValue?: string; dClearable?: 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; onFirstFocus?: (value: T['value'], item: T) => void; afterVisibleChange?: (visible: boolean) => void; } declare function Cascader>(props: DCascaderProps, ref: React.ForwardedRef): JSX.Element | null; export declare const DCascader: >(props: DCascaderProps & React.RefAttributes) => ReturnType; export {};