import { type LogData } from '../models/LogData.js'; import { type ConfigProvider } from '../services/ConfigProvider.js'; export declare const ProcessLogBufferTag: unique symbol; export interface ProcessLogBuffer { appendStdout: (processId: string, data: string) => void; appendStderr: (processId: string, data: string) => void; getLatestLogs: (processId: string, lines?: number) => LogData; clearLogs: (processId: string) => void; } /** * Buffer-based log management service * Manages integrated log entries chronologically for each process */ export declare class ProcessLogBufferImpl implements ProcessLogBuffer { private readonly configService; private readonly buffers; private readonly maxLines; constructor(configService: ConfigProvider); /** * Append stdout data * @param processId Process ID * @param data Data to append (including newlines) */ appendStdout(processId: string, data: string): void; /** * Append stderr data * @param processId Process ID * @param data Data to append (including newlines) */ appendStderr(processId: string, data: string): void; /** * Get latest log data * @param processId Process ID * @param lines Number of lines to retrieve (all if omitted) * @returns Log data */ getLatestLogs(processId: string, lines?: number): LogData; /** * Clear process logs * @param processId Process ID */ clearLogs(processId: string): void; /** * @param processId Process ID * @returns Process log buffer */ private getOrCreateBuffer; /** * Enforce buffer limits * @param buffer Process log buffer */ private enforceBufferLimits; /** * Split string into lines * @param data String data * @returns Array of lines */ private parseLines; }