import React, { Component } from 'react';
import { Animated, ImageProperties } from 'react-native';
import { ImageData, ZoomCarouselProps } from './types';
export interface ZoomCarouselStateType {
    isZooming: boolean;
    isZoomVisible: boolean;
    isOpeningZoom: boolean;
    orignalImageWidth: number;
    orignalImageHeight: number;
    orignalImageX: number;
    orignalImageY: number;
    currentIndex: number;
    currentZoomIndex: number;
}
export declare class ZoomCarousel extends Component<ZoomCarouselProps, ZoomCarouselStateType> {
    static defaultProps: ZoomCarouselProps;
    originalImgs: React.Component<ImageProperties, React.ComponentState>[];
    lastScrollXStart?: number;
    lastScrollX?: number;
    scrollView: any;
    lastPinchDistance?: number;
    zoomOpenning: boolean;
    modalRef: any;
    initialScrollX: number;
    panResponder: any;
    multiCarousel: any;
    zoomContainerWidth: number;
    itemWidth: number;
    imageWidth: number;
    imageHeight: number;
    gapSizeScaled: number;
    openScale: Animated.Value;
    scrollViewSize: Animated.Value;
    scrollViewPosition: Animated.ValueXY;
    constructor(props: ZoomCarouselProps);
    initPanResponder: () => void;
    goToZoomNext: (vx: number) => void;
    goToZoomPrev: (vx: number) => void;
    goToZoomOrigin: () => void;
    openZoom: () => void;
    closeZoom: () => void;
    handleItemMoveOutY: (offsetY: number) => void;
    handleItemMoveOutX: (offsetX: any) => void;
    handleZoomRelease: (distance: any) => void;
    handleMoveRelease: (evt: any, gestureState: any, justMoveX: boolean) => void;
    renderModal: () => JSX.Element;
    handleThumbPress: (i: number) => void;
    makeHandleThumbPress: (i: number) => () => void;
    renderImage: (item: ImageData, index: number) => {} | null | undefined;
    handleSlideChange: ({ currentIndex, nextIndex }: any) => void;
    extractMultiCarousel: (ref: any) => void;
    render(): JSX.Element;
}
