import { FormControlLabelProps, FormHelperTextProps } from "../../types/mui.js";
import { ChangeEvent, ReactNode } from "react";
import * as react_jsx_runtime0 from "react/jsx-runtime";
import { Control, FieldValues, Path, RegisterOptions } from "react-hook-form";
import { SwitchProps } from "@mui/material/Switch";

//#region src/mui/switch/index.d.ts
type RHFSwitchProps<T extends FieldValues> = {
  fieldName: Path<T>;
  control: Control<T>;
  registerOptions?: RegisterOptions<T, Path<T>>;
  onValueChange?: (isChecked: boolean, event: ChangeEvent<HTMLInputElement>) => void;
  label?: ReactNode;
  formControlLabelProps?: FormControlLabelProps;
  helperText?: ReactNode;
  errorMessage?: ReactNode;
  hideErrorMessage?: boolean;
  formHelperTextProps?: FormHelperTextProps;
} & Omit<SwitchProps, 'name'>;
declare const RHFSwitch: <T extends FieldValues>({
  fieldName,
  control,
  registerOptions,
  onValueChange,
  disabled: muiDisabled,
  label,
  formControlLabelProps,
  helperText,
  errorMessage,
  hideErrorMessage,
  formHelperTextProps,
  onBlur,
  slotProps: muiSlotProps,
  ...rest
}: RHFSwitchProps<T>) => react_jsx_runtime0.JSX.Element;
//#endregion
export { RHFSwitchProps, RHFSwitch as default };