import { AvatarOptions, AvatarStatus } from './avatar.types'; /** * Headless avatar controller. Tracks image loading and falls back to initials * when no image is available, and reflects an optional presence status. It * manages `data-state` and ARIA only; visual styling is left to CSS. * * Markup: * ```html *
* Jane Doe * * *
* ``` */ export declare class Avatar { private readonly root; private readonly image; private readonly fallback; private readonly statusEl; private name; private status; private cleanups; constructor(root: HTMLElement, options?: AvatarOptions); private init; private initials; private setState; private handleLoad; private handleError; private renderStatus; /** Update the presence status. Pass `null` to clear it. */ setStatus(status: AvatarStatus | null): void; /** Swap the image source and reset tracking to the loading state. */ setSrc(url: string): void; get value(): AvatarStatus | null; /** Subscribe to a DOM event on the root element. Returns an unsubscribe fn. */ on(event: string, handler: (event: E) => void): () => void; destroy(): void; }