/**
 * Carousel Molecule Component
 *
 * Horizontal scrolling container with snap points, swipe gestures,
 * prev/next arrow buttons, and dot indicators.
 * Pure UI molecule with no entity binding.
 */
import React from 'react';
import type { EventEmit } from '@almadar/core';
export interface CarouselProps<T = Record<string, unknown>> {
    /** Array of items to display as slides */
    items: T[];
    /** Render function for each slide */
    renderItem?: (item: T, index: number) => React.ReactNode;
    /** Children-as-function fallback for renderItem (compiler compatibility) */
    children?: (item: T, index: number) => React.ReactNode;
    /** Enable auto-play rotation */
    autoPlay?: boolean;
    /** Auto-play interval in milliseconds (default: 5000) */
    autoPlayInterval?: number;
    /** Show dot indicators */
    showDots?: boolean;
    /** Show prev/next arrow buttons */
    showArrows?: boolean;
    /** Enable infinite loop */
    loop?: boolean;
    /** Declarative event name for slide change */
    slideChangeEvent?: EventEmit<{
        index: number;
    }>;
    /** Payload to include with the slide change event */
    slideChangePayload?: Record<string, unknown>;
    /** Additional CSS classes */
    className?: string;
}
export declare const Carousel: <T = Record<string, unknown>>({ items, renderItem, children, autoPlay, autoPlayInterval, showDots, showArrows, loop, slideChangeEvent, slideChangePayload, className, }: CarouselProps<T>) => React.ReactElement | null;
