import type { IWindow } from '../interface';
import { EventManager } from './event-manager';
import { FederatedWheelEvent } from './federated-event';
import type { IElementLike, IEventTarget, RenderConfig } from '../interface/event';
export declare class EventSystem {
    private readonly globalObj;
    readonly manager: EventManager;
    readonly supportsTouchEvents: boolean;
    readonly supportsPointerEvents: boolean;
    readonly supportsMouseEvents: boolean;
    readonly applyStyles: boolean;
    autoPreventDefault: boolean;
    cursorStyles: Record<string, string | ((mode: string) => void) | CSSStyleDeclaration>;
    domElement: IElementLike | IWindow | null;
    resolution: number;
    private currentCursor;
    private rootPointerEvent;
    private rootWheelEvent;
    private eventsAdded;
    constructor(params: RenderConfig);
    release(): void;
    setCursor(mode: string, target: IEventTarget | null | 'ignore'): void;
    private onPointerDown;
    private onPointerMove;
    private onPointerUp;
    private onPointerOverOut;
    protected onWheel: (nativeEvent: WheelEvent) => void;
    setTargetElement(element: IElementLike | null): void;
    private addEvents;
    private removeEvents;
    private mapToViewportPoint;
    private mapToCanvasPoint;
    private normalizeToPointerData;
    protected normalizeWheelEvent(nativeEvent: WheelEvent): FederatedWheelEvent;
    private bootstrapEvent;
    private transferMouseData;
    private isEventOutsideOfTargetViewPort;
    private isEventOutsideOfTargetElement;
    pauseTriggerEvent(): void;
    resumeTriggerEvent(): void;
}
