/** * Console Message Formatting * * Formats console messages for different output modes: * - Preview: Compact CSV for list/recent/search (minimal tokens) * - Summary: Smart truncation for detail view (budget-constrained) * - Full: Complete message with all data */ /** Token budget for smart summary mode */ export declare const DEFAULT_SUMMARY_TOKEN_BUDGET = 100; /** * Estimate token count for a value (~4 chars per token) */ export declare function estimateTokens(value: any): number; /** Compact preview for list/recent/search (CSV output) */ export interface ConsoleMessagePreview { id: string; type: string; preview: string; tokens: number; truncated: boolean; } /** Smart summary for detail view with token budget */ export interface ConsoleMessageSummary { id: string; type: string; text: string; textTruncated?: { shown: number; total: number; }; args?: any[]; argsSummary?: string; location?: { url: string; lineNumber: number; columnNumber: number; }; stackTrace?: { shown: number; total: number; frames: any[]; }; timestamp: number; _tokens: { full: number; returned: number; }; } /** Input for preview/summary creation (matches StoredConsoleMessage) */ interface MessageInput { id: string; type: string; text: string; args?: any[]; location?: { url: string; lineNumber: number; columnNumber: number; }; stackTrace?: any[]; timestamp: number; } /** * Create a compact preview of a console message for list views. * Returns minimal data with token count for the full message. */ export declare function createMessagePreview(message: MessageInput): ConsoleMessagePreview; /** * Format message previews as CSV and calculate stats */ export declare function formatPreviewsWithStats(previews: ConsoleMessagePreview[]): { csv: string; truncatedCount: number; totalTokens: number; }; /** * Build complete list response text */ export declare function buildListResponseText(headerText: string, csv: string, truncatedCount: number, totalTokens: number): string; /** * Create a smart summary of a console message within a token budget. * Prioritizes: text > args > stack trace */ export declare function createMessageSummary(message: MessageInput, tokenBudget?: number): ConsoleMessageSummary; /** * Generate hints for how to extract more data from a truncated summary */ export declare function generateSummaryHints(summary: ConsoleMessageSummary): string; /** * Build summary response text */ export declare function buildSummaryResponseText(message: { id: string; type: string; }, summary: ConsoleMessageSummary, jsonBlock: string): string; /** Result of text extraction */ export interface TextExtractionResult { text: string; extraction?: { offset: number; limit?: number; total: number; hasMore: boolean; }; } /** Result of args extraction */ export type ArgsExtractionResult = { args: any[]; extraction: { index: number; total: number; }; } | { error: string; }; /** * Extract a portion of text from a message */ export declare function extractTextPortion(text: string, offset?: number, limit?: number): TextExtractionResult; /** * Extract a specific argument by index */ export declare function extractArgByIndex(args: any[] | undefined, index: number): ArgsExtractionResult; /** * Format console message summary as TOON (one property per line for readability) */ export declare function formatSummaryAsToon(summary: ConsoleMessageSummary): string; /** * Format full message detail as TOON (one property per line for readability) */ export declare function formatMessageDetailAsToon(data: { id: string; type: string; text: string; args?: any[]; location?: { url: string; lineNumber: number; columnNumber: number; }; stackTrace?: any[]; timestamp: number; _tokens: { full: number; returned: number; }; _textExtraction?: { offset: number; limit?: number; total: number; hasMore: boolean; }; _argsExtraction?: { index: number; total: number; }; }): string; export {}; //# sourceMappingURL=console-formatter.d.ts.map