import { RefObject } from 'react';
import type { ContextType } from 'react';
import { useUniformCenteredConfig } from '../shared/hooks';
import { StoreContext } from '../../../../services/store';
import { ISettings } from '../../../../types';
export { useUniformCenteredConfig };
export declare const useSpotlightLayout: ({ context: { widgetWidth, contentSize, isMobile, hideArrows }, config: { contentSize: carouselContentSize, itemCount, partialItemWidth: carouselPartialItemWidth, alwaysPartial, }, refs: { slideRef }, }: import("../shared/hooks").LayoutParams) => {
    constrainedWidgetWidth: number;
    isCompact: boolean;
    compactStyle: import("react").CSSProperties | undefined;
    carouselDimensions: import("../../../../hooks/useCarouselDimensions").CarouselDimensions;
    arrowSize: import("../../../../types").ArrowSize;
};
export declare const useSpotlightHeight: ({ refs: { outerRef }, config: { thumbnailShape, contentSize, itemCount }, layout: { isCompact, constrainedWidgetWidth, widgetWidth }, }: import("../shared/hooks").HeightParams) => {
    enforcedMinHeight: number;
};
type StoreStateUpdater = ContextType<typeof StoreContext>['setStoreState'];
interface NavigationParams {
    config: {
        itemCount: number;
        contentSize: ISettings['content_size'];
        cloneCount: number;
        contentSizeNotReached: boolean;
    };
    refs: {
        slideRef: RefObject<HTMLDivElement>;
        containerRef: RefObject<HTMLDivElement>;
    };
    state: {
        itemWidth: number;
        currentPosition?: number;
    };
    actions: {
        setStoreState: StoreStateUpdater;
    };
}
export declare const useSpotlightNavigation: ({ config: { itemCount, contentSize, cloneCount, contentSizeNotReached }, refs: { slideRef, containerRef }, state: { itemWidth, currentPosition }, actions: { setStoreState }, }: NavigationParams) => {
    getTranslateX: (index?: number) => number;
    goToSlide: (index: number, shouldUpdateCurrentPosition?: boolean) => void;
    activeIndex: number;
    isTransitioning: boolean;
    skipTransition: boolean;
    handleSlide: (direction: "left" | "right") => void;
};
