import { RefObject, UIEvent } from 'react';
import type { ContextType } from 'react';
import { StoreContext } from '../../../../services/store';
import type { IWidgetEvents } from '../../../../types/events';
type StoreStateUpdater = ContextType<typeof StoreContext>['setStoreState'];
interface MobileScrollSyncParams {
    scrollContainerRef: RefObject<HTMLDivElement>;
    itemCount: number;
    cloneCount: number;
    visibleContentSize: number;
    setStoreState: StoreStateUpdater;
    triggerEvent: IWidgetEvents['triggerEvent'];
    widgetId: string;
}
/**
 * Calculate item width and shoulder visibility for a mobile carousel.
 * - 1 item is centered and uses 83.33% width so the remaining space acts as shoulders.
 * - 2+ items use 90% total width for items, with 5% shoulder padding on each side.
 */
export declare const useMobileCarouselDimensions: (visibleContentSize: number) => {
    itemWidthPercentage: number;
    shoulderPercentage: number;
};
/**
 * Handles scroll synchronization, position tracking, and infinite loop wrapping
 */
export declare const useMobileScrollSync: ({ scrollContainerRef, itemCount, cloneCount, visibleContentSize, setStoreState, triggerEvent, widgetId, }: MobileScrollSyncParams) => {
    activeIndex: number;
    handleScroll: (event: UIEvent<HTMLDivElement>) => void;
    isWrappingRef: import("react").MutableRefObject<boolean>;
};
export {};
