import React from 'react'; interface DataTest { wrapper?: string; nextNav?: string; prevNav?: string; } export interface CarouselProps { /** * To append something maybe like "lihat semua promo" or other things */ append?: React.ReactNode; /** * To enables Autoplay */ autoPlay?: number; /** * To pass custom styles */ className?: string; /** * To add something for testing needs */ dataTestId?: DataTest; /** * To specify a gap between slides */ gutter?: number; /** * To enable activeScale on slides */ inactiveScale?: number; /** * To specify index active on slides */ initialIndex?: number; /** * To enable infinite scroll */ infinite?: boolean; /** * To specify content on Carousel */ items?: Array; /** * To pass custom styles for the next button */ nextClass?: string; /** * To pass custom styles for items on the PageControl */ pagingItemClass?: string; /** * To pass custom styles for wrapper on the PageControl */ pagingWrapClass?: string; /** * To specify peekLeft width */ peekLeft?: number | string; /** * To specify peekRight width */ peekRight?: number | string; /** * To pass custom styles for the previous button */ prevClass?: string; /** * To enable the Navigation Button (Next Button and Previous Button) */ showNav?: boolean; /** * To enable the PageControl */ showPaging?: boolean; /** * To specify slide animation speed */ slideSpeed?: number; /** * To specify number of slides to scroll */ slidesToScroll?: number; /** * To specify number of slides to show */ slidesToShow?: number; /** * To specify the Carousel design */ theme?: 'default' | 'os' | 'pdp' | 'none'; /** * To pass callback function when running `autoPlay` */ onAuto?: (newValue: number, newValue2: Array) => void; /** * To pass callback function when the next button clicked */ onNext?: (e: React.MouseEvent | KeyboardEvent, newValue: number, newValue2: Array) => void; /** * To pass callback function when the pagingItem clicked */ onPageClick?: (e: React.MouseEvent, newValue: number) => void; /** * To pass callback function when the previous button clicked */ onPrev?: (e: React.MouseEvent | KeyboardEvent, newValue: number, newValue2: Array) => void; } export interface NavButtonProps { customClass: string; dataTestId?: string; disabled: boolean; peekLeft?: number | string; peekRight?: number | string; right?: boolean; setRef: React.MutableRefObject; theme: NonNullable; onClick: (e: React.MouseEvent) => void; onKeyDown?: (e: React.KeyboardEvent) => void; } export interface WrapButtonProps { peek: number | string; direction: 'right' | 'left'; disabled: boolean; } export interface ThemeProps { theme: NonNullable; } export interface InnerWrapperProps { gutter: number; } export interface MediaCarouselProps { peekLeft: number | string; peekRight: number | string; } export interface MediaSlideProps { gutter: number; slidesToShow: number; } export interface MediaSlideInnerProps { isActive: boolean; inactiveScale: number; } export {};