import { IClient, ClientConfig, ClientMessage } from '@continue-reasoning/core'; /** * React CLI 客户端配置 */ export interface ReactCLIConfig extends ClientConfig { theme?: 'light' | 'dark'; compactMode?: boolean; showTimestamps?: boolean; showStepNumbers?: boolean; maxMessages?: number; scrollBuffer?: number; enableToolFormatting?: boolean; enableFileImport?: boolean; maxFileSize?: number; debug?: boolean; logLevel?: 'debug' | 'info' | 'warn' | 'error'; eventDisplay?: { session?: { showStarted?: boolean; showEnded?: boolean; showSwitched?: boolean; }; agent?: { showStepCompleted?: boolean; showStepDetails?: boolean; showReasoning?: boolean; showResponse?: boolean; showStopped?: boolean; }; tool?: { showStarted?: boolean; showCompleted?: boolean; showFailed?: boolean; showDetails?: boolean; }; error?: { showErrors?: boolean; showStackTrace?: boolean; }; }; } /** * React CLI 客户端事件处理器 */ export interface ReactCLIEventHandlers { onUIUpdate?: (state: UIState) => void; onToolFormatted?: (toolName: string, result: string) => void; onFileImported?: (file: ImportedFile) => void; onThemeChanged?: (theme: string) => void; onMessage?: (message: ClientMessage) => void; onError?: (error: Error) => void; onExit?: () => void; } /** * UI 状态接口 */ export interface UIState { isProcessing: boolean; currentInput: string; selectedMessageId?: string; showHelp: boolean; compactMode: boolean; theme: string; } /** * 导入的文件接口 */ export interface ImportedFile { name: string; path: string; type: string; size: number; content: string | Buffer; encoding?: string; } /** * React CLI 客户端接口 */ export interface IReactCLIClient extends IClient { updateUI(state: Partial): void; toggleCompactMode(): void; setTheme(theme: 'light' | 'dark'): void; importFile(filePath: string): Promise; importFiles(filePaths: string[]): Promise; formatToolResult(toolName: string, result: any): string; searchMessages(query: string): ClientMessage[]; exportMessages(format: 'json' | 'markdown' | 'txt'): string; } //# sourceMappingURL=client.d.ts.map