import * as react from 'react'; /** * MoodMeter — a 2D draggable pad that captures a value AND the * confidence in that value on the same handle. * * { setValue(v); setConfidence(c); }} * /> * * • x-axis maps to [min..max] * • y-axis maps to [0..1] confidence (top = sure) * • the halo around the handle scales inversely with confidence — * uncertain readings literally look fuzzier * * Why pair them in one control? When AIs post a number, humans * immediately ask "how sure are you?". Making confidence an explicit * sibling of value — and letting the user drag either independently — * turns vague "AI suggestion" UX into something you can argue with * precisely. * * The agent's posted value/confidence renders as a dashed ghost * handle alongside the live user handle, so the human can see where * the agent landed and how far they've drifted. */ interface MoodMeterProps { /** Range minimum. */ min: number; /** Range maximum. */ max: number; /** Step for value snapping. Defaults to (max-min)/100. */ step?: number; /** Current value (controlled). */ value: number; /** Current confidence 0..1 (controlled). */ confidence: number; /** Called with (value, confidence) on drag / pointer events. */ onChange: (value: number, confidence: number) => void; /** Optional agent post — renders as a dashed ghost handle. */ posted?: { value: number; confidence: number; }; /** Pixel width of the pad. Defaults to 320. */ width?: number; /** Pixel height of the pad. Defaults to 220. */ height?: number; /** Show the grid + axis labels. Defaults to true. */ showGrid?: boolean; /** Color of the user handle. Defaults to sky blue. */ color?: string; /** Color of the posted-ghost handle. Defaults to violet. */ postedColor?: string; /** Optional prefix for the value label (e.g. "$"). */ prefix?: string; /** Optional suffix for the value label (e.g. "k", "%"). */ suffix?: string; /** Optional label text override. Falls back to formatted value. */ formatValue?: (v: number) => string; /** Optional className applied to the outer pad. */ className?: string; } declare function MoodMeter({ min, max, step, value, confidence, onChange, posted, width, height, showGrid, color, postedColor, prefix, suffix, formatValue, className, }: MoodMeterProps): react.JSX.Element; export { MoodMeter, type MoodMeterProps };