import { ReactNode } from 'react'; import { FormControlProps, InputLabelProps, MenuItemProps, SelectChangeEvent, SelectProps as MuiSelectProps } from '@mui/material'; import { FormHelperTextProps } from '@mui/material'; export interface SelectOption { value: Value; label: ReactNode; menuItemProps?: Omit; } type ExtractOptionValue[]> = TOptions[number] extends SelectOption ? V : never; type SelectValue[], TEmptyOption, TEmptyValue = null> = TEmptyOption extends true ? TEmptyValue | ExtractOptionValue : ExtractOptionValue; export type SelectProps[] = [], TEmptyOption extends boolean = false, TEmptyValue = null> = { options: TOptions; /** * @default null */ emptyOptionValue?: TEmptyValue; /** * @default false */ emptyOption?: TEmptyOption; value: Readonly>; onChange?: (value: Readonly>, event: SelectChangeEvent>>, child: React.ReactNode) => void; helperText?: ReactNode; /** * @default translate('select.emptyOptionLabel') */ emptyOptionLabel?: ReactNode; placeholder?: ReactNode; slotProps?: { formControl?: Omit; helperText?: FormHelperTextProps; inputLabel?: InputLabelProps; menuItemProps?: Omit; }; } & Omit>>, 'onChange' | 'value'>; declare function Select[] = [], TEmptyOption extends boolean = false, TEmptyValue = null>(inProps: SelectProps): import("react/jsx-runtime").JSX.Element; declare module '@mui/material' { interface Components { ReevolveSelect?: { defaultProps?: Partial; }; } } export default Select; //# sourceMappingURL=Select.d.ts.map