import { IThemeInterface } from "v8-theme-interfaces/lib/theme.interfaces";
export interface ICarouselProps {
    autoSlideTime?: number;
    infiniteLoop?: boolean;
    slidesPerClick?: number;
    activeSlideCount?: number;
    disableCarousel?: boolean;
    initialActiveViewport?: IActiveViewPort;
    hideButtons?: IHideButtons;
    animatedTransitions?: boolean;
    children?: any;
    columnGap?: number | IColumnGap;
    dragThreshold?: number;
    hidePreviousButton?: boolean;
    initialPosition?: number;
    minHeight?: number;
    previewScaleFactor?: number;
    rowSize?: number | IRowSize;
    showArrowsOnMobile?: boolean;
    pagination?: IPagination;
    showPreviews?: IShowPreviews;
    slideTimeout?: number;
    stepSize?: number | IStepSize;
    isProductGrid?: boolean;
    smallCarouselItemCount?: number;
    navigationButtonSize?: INavigationButtonSize;
    disableTrackLoop?: boolean | IDisableTrackLoop;
    carouselHeight: string;
}
export interface ICarouselState {
    currentElementIndex: number;
    activeViewport: IActiveViewPort;
    shouldAnimate: boolean;
    carouselEnabled: boolean;
    carouselPosition: number;
    activeSlideCount: number;
}
export interface IShowPreviews {
    desktop?: boolean;
    mobile?: boolean;
    tablet?: boolean;
}
export interface IDisableTrackLoop {
    desktop?: boolean;
    mobile?: boolean;
    tablet?: boolean;
}
export interface IPagination {
    desktop?: boolean;
    mobile?: boolean;
    tablet?: boolean;
}
export interface IHideButtons {
    desktop?: boolean;
    mobile?: boolean;
    tablet?: boolean;
}
export interface IStepSize {
    desktop?: number;
    mobile?: number;
    tablet?: number;
}
export interface IRowSize {
    desktop?: number;
    mobile?: number;
    tablet?: number;
}
export interface INavigationButtonSize {
    width?: number;
    height?: number;
    iconSize?: string;
}
export interface IColumnGap {
    desktop?: number;
    mobile?: number;
    tablet?: number;
}
export declare type ISanitizeResponsiveConfigArgs = number | boolean | null | undefined | IRowSize | IStepSize;
export interface ISanitizeResponsiveConfigResult {
    desktop: number;
    mobile: number;
    tablet: number;
}
export declare type ISanitizeResponsiveConfigBooleanArgs = boolean | null | undefined | IShowPreviews | IPagination | IDisableTrackLoop;
export interface ISanitizeResponsiveConfigBooleanResult {
    desktop: boolean;
    mobile: boolean;
    tablet: boolean;
}
export declare type sanitizedValuesProps = IRowSize | IStepSize | IShowPreviews | IPagination | IDisableTrackLoop;
export declare type IActiveViewPort = "desktop" | "tablet" | "mobile";
export interface ICarouselWrapperStyledProps {
    theme: IThemeInterface;
}
