/**
 * 日志级别
 */
declare enum LogLevel {
    DEBUG = 0,
    INFO = 1,
    WARN = 2,
    ERROR = 3,
    NONE = 4
}
/**
 * 日志条目
 */
interface LogEntry {
    level: LogLevel;
    message: string;
    timestamp: Date;
    data?: any;
    context?: string;
    error?: Error;
}
/**
 * 日志适配器接口
 * 不同平台实现不同的日志输出方式
 */
interface LoggerAdapter {
    /**
     * 输出日志
     */
    log(entry: LogEntry): void;
    /**
     * 批量输出日志（可选）
     */
    logBatch?(entries: LogEntry[]): void;
}
/**
 * 日志配置
 */
interface LoggerConfig {
    /**
     * 最小日志级别
     * 只有大于等于此级别的日志才会输出
     */
    minLevel: LogLevel;
    /**
     * 是否启用时间戳
     */
    enableTimestamp?: boolean;
    /**
     * 是否启用上下文（模块名）
     */
    enableContext?: boolean;
    /**
     * 环境（development/production）
     */
    environment?: 'development' | 'production';
    /**
     * 自定义适配器
     */
    adapter?: LoggerAdapter;
}

/**
 * 统一日志管理类
 */
declare class Logger {
    private config;
    private adapter;
    private context?;
    constructor(config?: Partial<LoggerConfig>, context?: string);
    /**
     * 创建带上下文的子 Logger
     */
    createChild(context: string): Logger;
    /**
     * 调试日志
     */
    debug(message: string, data?: any): void;
    /**
     * 信息日志
     */
    info(message: string, data?: any): void;
    /**
     * 警告日志
     */
    warn(message: string, data?: any): void;
    /**
     * 错误日志
     */
    error(message: string, error?: Error | any): void;
    /**
     * 核心日志方法
     */
    private log;
    /**
     * 设置日志级别
     */
    setLevel(level: LogLevel): void;
    /**
     * 获取当前日志级别
     */
    getLevel(): LogLevel;
}
/**
 * 默认全局 Logger 实例
 */
declare const logger: Logger;
/**
 * 创建带上下文的 Logger
 */
declare function createLogger(context: string, config?: Partial<LoggerConfig>): Logger;

/**
 * 控制台日志适配器
 * 使用 console.info/warn/error 输出日志
 */
declare class ConsoleLoggerAdapter implements LoggerAdapter {
    private readonly colors;
    log(entry: LogEntry): void;
    private formatTimestamp;
    private getLevelName;
    private colorize;
}

export { ConsoleLoggerAdapter, type LogEntry, LogLevel, Logger, type LoggerAdapter, type LoggerConfig, createLogger, logger };
