import React from 'react'; import type { ListboxOption } from './ListboxContext'; import type { ListboxValue } from './ListboxOption'; import type { PolymorphicProps, PolymorphicComponent } from '../../utils/polymorphicComponent'; interface BaseListboxProps extends PolymorphicProps, 'onSelect' | 'defaultValue'>> { navigation?: 'cycle' | 'bound'; focusStrategy?: 'lastSelected' | 'first' | 'last'; focusDisabledOptions?: boolean; activeOption?: ListboxOption; onActiveChange?: (option: ListboxOption) => void; disabled?: boolean; } interface SingleSelectListboxProps extends BaseListboxProps { multiselect?: false; value?: ListboxValue; defaultValue?: ListboxValue; onSelectionChange?: (props: { target: T; previousValue: ListboxValue; value: ListboxValue; }) => void; } interface MultiSelectListboxProps extends BaseListboxProps { multiselect: true; value?: ListboxValue[]; defaultValue?: ListboxValue[]; onSelectionChange?: (props: { target: T; previousValue: ListboxValue[]; value: ListboxValue[]; }) => void; } declare const Listbox: PolymorphicComponent; export default Listbox;