import type { FederatedPointerEvent, Gesture, IEventTarget } from './../vrender';
import type { CellInfo, CellRange } from '../ts-types';
import type { BaseTableAPI } from '../ts-types/base-table';
import { type SceneEvent } from './util';
import { InertiaScroll } from './scroll';
export declare class EventManager {
    table: BaseTableAPI;
    isTouchdown: boolean;
    isTouchMove: boolean;
    touchMovePoints: {
        x: number;
        y: number;
        timestamp: number;
    }[];
    touchSetTimeout: any;
    touchEnd: boolean;
    isLongTouch: boolean;
    gesture: Gesture;
    handleTextStickBindId: number[];
    LastPointerXY: {
        x: number;
        y: number;
    };
    LastBodyPointerXY: {
        x: number;
        y: number;
    };
    isDown: boolean;
    isDraging: boolean;
    scrollYSpeed: number;
    scrollXSpeed: number;
    downIcon: IEventTarget;
    globalEventListeners: {
        name: string;
        env: 'document' | 'body' | 'window' | 'vglobal';
        callback: (e?: any) => void;
    }[];
    inertiaScroll: InertiaScroll;
    bindSparklineHoverEvent: boolean;
    _enableTableScroll: boolean;
    cutWaitPaste: boolean;
    private clipboardCheckTimer;
    private cutOperationTime;
    lastClipboardContent: string;
    cutCellRange: CellInfo[][] | null;
    cutRanges: CellRange[] | null;
    copySourceRange: {
        startCol: number;
        startRow: number;
    } | null;
    constructor(table: BaseTableAPI);
    bindOuterEvent(): void;
    updateEventBinder(): void;
    bindSelfEvent(): void;
    dealTableHover(eventArgsSet?: SceneEvent): void;
    dealIconHover(eventArgsSet: SceneEvent): void;
    dealMenuHover(eventArgsSet: SceneEvent): void;
    dealTableSelect(eventArgsSet?: SceneEvent, isSelectMoving?: boolean): boolean;
    dealFillSelect(eventArgsSet?: SceneEvent, isSelectMoving?: boolean): boolean;
    deelTableSelectAll(): void;
    dealMenuSelect(eventArgsSet: SceneEvent): void;
    checkColumnResize(eventArgsSet: SceneEvent, update?: boolean): boolean;
    checkRowResize(eventArgsSet: SceneEvent, update?: boolean): boolean;
    cellIsHeaderCheck(eventArgsSet: SceneEvent, update?: boolean): boolean;
    checkCellFillhandle(eventArgsSet: SceneEvent, update?: boolean): boolean;
    dealColumnResize(xInTable: number, yInTable: number): void;
    dealRowResize(xInTable: number, yInTable: number): void;
    checkColumnMover(eventArgsSet: SceneEvent): boolean;
    dealColumnMover(x: number, y: number, event: MouseEvent | PointerEvent | TouchEvent): void;
    startColumnResize(eventArgsSet: SceneEvent): void;
    dealIconClick(e: FederatedPointerEvent, eventArgsSet: SceneEvent): boolean;
    release(): void;
    enableScroll(): void;
    disableScroll(): void;
    handleCopy(e: KeyboardEvent, isCut?: boolean): Promise<void>;
    private fallbackCopyToClipboard;
    handleCut(e: KeyboardEvent): Promise<void>;
    handlePaste(e: KeyboardEvent): void;
    private executePaste;
    private fallbackPasteFromClipboard;
    private processPastedText;
    private clearCutArea;
    private checkClipboardChanged;
    private saveClipboardContent;
    private pasteHtmlToTable;
    private _pasteValue;
    private pasteTextToTable;
    private parsePastedData;
    private processCellValue;
    private handlePasteValues;
}
