import React from "react";
import BaseComponent from "../_base/baseComponent";
import { PreviewInnerProps, PreviewInnerStates } from "./interface";
import PropTypes from "prop-types";
import PreviewImage from "./previewImage";
import PreviewInnerFoundation, { PreviewInnerAdapter, RatioType } from '@douyinfe/semi-foundation/lib/es/image/previewInnerFoundation';
import { PreviewContextProps } from "./previewContext";
export default class PreviewInner extends BaseComponent<PreviewInnerProps, PreviewInnerStates> {
    static contextType: React.Context<PreviewContextProps>;
    static propTypes: {
        style: PropTypes.Requireable<object>;
        className: PropTypes.Requireable<string>;
        visible: PropTypes.Requireable<boolean>;
        src: PropTypes.Requireable<NonNullable<string | any[]>>;
        currentIndex: PropTypes.Requireable<number>;
        defaultCurrentIndex: PropTypes.Requireable<number>;
        defaultVisible: PropTypes.Requireable<boolean>;
        maskClosable: PropTypes.Requireable<boolean>;
        closable: PropTypes.Requireable<boolean>;
        zoomStep: PropTypes.Requireable<number>;
        infinite: PropTypes.Requireable<boolean>;
        showTooltip: PropTypes.Requireable<boolean>;
        closeOnEsc: PropTypes.Requireable<boolean>;
        prevTip: PropTypes.Requireable<string>;
        nextTip: PropTypes.Requireable<string>;
        zoomInTip: PropTypes.Requireable<string>;
        zoomOutTip: PropTypes.Requireable<string>;
        downloadTip: PropTypes.Requireable<string>;
        adaptiveTip: PropTypes.Requireable<string>;
        originTip: PropTypes.Requireable<string>;
        lazyLoad: PropTypes.Requireable<boolean>;
        preLoad: PropTypes.Requireable<boolean>;
        preLoadGap: PropTypes.Requireable<number>;
        disableDownload: PropTypes.Requireable<boolean>;
        viewerVisibleDelay: PropTypes.Requireable<number>;
        zIndex: PropTypes.Requireable<number>;
        maxZoom: PropTypes.Requireable<number>;
        minZoom: PropTypes.Requireable<number>;
        renderHeader: PropTypes.Requireable<(...args: any[]) => any>;
        renderPreviewMenu: PropTypes.Requireable<(...args: any[]) => any>;
        getPopupContainer: PropTypes.Requireable<(...args: any[]) => any>;
        onVisibleChange: PropTypes.Requireable<(...args: any[]) => any>;
        onChange: PropTypes.Requireable<(...args: any[]) => any>;
        onClose: PropTypes.Requireable<(...args: any[]) => any>;
        onZoomIn: PropTypes.Requireable<(...args: any[]) => any>;
        onZoomOut: PropTypes.Requireable<(...args: any[]) => any>;
        onPrev: PropTypes.Requireable<(...args: any[]) => any>;
        onNext: PropTypes.Requireable<(...args: any[]) => any>;
        onDownload: PropTypes.Requireable<(...args: any[]) => any>;
        onRatioChange: PropTypes.Requireable<(...args: any[]) => any>;
        onRotateLeft: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        showTooltip: boolean;
        zoomStep: number;
        infinite: boolean;
        closeOnEsc: boolean;
        lazyLoad: boolean;
        preLoad: boolean;
        preLoadGap: number;
        zIndex: number;
        maskClosable: boolean;
        viewerVisibleDelay: number;
        maxZoom: number;
        minZoom: number;
    };
    private bodyOverflow;
    private scrollBarWidth;
    private originBodyWidth;
    get adapter(): PreviewInnerAdapter<PreviewInnerProps, PreviewInnerStates>;
    context: PreviewContextProps;
    foundation: PreviewInnerFoundation;
    imageWrapRef: React.RefObject<HTMLDivElement>;
    headerRef: React.RefObject<HTMLElement>;
    imageRef: React.RefObject<PreviewImage>;
    footerRef: React.RefObject<HTMLElement>;
    leftIconRef: React.RefObject<HTMLDivElement>;
    rightIconRef: React.RefObject<HTMLDivElement>;
    constructor(props: PreviewInnerProps);
    static getDerivedStateFromProps(props: PreviewInnerProps, state: PreviewInnerStates): Partial<PreviewInnerStates>;
    componentDidMount(): void;
    componentDidUpdate(prevProps: PreviewInnerProps, prevState: PreviewInnerStates): void;
    componentWillUnmount(): void;
    isInGroup(): boolean;
    viewVisibleChange: () => void;
    handleSwitchImage: (direction: string) => void;
    handleDownload: () => void;
    handlePreviewClose: (e: React.MouseEvent<HTMLElement>) => void;
    handleAdjustRatio: (type: RatioType) => void;
    handleRotateImage: (direction: any) => void;
    handleZoomImage: (newZoom: number, notify?: boolean) => void;
    handleMouseUp: (e: any) => void;
    handleMouseMove: (e: any) => void;
    handleKeyDown: (e: KeyboardEvent) => void;
    onImageError: () => void;
    onImageLoad: (src: any) => void;
    handleMouseDown: (e: any) => void;
    handleWheel: (e: any) => void;
    registryImageWrapRef: (ref: any) => void;
    render(): React.JSX.Element;
}
