import { TemplateResult, LitElement, PropertyValues, SVGTemplateResult } from 'lit';
import type { IUser } from '@api-client/core/models/store/User.js';
import '@material/web/focus/md-focus-ring.js';
import '@material/web/ripple/ripple.js';
export type AvatarType = 'button' | 'icon';
export default class UserAvatar extends LitElement {
    /**
     * Set with the user. The computed user initials.
     */
    protected accessor userInitials: string | undefined;
    /**
     * The URL to the user picture.
     */
    protected accessor userPicture: string | undefined;
    /**
     * The user object to display the avatar for.
     */
    accessor user: IUser | undefined;
    /**
     * The type of avatar to render, either 'button' or 'icon'.
     * @attribute
     */
    accessor type: AvatarType;
    protected willUpdate(cp: PropertyValues<this>): void;
    /**
     * Handles changes to the user property.
     * @param user The user object
     */
    protected handleUserChange(user?: IUser): void;
    protected readUserInitials(user: IUser): string | undefined;
    protected handlePictureError(): void;
    /**
     * @return Template result for an icon
     */
    render(): TemplateResult;
    protected renderButton(content: TemplateResult): TemplateResult;
    protected renderIcon(content: TemplateResult): TemplateResult;
    protected pictureTemplate(url: string): TemplateResult;
    /**
     * Renders a bubble with user initials
     * @param initials The user initials
     */
    protected nameTemplate(initials: string): TemplateResult;
    protected renderDefaultAvatar(): TemplateResult;
    protected defaultIcon(): SVGTemplateResult;
}
//# sourceMappingURL=UserAvatar.d.ts.map