import { type ChangeEvent } from "react";
import { type IAccessibilityConfigBase } from "../../typings/accessibility.js";
/**
 * @internal
 */
export interface IUiCheckboxProps {
    checked: boolean;
    onChange?: (e: ChangeEvent<HTMLInputElement>) => void;
    preventDefault?: boolean;
    stopPropagation?: boolean;
    indeterminate?: boolean;
    disabled?: boolean;
    accessibilityConfig?: IAccessibilityConfigBase;
    tabIndex?: number;
    label?: string;
    /**
     * Id set on the native input. When omitted a stable id is generated.
     * Pass an explicit id when an ancestor renders its own
     * `<label htmlFor={id}>` so the two stay associated.
     */
    id?: string;
}
/**
 * Checkbox control — renders a native `<input type="checkbox">` for
 * accessibility and a custom 14px box for the visual. The input is overlaid on
 * the box, so clicking the box toggles it. Renders no wrapping `<label>`: an
 * optional inline label is a sibling associated via `htmlFor`, which lets an
 * ancestor row supply its own label without nesting.
 *
 * @internal
 */
export declare function UiCheckbox({ checked, onChange, preventDefault, stopPropagation, indeterminate, disabled, accessibilityConfig, tabIndex, label, id }: IUiCheckboxProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=UiCheckbox.d.ts.map