import { ChangeEventHandler, FocusEventHandler } from "../utils/types.js";
import "../utils/index.js";
import { ThemingProps } from "../theme/types.js";
import "../theme/index.js";
import { SystemProps } from "../system/system.js";
import "../system/index.js";
import { IconProp } from "../icon/icon.types.js";
import "../icon/index.js";
import { HTMLAttributes, ReactNode } from "react";
//#region src/checkbox/checkbox.types.d.ts
type CheckboxProps = SystemProps & ThemingProps<'Checkbox'> & {
  /** Provides value to checkbox in controlled mode. */
  checked?: boolean;
  /** Deprecated. Please use variant instead. @deprecated  */
  colorScheme?: 'blue' | 'prussian';
  /** Disables checkbox and related elements with the right styling. */
  disabled?: boolean;
  /** Socket displaying error text below the label. Overrides `helpText` and marks the input as invalid. */
  errorText?: ReactNode;
  /** Makes the checkbox non-interactive while keeping normal styling. Value cannot be changed by the user. */
  readOnly?: boolean;
  /** Socket displaying help text below the label. */
  helpText?: ReactNode;
  /** Icon overlaid on the box when not checked. Unset by default — the box itself is plain CSS (border/background). */
  icon?: IconProp;
  /** Icon overlaid on the box when checked. @default uiCheck */
  iconChecked?: IconProp;
  /** Icon overlaid on the box when in indeterminate state. @default uiMinus */
  iconIndeterminate?: IconProp;
  /** Props object passed to the inner input element. */
  inputProps?: HTMLAttributes<HTMLInputElement>;
  /** Ref passed to the inner input element. */
  inputRef?: React.MutableRefObject<HTMLInputElement | null> | null;
  /** Displays the checkbox as indeterminate. */
  isIndeterminate?: boolean;
  /** Socket for the text next to the checkbox. */
  label?: string;
  /** Passed to the inner input. */
  name?: string;
  /** Passed to the inner input. */
  onBlur?: FocusEventHandler;
  /** Passed to the inner input. */
  onChange?: ChangeEventHandler;
  /** Passed to the inner input. */
  onFocus?: FocusEventHandler;
  /** Passed to the inner input. */
  required?: boolean;
  /** Passed to the inner input. */
  value?: number | string;
};
type CheckboxStyleProps = {
  /** Styles the icon when any part of the checkbox is hovered. */
  controlHoverColor: string;
  /** Styles the icon when the checkbox is actively pressed. */
  controlPressedColor: string;
};
//#endregion
export { CheckboxProps, CheckboxStyleProps };

//# sourceMappingURL=checkbox.types.d.ts.map