import type { CLASSES } from './vars'; import type { FormControlProvider } from '../form/types'; import type { BaseProps, Size, VerticalSidePlacement } from '../types'; export {}; export interface CascaderRef { updatePosition: () => void; } export interface CascaderItem { label: string; value: V; loading?: boolean; disabled?: boolean; children?: CascaderItem[]; } export interface CascaderProps> extends BaseProps<'cascader' | 'cascader-popup', typeof CLASSES>, Omit, 'children'> { ref?: React.Ref; formControl?: FormControlProvider; list: T[]; model?: V | null | V[]; defaultModel?: V | null | V[]; visible?: boolean; defaultVisible?: boolean; placement?: VerticalSidePlacement; placementFixed?: boolean; placeholder?: string; multiple?: boolean; searchable?: boolean; searchValue?: string; defaultSearchValue?: string; onlyLeafSelectable?: boolean; clearable?: boolean; loading?: boolean; size?: Size; disabled?: boolean; virtual?: boolean | number; escClosable?: boolean; customItem?: (item: T) => React.ReactNode; customSelected?: (value: V, selected?: T) => string; customSearch?: { filter?: (value: string, item: T) => boolean; sort?: (a: T, b: T) => number; }; inputProps?: React.ComponentPropsWithRef<'input'>; popupRender?: (el: React.ReactElement) => React.ReactNode; onModelChange?: (value: any, origin: any) => void; onVisibleChange?: (visible: boolean) => void; onSearch?: (value: string) => void; onClear?: () => void; onFirstFocus?: (value: V, origin: T) => void; onScrollBottom?: (ancestors: V[]) => void; afterVisibleChange?: (visible: boolean) => void; }