import winston from 'winston';
declare const logger: winston.Logger;
/**
 * Utility function to clean up old log files
 * Keeps only the most recent N log files for each type
 */
export declare const cleanupOldLogFiles: (keepCount?: number) => void;
/**
 * Check if log file exceeds maximum size and trigger rotation if needed
 */
export declare const checkLogFileSize: (filePath: string) => boolean;
/**
 * Rotate log file by renaming it with timestamp suffix
 */
export declare const rotateLogFile: (filePath: string) => void;
interface LogMeta {
    [key: string]: unknown;
}
interface ContextLogger {
    debug: (message: string, meta?: LogMeta) => void;
    info: (message: string, meta?: LogMeta) => void;
    warn: (message: string, meta?: LogMeta) => void;
    error: (message: string, error?: Error, meta?: LogMeta) => void;
    cveSearch: (filters: Record<string, unknown>, resultCount: number, duration: number) => void;
    cveRetrieve: (cveId: string, source: string, fromCache: boolean, duration: number) => void;
    sourceSync: (sourceName: string, recordCount: number, duration: number) => void;
    httpRequest: (method: string, url: string, statusCode: number, duration: number, meta?: LogMeta) => void;
    exploitFound: (cveId: string, exploitCount: number, sources: string[]) => void;
}
export interface PerformanceTimer {
    end: (additionalMeta?: LogMeta) => number;
}
export declare const createContextLogger: (context: string) => ContextLogger;
export declare const createPerformanceTimer: (operation: string) => PerformanceTimer;
/**
 * Get current active log file paths
 */
export declare const getActiveLogFiles: () => string[];
/**
 * Get log file statistics for monitoring
 */
export declare const getLogFileStats: () => Array<{
    name: string;
    size: number;
    modified: Date;
    type: string;
}>;
export default logger;
//# sourceMappingURL=logger.d.ts.map