import React from "react";
import { ViewRoomOpts } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
import type { Room } from "matrix-js-sdk/src/matrix";
import { E2EStatus } from "../../../utils/ShieldUtils";
import { IOOBData } from "../../../stores/ThreepidInviteStore";
import { RightPanelPhases } from "../../../stores/right-panel/RightPanelStorePhases";
import RoomContext from "../../../contexts/RoomContext";
import { Call } from "../../../models/Call";
import { SearchInfo } from "../../../Searching";
export interface IProps {
    room: Room;
    oobData?: IOOBData;
    inRoom: boolean;
    onSearchClick: (() => void) | null;
    onInviteClick: (() => void) | null;
    onForgetClick: (() => void) | null;
    onAppsClick: (() => void) | null;
    e2eStatus: E2EStatus;
    appsShown: boolean;
    searchInfo?: SearchInfo;
    excludedRightPanelPhaseButtons?: Array<RightPanelPhases>;
    showButtons?: boolean;
    enableRoomOptionsMenu?: boolean;
    viewingCall: boolean;
    activeCall: Call | null;
    additionalButtons?: ViewRoomOpts["buttons"];
}
interface IState {
    contextMenuPosition?: DOMRect;
    rightPanelOpen: boolean;
    featureAskToJoin: boolean;
}
/**
 * @deprecated use `src/components/views/rooms/RoomHeader.tsx` instead
 */
export default class RoomHeader extends React.Component<IProps, IState> {
    static defaultProps: Partial<IProps>;
    static contextType: React.Context<import("../../structures/RoomView").IRoomState & {
        threadId?: string;
    }>;
    context: React.ContextType<typeof RoomContext>;
    private readonly client;
    private readonly featureAskToJoinWatcher;
    constructor(props: IProps, context: React.ContextType<typeof RoomContext>);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private onRightPanelStoreUpdate;
    private onRoomStateEvents;
    private onNotificationUpdate;
    private rateLimitedUpdate;
    private onContextMenuOpenClick;
    private onContextMenuCloseClick;
    private onHideCallClick;
    private renderButtons;
    private renderName;
    render(): React.ReactNode;
}
export {};
