export default ImageViewer;
declare class ImageViewer extends React.Component<any, any, any> {
    static contextType: React.Context<{
        status?: import("..").StatusType | null;
        ariaLabelledBy?: string | null;
        ariaDescribedBy?: string | null;
    }>;
    constructor(props: any);
    focusNode: React.RefObject<any>;
    state: {
        imageLoading: boolean;
        previousImageUrl: undefined;
        popoverOpen: boolean;
    };
    UNSAFE_componentWillReceiveProps(nextProps: any): void;
    _renderAddImage: () => React.JSX.Element;
    /** `display: none` is used to prefetch an image == it fetches the image but doesn't show it */
    _renderImageElement: ({ imageUrl, shouldDisplay, onLoad, onError, key, dataHook, }: {
        imageUrl: any;
        shouldDisplay: any;
        onLoad: any;
        onError: any;
        key: any;
        dataHook: any;
    }) => React.JSX.Element;
    _resetImageLoading: () => void;
    _onImageLoad: (e: any) => void;
    _getCurrentAndPreviousImages: () => {
        currentImageUrl: any;
        previousImageUrl: undefined;
    };
    _renderImage: () => React.JSX.Element | undefined;
    _renderUpdateButton: (ref: any) => React.JSX.Element;
    _resetPreviousImage: () => void;
    _renderRemoveButton: (ref: any) => React.JSX.Element;
    _renderDownloadButton: (ref: any) => React.JSX.Element;
    _hidePopover: () => void;
    _showPopover: () => void;
    _renderMoreButton: () => React.JSX.Element;
    _renderFirstButton: () => React.JSX.Element | null;
    _renderSecondButton: () => React.JSX.Element | null;
    _renderLoader: () => React.JSX.Element;
    _renderButtons: () => React.JSX.Element;
    _renderOverlayWith: (content: any) => React.JSX.Element;
    /**
     * Sets focus on the element
     */
    focus: () => void;
    render(): React.JSX.Element;
}
declare namespace ImageViewer {
    let displayName: string;
    namespace defaultProps {
        let showUpdateButton: boolean;
        let showDownloadButton: boolean;
        let showRemoveButton: boolean;
        let addImageInfo: string;
        let updateImageInfo: string;
        let downloadImageInfo: string;
        let removeImageInfo: string;
        let moreImageInfo: string;
        function onImageLoad(): {};
    }
    namespace propTypes {
        export let dataHook: PropTypes.Requireable<string>;
        export let className: PropTypes.Requireable<string>;
        export let imageUrl: PropTypes.Requireable<string>;
        export let status: PropTypes.Requireable<string>;
        export let statusMessage: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        export let tooltipProps: PropTypes.Requireable<PropTypes.InferProps<any>>;
        let showUpdateButton_1: PropTypes.Requireable<boolean>;
        export { showUpdateButton_1 as showUpdateButton };
        let showDownloadButton_1: PropTypes.Requireable<boolean>;
        export { showDownloadButton_1 as showDownloadButton };
        let showRemoveButton_1: PropTypes.Requireable<boolean>;
        export { showRemoveButton_1 as showRemoveButton };
        export let onAddImage: PropTypes.Requireable<(...args: any[]) => any>;
        export let onUpdateImage: PropTypes.Requireable<(...args: any[]) => any>;
        export let onDownloadImage: PropTypes.Requireable<(...args: any[]) => any>;
        export let onRemoveImage: PropTypes.Requireable<(...args: any[]) => any>;
        let onImageLoad_1: PropTypes.Requireable<(...args: any[]) => any>;
        export { onImageLoad_1 as onImageLoad };
        let addImageInfo_1: PropTypes.Requireable<string>;
        export { addImageInfo_1 as addImageInfo };
        let updateImageInfo_1: PropTypes.Requireable<string>;
        export { updateImageInfo_1 as updateImageInfo };
        let downloadImageInfo_1: PropTypes.Requireable<string>;
        export { downloadImageInfo_1 as downloadImageInfo };
        let removeImageInfo_1: PropTypes.Requireable<string>;
        export { removeImageInfo_1 as removeImageInfo };
        let moreImageInfo_1: PropTypes.Requireable<string>;
        export { moreImageInfo_1 as moreImageInfo };
        export let removeRoundedBorders: PropTypes.Requireable<boolean>;
        export let width: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        export let height: PropTypes.Requireable<NonNullable<string | number | null | undefined>>;
        export let disabled: PropTypes.Requireable<boolean>;
    }
}
import React from 'react';
import PropTypes from 'prop-types';
//# sourceMappingURL=ImageViewer.d.ts.map