/**
 * @file CheckboxListItem.tsx
 * @input Uses React, CheckboxInput, ListItem, CheckboxListContext
 * @output Exports CheckboxListItem component, CheckboxListItemProps
 * @position Core implementation; consumed by index.ts, tested by CheckboxList.test.tsx
 *
 * SYNC: When modified, update these files to stay in sync:
 * - /packages/core/src/CheckboxList/CheckboxList.doc.mjs
 * - /packages/core/src/CheckboxList/CheckboxList.test.tsx
 * - /packages/core/src/CheckboxList/index.ts
 * - /apps/storybook/stories/CheckboxList.stories.tsx
 * - /packages/cli/assets/templates/blocks/components/CheckboxList/ (showcase blocks)
 */
import { type ReactNode } from 'react';
import type { BaseProps } from '../BaseProps';
export interface CheckboxListItemProps extends BaseProps<HTMLLIElement> {
    /**
     * Primary text label for the item.
     *
     * Accepts a plain string (single-line truncation applied automatically)
     * or a ReactNode for rich content (no truncation constraints —
     * child components control their own text behavior).
     */
    label: ReactNode;
    /**
     * Plain-text accessible name for the checkbox when `label` is a ReactNode.
     *
     * A string `label` names the checkbox automatically. A rich (ReactNode)
     * `label` cannot, so pass a concise string equivalent via the standard
     * `aria-label` — otherwise the checkbox falls back to the generic name
     * "Checkbox" and every rich-label item in a list announces identically to
     * screen readers. Applied to the checkbox control, not the row.
     *
     * @example
     * ```
     * <CheckboxListItem
     *   label={<span>Pro plan <Badge label="Recommended" /></span>}
     *   aria-label="Pro plan"
     *   value="pro"
     * />
     * ```
     */
    'aria-label'?: string;
    /**
     * Identity key for collection mode (REQUIRED inside CheckboxList).
     * Throws a runtime error if missing when used inside CheckboxList.
     */
    value?: string;
    /**
     * Secondary text below the label.
     */
    description?: string;
    /**
     * Content rendered after the label area.
     */
    endContent?: ReactNode;
    /**
     * Whether this individual item is disabled.
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Whether this item is in a loading state. Renders a spinner inside the
     * checkbox and blocks interaction on this item only.
     *
     * In collection mode, this is also driven automatically: when the parent
     * `CheckboxList` has a `changeAction`, the toggled item shows its
     * spinner while that promise is pending.
     * @default false
     */
    isLoading?: boolean;
    /**
     * Direct checked state (standalone mode only).
     * Ignored when inside CheckboxList.
     */
    isChecked?: boolean | 'indeterminate';
    /**
     * Direct check handler (standalone mode only).
     * Ignored when inside CheckboxList.
     */
    onCheck?: (checked: boolean) => void;
    /** Ref forwarded to the root element */
    ref?: React.Ref<HTMLLIElement>;
}
/**
 * A checkbox item for use within CheckboxList (collection mode)
 * or List (standalone mode).
 *
 * In collection mode, checked state is derived from the parent's value array.
 * In standalone mode, uses isChecked/onCheck props directly.
 *
 * Composes ListItem internally — gets density, dividers, hover/press,
 * focus, and container alignment for free.
 *
 * @example
 * ```
 * <CheckboxListItem label="Email" value="email" />
 * <CheckboxListItem
 *   label="Accept terms"
 *   isChecked={accepted}
 *   onCheck={setAccepted}
 * />
 * ```
 */
export declare function CheckboxListItem({ label, 'aria-label': ariaLabel, value, description, endContent, isDisabled: isItemDisabled, isLoading: isItemLoading, isChecked, onCheck, ref, xstyle, className, style, onClick: onClickProp, ...restProps }: CheckboxListItemProps): import("react").JSX.Element;
export declare namespace CheckboxListItem {
    var displayName: string;
}
//# sourceMappingURL=CheckboxListItem.d.ts.map