import type { LogLevel } from './runtime-flags.js'; export declare function stripAnsi(str: string): string; /** Generates a filename-safe ISO timestamp + PID string. */ export declare function generateLogFilename(): string; /** * Deletes log files older than `maxAgeMs` from the given directory. * Errors are logged to stderr but never thrown. */ export declare function cleanupOldLogs(logDir: string, maxAgeMs?: number): void; export interface FileLoggerOptions { /** The directory for log files. Defaults to `~/.slicc/logs/`. */ logDir?: string; /** Minimum level for log entries. Defaults to `'info'`. */ logLevel?: LogLevel; /** When true, monkey-patches console to tee all output. */ devMode?: boolean; /** Run 7-day cleanup on init. Defaults to true. */ cleanup?: boolean; } export declare class FileLogger { readonly logDir: string; readonly logFile: string; private fd; private logLevel; private devMode; private origConsole; constructor(options?: FileLoggerOptions); /** Write a structured log entry. Respects log level filtering. */ log(level: LogLevel, message: string, data?: Record): void; /** Flush and close the log file. Safe to call multiple times. */ close(): void; private installConsoleTee; private restoreConsole; private writeLine; private onExit; private registerShutdownHandlers; private deregisterShutdownHandlers; }