import { LitElement } from 'lit';
import '../icon/Icon.js';
declare const Checkbox_base: (new (...args: any[]) => import("../../util/EventEmitterMixin.js").EventEmitterMixinInterface) & (new (...args: any[]) => import("../../util/ReadyMixin.js").ReadyMixinInterface) & typeof LitElement;
/**
 * A checkbox component for selecting one or more options from a set.
 *
 * Uses a hidden native checkbox internally for accessibility and form
 * participation. Styled via the `btu-checkbox` Tailwind plugin classes.
 * The component manages its own `className` — do not modify it externally
 * after initialization (classes present at connection time are preserved).
 *
 * @element btu-checkbox
 *
 * @fires {CustomEvent} btu-checkbox-ready - Fired after the checkbox is first rendered and initialized
 * @fires {CustomEvent<{ checked: boolean }>} btu-checkbox-change - Fired when the user toggles the checked state
 *
 * @cssprop --checkbox-color-primary - Background and border color when checked or indeterminate, and tinted background/border on unchecked hover (default: oklch(var(--btu-theme-primary-700)))
 * @cssprop --checkbox-color-border - Border color in the unchecked state (default: oklch(var(--btu-theme-gray-300)))
 * @cssprop --checkbox-color-error - Border and text color in the error state (default: oklch(var(--btu-theme-error-600)))
 * @cssprop --checkbox-border-radius - Corner rounding of the checkbox square (default: 4px)
 * @cssprop --checkbox-label-spacing - Distance between the checkbox and the label (default: 0.75rem)
 * @cssprop --checkbox-box-size - [Internal] Width and height of the checkbox square, set by the size variant (sm: 1rem, md: 1.25rem). Use the `size` attribute instead of overriding directly — the icon must scale in tandem.
 * @cssprop --checkbox-icon-size - [Internal] Width and height of the icon inside the box, set by the size variant (sm: 0.75rem, md: 0.875rem). Use the `size` attribute instead of overriding directly.
 */
export default class Checkbox extends Checkbox_base {
    /**
     * The text label displayed next to the checkbox.
     * @attr
     */
    label: string | undefined;
    /**
     * Optional helper text displayed below the label.
     * @attr
     */
    description: string | undefined;
    /**
     * Controls the scale of the checkbox and associated typography.
     * @attr
     */
    size: 'sm' | 'md';
    /**
     * Whether the checkbox is currently selected.
     * @attr
     */
    checked: boolean;
    /**
     * Whether the checkbox is in a partially selected state. Sets `aria-checked='mixed'`
     * and activates the native `:indeterminate` pseudo-class. Cleared automatically when
     * the user clicks the checkbox.
     * @attr
     */
    indeterminate: boolean;
    /**
     * If true, the checkbox is non-interactive and visually muted.
     * @attr
     */
    disabled: boolean;
    /**
     * If true, displays error styling on the checkbox.
     * @attr
     */
    invalid: boolean;
    /**
     * Error message text displayed below the checkbox when validation fails.
     * Setting this also activates error styling without needing to set invalid.
     * @attr
     */
    error: string | undefined;
    /**
     * Marks the field as mandatory for form submission.
     * @attr
     */
    required: boolean;
    /**
     * Name of the form control submitted with the form data.
     * @attr
     */
    name: string | undefined;
    /**
     * Value associated with the checkbox when submitted.
     * @attr
     */
    value: string;
    private _userInitiated;
    private _initialClasses;
    private _initialClassesCaptured;
    private _descId;
    private _errorId;
    connectedCallback(): void;
    disconnectedCallback(): void;
    createRenderRoot(): this;
    willUpdate(changedProperties: Map<string | number | symbol, unknown>): void;
    firstUpdated(changedProperties: Map<string | number | symbol, unknown>): void;
    updated(changedProperties: Map<string | number | symbol, unknown>): void;
    private _onInputChange;
    private _handleClick;
    private get _describedBy();
    private get _iconSymbol();
    render(): import("lit-html").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'btu-checkbox': Checkbox;
    }
}
export {};
//# sourceMappingURL=Checkbox.d.ts.map