/**
 * Gesture Physics System
 * Provides physics-based gesture interactions with preset configurations
 */
import { Vector2D } from '../../types/common';
/**
 * Gesture types supported by the physics system
 */
export declare enum GestureType {
    TAP = "tap",
    DOUBLE_TAP = "double_tap",
    LONG_PRESS = "long_press",
    PAN = "pan",
    SWIPE = "swipe",
    PINCH = "pinch",
    ROTATE = "rotate",
    HOVER = "hover"
}
/**
 * Gesture physics preset configurations
 */
export interface GesturePhysicsPreset {
    name: string;
    damping: number;
    stiffness: number;
    mass: number;
    velocity: number;
    restDelta: number;
    restSpeed: number;
    gestures: GestureType[];
}
/**
 * Predefined gesture physics presets
 */
export declare const GESTURE_PRESETS: Record<string, GesturePhysicsPreset>;
/**
 * Gesture event data
 */
export interface GestureEvent {
    type: GestureType;
    position: Vector2D;
    delta: Vector2D;
    velocity: Vector2D;
    distance: number;
    angle: number;
    scale: number;
    timestamp: number;
}
/**
 * Options for gesture physics hook
 */
export interface UseGesturePhysicsOptions {
    preset?: keyof typeof GESTURE_PRESETS | GesturePhysicsPreset;
    enabledGestures?: GestureType[];
    onGesture?: (event: GestureEvent) => void;
    onGestureStart?: (event: GestureEvent) => void;
    onGestureEnd?: (event: GestureEvent) => void;
    threshold?: number;
    velocityThreshold?: number;
    longPressDelay?: number;
}
/**
 * Hook for gesture-based physics interactions
 */
export declare const useGesturePhysics: (options?: UseGesturePhysicsOptions) => {
    handlers: {
        onMouseDown: (e: React.MouseEvent) => void;
        onMouseMove: (e: React.MouseEvent) => void;
        onMouseUp: () => void;
        onMouseLeave: () => void;
        onTouchStart: (e: React.TouchEvent) => void;
        onTouchMove: (e: React.TouchEvent) => void;
        onTouchEnd: () => void;
        onTouchCancel: () => void;
    };
    position: Vector2D;
    isActive: boolean;
    gestureType: GestureType | null;
    velocity: Vector2D;
    preset: GesturePhysicsPreset;
};
//# sourceMappingURL=gesturePhysics.d.ts.map