import * as React from 'react';
import type { ChipOption, ChipsInputBaseProps } from '../ChipsInputBase/types';
import { type CustomSelectDropdownProps } from '../CustomSelectDropdown/CustomSelectDropdown';
import { type CustomSelectOptionProps } from '../CustomSelectOption/CustomSelectOption';
import type { FormFieldProps } from '../FormField/FormField';
import { type UseChipsSelectProps } from './useChipsSelect';
export interface ChipsSelectProps<O extends ChipOption> extends ChipsInputBaseProps<O>, UseChipsSelectProps<O>, Pick<FormFieldProps, 'status' | 'mode' | 'before'>, Pick<CustomSelectDropdownProps, 'overscrollBehavior'> {
    /**
     * Расположение выпадающего списка.
     */
    placement?: 'top' | 'bottom';
    /**
     * Отрисовка Spinner вместо списка опций в выпадающем списке.
     */
    fetching?: boolean;
    /**
     * Закрытие выпадающего списка после выбора элемента.
     */
    closeAfterSelect?: boolean;
    /**
     * Ширина раскрывающегося списка зависит от контента.
     */
    dropdownAutoWidth?: boolean;
    /**
     * Принудительно использовать портал.
     */
    forceDropdownPortal?: boolean;
    /**
     * Передает атрибут `data-testid` для дропдауна.
     */
    dropdownTestId?: string;
    /**
     * Иконка раскрывающегося списка.
     */
    icon?: React.ReactNode;
    /**
     * Добавляет значение в список на событие `onBlur` (использовать вместе с `creatable`).
     */
    addOnBlur?: boolean;
    /**
     * Отключает максимальную высоту по умолчанию.
     */
    noMaxHeight?: boolean;
    /**
     * Функция для отрисовки кастомной опции в выпадающем списке.
     */
    renderOption?: (props: CustomSelectOptionProps, option: O) => React.ReactNode;
    /**
     * Рендер-проп для кастомного рендера содержимого дропдауна.
     * В `defaultDropdownContent` содержится список опций.
     */
    renderDropdown?: ({ defaultDropdownContent, }: {
        defaultDropdownContent: React.ReactNode;
    }) => React.ReactNode;
    /**
     * Событие срабатывающее перед `onChange`.
     */
    onChangeStart?: (event: React.MouseEvent | React.KeyboardEvent, option: O) => void;
    /**
     * Отступ от выпадающего списка.
     */
    dropdownOffsetDistance?: number;
    /**
     * Если `true`, то справа будет отображаться кнопка для очистки значения.
     */
    allowClearButton?: boolean;
}
/**
 * @see https://vkui.io/components/chips-select
 */
export declare const ChipsSelect: <Option extends ChipOption>({ getRootRef, className, status, icon: dropdownIconProp, onChangeStart, options: optionsProp, placement: placementProp, closeAfterSelect, selectedBehavior, emptyText, creatable, fetching, dropdownAutoWidth, forceDropdownPortal, noMaxHeight, filterFn, sortFn, dropdownTestId, onClose, onOpen, overscrollBehavior, renderDropdown, getRef, value: valueProp, defaultValue, inputValue: inputValueProp, defaultInputValue: defaultInputValueProp, getOptionValue, getOptionLabel, getNewOptionData, renderChip, renderOption, onChange, onInputChange: onInputChangeProp, dropdownOffsetDistance, allowClearButton, clearButtonTestId, delimiter, chipsListLabel, disabled: disabledProp, readOnly: readOnlyProp, id: idProp, onFocus: onFocusProp, onBlur: onBlurProp, onKeyDown: onKeyDownProp, slotProps, ...restProps }: ChipsSelectProps<Option>) => React.ReactNode;
//# sourceMappingURL=ChipsSelect.d.ts.map