import React from "react";
import { Room } from "matrix-js-sdk/src/matrix";
import type { Call } from "../../../models/Call";
import { MenuProps } from "../../structures/ContextMenu";
import { TagID } from "../../../stores/room-list/models";
import { MessagePreview } from "../../../stores/room-list/MessagePreviewStore";
interface Props {
    room: Room;
    showMessagePreview: boolean;
    isMinimized: boolean;
    tag: TagID;
}
interface ClassProps extends Props {
    hasLiveVoiceBroadcast: boolean;
}
type PartialDOMRect = Pick<DOMRect, "left" | "bottom">;
interface State {
    selected: boolean;
    notificationsMenuPosition: PartialDOMRect | null;
    generalMenuPosition: PartialDOMRect | null;
    call: Call | null;
    messagePreview: MessagePreview | null;
}
export declare const contextMenuBelow: (elementRect: PartialDOMRect) => MenuProps;
export declare class RoomTile extends React.PureComponent<ClassProps, State> {
    private dispatcherRef?;
    private roomTileRef;
    private notificationState;
    private roomProps;
    constructor(props: ClassProps);
    private onRoomNameUpdate;
    private onNotificationUpdate;
    private onRoomPropertyUpdate;
    private get showContextMenu();
    private get showMessagePreview();
    componentDidUpdate(prevProps: Readonly<Props>, prevState: Readonly<State>): void;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private onAction;
    private onRoomPreviewChanged;
    private onCallChanged;
    private generatePreview;
    private scrollIntoView;
    private onTileClick;
    private onActiveRoomUpdate;
    private onNotificationsMenuOpenClick;
    private onCloseNotificationsMenu;
    private onGeneralMenuOpenClick;
    private onContextMenu;
    private onCloseGeneralMenu;
    private renderNotificationsMenu;
    private renderGeneralMenu;
    /**
     * RoomTile has a subtile if one of the following applies:
     * - there is a call
     * - there is a live voice broadcast
     * - message previews are enabled and there is a previewable message
     */
    private get shouldRenderSubtitle();
    render(): React.ReactElement;
}
declare const RoomTileHOC: React.FC<Props>;
export default RoomTileHOC;
