import { StorageService } from './storage.service.js'; export interface TraceLifecycleConfig { maxDurationSeconds: number; retentionHours: number; maxBufferSizeMB: number; autoCleanup: boolean; } export declare const DEFAULT_TRACE_LIFECYCLE_CONFIG: TraceLifecycleConfig; export interface TraceFileInfo { path: string; name: string; sizeBytes: number; createdAt: Date; ageHours: number; } export declare class TraceBuffer { private buffer; private currentSizeBytes; private readonly maxSizeBytes; constructor(maxSizeMB: number); add(event: unknown): boolean; getEvents(): unknown[]; clear(): void; getSizeBytes(): number; getSizeMB(): number; getEventCount(): number; private estimateSize; } export declare class TraceLifecycleService { private readonly storageService; private config; private traceBuffer; private traceStartTime; constructor(storageService: StorageService); configure(config: Partial): void; getConfig(): TraceLifecycleConfig; startTrace(): void; isTraceDurationExceeded(): boolean; getRemainingTraceTime(): number; getElapsedTraceTime(): number; endTrace(): void; addTraceEvent(event: unknown): boolean; getBufferedEvents(): unknown[]; getBufferStats(): { sizeMB: number; eventCount: number; maxSizeMB: number; }; clearBuffer(): void; listTraceFiles(): Promise; getExpiredTraces(): Promise; cleanupExpiredTraces(): Promise<{ deleted: string[]; errors: string[]; }>; getTotalTracesSizeMB(): Promise; validateDuration(requestedSeconds: number): { valid: boolean; clampedValue: number; message?: string; }; }