import type { ReactNode } from 'react';
import type { PisellBaseCardProps } from '../pisellBaseCard/types';
import type { EntityCardActionItem, EntityCardDensity, EntityCardLayout, EntityCardTagItem, EntityCardWidth } from '../pisellEntityCard/types';
/**
 * 客户简要卡片扩展字段项（用于 B5/B9 等多行展示）
 * 与 Entity Card 的 secondaryTexts 对应，语义为客户领域
 */
export interface CustomerBriefExtendedField {
    /** 展示文案（如 Email、Address、Company、Date、自定义属性） */
    text: string;
    /** 是否显示提示图标 */
    showTooltip?: boolean;
}
/**
 * PisellCustomerBrief 组件 Props
 * 基于 PisellEntityCard，用于展示客户（Customer）实体的核心识别信息与客户级属性
 * 设计文档：Customer Info (pcl_customerInfon_V1.0)
 */
export interface PisellCustomerBriefProps extends Pick<PisellBaseCardProps, 'className' | 'style' | 'hoverStyle' | 'activeStyle' | 'disabledStyle' | 'clickable' | 'disabled' | 'onClick'> {
    /** 客户名称（主文案） */
    name: string;
    /** 副标题，与主标题同行（如电话、客户编号） */
    subtitle?: string;
    /** 头像图片地址；不传则显示默认占位 Avatar */
    avatar?: string;
    /** 邮箱 */
    email?: string;
    /** 地址 */
    address?: string;
    /** 公司 */
    company?: string;
    /** 日期类信息（如创建日期、跟进日期） */
    date?: string;
    /** 自定义扩展字段，顺序即展示顺序 */
    extendedFields?: CustomerBriefExtendedField[];
    /** 标签列表（如等级、状态） */
    tags?: EntityCardTagItem[];
    /** 操作项：仅图标 / 图标+文本 / 按钮 */
    actions?: EntityCardActionItem[];
    /** 是否显示操作区 @default false */
    showActions?: boolean;
    /** 是否显示头像 @default true */
    showAvatar?: boolean;
    /** 是否显示主文案 @default true */
    showPrimaryText?: boolean;
    /** 是否显示副标题 @default true */
    showSubtitle?: boolean;
    /** 是否显示扩展信息（email/address/company/date/extendedFields） @default true */
    showExtended?: boolean;
    /** 是否显示标签 @default true */
    showTags?: boolean;
    /** 信息密度 @default 'B2' */
    density?: EntityCardDensity;
    /** 布局方向 @default 'horizontal' */
    layout?: EntityCardLayout;
    /** 卡片宽度 @default 'content' */
    width?: EntityCardWidth;
    /** 是否开启左滑删除 @default false */
    swipeToDelete?: boolean;
    /** 左滑删除回调 */
    onDelete?: () => void;
    /** 标签位置 @default 'below' */
    tagPosition?: 'inline' | 'below';
    /** 内容区间距 */
    contentGap?: number | string;
    /** 主文案行数限制 */
    primaryLineClamp?: number;
    /** 扩展信息行数限制（按密度有默认值） */
    secondaryLineClamp?: number;
    /** 自定义渲染媒体区 */
    renderMedia?: () => ReactNode;
    /** 自定义渲染主文案区 */
    renderPrimary?: () => ReactNode;
    /** 自定义渲染副标题区 */
    renderSubtitle?: () => ReactNode;
    /** 自定义渲染扩展信息区 */
    renderSecondary?: () => ReactNode;
    /** 自定义渲染标签区 */
    renderTags?: () => ReactNode;
    /** 自定义渲染操作区 */
    renderActions?: () => ReactNode;
}
