/**
 * Logger - File-Based Logging System
 * Logs to files with rotation, retention policies, and multiple log levels
 */
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
export interface LogEntry {
    timestamp: string;
    level: LogLevel;
    message: string;
    context?: string;
    data?: Record<string, unknown>;
}
export interface LoggerInstance {
    debug(message: string, data?: Record<string, unknown>, category?: string): void;
    info(message: string, data?: Record<string, unknown>, category?: string): void;
    warn(message: string, data?: Record<string, unknown>, category?: string): void;
    error(message: string, data?: Record<string, unknown>, category?: string): void;
    getLogs(category?: string, limit?: number): LogEntry[];
    filterByLevel(logs: LogEntry[], level: LogLevel): LogEntry[];
    filterByDateRange(logs: LogEntry[], startDate: Date, endDate: Date): LogEntry[];
    clearLogs(category?: string): boolean;
    getLogsDirectory(): string;
    getLogLevel(): LogLevel;
}
export declare const Logger: Readonly<{
    /**
     * Create a new logger instance
     */
    create(logsDir?: string, maxFileSize?: number, level?: LogLevel): LoggerInstance;
    /**
     * Get singleton instance
     */
    getInstance(): LoggerInstance;
    debug(message: string, data?: Record<string, unknown>, category?: string): void;
    info(message: string, data?: Record<string, unknown>, category?: string): void;
    warn(message: string, data?: Record<string, unknown>, category?: string): void;
    error(message: string, data?: Record<string, unknown>, category?: string): void;
}>;
declare global {
    var __loggerInstance: LoggerInstance | undefined;
}
export default Logger;
//# sourceMappingURL=Logger.d.ts.map