/// import { SpringConfig, TransitionFrom, TransitionTo } from 'react-spring'; export declare type ReactSpringThumbItem = { id: string; renderThumb: React.ReactNode; }; export declare type ReactSpringCarouselItem = { id: string; renderItem: React.ReactNode; renderThumb?: React.ReactNode; }; declare type BaseCarouselSharedProps = { withLoop?: boolean; withThumbs?: boolean; disableGestures?: boolean; enableThumbsWrapperScroll?: boolean; draggingSlideTreshold?: number; prepareThumbsData?: PrepareThumbsData; springConfig?: SpringConfig; items: ReactSpringCarouselItem[]; thumbsSlideAxis?: 'x' | 'y'; }; export declare type UseSpringCarouselProps = BaseCarouselSharedProps & { shouldResizeOnWindowResize?: boolean; carouselSlideAxis?: 'x' | 'y'; thumbsWrapperRef?: React.MutableRefObject; itemsPerSlide?: number; initialActiveItem?: number; initialStartingPosition?: 'start' | 'center' | 'end'; }; export declare type PrepareThumbsData = (items: ReactSpringThumbItem[]) => ReactSpringThumbItem[]; export declare type SlideToItemFnProps = { from?: number; to: number; newIndex?: number; immediate?: boolean; onRest?(): void; }; export declare type SpringAnimationProps = { initial: TransitionFrom; from: TransitionFrom; enter: TransitionTo; leave: TransitionTo; }; export declare type UseTransitionCarouselProps = BaseCarouselSharedProps & { toPrevItemSpringProps?: SpringAnimationProps; toNextItemSpringProps?: SpringAnimationProps; springAnimationProps?: SpringAnimationProps; }; declare type BaseContextSharedProps = { getIsFullscreen(): boolean; getIsPrevItem(id: string): boolean; getIsNextItem(id: string): boolean; enterFullscreen(elementRef?: HTMLElement): void; exitFullscreen(): void; slideToNextItem(): void; slideToPrevItem(): void; getIsAnimating(): boolean; slideToItem(item: string | number): void; getIsActiveItem(id: string): boolean; getCurrentActiveItem(): { id: string; index: number; }; useListenToCustomEvent: UseListenToCustomEvent; }; export declare type UseSpringCarouselContextProps = BaseContextSharedProps & { getIsDragging(): boolean; }; export declare type UseTransitionCarouselContextProps = BaseContextSharedProps & { activeItem: number; }; import { FullGestureState } from '@use-gesture/react'; export declare type SlideActionType = 'prev' | 'next'; declare type OnSlideStartChange = { eventName: 'onSlideStartChange'; nextItem: number; slideActionType: SlideActionType; }; declare type OnSlideChange = { eventName: 'onSlideChange'; currentItem: number; slideActionType: SlideActionType; }; declare type OnDrag = Omit, 'event'> & { eventName: 'onDrag'; }; declare type OnFullscreenChange = { eventName: 'onFullscreenChange'; isFullscreen: boolean; }; declare type OnLeftSwipe = { eventName: 'onLeftSwipe'; }; declare type OnRightSwipe = { eventName: 'onRightSwipe'; }; export declare type EmitObservableFn = (data: OnSlideStartChange | OnSlideChange | OnDrag | OnFullscreenChange | OnLeftSwipe | OnRightSwipe) => void; export declare type EventsObservableProps = OnSlideStartChange | OnSlideChange | OnDrag | OnFullscreenChange | OnLeftSwipe | OnRightSwipe; export declare type ObservableCallbackFn = (data: EventsObservableProps) => void; export declare type UseListenToCustomEvent = (fn: ObservableCallbackFn) => void; export {};