/**
 * Copyright (c) Cisco Systems, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 */
import "../icon/Icon";
import "../loading/Loading";
import "../presence/Presence";
import { PresenceState } from "../presence/Presence.utils";
import { LitElement, nothing, PropertyValues } from "lit";
import { AvatarChannelType, AvatarSize, AvatarState, AvatarStyle, AvatarType } from "./Avatar.constants";
export declare namespace Avatar {
    type ChannelType = (typeof AvatarChannelType)[number];
    type Type = (typeof AvatarType)[number] | PresenceState | ChannelType;
    type Size = (typeof AvatarSize)[number];
    type State = (typeof AvatarState)[number];
    type Style = (typeof AvatarStyle)[number];
    type Role = "img" | "button";
    class ELEMENT extends LitElement {
        private _tabIndex;
        get tabIndex(): number;
        set tabIndex(newValue: number);
        alt: string;
        src: string;
        label: string;
        title: string;
        color: string;
        decrypting: boolean;
        role: Avatar.Role;
        iconName: string;
        failurePresence: boolean;
        type: Type;
        presenceType?: PresenceState;
        presenceAriaLabel: string;
        newMomentum: boolean;
        typing: boolean;
        size: Size;
        hasNotification: boolean;
        clickable: boolean;
        clickFunction?: () => void;
        /**
         * The style of the avatar based on where it is used.
         * Currently only affects channel avatars.
         * @type {Avatar.Style}
         * @default "default"
         * @property {Avatar.Style} avatarStyle - Options: "default" | "table"
         */
        avatarStyle: Style;
        /**
         * The state determines the background color of channel avatars,
         * in combination with the avatar style.
         * Currently only affects channel avatars.
         * @type {Avatar.State}
         * @default "rest"
         * @property {Avatar.State} state - Options: "rest" | "active"
         */
        state: State;
        private imageLoaded;
        private imageErrored;
        private presenceColor;
        private presenceIcon;
        static get styles(): import("lit").CSSResult[];
        private isPresenceType;
        private get presenceLabel();
        private get computedAriaLabel();
        firstUpdated(): void;
        protected willUpdate(changedProperties: PropertyValues): void;
        protected updated(changedProperties: PropertyValues): void;
        private get avatarClassMap();
        private get avatarLetterClassMap();
        private get avatarStyleMap();
        private get pretifyTitle();
        private get chatIconName();
        private readonly iconNameMap;
        private getIconName;
        private get chatIconSize();
        private get presenceSize();
        private get iconSize();
        get renderIsTyping(): import("lit-html").TemplateResult<1> | typeof nothing;
        private get avatarLetter();
        private get avatarIcon();
        private get avatarImage();
        private loadImage;
        private handleImageLoad;
        private handleImageError;
        handleKeyDown(event: KeyboardEvent): void;
        handleClick(event: MouseEvent): void;
        private getBrandOrDesignIconSet;
        get avatarContent(): import("lit-html").TemplateResult<1> | typeof nothing;
        renderPresence(): import("lit-html").TemplateResult<1> | typeof nothing;
        private renderAvatarContent;
        render(): import("lit-html").TemplateResult<1>;
    }
}
declare global {
    interface HTMLElementTagNameMap {
        "md-avatar": Avatar.ELEMENT;
    }
}
