import { type InputHTMLAttributes, type ReactNode } from "react";
export type CheckboxSize = "sm" | "md" | "lg";
export interface CheckboxProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "onChange" | "size"> {
    /** Controlled checked state. */
    checked?: boolean;
    /** Uncontrolled initial state. */
    defaultChecked?: boolean;
    /** Fires with the new selection state. */
    onChange?: (isSelected: boolean) => void;
    /** Mixed-state checkbox (for "select all" with partial children). */
    indeterminate?: boolean;
    disabled?: boolean;
    /** Visible label. Pair with `description` for "label + helper text" stacks. */
    label?: ReactNode;
    /** Optional helper text below the label. Linked via `aria-describedby` so
     * AT users hear the description after the label. */
    description?: ReactNode;
    /** Mark the field as invalid. Adds the error tint + `aria-invalid`. */
    error?: boolean;
    /** Error message rendered under the description. */
    errorMessage?: ReactNode;
    size?: CheckboxSize;
    className?: string;
}
export declare const Checkbox: import("react").ForwardRefExoticComponent<CheckboxProps & import("react").RefAttributes<HTMLInputElement>>;
//# sourceMappingURL=Checkbox.d.ts.map