import * as react_jsx_runtime from 'react/jsx-runtime';
import React from 'react';

interface BaseCarouselProps<T> {
    data: T[];
    renderItem: (item: T, index: number) => React.ReactNode;
    width?: string | number;
    height?: string | number;
    itemWidth?: string | number;
    accentColor?: string;
    backgroundColor?: string;
    initialActiveIndex?: number;
    isAutoPlay?: boolean;
    autoPlayInterval?: number;
    showRadioButtons?: boolean;
    customRadioButtons?: (index: number, isActive: boolean, setActiveIndex: (index: number) => void) => React.ReactNode;
    radioButtonStyle?: React.CSSProperties;
    containerStyle?: React.CSSProperties;
    itemStyle?: React.CSSProperties;
    onItemClick?: (item: T, index: number) => void;
    displayMode?: "image" | "card";
    imageFit?: "cover" | "contain" | "fill";
    imagePosition?: string;
}
interface CardModeProps<T> extends BaseCarouselProps<T> {
    displayMode?: "card";
}
interface ImageModeProps<T> extends BaseCarouselProps<T> {
    displayMode: "image";
    imageFit?: "cover" | "contain" | "fill";
    imagePosition?: string;
}
type CarouselProps<T> = CardModeProps<T> | ImageModeProps<T>;
declare const ReactSpinCarousel3D: <T>({ data, renderItem, width, height, itemWidth, accentColor, backgroundColor, initialActiveIndex, isAutoPlay, autoPlayInterval, showRadioButtons, customRadioButtons, radioButtonStyle, containerStyle, itemStyle, onItemClick, displayMode, imageFit, imagePosition, }: CarouselProps<T>) => react_jsx_runtime.JSX.Element;

export { ReactSpinCarousel3D as default };
