import { TransformationMatrix } from './TransformationMatrix'; import { Pinch } from './core-math'; interface InertiaOptions { minimumTime: number; minimumSnapshots: number; brakingTime: number; maximumPinchReleaseTime: number; } export interface InertiaApplyResult { isRunning(): boolean; stop(): void; } export interface TranslationSnapshot { dx: number; dy: number; dt: number; } export interface TranslationInertia { vx: number; vy: number; } export declare function calculateTranslateInertia(translationHistory: TranslationSnapshot[], options?: InertiaOptions): TranslationInertia | null; export declare function applyTranslateInertia(inertia: TranslationInertia, callback: (dx: number, dy: number) => void, options?: InertiaOptions): InertiaApplyResult; export interface PinchSnapshot { pinch: Pinch; dt: number; } export interface FidgetSpinInertia { angularVelocity: number; scalingConstant: number; } export declare function calculateFidgetSpinInertia(pinchHistory: PinchSnapshot[], options?: InertiaOptions): FidgetSpinInertia | null; export declare function applyFidgetSpinInertia(inertia: FidgetSpinInertia, callback: (rotation: number, scale: number) => void, options?: InertiaOptions): InertiaApplyResult; export interface PinchInertia { angularVelocity: number; scalingConstant: number; transformOrigin: { x: number; y: number; } | null; velocityX: number; velocityY: number; } export declare function calculatePinchInertia(pinchHistory: PinchSnapshot[], options?: InertiaOptions): PinchInertia | null; export declare function applyPinchInertia(inertia: PinchInertia, callback: (transform: TransformationMatrix) => void, options?: InertiaOptions): InertiaApplyResult; export declare function isPinchRelease(time: number, options?: InertiaOptions): boolean; export {};