/**
 * @license chowa v1.1.3
 *
 * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 */
import * as React from 'react';
import * as PropTypes from 'prop-types';
export interface CarouselProps {
    className?: string;
    style?: React.CSSProperties;
    current?: number;
    autoPlay?: boolean;
    delay?: number;
    showPages?: boolean;
    pagesPlacement?: 'inside' | 'outside';
    showArrow?: boolean;
    arrowTrigger?: 'hover' | 'always' | 'never';
    effect?: 'slide' | 'fade' | 'smash';
    smashRow?: number;
    smashCol?: number;
}
export interface CarouselState {
    clientWidth: number;
    clientHeight: number;
    activeIndex: number;
    amount: number;
    arrowVisible: boolean;
    slideEffectStyle: React.CSSProperties;
    slideLock: boolean;
}
declare class Carousel extends React.PureComponent<CarouselProps, CarouselState> {
    static propTypes: {
        className: PropTypes.Requireable<string>;
        style: PropTypes.Requireable<object>;
        current: PropTypes.Requireable<number>;
        autoPlay: PropTypes.Requireable<boolean>;
        delay: PropTypes.Requireable<number>;
        showPages: PropTypes.Requireable<boolean>;
        pagesPlacement: PropTypes.Requireable<string>;
        showArrow: PropTypes.Requireable<boolean>;
        arrowTrigger: PropTypes.Requireable<string>;
        effect: PropTypes.Requireable<string>;
        smashRow: PropTypes.Requireable<number>;
        smashCol: PropTypes.Requireable<number>;
    };
    static defaultProps: {
        current: number;
        autoPlay: boolean;
        delay: number;
        showPages: boolean;
        pagesPlacement: string;
        showArrow: boolean;
        arrowTrigger: string;
        effect: string;
        smashRow: number;
        smashCol: number;
    };
    static Item: React.SFC<import("./carousel-item").CarouselItemProps>;
    private timer;
    private resizeObserver;
    private wrapperEle;
    constructor(props: CarouselProps & {
        children: React.ReactNode;
    });
    componentDidMount(): void;
    componentDidUpdate(preProps: CarouselProps & {
        children: React.ReactNode;
    }): void;
    componentWillUnmount(): void;
    private updateRenderParams;
    private computedItemAmount;
    private clearTimer;
    private crontab;
    private preItemHandler;
    private nextItemHandler;
    private onMouseLeaveHandler;
    private onMouseEnterHandler;
    private selectPageHandler;
    private onSlideTransitionEnd;
    private compileItems;
    private renderPages;
    private renderArrow;
    render(): JSX.Element;
}
export default Carousel;
