import React from "react";
import { ICarouselContextProps, ICarouselProps } from "./CarouselContext";
import { IDefaultCarouselProps as DP, IProps as P } from "./Types";
export interface IProps extends P, ICarouselProps, React.HTMLAttributes<HTMLDivElement> {
}
export interface IState {
    context: ICarouselContextProps;
}
export declare class Carousel extends React.Component<IProps, IState> {
    static defaultProps: DP;
    constructor(props: IProps);
    /**
     * Extract context props from IProps
     *
     * @param props
     * @returns
     */
    extractContextProps(props: IProps): ICarouselContextProps;
    compareContextProps(prevProps: IProps, currentProps: IProps): boolean;
    /**
     * Update the context props and re-render to pass the new context
     * @param state
     */
    updateContext: <K extends keyof ICarouselContextProps>(state: ICarouselContextProps | Pick<ICarouselContextProps, K> | null) => void;
    validateStep(props: IProps): number;
    componentDidUpdate(prevProps: Readonly<IProps>, prevState: Readonly<IState>, snapshot?: any): void;
    render(): JSX.Element;
}
