import type { DCloneHTMLElement, DId, DSize } from '../../utils/types'; import type { DFormControl } from '../form'; import React from 'react'; export interface DSelectRef { updatePosition: () => void; } export interface DSelectItem { label: string; value: V; disabled?: boolean; children?: DSelectItem[]; } export interface DSelectProps> extends Omit, 'children'> { 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; dMonospaced?: 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; }; dCreateItem?: (value: string) => T | undefined; dPopupClassName?: string; dInputRender?: DCloneHTMLElement>; onModelChange?: (value: any, item: any) => void; onVisibleChange?: (visible: boolean) => void; onSearchValueChange?: (value: string) => void; onClear?: () => void; onCreateItem?: (item: T) => void; onScrollBottom?: () => void; afterVisibleChange?: (visible: boolean) => void; } declare function Select>(props: DSelectProps, ref: React.ForwardedRef): JSX.Element | null; export declare const DSelect: >(props: DSelectProps & React.RefAttributes) => ReturnType; export {};