import { type ExtractPublicPropTypes, type PropType } from 'vue';
import { type ThemeComponent } from '../../composables/useTheme';
declare const carouselEffects: readonly ["slide"];
export type CarouselEffect = typeof carouselEffects[number];
declare const carouselProps: {
    autoplay: BooleanConstructor;
    delay: {
        type: NumberConstructor;
        default: number;
    };
    showDots: {
        type: BooleanConstructor;
        default: boolean;
    };
    effect: {
        type: PropType<"slide">;
        default: string;
    };
    classDots: (ArrayConstructor | StringConstructor)[];
};
export type CarouselProps = ExtractPublicPropTypes<typeof carouselProps>;
type InternalClasses = 'wrapper' | 'slides' | 'dots' | 'dot' | 'dotActive';
type InternalData = {
    current: number;
    total: number;
};
export interface CarouselTheme extends ThemeComponent<CarouselProps, InternalClasses, InternalData> {
}
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    autoplay: BooleanConstructor;
    delay: {
        type: NumberConstructor;
        default: number;
    };
    showDots: {
        type: BooleanConstructor;
        default: boolean;
    };
    effect: {
        type: PropType<"slide">;
        default: string;
    };
    classDots: (ArrayConstructor | StringConstructor)[];
}>, {
    to: (index: number) => void;
    next: () => void;
    prev: () => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update"[], "update", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    autoplay: BooleanConstructor;
    delay: {
        type: NumberConstructor;
        default: number;
    };
    showDots: {
        type: BooleanConstructor;
        default: boolean;
    };
    effect: {
        type: PropType<"slide">;
        default: string;
    };
    classDots: (ArrayConstructor | StringConstructor)[];
}>> & Readonly<{
    onUpdate?: ((...args: any[]) => any) | undefined;
}>, {
    effect: "slide";
    autoplay: boolean;
    delay: number;
    showDots: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>, {
    default?(_: {
        to: (index: number) => void;
        next: () => void;
        prev: () => void;
        current: number;
        total: number;
    }): any;
    dots?(_: {
        to: (index: number) => void;
        next: () => void;
        prev: () => void;
        current: number;
        total: number;
    }): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
