/**
 * @typedef {object} TouchGestureEvent
 * @prop {"touchgesture"} type
 * @prop {"move" | "end"} phase
 * @prop {1 | 2} pointerCount
 * @prop {number} xDelta
 * @prop {number} yDelta
 * @prop {number} zDelta
 * @prop {() => void} [preventDefault]
 */
/**
 * Side-effect-free query event for wheel ownership. Handlers should only
 * claim wheel if they would consume native wheel at the current pointer
 * location.
 *
 * @typedef {object} WheelClaimProbeEvent
 * @prop {"wheelclaimprobe"} type
 */
/**
 * @typedef {Pick<
 *      WheelEvent,
 *      "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey"
 * >} WheelLikeEvent
 */
/**
 * @typedef {UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
 */
/**
 * @param {unknown} eventLike
 * @returns {eventLike is TouchGestureEvent}
 */
export function isTouchGestureEvent(eventLike: unknown): eventLike is TouchGestureEvent;
/**
 * @param {unknown} eventLike
 * @returns {eventLike is WheelLikeEvent}
 */
export function isWheelEvent(eventLike: unknown): eventLike is WheelLikeEvent;
/**
 * @param {WheelLikeEvent} wheelEvent
 * @param {number} deltaX
 * @param {number} deltaY
 * @returns {WheelLikeEvent}
 */
export function overrideWheelEventDeltas(wheelEvent: WheelLikeEvent, deltaX: number, deltaY: number): WheelLikeEvent;
/**
 * Create a safe proxy for an event-like object that exposes only primitive
 * (string, number, boolean, bigint, symbol, undefined) properties and null.
 *
 * @param {T} target The event-like object to wrap.
 * @returns {T} A proxy exposing only primitive properties.
 * @template T
 */
export function createPrimitiveEventProxy<T>(target: T): T;
export type TouchGestureEvent = {
    type: "touchgesture";
    phase: "move" | "end";
    pointerCount: 1 | 2;
    xDelta: number;
    yDelta: number;
    zDelta: number;
    preventDefault?: () => void;
};
/**
 * Side-effect-free query event for wheel ownership. Handlers should only
 * claim wheel if they would consume native wheel at the current pointer
 * location.
 */
export type WheelClaimProbeEvent = {
    type: "wheelclaimprobe";
};
export type WheelLikeEvent = Pick<WheelEvent, "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey">;
export type InteractionUiEvent = UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent;
//# sourceMappingURL=interactionEvent.d.ts.map