import type { ConsolaReporter, LogObject } from "consola";
export interface FileLoggerOptions {
    maxFileSize?: number;
    maxFiles?: number;
    pretty?: boolean;
    rotateOnLimit?: boolean;
    timestamp?: boolean;
    format?: "json" | "jsonsl";
    bufferSize?: number;
    flushInterval?: number;
}
/**
 * FileLogger - Handles writing logs to files with rotation
 */
export declare class FileLogger {
    private readonly baseFilePath;
    private currentFile;
    private writeStream;
    private currentSize;
    private isRotating;
    private buffer;
    private bufferSize;
    private flushTimer;
    private isClosed;
    private readonly logName;
    private readonly options;
    constructor(baseFilePath: string, options?: FileLoggerOptions, logName?: string);
    flush(): Promise<void>;
    write(entries: any, level?: "info" | "warn" | "error" | "debug"): Promise<void>;
    close(): Promise<void>;
    /**
     * Get the current file path with rotation index
     */
    private getCurrentFilePath;
    /**
     * Initialize the write stream
     */
    private initStream;
    /**
     * Set up the flush interval timer
     */
    private setupFlushInterval;
    /**
     * Rotate log files when size limit is reached
     */
    private rotateFiles;
    /**
     * Format a log entry for writing
     */
    private formatLogEntry;
    /**
     * Helper method to normalize different types of log entries
     */
    private normalizeEntries;
    /**
     * Helper methods for different log levels
     */
    info(entries: any): Promise<void>;
    warn(entries: any): Promise<void>;
    error(entries: any): Promise<void>;
    debug(entries: any): Promise<void>;
}
/**
 * Creates or retrieves a logger instance
 */
export declare function createFileLogger(fileName: string, options?: FileLoggerOptions, loggerName?: string): FileLogger;
/**
 * Close all file loggers safely
 */
export declare function closeAllFileLoggers(): Promise<void>;
/**
 * Consola Reporter implementation for file logging
 */
export declare class FileReporter implements ConsolaReporter {
    private fileLogger;
    constructor(filePath: string, options?: FileLoggerOptions);
    log(logObj: LogObject): void;
    private mapTypeToLevel;
    end(): Promise<void>;
}
/**
 * Quick function to log to a specific file for debugging
 */
export declare function logFile(fileName: string, data: any, options?: FileLoggerOptions): Promise<void>;
/**
 * Setup an error logger that captures all errors and warnings
 */
export declare function setupErrorLogger(options?: FileLoggerOptions): FileReporter;
/**
 * Middleware that cleans up loggers on shutdown
 */
export declare function setupLoggerCleanup(): () => Promise<void>;
