import { type SwiperList } from './types'
import type { SwiperNavProps } from '../wd-swiper-nav/types'
declare function __VLS_template(): {
  indicator?(_: { current: number; total: number }): any
}
declare const __VLS_component: import('vue').DefineComponent<
  {
    autoplay: {
      type: BooleanConstructor
      default: boolean
    }
    current: {
      type: NumberConstructor
      default: number
    }
    direction: {
      type: import('vue').PropType<import('./types').DirectionType>
      default: import('./types').DirectionType
    }
    displayMultipleItems: {
      type: NumberConstructor
      default: number
    }
    duration: {
      type: NumberConstructor
      default: number
    }
    easingFunction: {
      type: import('vue').PropType<import('./types').EasingType>
      default: import('./types').EasingType
    }
    height: {
      type: (NumberConstructor | StringConstructor)[]
      default: string
    }
    imgWidth: {
      type: (NumberConstructor | StringConstructor)[]
      default: undefined
    }
    interval: {
      type: NumberConstructor
      default: number
    }
    list: {
      type: import('vue').PropType<SwiperList[] | string[]>
      default: () => never[]
    }
    loop: {
      type: BooleanConstructor
      default: boolean
    }
    nextMargin: {
      type: (NumberConstructor | StringConstructor)[]
      default: string
    }
    indicatorPosition: {
      type: import('vue').PropType<import('./types').IndicatorPositionType>
      default: import('./types').IndicatorPositionType
    }
    previousMargin: {
      type: (NumberConstructor | StringConstructor)[]
      default: string
    }
    snapToEdge: {
      type: BooleanConstructor
      default: boolean
    }
    indicator: {
      type: import('vue').PropType<boolean | Partial<SwiperNavProps>>
      default: boolean
    }
    imageMode: {
      type: import('vue').PropType<import('../wd-img/types').ImageMode>
      default: import('../wd-img/types').ImageMode
    }
    valueKey: {
      type: import('vue').PropType<string>
      default: string
    }
    customIndicatorClass: {
      type: import('vue').PropType<string>
      default: string
    }
    customImageClass: {
      type: import('vue').PropType<string>
      default: string
    }
    customPrevImageClass: {
      type: import('vue').PropType<string>
      default: string
    }
    customPrevImageHeight: {
      type: import('vue').PropType<number | string>
      default: undefined
    }
    customNextImageHeight: {
      type: import('vue').PropType<number | string>
      default: undefined
    }
    customPrevImageStyle: {
      type: import('vue').PropType<import('vue').CSSProperties>
    }
    customNextImageStyle: {
      type: import('vue').PropType<import('vue').CSSProperties>
    }
    customImageStyle: {
      type: import('vue').PropType<import('vue').CSSProperties>
      default: () => {}
    }
    customNextImageClass: {
      type: import('vue').PropType<string>
      default: string
    }
    itemPadding: {
      type: import('vue').PropType<string>
      default: string
    }
    imageRadius: {
      type: import('vue').PropType<string>
      default: string
    }
    radius: {
      type: import('vue').PropType<string>
      default: string
    }
    action: {
      type: BooleanConstructor
      default: boolean
    }
    indicatorCustomStyle: {
      type: import('vue').PropType<string>
      default: string
    }
    maskBgColor: {
      type: import('vue').PropType<string>
      default: string
    }
    customStyle: {
      type: import('vue').PropType<string>
      default: string
    }
    customClass: {
      type: import('vue').PropType<string>
      default: string
    }
  },
  {},
  unknown,
  {},
  {},
  import('vue').ComponentOptionsMixin,
  import('vue').ComponentOptionsMixin,
  {
    click: (...args: any[]) => void
    change: (...args: any[]) => void
    animationfinish: (...args: any[]) => void
    'update:current': (...args: any[]) => void
  },
  string,
  import('vue').PublicProps,
  Readonly<
    import('vue').ExtractPropTypes<{
      autoplay: {
        type: BooleanConstructor
        default: boolean
      }
      current: {
        type: NumberConstructor
        default: number
      }
      direction: {
        type: import('vue').PropType<import('./types').DirectionType>
        default: import('./types').DirectionType
      }
      displayMultipleItems: {
        type: NumberConstructor
        default: number
      }
      duration: {
        type: NumberConstructor
        default: number
      }
      easingFunction: {
        type: import('vue').PropType<import('./types').EasingType>
        default: import('./types').EasingType
      }
      height: {
        type: (NumberConstructor | StringConstructor)[]
        default: string
      }
      imgWidth: {
        type: (NumberConstructor | StringConstructor)[]
        default: undefined
      }
      interval: {
        type: NumberConstructor
        default: number
      }
      list: {
        type: import('vue').PropType<SwiperList[] | string[]>
        default: () => never[]
      }
      loop: {
        type: BooleanConstructor
        default: boolean
      }
      nextMargin: {
        type: (NumberConstructor | StringConstructor)[]
        default: string
      }
      indicatorPosition: {
        type: import('vue').PropType<import('./types').IndicatorPositionType>
        default: import('./types').IndicatorPositionType
      }
      previousMargin: {
        type: (NumberConstructor | StringConstructor)[]
        default: string
      }
      snapToEdge: {
        type: BooleanConstructor
        default: boolean
      }
      indicator: {
        type: import('vue').PropType<boolean | Partial<SwiperNavProps>>
        default: boolean
      }
      imageMode: {
        type: import('vue').PropType<import('../wd-img/types').ImageMode>
        default: import('../wd-img/types').ImageMode
      }
      valueKey: {
        type: import('vue').PropType<string>
        default: string
      }
      customIndicatorClass: {
        type: import('vue').PropType<string>
        default: string
      }
      customImageClass: {
        type: import('vue').PropType<string>
        default: string
      }
      customPrevImageClass: {
        type: import('vue').PropType<string>
        default: string
      }
      customPrevImageHeight: {
        type: import('vue').PropType<number | string>
        default: undefined
      }
      customNextImageHeight: {
        type: import('vue').PropType<number | string>
        default: undefined
      }
      customPrevImageStyle: {
        type: import('vue').PropType<import('vue').CSSProperties>
      }
      customNextImageStyle: {
        type: import('vue').PropType<import('vue').CSSProperties>
      }
      customImageStyle: {
        type: import('vue').PropType<import('vue').CSSProperties>
        default: () => {}
      }
      customNextImageClass: {
        type: import('vue').PropType<string>
        default: string
      }
      itemPadding: {
        type: import('vue').PropType<string>
        default: string
      }
      imageRadius: {
        type: import('vue').PropType<string>
        default: string
      }
      radius: {
        type: import('vue').PropType<string>
        default: string
      }
      action: {
        type: BooleanConstructor
        default: boolean
      }
      indicatorCustomStyle: {
        type: import('vue').PropType<string>
        default: string
      }
      maskBgColor: {
        type: import('vue').PropType<string>
        default: string
      }
      customStyle: {
        type: import('vue').PropType<string>
        default: string
      }
      customClass: {
        type: import('vue').PropType<string>
        default: string
      }
    }>
  > & {
    onChange?: ((...args: any[]) => any) | undefined
    onClick?: ((...args: any[]) => any) | undefined
    onAnimationfinish?: ((...args: any[]) => any) | undefined
    'onUpdate:current'?: ((...args: any[]) => any) | undefined
  },
  {
    duration: number
    customStyle: string
    customClass: string
    action: boolean
    current: number
    height: string | number
    valueKey: string
    direction: import('./types').DirectionType
    radius: string
    imgWidth: string | number
    imageMode: import('../wd-img/types').ImageMode
    indicatorPosition: import('./types').IndicatorPositionType
    autoplay: boolean
    displayMultipleItems: number
    easingFunction: import('./types').EasingType
    interval: number
    list: string[] | SwiperList[]
    loop: boolean
    nextMargin: string | number
    previousMargin: string | number
    snapToEdge: boolean
    indicator: boolean | Partial<SwiperNavProps>
    customIndicatorClass: string
    customImageClass: string
    customPrevImageClass: string
    customPrevImageHeight: string | number
    customNextImageHeight: string | number
    customImageStyle: import('vue').CSSProperties
    customNextImageClass: string
    itemPadding: string
    imageRadius: string
    indicatorCustomStyle: string
    maskBgColor: string
  },
  {}
>
declare const _default: __VLS_WithTemplateSlots<
  typeof __VLS_component,
  ReturnType<typeof __VLS_template>
>
export default _default
type __VLS_WithTemplateSlots<T, S> = T & {
  new (): {
    $slots: S
  }
}
