///
import { StateKey, State, Fn, ReactEventHandlers, InternalConfig, InternalHandlers, RecognizerClass } from './types';
/**
* The controller will keep track of the state for all gestures and also keep
* track of timeouts, and window listeners.
*/
export default class Controller {
private classes;
nativeRefs: any;
config: InternalConfig;
handlers: InternalHandlers;
state: State;
timeouts: {
[stateKey in StateKey]?: number;
};
domListeners: [string, Fn][];
windowListeners: {
[stateKey in StateKey]?: [string, Function][];
};
pointerIds: Set;
touchIds: Set;
supportsTouchEvents: boolean;
supportsGestureEvents: boolean;
constructor(classes: Set);
bind: (...args: any[]) => void | ReactEventHandlers;
effect: () => () => void;
/**
* Function ran on component unmount: cleans timeouts and removes dom listeners set by the bind function.
*/
clean: () => void;
}
export declare function addEventIds(controller: Controller, event: React.TouchEvent | TouchEvent | React.PointerEvent | PointerEvent): void;
export declare function removeEventIds(controller: Controller, event: React.TouchEvent | TouchEvent | React.PointerEvent | PointerEvent): void;
export declare function clearAllWindowListeners(controller: Controller): void;
export declare function clearWindowListeners({ config, windowListeners }: Controller, stateKey: StateKey, options?: {
capture?: boolean | undefined;
passive?: boolean | undefined;
}): void;
export declare function updateWindowListeners({ config, windowListeners }: Controller, stateKey: StateKey, listeners?: [string, Fn][], options?: {
capture?: boolean | undefined;
passive?: boolean | undefined;
}): void;
/**
* bindings is an object which keys match ReactEventHandlerKeys.
* Since a recognizer might want to bind a handler function to an event key already used by a previously
* added recognizer, we need to make sure that each event key is an array of all the functions mapped for
* that key.
*/
export declare function addBindings(bindings: any, name: string, fn: Fn): void;