import { PointMoveT } from '../../_utils/types';
import { default as Effect, EffectOptionT } from './effect';
export interface GalleryT {
    active: (slideIndex: number) => Promise<null | number>;
    loopRange: () => void;
    transformX: (value: number, animate: boolean) => Promise<null | number>;
}
export interface GalleryOptionT extends EffectOptionT {
    alignType?: 'center' | 'left';
    onChanged?: (from: number, to: number) => void;
}
export default class Gallery extends Effect {
    private container;
    private slideList;
    private alignType;
    private moveValue;
    private isChanging;
    private isSliding;
    private oldMoveValue;
    private destroyObserver;
    private resolveArr;
    constructor(slideElList: HTMLElement[], slideContainer: HTMLElement, activeIndex: number, options?: GalleryOptionT);
    update(slideElList: HTMLElement[], slideContainer: HTMLElement): void;
    handleTouchStart(): void;
    handleTouchMove(pos: PointMoveT, e: TouchEvent): void;
    handleTouchEnd(pos: PointMoveT): number;
    active(toIndex: number, animate?: boolean, force?: boolean): Promise<null | number>;
    loopRange(): void;
    transformX(value: number, animate?: boolean): Promise<null | number>;
    destroyed(): void;
}
