export interface ICarouselOptions { currentIndex: number; loadingClasses?: string | string[]; isAutoPlay?: boolean; speed?: number; isInfiniteLoop?: boolean; } export interface ICarousel { options?: ICarouselOptions; recalculateWidth(): void; goToPrev(): void; goToNext(): void; goTo(i: number): void; } export interface IBasePlugin { el: E; options?: O; events?: {}; } declare class HSBasePlugin implements IBasePlugin { el: E; options: O; events?: any; constructor(el: E, options: O, events?: any); createCollection(collection: any[], element: any): void; fireEvent(evt: string, payload?: any): any; on(evt: string, cb: Function): void; } export interface ICollectionItem { id: string | number; element: T; } declare class HSCarousel extends HSBasePlugin implements ICarousel { private readonly inner; private readonly slides; private readonly prev; private readonly next; private readonly dots; private sliderWidth; private currentIndex; private readonly loadingClasses; private readonly loadingClassesRemove; private readonly loadingClassesAdd; private readonly afterLoadingClassesAdd; private readonly isAutoPlay; private readonly speed; private readonly isInfiniteLoop; private timer; private readonly touchX; constructor(el: HTMLElement, options?: ICarouselOptions); private init; private observeResize; private calculateWidth; private addCurrentClass; private addDisabledClass; private autoPlay; private setTimer; private resetTimer; private detectDirection; recalculateWidth(): void; goToPrev(): void; goToNext(): void; goTo(i: number): void; static getInstance(target: HTMLElement | string, isInstance?: boolean): HSCarousel | ICollectionItem; static autoInit(): void; } export { HSCarousel as default, }; export {};