import { ReactNode } from 'react'; export interface ResponsiveConfig { xs?: string; mobile?: string; tablet?: string; desktop?: string; xl?: string; } export declare type ResponsiveConfigNoXs = Omit; export interface ArrowComponentProps { direction: 'left' | 'right'; onClick: () => void; disabled: boolean; } export interface DotComponentProps { active: boolean; onClick: () => void; index: number; } export interface CarouselComponentProps { items: ReactNode[]; options?: UseCarouselOptions; showArrows?: boolean; showDots?: boolean; arrowComponent?: React.ComponentType; dotComponent?: React.ComponentType; className?: string; } export interface CarouselItemProps { children: ReactNode; widthItemConfig?: ResponsiveConfig; maxWidthItemConfig?: ResponsiveConfig; className?: string; } export interface UseCarouselOptions { itemsPerPage?: number; onPageChange?: (page: number) => void; } export interface UseCarouselReturn { currentPage: number; totalPages: number; carouselRef: React.RefObject; isScrolling: boolean; handlePrevious: () => void; handleNext: () => void; scrollToPage: (page: number) => void; handleMouseDown: (e: React.MouseEvent) => void; handleMouseUp: (e: React.MouseEvent) => void; handleMouseLeave: (e: React.MouseEvent) => void; handleTouchStart: (e: React.TouchEvent) => void; handleTouchMove: (e: React.TouchEvent) => void; handleTouchEnd: () => void; }