import React from 'react'; export type ConfirmDecision = 'yes' | 'no' | 'always' | 'deny'; export interface ConfirmPromptProps { toolName: string; input: unknown; suggestedPattern: string; onDecision: (decision: ConfirmDecision) => void; /** Enable YOLO mode (capital Y). Approves the current call. */ onEnableYolo: () => void; /** Whether this call was classified destructive. */ destructive?: boolean; boundaryReason?: string | undefined; } /** * 0-based column spans of each button WITHIN the dialog's content area (i.e. * relative to the first printable column inside the border + paddingX). Used * by the TUI mouse handler to map a click on the button row to a decision. * Derived from the same `buttonLabels` the component renders, so the offsets * always match what's on screen. */ export declare function confirmButtonSegments(suggestedPattern: string): Array<{ decision: ConfirmDecision; start: number; len: number; }>; /** * Unified-diff text for the payload a mutating tool is about to write. * * `stringifyInput` strips `content`/`new_string` to keep the summary line * readable, and the branch meant to compensate keyed on `input.diff`. But * `diff` lives on EditOutput, never on EditInput/WriteInput, and no layer * enriches the input before the dialog receives it — so the branch was dead * and this dialog asked the user to approve an edit, or an arbitrary * whole-file overwrite, having shown them only a path (WS-080). * * Synthesised here from the fields the tool was actually given, so it renders * through the same DiffBlock the committed history entries use. */ export declare function payloadDiff(input: unknown): string; export declare function ConfirmPrompt({ toolName, input, suggestedPattern, onDecision, onEnableYolo, destructive, boundaryReason, }: ConfirmPromptProps): React.ReactElement; //# sourceMappingURL=confirm-prompt.d.ts.map