export type ChatLogType = 'start' | 'intent' | 'context_manifest' | 'context_fetch' | 'node_selection' | 'process_match' | 'process_design' | 'process_result' | 'completion_check' | 'response' | 'summary' | 'error' | 'reaction' | 'judge'; /** * Generate a short chat ID like `chat-a3f2b1`. */ export declare function generateChatId(): string; export declare class ChatLogger { private logFile; private initPromise; private initFailed; private _chatId; private buffer; constructor(chatId: string); get chatId(): string; /** * Append a structured log entry. Lazily creates the log directory and file. */ log(type: ChatLogType, data: Record): Promise; /** * Flush buffer and close. */ close(): void; private flush; private init; } /** * Append a reaction entry to an existing chat log file. * Used when reactions arrive after the chat session is finished. */ export declare function appendReaction(chatId: string, reaction: 'positive' | 'negative', details?: string): Promise; /** * Append a judge evaluation entry to an existing chat log file. * Called fire-and-forget after each response synthesis. */ export declare function appendJudgement(chatId: string, judgement: { achieved: boolean; confidence: number; reasoning: string; }): Promise; /** * Delete chat log files older than `retentionDays` days. * Reads the first line of each `.log` file to get its timestamp. */ export declare function pruneOldChatLogs(retentionDays: number): Promise<{ scanned: number; deleted: number; }>; //# sourceMappingURL=chat-logger.d.ts.map