import { ReactNode } from 'react'; type ExtractArgs = T[keyof T] extends (...args: infer A) => any ? A : any[]; type EventState> = T & { (key?: keyof T, fun?: T[keyof T]): EventState; (target?: Partial): EventState; }; type Vec2 = [x: number, y: number]; type PinchDevice = 'mouse' | 'pointer' | 'touch' | 'wheel' | 'gesture'; interface PinchState { device: PinchDevice; active: boolean; _active: boolean; value: Vec2; _value: Vec2; delta: Vec2; offset: Vec2; movement: Vec2; initial: Vec2; origin: Vec2; _touchIds: number[]; _pointerEvents: Map; scale: number; turns: number; target: El; event: Event | null; memo: Record; timeout: number; clearTimeout: () => void; isPinchStart: boolean; isPinching: boolean; isPinchEnd: boolean; pinch: (self: PinchState) => void; pinchStart: (e: Event) => void; pinching: (e: Event) => void; pinchEnd: (e: Event) => void; mount: (target: El) => void; clean: () => void; ref: (el: El | null) => void; } type PinchArg = Partial> | PinchState['pinch']; declare const usePinch: (arg?: PinchArg) => EventState>; interface PinchProps extends Partial> { children: (state: PinchState) => ReactNode; } declare const Pinch: (props: PinchProps) => ReactNode; export { Pinch, type PinchProps, usePinch as default, usePinch };