import React, { ReactNode } from "react";
import { XOR } from "../../../@types/common";
import { NotificationState } from "../../../stores/notifications/NotificationState";
interface IProps {
    notification: NotificationState;
    /**
     * 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;
    /**
     * The room ID, if any, the badge represents.
     */
    roomId?: string;
}
interface IClickableProps extends IProps, React.InputHTMLAttributes<Element> {
    showUnsentTooltip?: boolean;
    /**
     * If specified will return an AccessibleButton instead of a div.
     */
    onClick(ev: React.MouseEvent): void;
}
interface IState {
    showCounts: boolean;
}
export default class NotificationBadge extends React.PureComponent<XOR<IProps, IClickableProps>, IState> {
    private countWatcherRef;
    constructor(props: IProps);
    private get roomId();
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: Readonly<IProps>): void;
    private countPreferenceChanged;
    private onNotificationUpdate;
    render(): ReactNode;
}
export {};
