import { InjectionKey, Ref } from 'vue'; import { EmblaOptionsType, EmblaCarouselType, EmblaPluginType } from 'embla-carousel'; import { default as Carousel } from './carousel.vue'; export interface CarouselProps { opts?: EmblaOptionsType; plugins?: EmblaPluginType[]; orientation?: 'horizontal' | 'vertical'; verticalHeight?: string | number; itemWidth?: number; ariaLabel?: string; dataTest?: string; } export interface CarouselEmits { (e: 'init', api: EmblaCarouselType): void; (e: 'reInit', api: EmblaCarouselType): void; (e: 'destroy', api: EmblaCarouselType): void; (e: 'select', api: EmblaCarouselType): void; (e: 'scroll', api: EmblaCarouselType): void; (e: 'settle', api: EmblaCarouselType): void; (e: 'resize', api: EmblaCarouselType): void; (e: 'slidesChanged', api: EmblaCarouselType): void; (e: 'pointerDown', api: EmblaCarouselType): void; (e: 'pointerUp', api: EmblaCarouselType): void; } export type CarouselContext = { carouselRef: Ref; api: Ref; scrollPrev: () => void; scrollNext: () => void; canScrollPrev: Ref; canScrollNext: Ref; orientation: 'horizontal' | 'vertical'; selectedIndex: Ref; scrollSnaps: Ref; scrollTo: (index: number) => void; }; export declare const CAROUSEL_INJECTION_KEY: InjectionKey; export type CarouselInstance = InstanceType;