import type { ChangeEvent } from 'react'; import * as React from 'react'; import type { HasAlign, HasDataAttribute, HasRootRef } from '../../types'; import { type FormFieldProps } from '../FormField/FormField'; import type { SelectType } from '../Select/Select'; export type SelectValue = Exclude['value'], undefined> | null; export type NativeSelectValue = Exclude; export declare const NOT_SELECTED: { NATIVE: string; CUSTOM: null; }; /** * @visibleName NativeSelect */ export declare const remapFromSelectValueToNativeValue: (value: SelectValue) => NativeSelectValue; export declare const remapFromNativeValueToSelectValue: (value: NativeSelectValue) => SelectValue; export type NativeHTMLSelectProps = Omit, 'multiple' | 'value' | 'defaultValue' | 'onChange'>; export interface NativeSelectProps extends Pick, 'disabled' | 'required' | 'autoFocus' | 'name' | 'form' | 'onFocus' | 'onBlur' | 'onClick'>, Omit, 'defaultValue' | 'onChange' | 'onFocus' | 'onBlur' | 'onClick'>, HasRootRef, HasAlign, Pick { /** * Свойства, которые можно прокинуть внутрь компонента: * - `root`: свойства для прокидывания в корень компонента; * - `select`: свойства для прокидывания в нативный `select`. */ slotProps?: { root?: (Omit, 'children'> & HasDataAttribute & HasRootRef) | undefined; select?: (NativeHTMLSelectProps & HasRootRef & HasDataAttribute) | undefined; } | undefined; /** * @deprecated Since 7.9.0. Вместо этого используйте `slotProps={ select: { getRootRef: ... } }`. */ getRef?: React.Ref | undefined; /** * Выбранное значение. * * > ⚠️ Важно: При прокидывании `undefined` компонент будет считаться `Uncontrolled`. * > * > Не используйте `undefined`, чтобы показать невыбранное состояние. Вместо этого используйте `null`. */ value?: SelectValue | undefined; /** * См. `value`. */ defaultValue?: SelectValue | undefined; /** * Обработчик, срабатывающий при изменении выбранного значения. * Вторым параметром прокидывается новое значение. * * > ⚠️ Лучше использовать второй параметр при работе с компонентом. */ onChange?: ((e: ChangeEvent, newValue: SelectValue) => void) | undefined; /** * Текст-подсказка при отсутствии выбранного значения. */ placeholder?: string | undefined; /** * Флаг для включения многострочного режима. */ multiline?: boolean | undefined; /** * Тип селекта, влияющий на отображение. */ selectType?: SelectType | undefined; /** * Иконка раскрывающегося списка. */ icon?: React.ReactNode | undefined; } /** * @see https://vkui.io/components/native-select */ export declare const NativeSelect: ({ children, align, placeholder, multiline, selectType, status, icon, before, onChange, value, defaultValue, getRef, disabled, required, autoFocus, id, name, form, onClick, onFocus, onBlur, slotProps, ...restProps }: NativeSelectProps) => React.ReactNode; //# sourceMappingURL=NativeSelect.d.ts.map