/** * Prompt — Ink-rendered input box. * * Phase 2 of the Ink migration. Real text input via React reducer + Ink's * useInput. The reducer is the single source of truth for buffer + cursor; * keystrokes dispatch actions; Ink's reconciler renders. Frame coalescing, * visual-column handling, and resize bookkeeping are owned by Ink. * * Render contract: this component is the only writer for the prompt row. * No `process.stdout.write` side-effects — submission and cancellation * surface through the `onSubmit` / `onCancel` props so the host can pipe * to the existing event bus. * * Paste sanitization mirrors UnifiedUIRenderer.sanitizePasteContent: ANSI * escapes, raw C0 control bytes, and bracketed-paste markers are stripped * at intake (issues #3 + #8). The sanitizer runs on every batch of text * Ink hands us, so a malicious paste can't survive into the buffer. */ import React from 'react'; export interface PromptProps { initial?: string; prefix?: string; /** Hide the buffer (password mode). */ secret?: boolean; /** Called with the final buffer when the user presses Enter. */ onSubmit: (text: string) => void; /** Called when the user presses Ctrl+C with an empty buffer. */ onCancel: () => void; /** * Optional callback for Shift+Tab. The host typically wires this to a * mode toggle (auto-continue / hitl). No-op when unset. */ onToggleMode?: () => void; /** * Optional callback for Option+V. Toggles HITL (human-in-the-loop) mode. * Separate from onToggleMode so both can be triggered independently. */ onToggleHITL?: () => void; } export declare const Prompt: React.FC; //# sourceMappingURL=Prompt.d.ts.map