import type { Point } from '../point';
/** Checks if the passed event is {@link MouseEvent} */
export declare const isMouseEvent: (event: Event) => event is MouseEvent;
/** Checks if the passed event is {@link TouchEvent} */
export declare const isTouchEvent: (event: Event) => event is TouchEvent;
/** Checks if the passed event is {@link PointerEvent} */
export declare const isPointerEvent: (event: Event) => event is PointerEvent;
/**
 * @returns true if the passed event should be passive by default
 * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
 */
export declare const isPassiveByDefault: (event: string) => boolean;
/** Gets the original CustomEvent source in case event bubbles from Shadow DOM */
export declare const getCompositeTarget: (e: CustomEvent) => EventTarget | null;
/** @returns touch point coordinates of {@link TouchEvent} or {@link PointerEvent} */
export declare const getTouchPoint: (event: TouchEvent | PointerEvent | MouseEvent) => Point;
/** @returns element offset point coordinates */
export declare const getOffsetPoint: (el: Element) => Point;
/**
 * Dispatches custom event.
 * Event bubbles and is cancelable by default, use `eventInit` to override that.
 * @param el - EventTarget to dispatch event
 * @param eventName - name of the event to dispatch
 * @param eventInit - object that specifies characteristics of the event. See {@link CustomEventInit}
 */
export declare const dispatchCustomEvent: (el: EventTarget, eventName: string, eventInit?: CustomEventInit) => boolean;
/**
 * Overrides {@link Event} `target` property
 * @param event - {@link Event} to override
 * @param key - {@link Event} property
 * @param target - {@link EventTarget} to setup
 * @returns original event
 */
export declare const overrideEvent: (event: Event, key: keyof Event, target: null | EventTarget | (() => null | EventTarget)) => Event;
