/** * Infrastructure: Memory Buffer Implementation * Enhanced with efficient memory tracking and bounded memory policy */ import { LogEntry } from '../../domain/entities/LogEntry'; import { BufferMetrics, ILogBuffer } from '../../domain/interfaces/ILogBuffer'; export interface MemoryBufferConfig { readonly maxSize: number; readonly flushInterval: number; readonly maxAge: number; readonly autoFlush: boolean; readonly maxMemoryMB: number; readonly onFlushRequested?: () => void; } export declare class MemoryBuffer implements ILogBuffer { private readonly config; private entries; private lastFlushTime; private flushTimer; private immediateFlush; private memoryTracker; private flushCallback?; private droppedEntries; private destroyed; constructor(config: MemoryBufferConfig); /** * Set callback to be called when flush is requested by timer */ setFlushCallback(callback: () => void): void; add(entry: LogEntry): void; private enforceMaxSize; private dropOldest; private triggerImmediateFlush; flush(): LogEntry[]; peek(): readonly LogEntry[]; size(): number; isFull(): boolean; shouldFlush(): boolean; clear(): void; destroy(): void; getMetrics(): BufferMetrics; private removeOldEntries; private scheduleFlush; } //# sourceMappingURL=MemoryBuffer.d.ts.map