import { type Ora } from 'ora'; import type { TokenStats, WorktreeInfo } from './types.js'; import type { QualityCheck } from './quality-gate.js'; import type { AuditEvent } from './audit.js'; export declare function fmtTok(n: number): string; export declare function renderMarkdown(text: string): string; declare class TUI { private ci; private _streaming; private _streamHeader; private _didStream; private _streamChars; private _sessionTokens; private _wordIdx; constructor(); setCiMode(enabled: boolean): void; isCi(): boolean; setSessionTokens(n: number): void; private write; printBanner(): void; printUpdateAvailable(current: string, latest: string): void; printSessionHeader(provider: string, model: string, cwd: string, branch?: string): void; printStatusCard(options: { provider: string; model: string; baseURL?: string; mode: string; effort: string; personality: string; approval: boolean; cwd: string; turns: number; tokens: number; cost: string; extraDirs?: string[]; goal?: string | null; }): void; printQualityGate(checks: QualityCheck[], passed: boolean): void; printAuditTrail(events: AuditEvent[]): void; startSpinner(label: string): Ora & { _elapsed?: NodeJS.Timeout; }; printModeSwitch(label: string): void; streamStart(): void; streamThinking(text: string): void; streamChunk(text: string): void; streamEnd(): void; hadStreamOutput(): boolean; printToolCall(name: string, argsJson: string): void; printToolResult(name: string, result: string, elapsedMs?: number): void; printThinking(text: string): void; printAssistant(text: string): void; printSuccess(message: string): void; printWarning(message: string): void; printError(message: string): void; drawFooter(mode: string, ping?: string): void; printStats(stats: TokenStats, _provider?: string, _model?: string, elapsedMs?: number, outTokDelta?: number): void; renderDiff(original: string, patched: string, filePath: string): void; confirmWrite(filePath: string, content: string): Promise; confirmDiff(filePath: string): Promise; /** * Asked before continuing on a different model. * * Its own prompt rather than the tool-approval one: a change of model is not a tool permission, * and routing it through that path would let a permissive mode agree to it without anybody being * asked. Defaults to yes, because the alternative on offer is the run stopping. */ confirmSwitch(question: string): Promise; confirmCommand(command: string): Promise; confirmDelete(filePath: string, recursive: boolean): Promise; confirmMerge(info: WorktreeInfo): Promise; } export declare const tui: TUI; export {}; //# sourceMappingURL=tui.d.ts.map