import { LitElement } from 'lit';
import { CheckboxStatus } from '../checkbox/checkbox.js';
import '../checkbox/checkbox.js';
import '../../icons/icon-chevron-right-google.js';
export declare enum ObcCheckboxItemState {
    enabled = "enabled",
    disabled = "disabled"
}
export declare enum ObcCheckboxItemHoverStyle {
    touchTarget = "touch-target",
    visualTarget = "visual-target"
}
/**
 * `<obc-checkbox-item>` – A list-item wrapper for `<obc-checkbox>` with label
 * and optional nested indentation affordances.
 *
 * ### Overview
 * Combines checkbox interaction with a row-like container used in menus and
 * hierarchical selection lists. The component proxies checkbox state changes,
 * supports touch-target or visual-target interaction behavior, and can render
 * nested structure indicators.
 *
 * ### Features
 * - Three checkbox statuses: `unchecked`, `checked`, `mixed`.
 * - Item state control: `enabled` or `disabled`.
 * - Two hover/focus interaction modes: `touch-target` and `visual-target`.
 * - Optional nested layout controls via `isNested`, `isLevel1`, `isLevel2`.
 * - Forwards `aria-describedby` to the inner checkbox for assistive context.
 *
 * ### Variants
 * - **Nested level 1:** Chevron icon is shown.
 * - **Nested level 2:** Chevron slot is reserved and nested spacer is shown.
 *
 * ### Usage Guidelines
 * - Use for checkbox rows that require text labels and optional hierarchy.
 * - Keep `status` as the source of truth for checked/mixed/unchecked value.
 * - Use `state="disabled"` or `disabled` to lock interaction.
 * - Prefer `hoverStyle="touch-target"` for standard list behavior.
 *
 * ### Slots / Content
 * - No named slots. Label content is provided through the `label` property.
 *
 * ### Events
 * - `change` – Fired when status changes (from row click or inner checkbox).
 *   **detail:** `{ status, disabled }`
 *
 * ### Best Practices
 * - Provide non-empty `label` for accessible naming.
 * - Use `aria-describedby` when additional contextual text exists outside.
 * - For deep hierarchies, use `isNested` with `isLevel1` / `isLevel2`
 *   consistently to preserve spacing and alignment.
 *
 * ### Example
 * ```html
 * <obc-checkbox-item
 *   status="mixed"
 *   label="Include archived items"
 *   hoverStyle="touch-target"
 * ></obc-checkbox-item>
 * ```
 *
 * @slot - No named slots.
 * @fires change {ObcCheckboxChangeEvent} - Emitted when status changes.
 */
export declare class ObcCheckboxItem extends LitElement {
    status: CheckboxStatus;
    state: ObcCheckboxItemState;
    disabled: boolean;
    label: string;
    isNested: boolean;
    isLevel1: boolean;
    isLevel2: boolean;
    hoverStyle: ObcCheckboxItemHoverStyle;
    ariaDescribedBy: string;
    private checkboxElement?;
    private toggleStatusFromItem;
    private handleItemClick;
    private handleCheckboxChange;
    render(): import('lit-html').TemplateResult<1>;
    static styles: import('lit').CSSResult;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-checkbox-item': ObcCheckboxItem;
    }
}
//# sourceMappingURL=checkbox-item.d.ts.map