import { Component, CSSProperties } from 'react';
import ConfigContext, { ConfigContextValue } from '../config-provider/ConfigContext';
export declare type CarouselEffect = 'scrollx' | 'fade';
export declare enum CarouselTheme {
    DARK = "dark",
    LIGHT = "light"
}
export interface CarouselProps {
    effect?: CarouselEffect;
    dots?: boolean;
    theme?: CarouselTheme;
    vertical?: boolean;
    autoplay?: boolean;
    easing?: string;
    beforeChange?: (from: number, to: number) => void;
    afterChange?: (current: number) => void;
    style?: CSSProperties;
    prefixCls?: string;
    accessibility?: boolean;
    nextArrow?: HTMLElement | any;
    prevArrow?: HTMLElement | any;
    pauseOnHover?: boolean;
    className?: string;
    adaptiveHeight?: boolean;
    arrows?: boolean;
    autoplaySpeed?: number;
    centerMode?: boolean;
    centerPadding?: string | any;
    cssEase?: string | any;
    dotsClass?: string;
    draggable?: boolean;
    fade?: boolean;
    focusOnSelect?: boolean;
    infinite?: boolean;
    initialSlide?: number;
    lazyLoad?: boolean;
    rtl?: boolean;
    slide?: string;
    slidesToShow?: number;
    slidesToScroll?: number;
    speed?: number;
    swipe?: boolean;
    swipeToSlide?: boolean;
    touchMove?: boolean;
    touchThreshold?: number;
    variableWidth?: boolean;
    useCSS?: boolean;
    slickGoTo?: number;
    dotsActionType?: ["click", "hover"];
    verticalSwiping?: boolean;
    pauseOnDotsHover?: boolean;
    pauseOnArrowsHover?: boolean;
}
export default class Carousel extends Component<CarouselProps> {
    static displayName: string;
    static get contextType(): typeof ConfigContext;
    static defaultProps: {
        dots: boolean;
        arrows: boolean;
        draggable: boolean;
        theme: CarouselTheme;
        pauseOnDotsHover: boolean;
        pauseOnArrowsHover: boolean;
        dotsActionType: string[];
    };
    context: ConfigContextValue;
    innerSlider: any;
    wrapper: HTMLElement | null;
    arrowsRef: NodeListOf<Element>;
    dotsRef: NodeListOf<Element>;
    private slick;
    private onWindowResized;
    componentDidMount(): void;
    componentWillUnmount(): void;
    bindDotsEvent(): void;
    bindArrowEvent(): void;
    handleDotsHover(index: any): void;
    handleArrowMouseChange: (event: any) => void;
    saveSlick: (node: any) => void;
    play(): void;
    pause(): void;
    next(): void;
    prev(): void;
    goTo(slide: number, dontAnimate?: boolean): void;
    render(): JSX.Element;
}
