import { default as React } from 'react'; export interface ListBoxOption { id: string | number; label: string; value: T; disabled?: boolean; icon?: React.ReactNode; description?: string; metadata?: Record; } export interface ListBoxProps extends Omit, 'onChange'> { options: ListBoxOption[]; value?: T | T[]; onChange?: (value: T | T[]) => void; multiple?: boolean; emptyMessage?: string; itemTemplate?: (option: ListBoxOption) => React.ReactNode; selectedTemplate?: (option: ListBoxOption) => React.ReactNode; searchable?: boolean; searchPlaceholder?: string; filter?: (option: ListBoxOption, searchQuery: string) => boolean; grouped?: boolean; groupBy?: (option: ListBoxOption) => string; groupTemplate?: (groupName: string, options: ListBoxOption[]) => React.ReactNode; className?: string; listClassName?: string; optionClassName?: string; selectedClassName?: string; maxHeight?: string | number; disabled?: boolean; selectAll?: boolean; clearable?: boolean; onSearch?: (query: string) => void; onSelectAll?: () => void; onClearAll?: () => void; compareFn?: (a: T, b: T) => boolean; ariaLabel?: string; ariaLabelledBy?: string; } export declare function ListBox({ options, value, onChange, multiple, emptyMessage, itemTemplate, searchable, searchPlaceholder, filter, grouped, groupBy, groupTemplate, className, listClassName, optionClassName, selectedClassName, maxHeight, disabled, selectAll, clearable, onSearch, onSelectAll, onClearAll, compareFn, ariaLabel, ariaLabelledBy, ...rest }: ListBoxProps): React.JSX.Element; export default ListBox;