import { Options } from './Options';
import { EventKeyMap, SlideEvent } from './Event';
declare class Carousel {
    private styleKey;
    private rootElement;
    private frameElement;
    private itemsElement;
    private options;
    /**
     * [-items[n].x, -items[n-1].x,..., -items[0].x]
     */
    private grid;
    private touchingInfo;
    private itemsX;
    private inertiaCurrentVelocity;
    private inertiaTimerId;
    private touchEventListenerOption;
    private eventEmitter;
    constructor(element: Element, options: Options);
    get hasNext(): boolean;
    get hasPrev(): boolean;
    destroy(): void;
    reset(): void;
    next(): void;
    prev(): void;
    on<K extends keyof EventKeyMap>(type: K, listener: (e: EventKeyMap[K]) => void): Carousel;
    private emit;
    private nextGridIndex;
    private prevGridIndex;
    private initializeGrid;
    private moveFrameTo;
    private onTransitionEnd;
    private onTouchStart;
    private onTouchMove;
    private onTouchEnd;
    /**
     *         => acc[px/ms^2]
     * |--------------|
     * |  .ccc-items  | -> initialVelocity[px/ms]
     * |--------------|
     * ----------------------------------------------> X
     * ↑this.itemsX[px]
     */
    private startInertiaMove;
    private stopInertiaMove;
    private getNearestGridX;
    private abs;
    private onWindowResize;
}
export default Carousel;
export { Options, SlideEvent };
