import { Logger } from 'pino'; import { Config } from './config.js'; export interface LogFileInfo { name: string; path: string; size: number; created: Date; modified: Date; compressed: boolean; } export interface LogRotationOptions { maxFileSize: string; maxFiles: number; compress: boolean; rotation: 'daily' | 'weekly' | 'monthly' | 'size'; } export declare class LogsManager { private logger; private config; private logsDirectory; private isInitialized; constructor(logger: Logger, config: Config); /** * Initializes the logs directory and ensures it exists */ initialize(): Promise; /** * Gets the logs directory path */ getLogsDirectory(): string; /** * Generates a log file name based on configuration */ generateLogFileName(category: string, level?: string): string; /** * Gets the full path for a log file */ getLogFilePath(category: string, level?: string): string; /** * Lists all log files in the logs directory */ listLogFiles(): Promise; /** * Gets log files by category */ getLogFilesByCategory(category: string): Promise; /** * Gets log files by level */ getLogFilesByLevel(level: string): Promise; /** * Compresses a log file */ compressLogFile(filePath: string): Promise; /** * Parses file size string (e.g., "100MB", "1GB") to bytes */ private parseFileSize; /** * Performs log rotation based on configuration */ performLogRotation(): Promise; /** * Cleans up old log files based on age */ cleanupOldLogs(maxAgeDays?: number): Promise; /** * Gets disk usage statistics for logs directory */ getLogsDiskUsage(): Promise<{ totalFiles: number; totalSize: number; compressedFiles: number; uncompressedFiles: number; }>; /** * Creates a summary of log files */ getLogsSummary(): Promise<{ directory: string; totalFiles: number; totalSize: string; categories: Record; levels: Record; oldestFile?: Date; newestFile?: Date; }>; /** * Schedules automatic log rotation */ scheduleLogRotation(): void; /** * Gets rotation interval in milliseconds based on configuration */ private getRotationInterval; } //# sourceMappingURL=logs-manager.d.ts.map