import { Component, CSSProperties, h } from 'preact'; interface ImageViewerProps { rootId?: string; rootClassName?: string; srcs: string[]; currentIndex?: number; onClose: Function; onIndexChange?: (index: number) => void; backgroundStyle?: CSSProperties; imageBoxStyle?: CSSProperties; imageAreaStyle?: CSSProperties; imageStyle?: CSSProperties; closeOnClickOutside?: boolean; showZoomControls?: boolean; showSwipeButtons?: boolean; scaleFactor?: number; compRef?: any; } interface ImageViewerStates { imageHeight: number; imageWidth: number; reCalSize: boolean; scale: number; offset: { x: number; y: number; }; isDragging: boolean; isSwipping: boolean; startX: number; startY: number; startOffset: { x: number; y: number; }; touchStartDistance?: number; touchStartScale?: number; currentIndex: number; touchStartX: number; touchStartY: number; swipingDirection: 'left' | 'right' | null; swipeOffset: number; isAtDefaultScale: boolean; } export declare class ImageViewer extends Component { private imageRef; private isScaling; private imageAreaPxWidth; private imageAreaPxHeight; private swipeThreshold; private opreateEnd; constructor(props: ImageViewerProps); componentWillReceiveProps(nextProps: ImageViewerProps): void; componentDidMount(): void; onClose: () => void; onBlock: (event: any) => void; handleImageLoad: (event: any) => void; goToIndex: (index: number) => void; goPrevious: () => void; goNext: () => void; imageAutoDock: () => void; handleMouseDown: (e: any) => void; handleMouseMove: (e: any) => void; handleMouseUp: () => void; handleTouchStart: (e: any) => void; handleTouchMove: (e: any) => void; handleTouchEnd: (e: any) => void; zoomOut: () => void; zoomIn: () => void; resetZoom: (e: any) => void; getImageList: () => h.JSX.Element[]; render(): h.JSX.Element; } export {};