import { OverridableStringUnion } from '@mui/types';
import { Checkbox, SxProps, Theme } from '@mui/material';
import { SwitchBaseProps } from '@mui/material/internal/SwitchBase';
import {
  CheckBoxColorVariant,
  CheckboxPropsColorOverrides,
  CheckboxPropsSizeOverrides,
  MuiCheckBoxBaseProps,
  TextFieldSizeVariant,
} from '../types';

export interface CheckBoxBaseProps extends MuiCheckBoxBaseProps {
  sx?: SxProps<Theme>;
  name?: string;
  label?: string;
  checked?: SwitchBaseProps['checked'];
  color?: OverridableStringUnion<CheckBoxColorVariant, CheckboxPropsColorOverrides>;
  disabled?: SwitchBaseProps['disabled'];
  id?: SwitchBaseProps['id'];
  onChange?: SwitchBaseProps['onChange'];
  required?: SwitchBaseProps['required'];
  size?: OverridableStringUnion<TextFieldSizeVariant, CheckboxPropsSizeOverrides>;
  value?: SwitchBaseProps['value'];
  defaultChecked?: boolean;
}

export type CheckboxType = keyof typeof Checkbox;
