import { ReactNode } from 'react'; import { RadioGroupProps } from '@mui/material/RadioGroup'; import { FormControlLabelProps } from '@mui/material/FormControlLabel'; import { RadioButtonProps } from '../RadioButton/type'; export interface RadioOption { value: string; label: string; disabled?: boolean; description?: string; icon?: React.DetailedHTMLProps, HTMLImageElement>; customProps?: Partial; } export interface CustomRadioGroupProps extends Omit { options: RadioOption[]; onOptionChange?: (value: string) => void; size?: 'small' | 'medium' | 'large'; customLabelRenderer?: (option: RadioOption) => ReactNode; layout?: 'vertical' | 'horizontal'; spacing?: number; labelPosition?: 'start' | 'end' | 'top' | 'bottom'; showHoverEffects?: boolean; customRadioProps?: Partial; labelSx?: React.CSSProperties; title?: React.ReactNode; } export interface RadioItemProps extends Omit { option: RadioOption; size?: 'small' | 'medium' | 'large'; customLabelRenderer?: (option: RadioOption) => ReactNode; labelPosition?: 'start' | 'end' | 'top' | 'bottom'; showHoverEffects?: boolean; customRadioProps?: Partial; labelSx?: React.CSSProperties; icon?: React.DetailedHTMLProps, HTMLImageElement>; }