import * as React from 'react'; import { type FormValidityHandle } from '../utils/formControl.cjs'; import type { CheckboxContextValue, CheckboxProps, CheckedState } from './types.cjs'; export declare const CheckboxProvider: React.FC, useCheckboxContext: (consumerName: string) => CheckboxContextValue; /** @internal Maps a {@link CheckedState} to the `data-state` string (`'checked'` / `'unchecked'` / `'indeterminate'`). */ export declare function getState(checked: CheckedState): 'indeterminate' | 'checked' | 'unchecked'; /** * @internal The ARIA and `data-*` state a checkbox-style control publishes on its root. * Shared with `Switch`, whose boolean state is a {@link CheckedState} that never goes indeterminate. */ export declare function checkableStateAttrs(checked: CheckedState, disabled: boolean, readOnly: boolean, invalid: boolean, required: boolean | undefined): { 'aria-checked': boolean | 'mixed'; 'aria-required': true | undefined; 'aria-readonly': true | undefined; 'aria-invalid': true | undefined; 'data-state': 'indeterminate' | 'checked' | 'unchecked'; 'data-disabled': '' | undefined; 'data-readonly': '' | undefined; 'data-invalid': '' | undefined; }; /** * @internal The controlled/uncontrolled state, form-validity handle and reset listener a * checkbox-style control needs, shared by `Checkbox` and `Switch`. */ export declare function useCheckableControl({ checked: checkedProp, defaultChecked, onCheckedChange, form, ref, }: { checked?: T | undefined; defaultChecked: T; onCheckedChange?: ((checked: T) => void) | undefined; form?: string | undefined; ref?: React.Ref | undefined; }): { checked: T; setChecked: (next: T) => void; rootRef: React.RefObject; hiddenInputRef: React.RefObject; }; /** * Tri-state checkbox that renders `role="checkbox"` with `aria-checked` (`'mixed'` when indeterminate), toggling on click or Space. * * @example * ```tsx * * ✓ * * ``` */ export declare const Checkbox: { ({ checked: checkedProp, defaultChecked, onCheckedChange, required, name, value, form, disabled, readOnly, invalid, indicator, size, children, ref: forwardedRef, ...props }: Omit & { ref?: React.Ref | undefined; }): React.ReactNode; displayName: string; };