/**
 * Professional logging utility for the Reforge SDK
 */
import type { LogLevel } from '../types/core';
import type { ILogger } from '../types/http';
/**
 * Logger configuration options
 */
export interface LoggerConfig {
    /** Log level threshold */
    level: LogLevel;
    /** Custom prefix for log messages */
    prefix?: string;
    /** Enable timestamps in log messages */
    timestamps?: boolean;
    /** Custom logger implementation */
    customLogger?: Partial<ILogger>;
}
/**
 * Professional logger implementation with configurable levels and formatting
 */
export declare class Logger implements ILogger {
    private readonly config;
    constructor(config: LoggerConfig);
    /**
     * Check if a log level should be output based on current threshold
     */
    private shouldLog;
    /**
     * Format a log message with prefix and timestamp
     */
    private formatMessage;
    /**
     * Log an error message
     */
    error(message: string, ...args: any[]): void;
    /**
     * Log a warning message
     */
    warn(message: string, ...args: any[]): void;
    /**
     * Log an info message
     */
    info(message: string, ...args: any[]): void;
    /**
     * Log a debug message
     */
    debug(message: string, ...args: any[]): void;
    /**
     * Update the log level
     */
    setLevel(level: LogLevel): void;
    /**
     * Get the current log level
     */
    getLevel(): LogLevel;
    /**
     * Create a child logger with modified configuration
     */
    child(config: Partial<LoggerConfig>): Logger;
}
/**
 * Create a default logger instance
 */
export declare function createLogger(level?: LogLevel, prefix?: string): Logger;
/**
 * Silent logger that doesn't output anything - useful for testing
 */
export declare const silentLogger: ILogger;
//# sourceMappingURL=logger.d.ts.map