import { PointMoveT } from '../../_utils/types'; export interface EffectT { active: (slideIndex: number) => Promise; destroyed: () => void; } export interface EffectOptionT { activeClass?: string | { [k: string]: boolean; } | Array<{ [k: string]: boolean; } | string>; onTouchstart?: () => void; onTouchend?: () => void; onBeforeChange?: (from: number, to: number) => boolean | void; onChanged?: (from: number, to: number) => void; } export default abstract class Effect { total: number; currentIndex: number; activeClass?: string | { [k: string]: boolean; } | Array<{ [k: string]: boolean; } | string>; onTouchstart: (() => void) | undefined; onTouchend: (() => void) | undefined; onBeforeChange: ((to: number, from: number) => boolean | void) | undefined; onChanged: ((to: number, from: number) => void) | undefined; private isTouchStart; private containerEl; constructor(slideElList: HTMLElement[], slideContainer: HTMLElement, options?: EffectOptionT); abstract handleTouchStart(): void; abstract handleTouchMove(pos: PointMoveT, e: TouchEvent): void; abstract handleTouchEnd(pos: PointMoveT, e: TouchEvent): number | void; abstract active(toIndex: number, animate?: boolean, force?: boolean): Promise; abstract destroyed(): void; fixIndex(idx: number): number; handleTouch(): void; }