/**
 * @internal — DS-internal 單元(per `.claude/rules/ui-development.md` Public vs Internal canonical;spec frontmatter `isInternal`)。
 * 不進 root barrel front-door;由 PeoplePicker(person-display)wrap 消費,end-user app 請用 wrapper 元件。
 */
import * as React from 'react';
import { type AvatarData } from '../../components/Avatar/avatar';
/**
 * ProfileCardDefaultActions — canonical 預設 action 組合
 *
 * ── 為什麼需要 export ──
 * ProfileCard 的 action 列在世界級 chat/contact app 是「關係型快速動作」的 canonical
 * (Slack / iMessage / LinkedIn / Figma 皆如此):**Chat / Message + Audio call**。
 * 跨 consumer(avatar.principles / profile-card.stories / future product code)應該用
 * 同一組預設,避免每個範例各自發明 action 組合,讓 reader 誤以為 action 會隨情境自動變。
 *
 * ── 使用方式(hover context 必含 onViewMore,見 profile-card.spec.md 「View more」節)──
 *   <ProfileCard name="..." actions={<ProfileCardDefaultActions />} onViewMore={...} />
 *
 * ── 何時要換成自訂 action ──
 * - Single-action 情境(只要「傳訊息」)→ consumer 傳 `<Button>傳訊息</Button>`
 * - 特定情境的 action(管理員「撤銷邀請」/ HR「離職管理」)→ consumer 自訂
 * - 非人員關係動作(「訂購此商品」)→ 根本不應該用 ProfileCard
 *
 * Chat + Audio call 是 **default**,不是 **only**——consumer 可覆寫,但需有明確理由。
 */
export declare const ProfileCardDefaultActions: () => import("react/jsx-runtime").JSX.Element;
type StatusType = 'online' | 'away' | 'busy' | 'offline';
/**
 * ProfileCard SSOT — 預設 field keys(現行 v15.7:default 只 `id` + `employeeNumber`;
 * v11 always-render 為歷史脈絡,已退役 — 見下方 2026-05-07 註解 + render 處 v12 註解)
 *
 * ── 為什麼 SSOT ──
 * User explicit rule:「所有 namecard 預設顯示的資訊都是要一樣完整的」。前 v10 props
 * 全 optional + body conditional render → consumer 漏傳 fields 視覺缺 section,每個範例
 * 各自不一致(同 person 在 DataTable / PeoplePicker / avatar.principles 看起來不同)。
 *
 * v11 canonical(歷史):ProfileCard 當時 always renders 4 default sections — 缺 data → 顯
 * `EMPTY_PLACEHOLDER`("—")。現行:default fields 縮為 2(v15.7)+ status 條件 render(v12),
 * 「視覺結構 SSOT 在此元件,不依賴 consumer」原則不變。
 *
 * ── 對齊 world-class ──
 * Slack profile card / Linear member card / Notion person card / GitHub user card / Figma user card
 * 都是 fixed schema(role / email / location / department / department / pronouns 等),
 * 不會因為某 user 沒填 phone 整個 phone field 不見 — 缺 = 顯 `Not set` 或留白。
 *
 * ── 為什麼 placeholder 不 hide ──
 * Hide → consumer 不知道少傳 → 視覺漂移;Placeholder → 永遠看到「該欄該有」+ dev-warn 提示
 * consumer 補資料,自動防漂移(M19 ensure-canonical 對齊)。
 */
export declare const NAMECARD_DEFAULT_FIELD_KEYS: readonly ["id", "employeeNumber"];
type ProfileCardDefaultFieldKey = typeof NAMECARD_DEFAULT_FIELD_KEYS[number];
export interface ProfileCardProps extends React.HTMLAttributes<HTMLDivElement> {
    name: string;
    avatar?: AvatarData;
    subtitle?: string;
    status?: StatusType;
    statusMessage?: React.ReactNode;
    actions?: React.ReactNode;
    /**
     * Consumer 傳的 field 資料(partial)。預設 keys 走 `NAMECARD_DEFAULT_FIELD_KEYS` —
     * 只有 id / employeeNumber 兩個 default field 永遠 render(缺資料顯 `—`);email / phone /
     * department / location 等其他欄位一律 opt-in by consumer 透過本 prop 傳入。Consumer 想新增
     * 自訂 field 直接傳入(在 default 之後 append),想 override default key value 也直接傳。
     */
    fields?: {
        label: string;
        value: React.ReactNode;
    }[];
    /**
     * Default field 的真實值。Object key = NAMECARD_DEFAULT_FIELD_KEYS 之一。
     * 缺 key → render placeholder。Dev mode 會 console.warn 提醒消費者補資料。
     */
    defaultFieldValues?: Partial<Record<ProfileCardDefaultFieldKey, React.ReactNode>>;
    onViewMore?: () => void;
    viewMoreLabel?: string;
}
declare const ProfileCard: React.ForwardRefExoticComponent<ProfileCardProps & React.RefAttributes<HTMLDivElement>>;
export declare const nameCardMeta: {
    readonly component: "ProfileCard";
    readonly family: null;
    readonly variants: {};
    readonly sizes: {};
    readonly states: readonly ["default", "hover", "active", "focus-visible", "disabled"];
    readonly tokens: {
        readonly bg: readonly ["bg-muted"];
        readonly fg: readonly ["text-foreground"];
        readonly ring: readonly [];
    };
};
export { ProfileCard };
//# sourceMappingURL=profile-card.d.ts.map