import { ChangeEventHandler, DetailedHTMLProps, FC, InputHTMLAttributes, Ref } from 'react';
export interface CheckboxProps extends Omit, HTMLInputElement>, 'size'> {
/**
* Optional custom CSS class for the checkbox input element.
* Useful for styling overrides and scoped component design.
*/
className?: string;
/**
* Optional class name for the outer wrapper of the checkbox.
* Commonly used to style the label or layout container.
*/
wrapperClassName?: string;
/**
* Sets the checkbox to an indeterminate visual state.
* Often used when only some nested items are selected.
* This state is visual only and must be controlled manually.
*/
indeterminate?: boolean;
/**
* Controlled checked state of the checkbox.
* Used in controlled components for full state management.
*/
checked?: boolean;
/**
* Initial checked state for uncontrolled usage.
* Mirrors the native `defaultChecked` HTML behavior.
*/
defaultChecked?: boolean;
/**
* Visual variant of the checkbox, for theme or context switching.
*/
variant?: 'primary' | 'secondary';
/**
* Size of the checkbox input and its visual marker.
*/
size?: 'small' | 'medium' | 'large';
/**
* Callback function fired when the checkbox state changes.
* Receives the native `ChangeEvent`.
*/
onChange?: ChangeEventHandler;
/**
* Disables the checkbox, making it non-interactive.
* Also applies a visually disabled style.
*/
disabled?: boolean;
/**
* Ref to the native `` element.
* Useful for managing focus, setting indeterminate manually, etc.
*/
ref?: Ref;
}
/** A Checkbox is a UI component that allows users to select one or multiple options from a set, toggling between checked and unchecked states. */
export declare const Checkbox: FC;