import useEmblaCarousel, { type UseEmblaCarouselType } from "embla-carousel-react"; import * as React from "react"; type CarouselApi = NonNullable; type UseCarouselParameters = Parameters; type CarouselOptions = UseCarouselParameters[0]; type CarouselPlugin = UseCarouselParameters[1]; /** * Carousel configuration props. */ type CarouselProps = { /** * Embla carousel options forwarded to the underlying carousel instance. * @default undefined */ opts?: CarouselOptions; /** * Embla plugins applied to the carousel instance. * @default undefined */ plugins?: CarouselPlugin; /** * Axis orientation used for layout and keyboard navigation. This prop also * controls Embla's internal `axis` option (`"x"` for horizontal and `"y"` * for vertical). * @default "horizontal" */ orientation?: "horizontal" | "vertical"; /** * Callback invoked with the initialized Embla API instance. * @default undefined */ setApi?: (api: CarouselApi) => void; }; /** * Provides a compound carousel container powered by Embla. * * @remarks * - Renders a `
` element * - Built on `embla-carousel-react` * - Exposes context for content, items, and navigation controls * * @example * ```tsx * * * Slide 1 * Slide 2 * * * * * ``` * * @param props.opts - Embla options forwarded to the carousel instance. Common * options include `loop` for infinite scrolling, `align` for slide alignment, * `slidesToScroll` to control navigation increments, `dragFree` for momentum * dragging, `duration` for transition timing, and `startIndex` for the initial * slide. * @param props.plugins - Embla plugins applied to the carousel instance. * * @example With autoplay * ```tsx * import Autoplay from "embla-carousel-autoplay"; * * * ... * * ``` * * @param props.setApi - Optional callback for advanced Embla API access after * initialization, useful for custom controls, analytics, or external state * synchronization. * * @see {@link https://www.embla-carousel.com/get-started/react/ | Embla React Docs} */ declare const Carousel: React.ForwardRefExoticComponent & CarouselProps & React.RefAttributes>; /** * Renders the scrollable track that contains carousel slides. * * @remarks * - Renders nested `
` elements * - Built on Embla's viewport and track structure * * @example * ```tsx * * Slide * * ``` * * @see {@link https://www.embla-carousel.com/get-started/react/ | Embla React Docs} */ declare const CarouselContent: React.ForwardRefExoticComponent & React.RefAttributes>; /** * Renders an individual carousel slide. * * @remarks * - Renders a `
` element * - Built on the shared carousel context for orientation-aware styling * * @example * ```tsx * Slide content * ``` * * @see {@link https://www.embla-carousel.com/get-started/react/ | Embla React Docs} */ declare const CarouselItem: React.ForwardRefExoticComponent & React.RefAttributes>; /** * Renders the previous-slide navigation button. * * @remarks * - Renders the shared `