/**
 * @internal — DS-internal 單元(per `.claude/rules/ui-development.md` Public vs Internal canonical;spec frontmatter `isInternal`)。
 * 不進 root barrel front-door;由 Checkbox / RadioGroup wrap 消費,end-user app 請用 wrapper 元件。
 */
import * as React from 'react';
import { type VariantProps } from 'class-variance-authority';
import type { LucideIcon } from 'lucide-react';
import { type AvatarData } from '../../components/Avatar/avatar';
export declare const selectionItemStyles: (props?: ({
    size?: "sm" | "md" | "lg" | null | undefined;
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
export interface SelectionItemProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof selectionItemStyles> {
    /** Checkbox 或 RadioGroupItem 元素(永遠存在,永遠 inline 對齊) */
    control: React.ReactNode;
    /** Label 文字 */
    label: React.ReactNode;
    /** 描述文字(fg-secondary;reading mode 永遠 14px) */
    description?: React.ReactNode;
    /**
     * 可選的左側 icon(在 control 之後、label 之前)。LucideIcon 型別,元件內部控制尺寸
     * (16/16/20px @ sm/md/lg)。**永遠 inline 對齊第一行 label**(icon ≤24px)。
     * 與 `avatar` 互斥。
     */
    icon?: LucideIcon;
    /**
     * 可選的左側 avatar(在 control 之後、label 之前)。`AvatarData` 資料型別,元件內部渲染 Avatar。
     * 尺寸由 `description` 自動決定(跟 MenuItem 同 convention):
     * - 無 desc → inline(20/24/24px),跟 control 同步在 label 第一行
     * - 有 desc → block(32/32/40px),跟 control 同步在 text block center
     *
     * Block 模式時 **control(checkbox/radio)也一起走 block 高度**——兩者都在
     * text block center,不會歪斜。與 `icon` 互斥。
     */
    avatar?: AvatarData;
    /** htmlFor（label 指向 control 的 id） */
    htmlFor?: string;
    /** disabled 狀態影響 label 顏色 */
    disabled?: boolean;
    /**
     * Label 最大行數(line-clamp 截斷)。
     *
     * - `undefined`(預設 prop 值未傳)→ 套用元件預設 `'none'`(form 欄位允許任意長度)
     * - 數字 → 截斷到該行數
     * - `'none'` → 明確不截斷(語意等同預設)
     *
     * 為什麼用 `'none'` 而不是 `undefined`?React props 的 destructure default 在
     * `undefined` 時會接管,要明確覆寫必須用非 undefined 的 sentinel。
     */
    labelMaxLines?: number | 'none';
    /**
     * Description 最大行數。預設 `'none'`(不截)。
     */
    descMaxLines?: number | 'none';
    className?: string;
}
declare const SelectionItem: React.ForwardRefExoticComponent<SelectionItemProps & React.RefAttributes<HTMLDivElement>>;
export declare const selectionItemMeta: {
    readonly component: "SelectionItem";
    readonly family: 2;
    readonly variants: {};
    readonly sizes: {
        readonly sm: {};
        readonly md: {};
        readonly lg: {};
    };
    readonly defaultSize: "md";
    readonly states: readonly ["default", "disabled"];
    readonly tokens: {
        readonly fg: readonly ["text-foreground", "text-fg-secondary", "text-fg-disabled"];
    };
};
export { SelectionItem };
//# sourceMappingURL=selection-item.d.ts.map