/// export interface ICarouselController { setState: React.Dispatch> | undefined; containerRef: React.RefObject | undefined; calc: ICalcTranslateX; isMultiTouch: boolean; onFetchMore: undefined | (() => void); isTranslated: boolean; activeIndex: number; itemsLength: number; onMouseDown: (event: any) => void | undefined; onMouseMove: (event: any) => void | undefined; onMouseUp: (event: any) => void | undefined; onTouchStart: (event: any) => void | undefined; onTouchMove: (event: any) => void | undefined; onTouchEnd: (event: any) => void | undefined; onIncreaseIndex: (event: any) => void | undefined; onDecreaseIndex: (event: any) => void | undefined; onSetIndex: (index: number) => void | undefined; } export interface ICarouselOpacityController extends ICarouselController { cast: ICastTranslateXToOpacity; opacity: number; activeItemRef: React.RefObject | undefined; } export interface ICalcTranslateX { isTranslated: boolean; translateX: number; isYScroll: boolean; onPointerDown: (pageX: number, pageY: number) => void | undefined; onPointerMove: (pageX: number, pageY: number, activeIndex: number, itemsLength: number) => void | undefined; onPointerUp: () => void | undefined; calcTranslateXOnMove: (pageX: number, activeIndex: number, itemsLength: number) => number; getStringifyToCssTranslateX: (activeIndex: number, translateX: number) => string; isIndexIncrease: () => boolean; isEnoughDist: () => boolean; getYScrollFunc: (pageX: number, pageY: number) => boolean; } export interface ICastTranslateXToOpacity { onPointerDown: () => void | undefined; calcOpacityByTranslateX: (translateX: number) => number; } export interface ICarouselState { activeIndex: number; } export interface ICarouselTranslateState extends ICarouselState { translateX: number; } export interface ICarouselOpacityState extends ICarouselState { opacity: number; }