import { Canvas, type FederatedPointerEvent as CanvasEvent, type PointLike } from '@antv/g';
import type { EmitterType } from '../common/interface';
import type { SpreadSheet } from '../sheet-type';
interface EventListener {
    target: EventTarget;
    type: string;
    handler: EventListenerOrEventListenerObject;
    options?: AddEventListenerOptions | boolean;
}
interface S2EventHandler {
    type: `${keyof EmitterType}`;
    handler: EmitterType[keyof EmitterType];
}
interface EventHandler {
    type: string;
    handler: (event: CanvasEvent) => void;
}
export declare class EventController {
    spreadsheet: SpreadSheet;
    private target;
    canvasEventHandlers: EventHandler[];
    s2EventHandlers: S2EventHandler[];
    domEventListeners: EventListener[];
    isCanvasEffect: boolean;
    canvasMousemoveEvent: CanvasEvent;
    private onScroll;
    constructor(spreadsheet: SpreadSheet);
    get canvasContainer(): Canvas;
    isAutoResetSheetStyle(event: Event | CanvasEvent): boolean | undefined;
    bindEvents(): void;
    private isGuiIconShape;
    private isConditionIconShape;
    private onKeyboardCopy;
    private onKeyboardEsc;
    private resetSheetStyle;
    private isMouseEvent;
    isMatchElement(event: MouseEvent): boolean;
    isMatchPoint(event: MouseEvent): boolean;
    private isMouseOnTheCanvasContainer;
    private getContainerRect;
    private isMouseOnTheTooltip;
    private isResizeArea;
    private activeResizeArea;
    private resetResizeArea;
    private onCanvasMousedown;
    private onCanvasMousemove;
    private hasBrushSelectionIntercepts;
    private onCanvasMouseup;
    private onCanvasSingleClick;
    private onCanvasClick;
    private onCanvasMouseout;
    private onCanvasContextMenu;
    clear(): void;
    private unbindEvents;
    private addCanvasEvent;
    private addS2Event;
    private addDomEventListener;
    clearAllEvents(): void;
    getViewportPoint(event: MouseEvent | PointerEvent | CanvasEvent): PointLike;
}
export {};
