import { default as Column } from '../../core/column/Column';
import { default as Module } from '../../core/Module';
import { default as Tabulator } from '../../core/Tabulator';

export default class MoveColumns extends Module {
    static moduleName: string;
    placeholderElement: HTMLElement;
    hoverElement: HTMLElement | false;
    checkTimeout: ReturnType<typeof setTimeout> | false;
    checkPeriod: number;
    moving: Column | false;
    toCol: Column | false;
    toColAfter: boolean;
    startX: number;
    autoScrollMargin: number;
    autoScrollStep: number;
    autoScrollTimeout: ReturnType<typeof setTimeout> | false;
    touchMove: boolean;
    constructor(table: Tabulator);
    createPlaceholderElement(): HTMLElement;
    initialize(): void;
    abortMove(): void;
    initializeColumn(column: Column): void;
    bindTouchEvents(column: Column): void;
    startMove(e: MouseEvent | TouchEvent, column: Column): void;
    _bindMouseMove(): void;
    _unbindMouseMove(): void;
    moveColumn(column: Column, after: boolean): void;
    endMove(e: MouseEvent | TouchEvent): void;
    moveHover(e: MouseEvent | TouchEvent): void;
}
