import { CSSResult, PropertyValueMap, PropertyValues } from 'lit';
import { AssociatedFormControl } from '../../utils/mixins/FormInternalsMixin';
import FormfieldWrapper from '../formfieldwrapper/formfieldwrapper.component';
import type { CheckboxValidationType } from './checkbox.types';
declare const Checkbox_base: import("../../utils/mixins/index.types").Constructor<import("../../utils/mixins/KeyDownHandledMixin").KeyDownHandledMixinInterface> & import("../../utils/mixins/index.types").Constructor<import("../../utils/mixins/KeyToActionMixin").KeyToActionInterface> & import("../../utils/mixins/index.types").Constructor<import("../../models").Component & import("../../utils/mixins/AutoFocusOnMountMixin").AutoFocusOnMountMixinInterface> & import("../../utils/mixins/index.types").Constructor<import("../../utils/mixins/FormInternalsMixin").FormInternalsMixinInterface> & import("../../utils/mixins/index.types").Constructor<import("../../utils/mixins/DataAriaLabelMixin").DataAriaLabelMixinInterface> & typeof FormfieldWrapper;
/**
 * The Checkbox component allows users to select one or multiple options from a list, toggle features on/off,
 * or indicate agreement in forms and settings. These are commonly used in forms, lists, and settings panels
 * where users need to make selections or express preferences.
 *
 * To create a group of checkboxes, use the `mdc-formfieldgroup` component.
 *
 * **Note:** This component internally renders a native checkbox input element with custom styling.
 *
 * ## When to use
 *
 * Use checkboxes when users can select multiple options from a list, or when a single checkbox represents a binary choice (e.g., agreeing to terms).
 *
 * ## Accessibility
 * - Provide clear labels that describe what the checkbox controls
 * - Use `data-aria-label` when a visual label is not present
 * - Keyboard navigation: Space to toggle, Tab to navigate, Enter to submit form
 *
 * ## Styling
 * Use the `static-checkbox` part to apply custom styles to the checkbox visual element.
 * This part exposes the underlying [StaticCheckbox](?path=/docs/components-decorator-staticcheckbox--docs) component for advanced styling.
 *
 * @dependency mdc-button
 * @dependency mdc-icon
 * @dependency mdc-staticcheckbox
 * @dependency mdc-text
 * @dependency mdc-toggletip
 *
 * @tagname mdc-checkbox
 *
 * @event change - (React: onChange) Event that gets dispatched when the checkbox state changes.
 * @event focus - (React: onFocus) Event that gets dispatched when the checkbox receives focus.
 *
 * @csspart label - The label element.
 * @csspart label-text - The container for the label and required indicator elements.
 * @csspart required-indicator - The required indicator element that is displayed next to the label when the `required` property is set to true.
 * @csspart info-icon-btn - The info icon button element that is displayed next to the label when the `toggletip-text` property is set.
 * @csspart label-toggletip - The toggletip element that is displayed when the info icon button is clicked.
 * @csspart help-text - The helper/validation text element.
 * @csspart helper-icon - The helper/validation icon element that is displayed next to the helper/validation text.
 * @csspart help-text-container - The container for the helper/validation icon and text elements.
 * @csspart checkbox-input - The native checkbox input element that provides the interactive functionality.
 * @csspart text-container - The container for the label and helper text elements.
 * @csspart static-checkbox - The staticcheckbox that provides the visual checkbox appearance.
 *
 * @cssstate checked - Active when the checkbox is checked.
 */
declare class Checkbox extends Checkbox_base implements AssociatedFormControl {
    /**
     * Determines whether the checkbox is checked (selected) or unchecked.
     * @default false
     */
    checked: boolean;
    /**
     * Determines whether the checkbox is in an indeterminate (mixed) state.
     * Typically used in nested checkbox groups where the parent checkbox represents partial selection.
     * - If any child is unchecked, the parent appears indeterminate.
     * - If all children share the same state (all checked or all unchecked), the parent is not indeterminate.
     * @default false
     */
    indeterminate: boolean;
    /**
     * Determines the visual style of the helper text.
     * - **default**: Standard helper text appearance
     * - **error**: Error state with validation styling
     * @default 'default'
     */
    helpTextType: CheckboxValidationType;
    protected firstUpdated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    /**
     * Updates the form value to reflect the current state of the checkbox.
     * If checked, the value is set to either the user-provided value or 'on' if no value is provided.
     * If unchecked, the value is set to null.
     * @internal
     */
    private setFormValue;
    /**
     * Manages the required state of the checkbox.
     * If the checkbox is not checked and the required property is set, then the checkbox is invalid.
     * @internal
     */
    private manageRequired;
    /**
     * Resets the checkbox to its initial unchecked state.
     * @internal
     */
    formResetCallback(): void;
    /** @internal */
    formStateRestoreCallback(state: string): void;
    /**
     * Toggles the state of the checkbox element.
     * If the element is not disabled, soft-disabled, or readonly, then
     * the checked property is toggled and the indeterminate property is set to false.
     * @internal
     */
    private toggleState;
    click(): void;
    /**
     * Handles the keydown event on the checkbox.
     * When the user presses Enter, the form is submitted.
     * @param event - The keyboard event.
     * @internal
     */
    private handleKeyDown;
    /**
     * Toggles the state of the checkbox element and dispatches the change event.
     * @param event - The change event.
     * @internal
     */
    handleChange(event: Event): void;
    update(changedProperties: PropertyValues): void;
    /** @internal */
    private renderLabelAndHelperText;
    render(): import("lit-html").TemplateResult<1>;
    static styles: Array<CSSResult>;
    static shadowRootOptions: {
        delegatesFocus: boolean;
        clonable?: boolean;
        customElementRegistry?: CustomElementRegistry;
        mode: ShadowRootMode;
        serializable?: boolean;
        slotAssignment?: SlotAssignmentMode;
    };
}
export default Checkbox;
