import { dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction } from '@use-gesture/core/actions' import { GestureHandlers, UserGestureConfig, EventTypes, AnyHandlerEventTypes } from '@use-gesture/core/types' import { createUseGesture } from './createUseGesture' /** * @public * * The most complete gesture hook, allowing support for multiple gestures. * * @param {GestureHandlers} handlers - an object with on[Gesture] keys containg gesture handlers * @param {UserGestureConfig} config - the full config object */ export function useGesture< HandlerTypes extends AnyHandlerEventTypes = EventTypes, Config extends UserGestureConfig = UserGestureConfig >(handlers: GestureHandlers, config?: Config) { const hook = createUseGesture([dragAction, pinchAction, scrollAction, wheelAction, moveAction, hoverAction]) return hook(handlers, config || ({} as Config)) }