import { ReactNode } from 'react'; import { CheckboxProps, ChipProps, FormControlProps, InputLabelProps, MenuItemProps, SelectChangeEvent, SelectProps as MuiSelectProps } from '@mui/material'; import { FormHelperTextProps } from '@mui/material'; export interface MultiSelectOption { value: Value; label: ReactNode; menuItemProps?: Omit; } type ExtractOptionValue[]> = TOptions[number] extends MultiSelectOption ? V : never; type MultiSelectValue[]> = ExtractOptionValue[]; export type MultiSelectProps[] = []> = Omit>, 'value' | 'onChange' | 'multiple'> & { value: MultiSelectValue; onChange?: (value: MultiSelectValue, event: SelectChangeEvent>, child: React.ReactNode) => void; /** * @default false */ checkbox?: boolean; /** * @default false */ chip?: boolean; placeholder?: ReactNode; helperText?: ReactNode; options: TOptions; slotProps?: { formControl?: Omit; helperText?: FormHelperTextProps; inputLabel?: InputLabelProps; menuItemProps?: Omit; checkbox?: Omit; chip?: Omit; }; }; declare function MultiSelect[] = []>(inProps: MultiSelectProps): import("react/jsx-runtime").JSX.Element; declare module '@mui/material' { interface Components { ReevolveMultiSelect?: { defaultProps?: Partial; }; } } export default MultiSelect; //# sourceMappingURL=MultiSelect.d.ts.map