import type { InjectionKey, Ref } from 'vue';
import type { CarouselItemProps } from 'hongluan-ui/es/components/carousel';
export declare type CarouselItemStates = {
    hover: boolean;
    translate: number;
    scale: number;
    active: boolean;
    ready: boolean;
    inStage: boolean;
    animating: boolean;
};
export declare type CarouselItemContext = {
    props: CarouselItemProps;
    states: CarouselItemStates;
    uid: number;
    translateItem: (index: number, activeIndex: number, oldIndex?: number, distance?: number, isAnimating?: boolean) => void;
};
export declare type CarouselContext = {
    root: Ref<HTMLElement | undefined>;
    direction: string;
    type: string;
    showMultiple: Ref<boolean>;
    itemsWidth: string | number;
    itemsWidthUnit: string;
    items: Ref<CarouselItemContext[]>;
    loop: boolean;
    addItem: (item: CarouselItemContext) => void;
    removeItem: (uid: number) => void;
    setActiveItem: (index: number) => void;
};
export declare type CarouselIndicatorContext = {
    activeIndex: Ref<number>;
    handleIndicatorClick: (index: number) => void;
    throttledIndicatorHover: (index: number) => void;
};
export declare const carouselContextKey: InjectionKey<CarouselContext>;
export declare const carouselIndicatorContextKey: InjectionKey<CarouselIndicatorContext>;
