import React from 'react'

declare enum VisibleWay {
  ALWAYS = 'always',
  HOVER = 'hover',
  NEVER = 'never',
}
declare enum Trigger {
  CLICK = 'click',
  HOVER = 'hover',
}
interface CarouselProps {
  className?: string
  autoplay?: boolean
  interval?: number
  vertical?: boolean
  arrowVisibleWay?: VisibleWay
  dotsTrigger?: Trigger
}
interface SliderProps {
  children: React.ReactNode
  vertical: boolean
  total: number
  activeIndex: number
  resetIndex: React.Dispatch<React.SetStateAction<number>>
  duration: number
}
interface ArrowProps {
  arrowVisible: boolean
  onClick: React.Dispatch<React.SetStateAction<number>>
}
interface DotsProps {
  dotsTrigger: Trigger
  vertical: boolean
  total: number
  activeIndex: number
  resetIndex: React.Dispatch<React.SetStateAction<number>>
}

declare const ReactCarousel: React.FC<CarouselProps>

export {
  ArrowProps,
  CarouselProps,
  DotsProps,
  ReactCarousel,
  SliderProps,
  Trigger,
  VisibleWay,
}
