import { RefObject } from 'react'; import type { ContextType } from 'react'; import { StoreContext } from '../../../../services/store'; import { ISettings } from '../../../../types'; export interface LayoutParams { context: { widgetWidth: number; contentSize: ISettings['content_size']; isMobile: boolean; hideArrows: boolean; }; config: { contentSize: ISettings['content_size']; itemCount: number; partialItemWidth: number; alwaysPartial?: boolean; }; refs: { slideRef: RefObject; }; } export interface HeightParams { refs: { outerRef: RefObject; }; config: { thumbnailShape: ISettings['thumbnail_shape']; contentSize: ISettings['content_size']; itemCount: number; }; layout: { isCompact: boolean; constrainedWidgetWidth: number; widgetWidth: number; }; } type StoreStateUpdater = ContextType['setStoreState']; interface NavigationParams { config: { itemCount: number; contentSize: ISettings['content_size']; cloneCount: number; contentSizeNotReached: boolean; }; refs: { slideRef: RefObject; containerRef: RefObject; }; state: { itemWidth: number; currentPosition?: number; }; actions: { setStoreState: StoreStateUpdater; }; transitionDurationSec?: number; } /** * Decide whether the uniform carousel should use clones and partial visibility. * If there are fewer items than visible slots, disable cloning and partial positioning. */ export declare const useUniformCenteredConfig: (itemCount: number, contentSize: ISettings['content_size'], setStoreState: StoreStateUpdater) => { contentSizeNotReached: boolean; partialItemWidth: number; cloneCount: number; }; export declare const useCarouselLayout: ({ context: { widgetWidth, contentSize, isMobile, hideArrows }, config: { contentSize: carouselContentSize, itemCount, partialItemWidth: carouselPartialItemWidth, alwaysPartial, }, refs: { slideRef }, }: LayoutParams) => { constrainedWidgetWidth: number; isCompact: boolean; compactStyle: import("react").CSSProperties | undefined; carouselDimensions: import("../../../../hooks/useCarouselDimensions").CarouselDimensions; arrowSize: import("../../../../types").ArrowSize; }; export declare const useCarouselHeightConfig: ({ refs: { outerRef }, config: { thumbnailShape, contentSize, itemCount }, layout: { isCompact, constrainedWidgetWidth, widgetWidth }, }: HeightParams) => { enforcedMinHeight: number; }; export declare const useInfiniteNavigation: ({ config: { itemCount, contentSize, contentSizeNotReached }, refs: { containerRef }, state: { currentPosition }, actions: { setStoreState }, transitionDurationSec, }: NavigationParams) => { activeIndex: number; isTransitioning: boolean; skipTransition: boolean; handleSlide: (direction: 'left' | 'right') => void; goToSlide: (index: number, shouldUpdateCurrentPosition?: boolean) => void; }; export {};