/**
 * Failure Logger for Lazy Loading
 *
 * Logs lazy loading failures for debugging with rotation support.
 * Writes to ~/.specweave/logs/lazy-loading.log
 *
 * @module core/lazy-loading/failure-logger
 */
/** Log entry structure */
export interface LogEntry {
    timestamp: string;
    level: 'error' | 'warn' | 'info' | 'debug';
    operation: string;
    message: string;
    error?: string;
    stack?: string;
    metadata?: Record<string, unknown>;
}
/** Logger configuration */
export interface LoggerConfig {
    maxFileSize: number;
    maxFiles: number;
    logDir?: string;
    logFile?: string;
}
/**
 * Failure Logger for lazy loading operations
 */
export declare class LazyLoadingLogger {
    private config;
    private logPath;
    private logDir;
    constructor(config?: Partial<LoggerConfig>);
    /**
     * Ensure log directory exists
     */
    private ensureLogDir;
    /**
     * Rotate logs if file exceeds max size
     */
    private rotateIfNeeded;
    /**
     * Write a log entry
     */
    private write;
    /**
     * Log an error
     */
    error(operation: string, message: string, error?: Error, metadata?: Record<string, unknown>): void;
    /**
     * Log a warning
     */
    warn(operation: string, message: string, metadata?: Record<string, unknown>): void;
    /**
     * Log an info message
     */
    info(operation: string, message: string, metadata?: Record<string, unknown>): void;
    /**
     * Log a debug message
     */
    debug(operation: string, message: string, metadata?: Record<string, unknown>): void;
    /**
     * Get the log file path for error messages
     */
    getLogPath(): string;
    /**
     * Read recent log entries
     */
    getRecentLogs(count?: number): LogEntry[];
    /**
     * Get log statistics
     */
    getStats(): {
        totalEntries: number;
        errorCount: number;
        warnCount: number;
        fileSize: number;
    };
    /**
     * Clear all logs
     */
    clear(): void;
}
/**
 * Get the default logger instance
 */
export declare function getLogger(): LazyLoadingLogger;
/**
 * Log an error (convenience function)
 */
export declare function logError(operation: string, message: string, error?: Error, metadata?: Record<string, unknown>): void;
/**
 * Log a warning (convenience function)
 */
export declare function logWarn(operation: string, message: string, metadata?: Record<string, unknown>): void;
/**
 * Log info (convenience function)
 */
export declare function logInfo(operation: string, message: string, metadata?: Record<string, unknown>): void;
/**
 * Get log file path for error messages
 */
export declare function getLogFilePath(): string;
//# sourceMappingURL=failure-logger.d.ts.map