/**
 * Log levels for the Logger
 */
export declare enum LogLevel {
    DEBUG = 0,
    INFO = 1,
    WARN = 2,
    ERROR = 3,
    NONE = 4
}
/**
 * Configuration options for the Logger
 */
export interface LoggerOptions {
    /**
     * Minimum log level to display in the console
     */
    consoleLevel: LogLevel;
    /**
     * Minimum log level to write to the log file
     */
    fileLevel: LogLevel;
    /**
     * Whether to include timestamps in log messages
     */
    includeTimestamps: boolean;
    /**
     * Directory to store log files
     */
    logDir: string;
    /**
     * Maximum size of log files in bytes before rotation
     */
    maxLogSize: number;
    /**
     * Maximum number of log files to keep
     */
    maxLogFiles: number;
}
/**
 * Logger class for debugging and monitoring
 */
export declare class Logger {
    private static instance;
    private readonly options;
    private logFilePath;
    private logFileSize;
    /**
     * Creates a new Logger instance
     * @param options - Configuration options for the Logger
     */
    private constructor();
    /**
     * Gets the Logger instance (singleton)
     * @param options - Configuration options for the Logger
     * @returns The Logger instance
     */
    static getInstance(options?: Partial<LoggerOptions>): Logger;
    /**
     * Ensures the log directory exists
     */
    private ensureLogDir;
    /**
     * Logs a debug message
     * @param message - Message to log
     * @param data - Additional data to log
     */
    debug(message: string, data?: any): Promise<void>;
    /**
     * Logs an info message
     * @param message - Message to log
     * @param data - Additional data to log
     */
    info(message: string, data?: any): Promise<void>;
    /**
     * Logs a warning message
     * @param message - Message to log
     * @param data - Additional data to log
     */
    warn(message: string, data?: any): Promise<void>;
    /**
     * Logs an error message
     * @param message - Message to log
     * @param error - Error to log
     */
    error(message: string, error?: unknown): Promise<void>;
    /**
     * Logs a message with the specified level
     * @param level - Log level
     * @param message - Message to log
     * @param data - Additional data to log
     */
    private log;
    /**
     * Writes a message to the log file
     * @param message - Message to write
     */
    private writeToLogFile;
    /**
     * Rotates log files when the current log file gets too large
     */
    private rotateLogFiles;
}
//# sourceMappingURL=Logger.d.ts.map