/**
 * PersonViewer - Person/User rendering viewer
 * Handles avatar and name display for single and multiple persons
 */
import type { CellViewer, ViewerRenderContext, PersonViewerData } from './types';
/**
 * PersonViewer renders person information in cells
 * Supports avatar only, name only, or both modes
 */
declare class PersonViewer implements CellViewer<PersonViewerData> {
    readonly type = "person";
    private imageManager;
    private _sm;
    private get avatarColors();
    constructor();
    /**
     * Draw person content in the cell
     */
    draw(context: ViewerRenderContext, data: PersonViewerData): void;
    /**
     * Normalize a value to PersonInfo format
     * Handles string accountNames, objects with different shapes, etc.
     */
    private normalizePersonInfo;
    /**
     * 根据 nameDisplayType 配置获取显示名称
     * 对齐 DOM 表格 personViewer.ts 中 getAccountHTML 的逻辑
     */
    private getDisplayName;
    /**
     * Draw persons
     */
    private drawPersons;
    /**
     * showNameBackground (tag) 模式下的 flex 均匀分配布局
     * 对齐 DOM 版本：容器 padding 4px，卡片间距 4px，卡片内 padding 4px 6px
     * 所有卡片先按最小宽度（头像+padding）分配，剩余空间均匀分给文本
     */
    private drawPersonsFlexLayout;
    /**
     * Draw a single person with width constraint
     * @returns Width of the drawn person item
     */
    private drawPersonWithConstraint;
    /**
     * Truncate text with ellipsis to fit within maxWidth
     */
    private truncateText;
    /**
     * Draw person avatar (支持圆形和圆角矩形两种形状)
     */
    private drawAvatar;
    /**
     * Draw fallback avatar with initial
     */
    private drawFallbackAvatar;
    /**
     * Get consistent color index based on person
     */
    private getColorIndex;
    /**
     * Get initial from name
     */
    private getInitial;
    /**
     * Draw remaining count badge
     */
    private drawRemainingCount;
    /**
     * Draw placeholder for empty state
     */
    private drawPlaceholder;
}
export default PersonViewer;
