import * as react from 'react'; /** * ReasonTag — wraps any value with a small affordance that reveals the * agent's reasoning, sources, and confidence on hover or click. * * * * Three visual styles: * • "dot" — value with a tiny coloured dot (default, subtle) * • "underline" — dotted underline + trailing "?" * • "chip" — full coloured pill (loud) * * Confidence drives the colour via three tiers (high / medium / low), * so a quick visual scan tells the human which suggestions deserve a * second look without opening any tooltips. * * `pinned` swaps the popover for an inline annotation slot — useful * when explainability should always be visible, not buried in a hover. */ type ReasonTagSource = { label: string; href?: string; }; type ReasonTagTheme = "dot" | "underline" | "chip"; interface ReasonTagProps { /** The value the tag wraps — usually a number, label, or short phrase. */ value: React.ReactNode; /** Free-text rationale shown in the popover / inline annotation. */ reason: string; /** 0..1 confidence. Drives the tier colour. Defaults to 1. */ confidence?: number; /** Optional list of sources (label + optional href). */ sources?: ReasonTagSource[]; /** Optional author / agent name shown in the popover header. */ by?: string; /** Visual treatment for the trigger. */ theme?: ReasonTagTheme; /** * When true, the popover is replaced with an always-visible inline * annotation below the value. */ pinned?: boolean; /** Called when the user hits the "ask follow-up" action. */ onFollowUp?: () => void; /** Optional className applied to the trigger element. */ className?: string; } declare function ReasonTag({ value, reason, confidence, sources, by, theme, pinned, onFollowUp, className, }: ReasonTagProps): react.JSX.Element; export { ReasonTag, type ReasonTagProps, type ReasonTagSource, type ReasonTagTheme };