import React from "react";
import { MatrixEvent, Relations } from "matrix-js-sdk/src/matrix";
import { RoomPermalinkCreator } from "../../../utils/permalinks/Permalinks";
import { MenuProps } from "../../structures/ContextMenu";
import RoomContext from "../../../contexts/RoomContext";
import { GetRelationsForEvent, IEventTileOps } from "../rooms/EventTile";
interface IProps extends MenuProps {
    mxEvent: MatrixEvent;
    eventTileOps?: IEventTileOps;
    permalinkCreator?: RoomPermalinkCreator;
    collapseReplyChain?(): void;
    onFinished(): void;
    onCloseDialog?(): void;
    rightClick?: boolean;
    reactions?: Relations | null;
    link?: string;
    getRelationsForEvent?: GetRelationsForEvent;
}
interface IState {
    canRedact: boolean;
    canPin: boolean;
    reactionPickerDisplayed: boolean;
}
export default class MessageContextMenu extends React.Component<IProps, IState> {
    static contextType: React.Context<import("../../structures/RoomView").IRoomState & {
        threadId?: string;
    }>;
    context: React.ContextType<typeof RoomContext>;
    private reactButtonRef;
    constructor(props: IProps, context: React.ContextType<typeof RoomContext>);
    componentDidMount(): void;
    componentWillUnmount(): void;
    private checkPermissions;
    private isPinned;
    private canEndPoll;
    private onResendReactionsClick;
    private onJumpToRelatedEventClick;
    private onReportEventClick;
    private onViewSourceClick;
    private onRedactClick;
    private onForwardClick;
    private onPinClick;
    private closeMenu;
    private onUnhidePreviewClick;
    private onShareClick;
    private onCopyLinkClick;
    private onCollapseReplyChainClick;
    private onCopyClick;
    private onEditClick;
    private onReplyClick;
    private onReactClick;
    private onCloseReactionPicker;
    private onEndPollClick;
    private getReactions;
    private getUnsentReactions;
    private viewInRoom;
    render(): React.ReactNode;
}
export {};
