import type { App } from 'vue';
import type { ArcoOptions } from '../_utils/types';
import _Carousel from './carousel';
import _CarouselItem from './carousel-item';
declare const Carousel: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        current: {
            type: NumberConstructor;
        };
        defaultCurrent: {
            type: NumberConstructor;
            default: number;
        };
        autoPlay: {
            type: import("vue").PropType<boolean | import("./interface").CarouselAutoPlayConfig>;
            default: boolean;
        };
        moveSpeed: {
            type: NumberConstructor;
            default: number;
        };
        animationName: {
            type: import("vue").PropType<"slide" | "fade" | "card">;
            default: string;
        };
        trigger: {
            type: import("vue").PropType<import("./interface").CarouselTriggerEvent>;
            default: string;
        };
        direction: {
            type: import("vue").PropType<"horizontal" | "vertical">;
            default: string;
        };
        showArrow: {
            type: import("vue").PropType<import("./interface").CarouselArrowType>;
            default: string;
        };
        arrowClass: {
            type: StringConstructor;
            default: string;
        };
        indicatorType: {
            type: import("vue").PropType<import("./interface").CarouselIndicatorType>;
            default: string;
        };
        indicatorPosition: {
            type: import("vue").PropType<import("./interface").CarouselIndicatorPosition>;
            default: string;
        };
        indicatorClass: {
            type: StringConstructor;
            default: string;
        };
        transitionTimingFunction: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{
        onChange?: ((index: number, prevIndex: number, isManual: boolean) => any) | undefined;
        "onUpdate:current"?: ((index: number) => any) | undefined;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        'update:current': (index: number) => true;
        change: (index: number, prevIndex: number, isManual: boolean) => true;
    }, import("vue").PublicProps, {
        direction: "horizontal" | "vertical";
        trigger: import("./interface").CarouselTriggerEvent;
        showArrow: import("./interface").CarouselArrowType;
        arrowClass: string;
        animationName: "slide" | "fade" | "card";
        transitionTimingFunction: string;
        defaultCurrent: number;
        autoPlay: boolean | import("./interface").CarouselAutoPlayConfig;
        moveSpeed: number;
        indicatorType: import("./interface").CarouselIndicatorType;
        indicatorPosition: import("./interface").CarouselIndicatorPosition;
        indicatorClass: string;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        current: {
            type: NumberConstructor;
        };
        defaultCurrent: {
            type: NumberConstructor;
            default: number;
        };
        autoPlay: {
            type: import("vue").PropType<boolean | import("./interface").CarouselAutoPlayConfig>;
            default: boolean;
        };
        moveSpeed: {
            type: NumberConstructor;
            default: number;
        };
        animationName: {
            type: import("vue").PropType<"slide" | "fade" | "card">;
            default: string;
        };
        trigger: {
            type: import("vue").PropType<import("./interface").CarouselTriggerEvent>;
            default: string;
        };
        direction: {
            type: import("vue").PropType<"horizontal" | "vertical">;
            default: string;
        };
        showArrow: {
            type: import("vue").PropType<import("./interface").CarouselArrowType>;
            default: string;
        };
        arrowClass: {
            type: StringConstructor;
            default: string;
        };
        indicatorType: {
            type: import("vue").PropType<import("./interface").CarouselIndicatorType>;
            default: string;
        };
        indicatorPosition: {
            type: import("vue").PropType<import("./interface").CarouselIndicatorPosition>;
            default: string;
        };
        indicatorClass: {
            type: StringConstructor;
            default: string;
        };
        transitionTimingFunction: {
            type: StringConstructor;
            default: string;
        };
    }>> & Readonly<{
        onChange?: ((index: number, prevIndex: number, isManual: boolean) => any) | undefined;
        "onUpdate:current"?: ((index: number) => any) | undefined;
    }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
        direction: "horizontal" | "vertical";
        trigger: import("./interface").CarouselTriggerEvent;
        showArrow: import("./interface").CarouselArrowType;
        arrowClass: string;
        animationName: "slide" | "fade" | "card";
        transitionTimingFunction: string;
        defaultCurrent: number;
        autoPlay: boolean | import("./interface").CarouselAutoPlayConfig;
        moveSpeed: number;
        indicatorType: import("./interface").CarouselIndicatorType;
        indicatorPosition: import("./interface").CarouselIndicatorPosition;
        indicatorClass: string;
    }>;
    __isFragment?: undefined;
    __isTeleport?: undefined;
    __isSuspense?: undefined;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    current: {
        type: NumberConstructor;
    };
    defaultCurrent: {
        type: NumberConstructor;
        default: number;
    };
    autoPlay: {
        type: import("vue").PropType<boolean | import("./interface").CarouselAutoPlayConfig>;
        default: boolean;
    };
    moveSpeed: {
        type: NumberConstructor;
        default: number;
    };
    animationName: {
        type: import("vue").PropType<"slide" | "fade" | "card">;
        default: string;
    };
    trigger: {
        type: import("vue").PropType<import("./interface").CarouselTriggerEvent>;
        default: string;
    };
    direction: {
        type: import("vue").PropType<"horizontal" | "vertical">;
        default: string;
    };
    showArrow: {
        type: import("vue").PropType<import("./interface").CarouselArrowType>;
        default: string;
    };
    arrowClass: {
        type: StringConstructor;
        default: string;
    };
    indicatorType: {
        type: import("vue").PropType<import("./interface").CarouselIndicatorType>;
        default: string;
    };
    indicatorPosition: {
        type: import("vue").PropType<import("./interface").CarouselIndicatorPosition>;
        default: string;
    };
    indicatorClass: {
        type: StringConstructor;
        default: string;
    };
    transitionTimingFunction: {
        type: StringConstructor;
        default: string;
    };
}>> & Readonly<{
    onChange?: ((index: number, prevIndex: number, isManual: boolean) => any) | undefined;
    "onUpdate:current"?: ((index: number) => any) | undefined;
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    'update:current': (index: number) => true;
    change: (index: number, prevIndex: number, isManual: boolean) => true;
}, string, {
    direction: "horizontal" | "vertical";
    trigger: import("./interface").CarouselTriggerEvent;
    showArrow: import("./interface").CarouselArrowType;
    arrowClass: string;
    animationName: "slide" | "fade" | "card";
    transitionTimingFunction: string;
    defaultCurrent: number;
    autoPlay: boolean | import("./interface").CarouselAutoPlayConfig;
    moveSpeed: number;
    indicatorType: import("./interface").CarouselIndicatorType;
    indicatorPosition: import("./interface").CarouselIndicatorPosition;
    indicatorClass: string;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & {
    Item: import("vue").DefineComponent<{}, {
        cls: import("vue").ComputedRef<{
            [x: string]: boolean | "" | undefined;
        }>;
        animationStyle: import("vue").ComputedRef<{
            transitionTimingFunction: string | undefined;
            transitionDuration: string;
            animationTimingFunction: string | undefined;
            animationDuration: string;
        }>;
        isCurrent: import("vue").ComputedRef<boolean>;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    install: (app: App, options?: ArcoOptions | undefined) => void;
};
export declare type CarouselInstance = InstanceType<typeof _Carousel>;
export declare type CarouselItemInstance = InstanceType<typeof _CarouselItem>;
export { _CarouselItem as CarouselItem };
export default Carousel;
