import { DependencyList, KeyboardEventHandler, ReactEventHandler, RefObject, UIEventHandler } from 'react';
import { TargetZoneOffsets } from '../../utils/layout';
import { Pages } from '../paging/usePages';
import { CarouselTileResult } from './useCarouselTile';
export interface CarouselHookProps {
    selected: number;
    onSelect: (nextSelected: number) => void;
    numTiles: number;
}
export interface CarouselResult {
    props: {
        arrow: {
            left: {
                left: boolean;
                hide: boolean;
                disabled: boolean;
                onClick: () => void;
                onKeyDown: KeyboardEventHandler;
            };
            right: {
                right: boolean;
                hide: boolean;
                disabled: boolean;
                onClick: () => void;
                onKeyDown: KeyboardEventHandler;
            };
        };
        list: {
            onKeyDown: KeyboardEventHandler;
            onScroll: UIEventHandler;
            onLoad: ReactEventHandler;
            targetZoneOffset: TargetZoneOffsets;
        };
        tile: CarouselTileResult;
    };
    pages: Pages;
}
declare type useCarousel = (containerRef: RefObject<HTMLElement>, hookProps: CarouselHookProps, layoutDeps: DependencyList) => CarouselResult;
export declare const useCarousel: useCarousel;
export {};
