import React, { ChangeEvent } from "react";
import { Room } from "matrix-js-sdk/src/matrix";
import { RightPanelPhases } from "../../stores/right-panel/RightPanelStorePhases";
import MatrixClientContext from "../../contexts/MatrixClientContext";
import ResizeNotifier from "../../utils/ResizeNotifier";
import { RoomPermalinkCreator } from "../../utils/permalinks/Permalinks";
import { E2EStatus } from "../../utils/ShieldUtils";
import { IRightPanelCard, IRightPanelCardState } from "../../stores/right-panel/RightPanelStoreIPanelState";
import { XOR } from "../../@types/common";
interface BaseProps {
    overwriteCard?: IRightPanelCard;
    resizeNotifier: ResizeNotifier;
    e2eStatus?: E2EStatus;
}
interface RoomlessProps extends BaseProps {
    room?: undefined;
    permalinkCreator?: undefined;
}
interface RoomProps extends BaseProps {
    room: Room;
    permalinkCreator: RoomPermalinkCreator;
    onSearchChange?: (e: ChangeEvent) => void;
    onSearchCancel?: () => void;
}
type Props = XOR<RoomlessProps, RoomProps>;
interface IState {
    phase?: RightPanelPhases;
    searchQuery: string;
    cardState?: IRightPanelCardState;
}
export default class RightPanel extends React.Component<Props, IState> {
    static contextType: React.Context<import("matrix-js-sdk/src/client").MatrixClient>;
    context: React.ContextType<typeof MatrixClientContext>;
    constructor(props: Props, context: React.ContextType<typeof MatrixClientContext>);
    private readonly delayedUpdate;
    componentDidMount(): void;
    componentWillUnmount(): void;
    static getDerivedStateFromProps(props: Props): Partial<IState>;
    private onRoomStateMember;
    private onRightPanelStoreUpdate;
    private onClose;
    private onSearchQueryChanged;
    render(): React.ReactNode;
}
export {};
