import { FormControlOptions, ThemingProps } from '@chakra-ui/react'; import { UseComboboxProps, UseMultipleSelectionProps } from 'downshift'; import { ComboboxItem, SharedSelectContextReturnProps } from '../SingleSelect'; export interface MultiSelectProviderProps extends Omit, 'isClearable' | 'virtualListRef' | 'virtualListHeight'>, FormControlOptions { /** Controlled selected values */ values: string[]; /** Controlled selection onChange handler */ onChange: (value: string[]) => void; /** Function based on which items in dropdown are filtered. Default filter filters by fuzzy match. */ filter?(items: Item[], value: string): Item[]; /** Initial dropdown opened state. Defaults to `false`. */ defaultIsOpen?: boolean; /** * The maximum number of selected items to render while multiselect is unfocused. * Defaults to `4`. Set to `null` to render all items. */ maxItems?: number | null; /** aria-describedby to be attached to the combobox input, if any. */ inputAria?: { id: string; label: string; }; children: React.ReactNode; /** * Any props to override the default props of `downshift#useCombobox` set by this component. */ downshiftComboboxProps?: Partial>; /** * Any props to override the default props of `downshift#useMultipleSelection` set by this component. */ downshiftMultiSelectProps?: Partial>; colorScheme?: ThemingProps<'MultiSelect'>['colorScheme']; fixedItemHeight?: number; /** * If `true`, the selected items will take up the full width of the input container. Defaults to `false`. */ isStretchLayout?: boolean; /** * Whether the input is in a prefilled state. */ isPrefilled?: boolean; } export declare const MultiSelectProvider: ({ items: rawItems, values, onChange, name, filter, nothingFoundLabel, placeholder: placeholderProp, clearButtonLabel, isSearchable, isPrefilled, defaultIsOpen, isInvalid: isInvalidProp, isReadOnly: isReadOnlyProp, isDisabled: isDisabledProp, isRequired: isRequiredProp, maxItems, downshiftComboboxProps, downshiftMultiSelectProps, inputAria, children, size: _size, colorScheme, fixedItemHeight, isStretchLayout, }: MultiSelectProviderProps) => JSX.Element;