import { RadiantElement } from '@ecopages/radiant'; import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter'; export type RuiCheckboxProps = { /** Whether the checkbox is checked. Default: `false`. */ checked?: boolean; /** * Partially checked (mixed) state for group controllers. * When `true`, the native input's `indeterminate` IDL is set and * `aria-checked="mixed"` is exposed. Default: `false`. */ indeterminate?: boolean; /** Disable the checkbox. Default: `false`. */ disabled?: boolean; /** Value submitted with forms when checked. */ value?: string; /** Associates the control with a form field name. */ name?: string; }; export type RuiCheckboxChangeDetail = { checked: boolean; indeterminate: boolean; }; /** * Default submitted value for a checkbox. * * @remarks Must match the host `@prop` default: the SSR view seeds the inner * `` with it so form submission works before hydration. */ export declare const CHECKBOX_DEFAULT_VALUE = "on"; /** * `` — a dual-state or tri-state checkbox. * * Implements the WAI-ARIA APG Checkbox pattern on a native * ``. Checked state uses the HTML `checked` attribute; * the mixed state uses the `indeterminate` IDL property with `aria-checked="mixed"`. * * @see https://www.w3.org/WAI/ARIA/apg/patterns/checkbox/ * * Keyboard interaction (native to the checkbox): * - `Space`: toggle checked state * * @element rui-checkbox * @fires rui-change - Emitted after the checked/indeterminate state changes. * @cssclass rui-checkbox - Label row: box + visible label. * @cssclass rui-checkbox__input - Native input (visually hidden, receives focus). * @cssclass rui-checkbox__control - Visible box with check / indeterminate glyph. * @cssclass rui-checkbox__label - Light-DOM label text. */ export declare class RuiCheckbox extends RadiantElement { checked: boolean; indeterminate: boolean; disabled: boolean; value: string; name: string; inputTarget: HTMLInputElement; changeEvent: EventEmitter; protected onConnected(): void; syncInputState(): void; onInputChange(event: Event): void; }