// Type definitions for react-image-gallery 0.9 // Project: https://github.com/xiaolin/react-image-gallery // Definitions by: Adam Webb // William Tio // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped // TypeScript Version: 2.8 import * as React from 'react'; export interface ReactImageGalleryItem { bulletClass?: string; bulletOnClick?({ item, itemIndex, currentIndex, }: { item: ReactImageGalleryItem; itemIndex: number; currentIndex: number; }): void; description?: string; original?: string; originalAlt?: string; originalTitle?: string; thumbnail?: string; thumbnailAlt?: string; thumbnailLabel?: string; thumbnailTitle?: string; originalClass?: string; thumbnailClass?: string; renderItem?(item?: ReactImageGalleryItem): React.ReactNode; renderThumbInner?(item?: ReactImageGalleryItem): React.ReactNode; srcSet?: string; sizes?: string; } export interface ReactImageGalleryProps { flickThreshold?: number; items: ReactImageGalleryItem[]; showNav?: boolean; autoPlay?: boolean; lazyLoad?: boolean; infinite?: boolean; showIndex?: boolean; showBullets?: boolean; showThumbnails?: boolean; showPlayButton?: boolean; showFullscreenButton?: boolean; disableThumbnailScroll?: boolean; disableArrowKeys?: boolean; disableSwipe?: boolean; useBrowserFullscreen?: boolean; preventDefaultTouchmoveEvent?: boolean; onErrorImage?: string; indexSeparator?: string; thumbnailPosition?: 'top' | 'right' | 'bottom' | 'left'; startIndex?: number; slideDuration?: number; slideInterval?: number; slideOnThumbnailOver?: boolean; swipeThreshold?: number; swipingTransitionDuration?: number; onSlide?: (currentIndex: number) => void; onScreenChange?: (fullScreenElement: Element) => void; onPause?: (currentIndex: number) => void; onPlay?: (currentIndex: number) => void; onClick?: (event: React.MouseEventHandler) => void; onImageLoad?: (event: React.ReactEventHandler) => void; onImageError?: (event: React.ReactEventHandler) => void; onTouchMove?: (event: React.TouchEventHandler) => void; onTouchEnd?: (event: React.TouchEventHandler) => void; onTouchStart?: (event: React.TouchEventHandler) => void; onMouseOver?: (event: React.MouseEventHandler) => void; onMouseLeave?: (event: React.MouseEventHandler) => void; onThumbnailError?: (event: React.ReactEventHandler) => void; onThumbnailClick?: (event: React.MouseEventHandler, index: number) => void; renderCustomControls?: () => React.ReactNode; renderLeftNav?: (onClick: React.MouseEventHandler, isDisabled: boolean) => React.ReactNode; renderRightNav?: (onClick: React.MouseEventHandler, isDisabled: boolean) => React.ReactNode; renderPlayPauseButton?: (onClick: React.MouseEventHandler, isPlaying: boolean) => React.ReactNode; renderFullscreenButton?: (onClick: React.MouseEventHandler, isFullscreen: boolean) => React.ReactNode; renderItem?: (item: ReactImageGalleryItem) => React.ReactNode; renderThumbInner?: (item: ReactImageGalleryItem) => React.ReactNode; stopPropagation?: boolean; additionalClass?: string; useTranslate3D?: boolean; isRTL?: boolean; } declare class ReactImageGallery extends React.Component { play: (callback?: boolean) => void; pause: (callback?: boolean) => void; fullScreen: () => void; exitFullScreen: () => void; slideToIndex: (index: number) => void; getCurrentIndex: () => number; } export default ReactImageGallery;