export type CheckboxConfig = { checked: () => boolean; indeterminate?: () => boolean; onChange?: (checked: boolean) => void; disabled?: () => boolean; id?: () => string | undefined; invalid?: () => boolean; required?: () => boolean; error?: () => string | undefined; hint?: () => string | undefined; ariaLabel?: () => string | undefined; }; export type CheckboxBoxProps = { type: 'button'; role: 'checkbox'; id: string | undefined; 'aria-checked': boolean | 'mixed'; 'aria-invalid': 'true' | undefined; 'aria-required': 'true' | undefined; 'aria-describedby': string | undefined; 'aria-label': string | undefined; disabled: boolean; 'data-checked': '' | undefined; 'data-indeterminate': '' | undefined; onclick: () => void; }; export type Checkbox = { /** True only when fully checked (never in the indeterminate state). */ readonly checked: boolean; readonly indeterminate: boolean; readonly disabled: boolean; /** Indeterminate resolves to checked; otherwise flips checked. */ toggle: () => void; /** Spread onto the checkbox element. */ boxProps: () => CheckboxBoxProps; }; export declare function createCheckbox(config: CheckboxConfig): Checkbox;