///
import React from 'react';
import { LayoutChangeEvent, NativeScrollEvent, NativeSyntheticEvent, StyleProp, ViewStyle } from 'react-native';
import { CarouselPropsType } from './PropsType';
export interface CarouselProps extends CarouselPropsType {
bounces?: boolean;
onScrollBeginDrag?: (event: NativeSyntheticEvent, state: CarouselState, carousel: Carousel) => void;
onMomentumScrollEnd?: (event: NativeSyntheticEvent, state: CarouselState, carousel: Carousel) => void;
styles?: any;
style?: StyleProp;
dotStyle?: StyleProp;
dotActiveStyle?: StyleProp;
pagination?: (props: PaginationProps) => React.ReactNode;
afterChange?: (index: number) => void;
}
export interface CarouselOffset {
x: number;
y: number;
}
export interface CarouselState {
width: number;
height: number;
selectedIndex: number;
isScrolling: boolean;
autoplayEnd: boolean;
loopJump: boolean;
offset: CarouselOffset;
}
export interface PaginationProps {
styles: any;
vertical?: boolean;
current: number;
count: number;
dotStyle?: StyleProp;
dotActiveStyle?: StyleProp;
}
declare class Carousel extends React.Component {
static defaultProps: CarouselProps;
private scrollviewRef;
private autoplayTimer;
private androidScrollEndTimer;
private scrollEndTimter;
constructor(props: CarouselProps);
getChildrenCount: (children: React.ReactNode) => number;
componentDidMount(): void;
componentWillUnmount(): void;
loopJump: () => void;
autoplay: () => void;
onScrollBegin: (e: NativeSyntheticEvent) => void;
onScrollEnd: (e: NativeSyntheticEvent) => void;
onScrollEndDrag: (e: NativeSyntheticEvent) => void;
paging: (offsetY: number) => void;
updateIndex: (offset: CarouselOffset) => void;
scrollNextPage: () => void;
renderContent: (pages: React.ReactNode) => JSX.Element;
renderDots: (index: number) => React.ReactNode;
onLayout: (e: LayoutChangeEvent) => void;
onChildLayout: (e: LayoutChangeEvent) => void;
render(): JSX.Element;
}
export default Carousel;