/**
 * Render a user turn as an authored panel block for the transcript.
 *
 * Per display row we emit:
 *
 *   {bg}{accent}▎{fgReset}  {line}{pad-to-width}{bgReset}
 *
 * Why space-pad instead of EL (`\x1b[K`)?
 *
 *   <Static> serializes rendered text through Ink's wrap/measure pipeline,
 *   which strips `\x1b[K` (it's not a character, it's a cursor-state
 *   command that Ink can't account for in width). Space-padding each row
 *   to the current terminal width forces a real full-width bg band that
 *   survives Static's pass and reads as a proper color-block.
 *
 *   Trade-off: block width is frozen at submit time. If the terminal
 *   resizes afterward, old blocks keep their old pad width. Acceptable —
 *   submitted messages are historical artifacts; live resize fidelity
 *   belongs to the composer, not the transcript.
 *
 * Wrap behavior for long logical lines: we still set bg BEFORE the
 * accent bar, so bg is "on" at the moment the terminal wraps a row into
 * its next display row. Wrap-continuation cells inherit bg from current
 * ANSI state; the pad spaces we emit are AFTER the wrap happens, so
 * they fill trailing empty cells on the same (last) row the logical
 * line produced.
 */
export declare function renderUserBlock(text: string): string;
