import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';
import { ComboBoxProps, Key, GroupProps, ListBoxItemProps } from 'react-aria-components';
import { ListData } from 'react-stately';

interface MultiSelectProps<T extends object> extends Omit<ComboBoxProps<T>, 'children' | 'validate' | 'allowsEmptyCollection' | 'inputValue' | 'selectedKey' | 'inputValue' | 'className' | 'value' | 'onSelectionChange' | 'onInputChange'> {
    items: Array<T>;
    selectedList: ListData<T>;
    className?: string;
    label?: string;
    placeholder: string;
    onItemAdd?: (key: Key) => void;
    onItemRemove?: (key: Key) => void;
    renderEmptyState?: (inputValue: string) => ReactNode;
    children: ReactNode | ((item: T) => ReactNode);
}
declare function MultiSelectField({ children, className, ...props }: GroupProps & {
    children: ReactNode;
}): react_jsx_runtime.JSX.Element;
declare function MultiSelect<T extends {
    id: Key;
    textValue: string;
}>({ children, items, selectedList, label, placeholder, onItemRemove, onItemAdd, className, ...props }: MultiSelectProps<T>): react_jsx_runtime.JSX.Element;
declare function MultiSelectItem(props: ListBoxItemProps): react_jsx_runtime.JSX.Element;

export { MultiSelect, MultiSelectField, MultiSelectItem, MultiSelectProps };
