import * as React from "react";
import { useCheckboxState, UseCheckboxState } from "./useCheckboxState";
import { PCRCheckboxRadioProps } from "../../typings/PCRCheckboxRadioProps";
export type CheckboxProps = {
  ...PCRCheckboxRadioProps<$PropertyType<UseCheckboxState, "state">>,
  ...{
    /**
     * Mark the underlying HTML input checkbox as `indeterminate`. This prop doesn't change
     * icons for you, it just ensures we have the correct `aria-checked` value
     * and the checkbox has indeterminate status.
     */
    indeterminate?: boolean,
    ...
  },
};
declare export var Checkbox: React.ForwardRefExoticComponent<{
  ...Omit<
    $PropertyType<$Exports<"../../typings/PCRCommonProps">, "CommonProps">,
    "type"
  >,
  ...{
    shape?: ("round" | "curve") | void,
    variant?: ("thick" | "fill") | void,
    animation?: ("smooth" | "rotate" | "jelly" | "tada" | "pulse") | void,
    plain?: boolean | void,
    indeterminate?: boolean | void,
    icon?: React.ReactElement<any, "em" | "i" | "img" | "svg"> | void,
    iconType?: "image" | "svg" | "icon" | void,
    ...
  },
  ...{
    /**
     * Mark the underlying HTML input checkbox as `indeterminate`. This prop doesn't change
     * icons for you, it just ensures we have the correct `aria-checked` value
     * and the checkbox has indeterminate status.
     */
    indeterminate?: boolean | void,
    ...
  },
  ...React.RefAttributes<HTMLInputElement>,
}>;
declare export { useCheckboxState, UseCheckboxState };
