import React from "react";
import { Room } from "matrix-js-sdk/src/matrix";
import { NotificationState } from "../../../stores/notifications/NotificationState";
import { IOOBData } from "../../../stores/ThreepidInviteStore";
interface IProps {
    room: Room;
    size: string;
    displayBadge?: boolean;
    /**
     * If true, show nothing if the notification would only cause a dot to be shown rather than
     * a badge. That is: only display badges and not dots. Default: false.
     */
    hideIfDot?: boolean;
    oobData?: IOOBData;
    viewAvatarOnClick?: boolean;
    tooltipProps?: {
        tabIndex?: number;
    };
}
interface IState {
    notificationState?: NotificationState;
    icon: Icon;
}
declare enum Icon {
    None = "NONE",// ... except this one
    Globe = "GLOBE",
    PresenceOnline = "ONLINE",
    PresenceAway = "AWAY",
    PresenceOffline = "OFFLINE",
    PresenceBusy = "BUSY"
}
export default class DecoratedRoomAvatar extends React.PureComponent<IProps, IState> {
    private _dmUser;
    private isUnmounted;
    private isWatchingTimeline;
    constructor(props: IProps);
    componentWillUnmount(): void;
    private get isPublicRoom();
    private get dmUser();
    private set dmUser(value);
    private onRoomTimeline;
    private onPresenceUpdate;
    private getPresenceIcon;
    private calculateIcon;
    render(): React.ReactNode;
}
export {};
