/**
 * Copyright (c) Nicolas Gallagher
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *
 * @flow
 */
import type { ResponderConfig } from './ResponderSystem';
const emptyObject = {};
const responderConfigKeyName = '__reactResponderConfig';
declare function getEventPath(domEvent: any): Array<any>;
declare function composedPathFallback(target: any): Array<any>;
/**
 * Store the responder config on a host node
 */

declare export function setResponderConfig(node: EventTarget, config: ?ResponderConfig): any;
/**
 * Walk the paths and find the first common ancestor
 */

declare export function getLowestCommonAncestor(pathA: Array<any>, pathB: Array<any>): ?HTMLElement;
/**
 * Retrieve the responder configs from a host node
 */

declare export function getResponderConfig(node: EventTarget): ResponderConfig;
/**
 * Filter the event path to contain only the nodes attached to the responder system
 */

declare export function getResponderEventPath(domEvent: any): Array<HTMLElement>;
/**
 * Determine whether any of the active touches are within the current responder.
 * This cannot rely on W3C `targetTouches`, as neither IE11 nor Safari implement it.
 */

declare export function hasTargetTouches(target: any, touches: any): boolean;
/**
 * Events are only valid if the primary button was used without specific modifier keys.
 */

declare export function isPrimaryPointerDown(domEvent: any): boolean;