import * as react_jsx_runtime from 'react/jsx-runtime';
import { ReactNode } from 'react';
import { PropsForTranslation } from '../../localization/useTranslation.js';
import { LabelProps } from './Label.js';
import { SelectOption } from './Select.js';
import { FormTranslationType } from '../../localization/defaults/form.js';
import '../../localization/util.js';

type MultiSelectAddonTranslation = {
    selected: string;
};
type MultiSelectTranslation = MultiSelectAddonTranslation & FormTranslationType;
type MultiSelectOption<T> = SelectOption<T> & {
    selected: boolean;
};
type MultiSelectProps<T> = {
    options: MultiSelectOption<T>[];
    label?: LabelProps;
    onChange: (options: MultiSelectOption<T>[]) => void;
    hintText?: string;
    isDisabled?: boolean;
    isSearchEnabled?: boolean;
    className?: string;
    useChipDisplay?: boolean;
    selectedDisplayOverwrite?: ReactNode;
};
/**
 * A Component for multi selection
 */
declare const MultiSelect: <T>({ overwriteTranslation, options, label, onChange, hintText, isDisabled, isSearchEnabled, selectedDisplayOverwrite, useChipDisplay, className, }: PropsForTranslation<MultiSelectTranslation, MultiSelectProps<T>>) => react_jsx_runtime.JSX.Element;
declare const MultiSelectUncontrolled: <T>({ options, onChange, ...props }: PropsForTranslation<MultiSelectTranslation, MultiSelectProps<T>>) => react_jsx_runtime.JSX.Element;

export { MultiSelect, type MultiSelectOption, type MultiSelectProps, MultiSelectUncontrolled };
