import * as React from "react"; import type { AvatarProp } from "../../props/components/data-display.prop.js"; /** * Trạng thái tải của ảnh trong avatar — chia sẻ giữa `AvatarImage` và * `AvatarFallback` qua context, đúng như Radix làm. * * React Aria KHÔNG có avatar, nên đây là việc TỰ DỰNG. Nhưng phần cần dựng lại * không phải cái vỏ `` — mà là logic thật mà `@radix-ui/react-avatar` cầm: * ảnh chỉ được vẽ khi đã tải XONG, fallback chỉ được vẽ khi ảnh CHƯA xong hoặc * HỎNG, và `delayMs` giữ fallback im lặng đủ lâu để mạng nhanh không kịp nháy * một khung initials trước khi ảnh về. * * Phép dò là một `new Image()` RỜI, không phải `onLoad`/`onError` trên chính * thẻ được vẽ: thẻ chỉ tồn tại khi đã `loaded`, nên handler trên nó không bao * giờ có cơ hội báo "đang tải" hay "hỏng". Đây cũng là lý do một `` hỏng * không bao giờ nằm trong DOM để trình duyệt vẽ biểu tượng ảnh vỡ lên trên * fallback. */ type ImageLoadingStatus = "idle" | "loading" | "loaded" | "error"; export declare const Avatar: React.ForwardRefExoticComponent, HTMLSpanElement>, "ref"> & { asChild?: boolean; } & Pick & React.RefAttributes>; export declare const AvatarImage: React.ForwardRefExoticComponent, HTMLImageElement>, "ref"> & { asChild?: boolean; onLoadingStatusChange?: (status: ImageLoadingStatus) => void; } & React.RefAttributes>; export declare const AvatarFallback: React.ForwardRefExoticComponent, HTMLSpanElement>, "ref"> & { asChild?: boolean; delayMs?: number; } & React.RefAttributes>; export {};