/** * GestureRecognizer.ts * * Touch/pointer gesture recognition: tap, double-tap, swipe, * pinch, long press, and extensible custom gesture patterns. * * @module input */ export type GestureType = 'tap' | 'doubleTap' | 'longPress' | 'swipe' | 'pinch' | 'pan' | 'custom'; export type SwipeDirection = 'up' | 'down' | 'left' | 'right'; export interface TouchPoint { id: number; x: number; y: number; timestamp: number; } export interface GestureEvent { type: GestureType; position: { x: number; y: number; }; timestamp: number; direction?: SwipeDirection; velocity?: number; distance?: number; scale?: number; deltaX?: number; deltaY?: number; name?: string; } export interface GestureConfig { tapMaxDuration: number; tapMaxDistance: number; doubleTapWindow: number; longPressMinDuration: number; swipeMinDistance: number; swipeMinVelocity: number; pinchMinScale: number; } export type GestureCallback = (event: GestureEvent) => void; export declare class GestureRecognizer { private config; private activeTouches; private touchStarts; private subscribers; private lastTapTime; private lastTapPosition; private longPressTimer; private gestureHistory; private initialPinchDistance; constructor(config?: Partial); on(types: GestureType | GestureType[], callback: GestureCallback): string; off(subscriptionId: string): void; touchStart(id: number, x: number, y: number): void; touchMove(id: number, x: number, y: number): void; touchEnd(id: number, x: number, y: number): void; private emit; private cancelLongPress; private getSwipeDirection; private distance; getActiveTouchCount(): number; getGestureHistory(): GestureEvent[]; getRecentGestures(count: number): GestureEvent[]; clearHistory(): void; getConfig(): GestureConfig; setConfig(config: Partial): void; } //# sourceMappingURL=GestureRecognizer.d.ts.map