type CheckboxBaseProps = { /** Checked state when controlled; pair with `onChange`. */ isSelected?: boolean; /** Initial state used only when `isSelected` is omitted. */ defaultSelected?: boolean; /** Mixed state for partial select-all controls. */ isIndeterminate?: boolean; /** Reports the next checked value after user interaction. */ onChange?: (isSelected: boolean) => void; /** Removes the control from the tab order and ignores interaction. */ isDisabled?: boolean; className?: string; }; /** Checkbox with a visible label. */ export type CheckboxWithLabelProps = CheckboxBaseProps & { /** Visible label and accessible name. */ label: string; }; type CheckboxIndicatorOnlyBase = CheckboxBaseProps & { label?: never; }; /** Checkbox without a visible label — supply exactly one naming attribute. */ export type CheckboxWithoutLabelProps = (CheckboxIndicatorOnlyBase & { /** Accessible name when no visible label or external reference is used. */ "aria-label": string; "aria-labelledby"?: never; }) | (CheckboxIndicatorOnlyBase & { /** External accessible name; mutually exclusive with `aria-label`. */ "aria-labelledby": string; "aria-label"?: never; }); /** Labelled or indicator-only checkbox with explicit accessible naming. */ export type CheckboxProps = CheckboxWithLabelProps | CheckboxWithoutLabelProps; export {};