import { Ref } from 'vue'; /** Tuning knobs for the elastic tooltip; mirrors the `tooltip*` props of `TxSlider`. */ export interface TooltipMotionConfig { tiltMaxDeg: number; offsetMaxPx: number; springStiffness: number; springDamping: number; distortSkewDeg: number; jelly: boolean; jellyFrequency: number; jellyDecay: number; } export interface TooltipMotionHost { /** Whether elastic motion is enabled at all (`tooltipTilt`). */ isEnabled: () => boolean; /** Whether the tooltip is on screen; the loop parks itself once this goes false. */ isActive: () => boolean; /** Thumb centre in px — the follow spring's target. */ target: () => number; config: () => TooltipMotionConfig; } export declare function clamp01(value: number): number; /** * Spring-follow, elastic lean and jelly wobble for the slider tooltip. * * Lifted out of `TxSlider.vue` so the component keeps only slider semantics. The * integrator and its rAF loop live here and are driven entirely through * `settle()` (steady lean target) and `impulse()` (one-off wobble kick). */ export declare function useTooltipMotion(host: TooltipMotionHost): { followX: Ref; offsetX: Ref; tiltDeg: Ref; squash: Ref; skewDeg: Ref; wobble: Ref; wobbleDir: Ref; reset: () => void; start: () => void; stop: () => void; settle: (direction: number, intensity: number) => void; impulse: (kick: number, direction: number) => void; };