import { Component, CSSProperties, ReactNode } from 'react';
import { ContentRect } from 'react-measure';
import './Carousel.less';
export interface CarouselProps {
    /**
     * Slides
     * @since 0.0.42
     */
    children?: ReactNode[];
    /**
     * Enable autoplay
     * @since 3.37.0
     */
    autoplay?: boolean;
    /**
     * Autoplay interval, ms
     * @since 3.37.0
     */
    autoplayInterval?: number;
    /**
     * Show exact number of slides
     * @since 3.37.0
     */
    items?: number;
    /**
     * Show navigation arrows
     * @since 3.37.0
     */
    arrows?: boolean;
    /**
     * Show navigation dots. Works only with items options.
     * @since 3.37.0
     */
    dots?: boolean;
    /**
     * Callback called on change slides
     */
    onSlide?: (current: number) => {};
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
}
/**
 * Carousel component is used for optimizing page space by displaying only some parts
 * of entire content in a cyclic view.
 * @since 0.0.42
 */
declare class Carousel extends Component<CarouselProps> {
    static defaultProps: {
        children: null;
        arrows: boolean;
        dots: boolean;
        autoplay: boolean;
        autoplayInterval: number;
        onSlide: null;
        className: null;
        baseClassName: string;
    };
    state: {
        showControls: boolean;
        current: number;
        next: number;
        moving: boolean;
        slideWidths: never[];
        totalWidth: number;
    };
    componentDidMount(): void;
    componentDidUpdate(prevProps: CarouselProps): void;
    componentWillUnmount(): void;
    private readonly speed;
    private isRtl;
    private playTimer;
    private movingCallback;
    private readonly rootRef;
    private readonly genuineRef;
    handlePrevClick: () => void;
    handleNextClick: () => void;
    play: () => void;
    stop: () => void;
    setCurrentSlide(next: number): void;
    handleResize: ({ bounds }: ContentRect) => void;
    listStyle(): CSSProperties;
    getChildrenCount: () => number;
    renderNavigationDots: () => import("react/jsx-runtime").JSX.Element | null;
    renderNavigationArrows: () => import("react/jsx-runtime").JSX.Element | null;
    renderSliderItems: (showCurrent?: boolean) => ("" | 0 | import("react/jsx-runtime").JSX.Element)[] | null | undefined;
    render(): import("react/jsx-runtime").JSX.Element;
}
export default Carousel;
