import React from "react";
import { MatrixEvent } from "matrix-js-sdk/src/matrix";
import { RoomPermalinkCreator } from "../../../utils/permalinks/Permalinks";
interface IProps {
    src: string;
    name?: string;
    link?: string;
    width?: number;
    height?: number;
    fileSize?: number;
    mxEvent?: MatrixEvent;
    permalinkCreator?: RoomPermalinkCreator;
    thumbnailInfo?: {
        positionX: number;
        positionY: number;
        width: number;
        height: number;
    };
    onFinished(): void;
}
interface IState {
    zoom: number;
    minZoom: number;
    maxZoom: number;
    rotation: number;
    translationX: number;
    translationY: number;
    moving: boolean;
    contextMenuDisplayed: boolean;
}
export default class ImageView extends React.Component<IProps, IState> {
    constructor(props: IProps);
    private contextMenuButton;
    private focusLock;
    private imageWrapper;
    private image;
    private initX;
    private initY;
    private previousX;
    private previousY;
    private animatingLoading;
    private imageIsLoaded;
    componentDidMount(): void;
    componentWillUnmount(): void;
    private imageLoaded;
    private recalculateZoom;
    private setZoomAndRotation;
    private zoomDelta;
    private zoom;
    private onWheel;
    private onZoomInClick;
    private onZoomOutClick;
    private onKeyDown;
    private onRotateCounterClockwiseClick;
    private onRotateClockwiseClick;
    private onDownloadClick;
    private onOpenContextMenu;
    private onCloseContextMenu;
    private onPermalinkClicked;
    private onStartMoving;
    private onMoving;
    private onEndMoving;
    private renderContextMenu;
    render(): React.ReactNode;
}
export {};
