import BaseFoundation, { DefaultAdapter } from "../base/foundation";
export type RatioType = "adaptation" | "realSize";
export interface PreviewInnerAdapter<P = Record<string, any>, S = Record<string, any>> extends DefaultAdapter<P, S> {
    getIsInGroup: () => boolean;
    notifyChange: (index: number, direction: string) => void;
    notifyZoom: (zoom: number, increase: boolean) => void;
    notifyClose: () => void;
    notifyVisibleChange: (visible: boolean) => void;
    notifyRatioChange: (type: RatioType) => void;
    notifyRotateChange: (angle: number) => void;
    notifyDownload: (src: string, index: number) => void;
    notifyDownloadError: (src: string) => void;
    registerKeyDownListener: () => void;
    unregisterKeyDownListener: () => void;
    disabledBodyScroll: () => void;
    enabledBodyScroll: () => void;
    getSetDownloadFunc: () => (src: string) => string;
    isValidTarget: (e: any) => boolean;
    changeImageZoom: (zoom: number, e?: WheelEvent) => void;
}
export default class PreviewInnerFoundation<P = Record<string, any>, S = Record<string, any>> extends BaseFoundation<PreviewInnerAdapter<P, S>, P, S> {
    constructor(adapter: PreviewInnerAdapter<P, S>);
    _timer: any;
    _startMouseDown: {
        x: number;
        y: number;
    };
    beforeShow(): void;
    afterHide(): void;
    handleViewVisibleChange: () => void;
    handleMouseMove: (e: any) => void;
    mouseMoveHandler: import("lodash").DebouncedFuncLeading<(e: any) => void>;
    updateTimer: () => void;
    clearTimer: () => void;
    handleWheel: (e: WheelEvent) => void;
    onWheel: (e: WheelEvent) => void;
    handleMouseUp: (e: any) => void;
    handleMouseDown: (e: any) => void;
    handleKeyDown: (e: any) => void;
    handleSwitchImage: (direction: string) => void;
    handleDownload: () => void;
    handlePreviewClose: (e: any) => void;
    handleAdjustRatio: (type: RatioType) => void;
    handleRotateImage: (direction: string) => void;
    handleZoomImage: (newZoom: number, notify?: boolean, e?: WheelEvent) => void;
    preloadGapImage: () => void;
    preloadSingleImage: () => void;
    setLoadSuccessStatus: (src: string) => void;
    onImageLoad: (src: string) => void;
}
