import { ComponentType, RefObject } from 'react'; import { SelectionDisplayProps, SelectOptionRendererProps, SelectControlsHandler, SelectProps } from '../Select/Select'; import { OptionAccessor } from '../Shared/types'; export interface SelectSearchControlsHandler extends SelectControlsHandler { cleanOptions: () => void; } export type SelectSearchControlsRef = RefObject; interface SimpleSelectSearchProps extends BaseSelectSearchProps { multiple?: false; value?: T | undefined; onChange?: (newValue: T, name?: string) => void; } interface MultipleSelectSearchProps extends BaseSelectSearchProps { multiple: true; value?: T[]; onChange?: (newValue: T[], name?: string) => void; } export interface BaseSelectSearchProps { label?: string; placeholder?: string; name?: string; options?: T[]; optionValue: OptionAccessor; optionLabel: OptionAccessor; fetcher?: (input?: string) => Promise; asyncMode?: 'fetch_in_open' | 'fetch_on_type'; debounceDelay?: number; minCharacters?: number; inputSearchPlaceholder?: string; labelVariant?: 'static' | 'default'; disabled?: boolean; className?: string; renderOption?: ComponentType>; renderSelection?: ComponentType>; controls?: SelectSearchControlsRef; selectComponentProps?: Partial, 'controls'>>; } export type SelectSearchProps = SimpleSelectSearchProps | MultipleSelectSearchProps; declare const SelectSearchLegacy: (props: SelectSearchProps) => import("react/jsx-runtime").JSX.Element; export default SelectSearchLegacy;