import { ExtractPropTypes, PropType, CreateComponentPublicInstanceWithMixins, ComponentOptionsMixin, PublicProps, GlobalComponents, GlobalDirectives, ComponentProvideOptions, ComponentOptionsBase, VNodeProps, AllowedComponentProps, ComponentCustomProps, Plugin } from 'vue';
import { VueTypeValidableDef } from 'vue-types';
import { VueNode } from '../_util/type';
export type SwipeDirection = 'left' | 'down' | 'right' | 'up' | string;
export type LazyLoadTypes = 'ondemand' | 'progressive';
export type CarouselEffect = 'scrollx' | 'fade';
export type DotPosition = 'top' | 'bottom' | 'left' | 'right';
export interface CarouselRef {
    goTo: (slide: number, dontAnimate?: boolean) => void;
    next: () => void;
    prev: () => void;
    autoplay: (palyType?: 'update' | 'leave' | 'blur') => void;
    innerSlider: any;
}
export declare const carouselProps: () => {
    effect: {
        type: PropType<CarouselEffect>;
        default: CarouselEffect;
    };
    dots: {
        type: BooleanConstructor;
        default: boolean;
    };
    vertical: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoplay: {
        type: BooleanConstructor;
        default: boolean;
    };
    easing: StringConstructor;
    beforeChange: {
        type: PropType<(currentSlide: number, nextSlide: number) => void>;
        default: (currentSlide: number, nextSlide: number) => void;
    };
    afterChange: {
        type: PropType<(currentSlide: number) => void>;
        default: (currentSlide: number) => void;
    };
    prefixCls: StringConstructor;
    accessibility: {
        type: BooleanConstructor;
        default: boolean;
    };
    nextArrow: VueTypeValidableDef<any>;
    prevArrow: VueTypeValidableDef<any>;
    pauseOnHover: {
        type: BooleanConstructor;
        default: boolean;
    };
    adaptiveHeight: {
        type: BooleanConstructor;
        default: boolean;
    };
    arrows: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoplaySpeed: NumberConstructor;
    centerMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    centerPadding: StringConstructor;
    cssEase: StringConstructor;
    dotsClass: StringConstructor;
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    fade: {
        type: BooleanConstructor;
        default: boolean;
    };
    focusOnSelect: {
        type: BooleanConstructor;
        default: boolean;
    };
    infinite: {
        type: BooleanConstructor;
        default: boolean;
    };
    initialSlide: NumberConstructor;
    lazyLoad: {
        type: PropType<LazyLoadTypes>;
        default: LazyLoadTypes;
    };
    rtl: {
        type: BooleanConstructor;
        default: boolean;
    };
    slide: StringConstructor;
    slidesToShow: NumberConstructor;
    slidesToScroll: NumberConstructor;
    speed: NumberConstructor;
    swipe: {
        type: BooleanConstructor;
        default: boolean;
    };
    swipeToSlide: {
        type: BooleanConstructor;
        default: boolean;
    };
    swipeEvent: {
        type: PropType<(swipeDirection: SwipeDirection) => void>;
        default: (swipeDirection: SwipeDirection) => void;
    };
    touchMove: {
        type: BooleanConstructor;
        default: boolean;
    };
    touchThreshold: NumberConstructor;
    variableWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    useCSS: {
        type: BooleanConstructor;
        default: boolean;
    };
    slickGoTo: NumberConstructor;
    responsive: ArrayConstructor;
    dotPosition: {
        type: PropType<DotPosition>;
        default: DotPosition;
    };
    verticalSwiping: {
        type: BooleanConstructor;
        default: boolean;
    };
};
export type CarouselProps = Partial<ExtractPropTypes<ReturnType<typeof carouselProps>>>;
declare const _default: {
    new (...args: any[]): CreateComponentPublicInstanceWithMixins<Readonly<ExtractPropTypes<{
        effect: {
            type: PropType<CarouselEffect>;
            default: CarouselEffect;
        };
        dots: {
            type: BooleanConstructor;
            default: boolean;
        };
        vertical: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoplay: {
            type: BooleanConstructor;
            default: boolean;
        };
        easing: StringConstructor;
        beforeChange: {
            type: PropType<(currentSlide: number, nextSlide: number) => void>;
            default: (currentSlide: number, nextSlide: number) => void;
        };
        afterChange: {
            type: PropType<(currentSlide: number) => void>;
            default: (currentSlide: number) => void;
        };
        prefixCls: StringConstructor;
        accessibility: {
            type: BooleanConstructor;
            default: boolean;
        };
        nextArrow: VueTypeValidableDef<any>;
        prevArrow: VueTypeValidableDef<any>;
        pauseOnHover: {
            type: BooleanConstructor;
            default: boolean;
        };
        adaptiveHeight: {
            type: BooleanConstructor;
            default: boolean;
        };
        arrows: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoplaySpeed: NumberConstructor;
        centerMode: {
            type: BooleanConstructor;
            default: boolean;
        };
        centerPadding: StringConstructor;
        cssEase: StringConstructor;
        dotsClass: StringConstructor;
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        fade: {
            type: BooleanConstructor;
            default: boolean;
        };
        focusOnSelect: {
            type: BooleanConstructor;
            default: boolean;
        };
        infinite: {
            type: BooleanConstructor;
            default: boolean;
        };
        initialSlide: NumberConstructor;
        lazyLoad: {
            type: PropType<LazyLoadTypes>;
            default: LazyLoadTypes;
        };
        rtl: {
            type: BooleanConstructor;
            default: boolean;
        };
        slide: StringConstructor;
        slidesToShow: NumberConstructor;
        slidesToScroll: NumberConstructor;
        speed: NumberConstructor;
        swipe: {
            type: BooleanConstructor;
            default: boolean;
        };
        swipeToSlide: {
            type: BooleanConstructor;
            default: boolean;
        };
        swipeEvent: {
            type: PropType<(swipeDirection: SwipeDirection) => void>;
            default: (swipeDirection: SwipeDirection) => void;
        };
        touchMove: {
            type: BooleanConstructor;
            default: boolean;
        };
        touchThreshold: NumberConstructor;
        variableWidth: {
            type: BooleanConstructor;
            default: boolean;
        };
        useCSS: {
            type: BooleanConstructor;
            default: boolean;
        };
        slickGoTo: NumberConstructor;
        responsive: ArrayConstructor;
        dotPosition: {
            type: PropType<DotPosition>;
            default: DotPosition;
        };
        verticalSwiping: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, PublicProps, {
        infinite: boolean;
        rtl: boolean;
        vertical: boolean;
        draggable: boolean;
        effect: CarouselEffect;
        fade: boolean;
        dots: boolean;
        autoplay: boolean;
        beforeChange: (currentSlide: number, nextSlide: number) => void;
        afterChange: (currentSlide: number) => void;
        accessibility: boolean;
        pauseOnHover: boolean;
        adaptiveHeight: boolean;
        arrows: boolean;
        centerMode: boolean;
        focusOnSelect: boolean;
        lazyLoad: LazyLoadTypes;
        swipe: boolean;
        swipeToSlide: boolean;
        swipeEvent: (swipeDirection: SwipeDirection) => void;
        touchMove: boolean;
        variableWidth: boolean;
        useCSS: boolean;
        dotPosition: DotPosition;
        verticalSwiping: boolean;
    }, true, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<ExtractPropTypes<{
        effect: {
            type: PropType<CarouselEffect>;
            default: CarouselEffect;
        };
        dots: {
            type: BooleanConstructor;
            default: boolean;
        };
        vertical: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoplay: {
            type: BooleanConstructor;
            default: boolean;
        };
        easing: StringConstructor;
        beforeChange: {
            type: PropType<(currentSlide: number, nextSlide: number) => void>;
            default: (currentSlide: number, nextSlide: number) => void;
        };
        afterChange: {
            type: PropType<(currentSlide: number) => void>;
            default: (currentSlide: number) => void;
        };
        prefixCls: StringConstructor;
        accessibility: {
            type: BooleanConstructor;
            default: boolean;
        };
        nextArrow: VueTypeValidableDef<any>;
        prevArrow: VueTypeValidableDef<any>;
        pauseOnHover: {
            type: BooleanConstructor;
            default: boolean;
        };
        adaptiveHeight: {
            type: BooleanConstructor;
            default: boolean;
        };
        arrows: {
            type: BooleanConstructor;
            default: boolean;
        };
        autoplaySpeed: NumberConstructor;
        centerMode: {
            type: BooleanConstructor;
            default: boolean;
        };
        centerPadding: StringConstructor;
        cssEase: StringConstructor;
        dotsClass: StringConstructor;
        draggable: {
            type: BooleanConstructor;
            default: boolean;
        };
        fade: {
            type: BooleanConstructor;
            default: boolean;
        };
        focusOnSelect: {
            type: BooleanConstructor;
            default: boolean;
        };
        infinite: {
            type: BooleanConstructor;
            default: boolean;
        };
        initialSlide: NumberConstructor;
        lazyLoad: {
            type: PropType<LazyLoadTypes>;
            default: LazyLoadTypes;
        };
        rtl: {
            type: BooleanConstructor;
            default: boolean;
        };
        slide: StringConstructor;
        slidesToShow: NumberConstructor;
        slidesToScroll: NumberConstructor;
        speed: NumberConstructor;
        swipe: {
            type: BooleanConstructor;
            default: boolean;
        };
        swipeToSlide: {
            type: BooleanConstructor;
            default: boolean;
        };
        swipeEvent: {
            type: PropType<(swipeDirection: SwipeDirection) => void>;
            default: (swipeDirection: SwipeDirection) => void;
        };
        touchMove: {
            type: BooleanConstructor;
            default: boolean;
        };
        touchThreshold: NumberConstructor;
        variableWidth: {
            type: BooleanConstructor;
            default: boolean;
        };
        useCSS: {
            type: BooleanConstructor;
            default: boolean;
        };
        slickGoTo: NumberConstructor;
        responsive: ArrayConstructor;
        dotPosition: {
            type: PropType<DotPosition>;
            default: DotPosition;
        };
        verticalSwiping: {
            type: BooleanConstructor;
            default: boolean;
        };
    }>> & Readonly<{}>, () => VueNode, {}, {}, {}, {
        infinite: boolean;
        rtl: boolean;
        vertical: boolean;
        draggable: boolean;
        effect: CarouselEffect;
        fade: boolean;
        dots: boolean;
        autoplay: boolean;
        beforeChange: (currentSlide: number, nextSlide: number) => void;
        afterChange: (currentSlide: number) => void;
        accessibility: boolean;
        pauseOnHover: boolean;
        adaptiveHeight: boolean;
        arrows: boolean;
        centerMode: boolean;
        focusOnSelect: boolean;
        lazyLoad: LazyLoadTypes;
        swipe: boolean;
        swipeToSlide: boolean;
        swipeEvent: (swipeDirection: SwipeDirection) => void;
        touchMove: boolean;
        variableWidth: boolean;
        useCSS: boolean;
        dotPosition: DotPosition;
        verticalSwiping: boolean;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & ComponentOptionsBase<Readonly<ExtractPropTypes<{
    effect: {
        type: PropType<CarouselEffect>;
        default: CarouselEffect;
    };
    dots: {
        type: BooleanConstructor;
        default: boolean;
    };
    vertical: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoplay: {
        type: BooleanConstructor;
        default: boolean;
    };
    easing: StringConstructor;
    beforeChange: {
        type: PropType<(currentSlide: number, nextSlide: number) => void>;
        default: (currentSlide: number, nextSlide: number) => void;
    };
    afterChange: {
        type: PropType<(currentSlide: number) => void>;
        default: (currentSlide: number) => void;
    };
    prefixCls: StringConstructor;
    accessibility: {
        type: BooleanConstructor;
        default: boolean;
    };
    nextArrow: VueTypeValidableDef<any>;
    prevArrow: VueTypeValidableDef<any>;
    pauseOnHover: {
        type: BooleanConstructor;
        default: boolean;
    };
    adaptiveHeight: {
        type: BooleanConstructor;
        default: boolean;
    };
    arrows: {
        type: BooleanConstructor;
        default: boolean;
    };
    autoplaySpeed: NumberConstructor;
    centerMode: {
        type: BooleanConstructor;
        default: boolean;
    };
    centerPadding: StringConstructor;
    cssEase: StringConstructor;
    dotsClass: StringConstructor;
    draggable: {
        type: BooleanConstructor;
        default: boolean;
    };
    fade: {
        type: BooleanConstructor;
        default: boolean;
    };
    focusOnSelect: {
        type: BooleanConstructor;
        default: boolean;
    };
    infinite: {
        type: BooleanConstructor;
        default: boolean;
    };
    initialSlide: NumberConstructor;
    lazyLoad: {
        type: PropType<LazyLoadTypes>;
        default: LazyLoadTypes;
    };
    rtl: {
        type: BooleanConstructor;
        default: boolean;
    };
    slide: StringConstructor;
    slidesToShow: NumberConstructor;
    slidesToScroll: NumberConstructor;
    speed: NumberConstructor;
    swipe: {
        type: BooleanConstructor;
        default: boolean;
    };
    swipeToSlide: {
        type: BooleanConstructor;
        default: boolean;
    };
    swipeEvent: {
        type: PropType<(swipeDirection: SwipeDirection) => void>;
        default: (swipeDirection: SwipeDirection) => void;
    };
    touchMove: {
        type: BooleanConstructor;
        default: boolean;
    };
    touchThreshold: NumberConstructor;
    variableWidth: {
        type: BooleanConstructor;
        default: boolean;
    };
    useCSS: {
        type: BooleanConstructor;
        default: boolean;
    };
    slickGoTo: NumberConstructor;
    responsive: ArrayConstructor;
    dotPosition: {
        type: PropType<DotPosition>;
        default: DotPosition;
    };
    verticalSwiping: {
        type: BooleanConstructor;
        default: boolean;
    };
}>> & Readonly<{}>, () => VueNode, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, {
    infinite: boolean;
    rtl: boolean;
    vertical: boolean;
    draggable: boolean;
    effect: CarouselEffect;
    fade: boolean;
    dots: boolean;
    autoplay: boolean;
    beforeChange: (currentSlide: number, nextSlide: number) => void;
    afterChange: (currentSlide: number) => void;
    accessibility: boolean;
    pauseOnHover: boolean;
    adaptiveHeight: boolean;
    arrows: boolean;
    centerMode: boolean;
    focusOnSelect: boolean;
    lazyLoad: LazyLoadTypes;
    swipe: boolean;
    swipeToSlide: boolean;
    swipeEvent: (swipeDirection: SwipeDirection) => void;
    touchMove: boolean;
    variableWidth: boolean;
    useCSS: boolean;
    dotPosition: DotPosition;
    verticalSwiping: boolean;
}, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & Plugin;
export default _default;
