/**
 * @file DropdownMenuCheckboxItem.tsx
 * @input React, stylex, Item + CheckboxInput + DropdownMenu context + tokens from core
 * @output DropdownMenuCheckboxItem — a standalone checkable menu item.
 * @position Sub-component; used inside DropdownMenu.
 *
 * A menu item that toggles an independent boolean (role="menuitemcheckbox").
 * Unlike CheckboxInput, there is no nested native <input> that participates in
 * accessibility: the row itself owns the role and aria-checked, per the
 * WAI-ARIA menuitemcheckbox pattern. Keyboard navigation (arrows/typeahead) and
 * Enter/Space activation come from the parent DropdownMenu's useListFocus +
 * activation path, which matches menuitemcheckbox alongside plain menuitem rows.
 *
 * The checkbox visual composes the real CheckboxInput primitive so its checkmark
 * matches CheckboxListItem and picks up the standard `checkbox` theming slots.
 * It is purely decorative: the composed control is wrapped in an element that is
 * both `aria-hidden` and `inert`, so it contributes nothing to the row's
 * accessible name, and its native <input> and sr-only label stay out of the tab
 * order and the accessibility tree while pointer clicks fall through to the row
 * — the same shim MultiSelector uses. The row owns the checked state and
 * accessible name. The control size is derived from the menu's item size (a
 * `sm` menu gets the compact control; `md`/`lg` get the standard one) and it
 * swaps to the inline-end of the row on coarse-pointer (touch) devices via CSS
 * `order`, so it lands where selection toggles are conventionally placed on
 * mobile.
 */
import { type ReactNode } from 'react';
import { type IconType } from '../Icon';
import type { BaseProps } from '../BaseProps';
export interface DropdownMenuCheckboxItemProps extends Omit<BaseProps, 'onChange' | 'role' | 'aria-checked' | 'tabIndex'> {
    /**
     * Primary label text identifying the item.
     */
    label: ReactNode;
    /**
     * Secondary description text displayed below the label.
     */
    description?: ReactNode;
    /**
     * Icon to display before the label. Accepts a semantic icon name (see
     * `npx astryx docs icons`) or a rendered node.
     */
    icon?: ReactNode | IconType;
    /**
     * Whether the item is checked. Controlled — pair with `onChange`.
     */
    value: boolean;
    /**
     * Callback fired with the next checked state when the item is toggled.
     */
    onChange?: (checked: boolean) => void;
    /**
     * Whether the item is disabled. Disabled items stay focusable (via
     * `aria-disabled`) so they remain discoverable by keyboard and assistive
     * technology, but activation is blocked.
     * @default false
     */
    isDisabled?: boolean;
    /**
     * Whether toggling the item closes the menu. Checkbox items default to
     * staying open so several can be toggled in a single session, unlike radio
     * items which default to closing on selection.
     * @default false
     */
    hasCloseOnSelect?: boolean;
    /**
     * Content to render after the label and description, such as a keyboard
     * shortcut hint or badge.
     */
    endContent?: ReactNode;
}
/**
 * A checkable dropdown menu item (role="menuitemcheckbox").
 *
 * Must be used inside a DropdownMenu. Toggles an independent boolean; for a
 * one-of-N choice use DropdownMenuRadioGroup + DropdownMenuRadioItem instead.
 *
 * @example
 * ```
 * import {DropdownMenuCheckboxItem} from '@astryxdesign/core/DropdownMenu';
 * <DropdownMenu button={{label: 'View'}}>
 *   <DropdownMenuCheckboxItem
 *     label="Show archived"
 *     value={showArchived}
 *     onChange={setShowArchived}
 *   />
 * </DropdownMenu>
 * ```
 */
export declare function DropdownMenuCheckboxItem({ label, description, icon, value, onChange, isDisabled, hasCloseOnSelect, endContent, xstyle, className, style, ...rest }: DropdownMenuCheckboxItemProps): import("react").JSX.Element;
export declare namespace DropdownMenuCheckboxItem {
    var displayName: string;
}
//# sourceMappingURL=DropdownMenuCheckboxItem.d.ts.map