import { CSSProperties, VNode } from 'vue'; import { LiteralUnion } from '../utils/type'; import { TransitionPresets, CubicBezierPoints, EasingFunction } from '@vueuse/core'; import { SpinProps } from '../spin'; export type EasingPreset = keyof typeof TransitionPresets; export interface Image { name?: string; src: string; link?: string; target?: '_self' | '_blank'; } export interface Props { images?: Image[]; width?: number | string; height?: number | string; autoplay?: boolean; pauseOnMouseEnter?: boolean; effect?: 'slide' | 'fade'; interval?: number; loop?: boolean; initialIndex?: number; currentIndex?: number; showArrow?: boolean; arrowColor?: string; arrowSize?: number; dots?: boolean; dotSize?: number; dotColor?: string; dotActiveColor?: string; dotStyle?: CSSProperties; dotActiveStyle?: CSSProperties; dotPosition?: 'bottom' | 'top' | 'left' | 'right'; dotTrigger?: 'click' | 'hover'; spinProps?: SpinProps; objectFit?: 'fill' | 'contain' | 'cover' | 'none' | 'scale-down'; draggable?: boolean; mousewheel?: boolean; fadeDuration?: number; fadeFunction?: string | [number, number, number, number]; slideDuration?: number; slideFunction?: LiteralUnion | CubicBezierPoints | EasingFunction; } export interface CarouselSlots { prevArrow?: (props: { prev: () => void; next: () => void; to: (n: number, dontAnimate?: boolean) => void; total: number; currentIndex: number; isPrevDisabled: boolean; isNextDisabled: boolean; }) => VNode[]; nextArrow?: (props: { prev: () => void; next: () => void; to: (n: number, dontAnimate?: boolean) => void; total: number; currentIndex: number; isPrevDisabled: boolean; isNextDisabled: boolean; }) => VNode[]; dots?: (props: { to: (n: number, dontAnimate?: boolean) => void; total: number; currentIndex: number; }) => VNode[]; } declare function to(n: number, dontAnimate?: boolean): void; declare function prev(): void; declare function next(): void; declare function getCurrentIndex(): number; declare function __VLS_template(): { attrs: Partial<{}>; slots: Readonly & CarouselSlots; refs: { carouselRef: HTMLDivElement; }; rootEl: HTMLDivElement; }; type __VLS_TemplateResult = ReturnType; declare const __VLS_component: import('vue').DefineComponent any; beforeChange: (from: number, to: number) => any; afterChange: (current: number) => any; "update:currentIndex": (currentIndex: number) => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ onClick?: ((image: Image) => any) | undefined; onBeforeChange?: ((from: number, to: number) => any) | undefined; onAfterChange?: ((current: number) => any) | undefined; "onUpdate:currentIndex"?: ((currentIndex: number) => any) | undefined; }>, { width: number | string; height: number | string; objectFit: "fill" | "contain" | "cover" | "none" | "scale-down"; showArrow: boolean; images: Image[]; autoplay: boolean; pauseOnMouseEnter: boolean; effect: "slide" | "fade"; interval: number; loop: boolean; initialIndex: number; arrowColor: string; arrowSize: number; dots: boolean; dotSize: number; dotColor: string; dotActiveColor: string; dotStyle: CSSProperties; dotActiveStyle: CSSProperties; dotPosition: "bottom" | "top" | "left" | "right"; dotTrigger: "click" | "hover"; spinProps: SpinProps; draggable: boolean; mousewheel: boolean; fadeDuration: number; fadeFunction: string | [number, number, number, number]; slideDuration: number; slideFunction: LiteralUnion | CubicBezierPoints | EasingFunction; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, { carouselRef: HTMLDivElement; }, HTMLDivElement>; declare const _default: __VLS_WithTemplateSlots; export default _default; type __VLS_WithTemplateSlots = T & { new (): { $slots: S; }; };