import type { HTMLAttributes, UnwrapRef } from 'vue' import type useEmblaCarousel from 'embla-carousel-vue' import type { EmblaCarouselVueType } from 'embla-carousel-vue' export type CarouselApi = EmblaCarouselVueType[1] type UseCarouselParameters = Parameters type CarouselOptions = UseCarouselParameters[0] type CarouselPlugin = UseCarouselParameters[1] export type UnwrapRefCarouselApi = UnwrapRef export interface CarouselProps { opts?: CarouselOptions plugins?: CarouselPlugin orientation?: 'horizontal' | 'vertical' } export interface CarouselEmits { (e: 'init-api', payload: UnwrapRefCarouselApi): void } export interface WithClassAsProps { class?: HTMLAttributes['class'] }