import { Dispatch, ReactNode, SetStateAction } from 'react';
import { InferComponentProps } from './types.js';
declare const ColumnCarouselContainer: import("styled-components/dist/types.js").IStyledComponentBase<"web", import("styled-components").FastOmit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
type ColumnCarouselProviderProps = {
    children: ReactNode;
    activeColumns?: number;
    totalColumns: number;
};
export declare const ColumnCarouselProvider: ({ totalColumns, activeColumns, children, }: ColumnCarouselProviderProps) => import("react/jsx-runtime").JSX.Element;
export declare const useColumnCarouselContext: () => {
    /** @private */
    currentColumnIndex: number;
    /** @private */
    setCurrentColumnIndex: Dispatch<SetStateAction<number>>;
    cycle: () => void;
    goForward: () => void;
    goBackward: () => void;
    goToIndex: (_index: number) => void;
    activeColumns: number;
    totalColumns: number;
    canCycle: boolean;
};
type ColumnCarouselProps = {
    children: ReactNode[];
} & InferComponentProps<typeof ColumnCarouselContainer>;
/**
 * ColumnCarousel is used to display a subset of children at a time, cycling through them.  This is different from a
 * typical carousel in that there can be multiple carousels on the page each synced to the same column index.
 * Essentially this is multiple carousels controlled by a single provider.
 */
export declare const ColumnCarousel: ({ children, ...props }: ColumnCarouselProps) => import("react/jsx-runtime").JSX.Element;
export {};
