/** * Inline plan approval component. * Shows a submitted plan as rendered markdown with Approve/Reject/Request Changes options * directly in the conversation flow. */ import { Container } from '@mariozechner/pi-tui'; import type { Focusable, TUI } from '@mariozechner/pi-tui'; import type { ChatSpacingKind } from './chat-spacing.js'; export interface PlanApprovalInlineOptions { planId: string; title: string; plan: string; onApprove: () => void; onGoal: () => void; onReject: (feedback?: string) => void; } export declare class PlanApprovalInlineComponent extends Container implements Focusable { private ui; private contentBox; private selectList?; private feedbackInput?; private onApprove?; private onGoal?; private onReject?; private resolved; private mode; private planTitle; private planContent; private _focused; get focused(): boolean; set focused(value: boolean); constructor(options: PlanApprovalInlineOptions, ui: TUI); static createStreaming(ui: TUI): PlanApprovalInlineComponent; activate(options: PlanApprovalInlineOptions): void; getChatSpacingKind(): ChatSpacingKind; updateArgs(args: unknown): void; private renderSelectable; private renderStreaming; private renderPlanHeader; private renderPlanContent; private renderFeedback; private handleSelection; private handleApprove; private handleGoal; private handleReject; private switchToFeedbackMode; private showResult; handleInput(data: string): void; } /** * Static component for rendering a resolved plan in history. * Shows the plan content with approval/rejection status. */ export interface PlanResultOptions { title: string; plan: string; isApproved: boolean; feedback?: string; } export declare class PlanResultComponent extends Container { getChatSpacingKind(): ChatSpacingKind; constructor(options: PlanResultOptions); } //# sourceMappingURL=plan-approval-inline.d.ts.map