import { default as React } from 'react';
import { CarouselStylesNames, Carousel as MantineCarousel } from '@mantine/carousel';
import { EmblaCarouselType } from 'embla-carousel';
import { AutoplayOptionsType } from 'embla-carousel-autoplay';
import { SlideVideo } from './components/SlideVideo';
export type { SlideVideoInterface } from './components/SlideVideo';
export type { ControllerProps } from './components/Controller';
interface CarouselContextType {
    activeIndex: number;
    setActiveIndex: (index: number) => void;
    isRotating: () => void;
    play: () => void;
    stop: () => void;
    totalSlideTime?: number;
    getTimeUntilSlideFinished?: () => number | null;
    slideTimeOverrideIndexToTimeMsMap: Record<number, number>;
    setSlideTimeOverride: (slideIndex: number, timeInMs: number) => void;
    timeUntilSlideFinishedOverrideIndexToTimeMsMap: Record<number, {
        timeLeftInMs: number;
        lastUpdatedMsSinceEpoch: number;
    }>;
    setTimeUntilSlideFinishedOverride: (slideIndex: number, timeInMs: number) => void;
    onVideoPlay: (slideIndex: number) => void;
    onVideoPaused: (slideIndex: number) => void;
    onVideoEnded: (slideIndex: number) => void;
    isVideoSlidePlaying: Record<number, boolean>;
    isVideoSlide: boolean;
    /** Show a loading skeleton while loading */
    isLoading?: boolean;
    emblaApi?: EmblaCarouselType;
    withControls?: boolean;
}
export declare const useCarousel: () => CarouselContextType;
export interface CarouselProps extends React.ComponentProps<typeof MantineCarousel> {
    classNames?: Partial<Record<CarouselStylesNames | 'hpCarouselRoot', string>>;
    className?: string;
    childrenNotInCarousel?: React.ReactNode;
    autoplayOptions?: AutoplayOptionsType;
    /** Show a loading skeleton while loading */
    isLoading?: boolean;
}
declare const Carousel: {
    ({ classNames, children, className, childrenNotInCarousel, autoplayOptions, isLoading, withControls, ...props }: CarouselProps): import("react/jsx-runtime").JSX.Element;
    Slide: import('@mantine/core').MantineComponent<{
        props: import('@mantine/carousel/lib/CarouselSlide/CarouselSlide').CarouselSlideProps;
        ref: HTMLDivElement;
        stylesNames: import('@mantine/carousel/lib/CarouselSlide/CarouselSlide').CarouselSlideStylesNames;
        compound: true;
    }>;
    Controller: ({ itemsData, className, numItemsToShow: numItemsToShowInit, showItemLoadBar, classNames, ...props }: import('./components/Controller').ControllerProps) => import("react/jsx-runtime").JSX.Element;
    SlideVideo: typeof SlideVideo;
};
export default Carousel;
//# sourceMappingURL=index.d.ts.map