import { FC } from 'react'; import { AssistantConversationProcessing } from '../conversation'; /** * The waiting line for one turn, as markup. * * ★ Two spans, like the voice status line: the moving phrase is hidden from * assistive tech and the step's label is read instead, so a screen reader * browsing the transcript hears "Thinking..." rather than whichever decoration * the rotation happened to be on. Neither is a live region — the transcript is * `role="log"` and `aria-busy` while a turn runs, which already says so. * * ★ `relative` contains the `sr-only` span. Without a positioned ancestor its * absolute box escapes to the nearest scroll container. * * Exported separately so the markup can be rendered with different shown and * label text; static rendering runs no clock, so the stateful component alone * would only ever show the two equal. */ export declare const TurnActivityLine: FC<{ shown: string; label: string; }>; /** * What a live turn is doing, drawn from its processing state (BOFF-7277). * * ★★ The clock lives HERE. A tick re-renders only this line, the orchestrator * stays free of timers, and nothing is written anywhere — the message's content * is untouched while the phrase moves. * * ★ Under reduced motion the line holds the step's label instead of rotating: * text that changes every few seconds on its own is what a person asking for * less motion wants stopped, as the avatar and caret already are. BOTH routes * count — the OS setting and the app's own "Reduce motion" (BOFF-7284); this * used to honour only the first. (For auto-updating text the WCAG criterion is * 2.2.2 Pause, Stop, Hide.) */ export declare const AssistantTurnActivity: FC<{ processing: AssistantConversationProcessing | null | undefined; }>; //# sourceMappingURL=AssistantTurnActivity.d.ts.map