import type { JSX, ReactNode, Ref } from 'react'; import type { BasicInputProps } from '../../primitive'; export type SelectInputType = 'select'; export type SelectItem = { id: string | number; label: string; } & (Group extends false ? { group?: false; value: T; } : { group: true; value?: never; items: SelectItem[]; }); export type SelectInputProps = { items: SelectItem[]; renderItem?: (item: SelectItem, selected?: boolean) => ReactNode; clearable?: boolean; allowAddition?: boolean; onNewItemAdded?: (value: string) => void; search?: boolean; searchPredicate?: (item: SelectItem, searchValue: string) => boolean; selectPredicate?: (a: T, b: T) => boolean; parentRef?: Ref; } & ({ multiple?: false; value?: T | null; onChange?: (item?: T) => void; } | { multiple: true; value: T[]; onChange?: (item?: T[]) => void; }) & Pick, 'className' | 'inputClassName' | 'extensionClassName' | 'name' | 'label' | 'description' | 'size' | 'placeholder' | 'required' | 'hasErrors' | 'disabled' | 'readOnly' | 'ref' | 'dataTestId'>; export declare const SelectInput: ({ className, items, renderItem, value, multiple, clearable, allowAddition, onNewItemAdded, search, searchPredicate, selectPredicate, onChange, readOnly, parentRef, dataTestId, ...props }: SelectInputProps) => JSX.Element;