import { LitElement, TemplateResult } from 'lit';
import { ObcCheckboxChangeEvent } from '../checkbox/checkbox.js';
import '../../icons/icon-check-google.js';
import '../../icons/icon-check-mixed.js';
import '../checkbox/checkbox.js';
export declare enum ObcFormItemType {
    View = "view",
    EnabledActionFirst = "enabled-action-first",
    FilledStatusFirst = "filled-status-first",
    EnabledActionLast = "enabled-action-last",
    FilledStatusLast = "filled-status-last",
    Inactive = "inactive"
}
export declare enum ObcFormItemBasicState {
    Enabled = "enabled",
    Disabled = "disabled",
    Amplified = "amplified"
}
export declare enum ObcFormItemStatusIcon {
    Check = "check",
    Dash = "dash"
}
export type ObcFormItemActionChangeEvent = CustomEvent<{
    itemId: string | null;
    status: ObcCheckboxChangeEvent['detail']['status'];
    disabled: boolean;
}>;
/**
 * `<obc-form-item>` renders one interactive form row for grouped list content.
 *
 * **Overview**
 * Use this component as an item row, line item, list entry, tile, or cell
 * inside `obc-form-group` and related form layouts.
 *
 * **Features / Variants**
 * - Supports layout variants through `type`:
 *   `view`, `enabled-action-first`, `enabled-action-last`,
 *   `filled-status-first`, `filled-status-last`, `inactive`.
 * - Supports non-interactive base states through `basicState`:
 *   `enabled`, `disabled`, `amplified`.
 * - Optional leading icon through `hasIcon` + `icon` slot.
 * - Optional shader for view/inactive variants through `hasShader`.
 * - Optional action error rendering through `hasError` and `errorText` for
 *   action variants.
 * - Filled status icon variant via `statusIcon` (`check` or `dash`).
 * - Optional stable event identity via `itemId`.
 *
 * **Usage Guidelines**
 * - Use action variants when checkbox interaction is needed.
 * - Use filled-status variants for read-only completion status.
 * - Keep text content in the default slot to support multi-line wrapping.
 * - Pair group and item variants consistently in the same section.
 *
 * **Slots / Content**
 * - `icon`: optional leading icon content.
 * - default slot: main row text/content.
 *
 * **Events**
 * - Emits `action-change` when the internal checkbox changes.
 * - Event detail includes `itemId`, checkbox `status`, and `disabled` state.
 *
 * **Best Practices**
 * - Prefer semantic `itemId` values when rendering dynamic lists.
 * - Avoid mixing unrelated item variants in the same visual group.
 * - Use `basicState` for logical state previews and rely on CSS pseudo-classes
 *   for real interaction states.
 *
 * **Example**
 * ```html
 * <obc-form-item
 *   type="enabled-action-first"
 *   item-id="engine-room-1"
 *   has-icon
 * >
 *   <obi-placeholder slot="icon"></obi-placeholder>
 *   Engine room checklist item
 * </obc-form-item>
 * ```
 *
 * @slot icon - Optional leading icon content.
 * @slot - Main row text or content.
 * @fires action-change {ObcFormItemActionChangeEvent} Fired when the internal checkbox state changes.
 */
export declare class ObcFormItem extends LitElement {
    type: ObcFormItemType;
    itemId: string;
    hasError: boolean;
    errorText: string;
    hasIcon: boolean;
    basicState: ObcFormItemBasicState;
    hasShader: boolean;
    disabled: boolean;
    statusIcon: ObcFormItemStatusIcon;
    private actionChecked;
    static styles: import('lit').CSSResult;
    private get isActionType();
    private get hasBuiltInShader();
    private get supportsShaderToggle();
    private get resolvedBasicState();
    private get actionDisabled();
    private renderIcon;
    private renderAction;
    private handleActionChange;
    private renderStatus;
    private renderLeading;
    private renderTrailing;
    render(): TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'obc-form-item': ObcFormItem;
    }
}
//# sourceMappingURL=form-item.d.ts.map