/**
 * Log levels supported by the logger
 */
export declare enum LogLevel {
    DEBUG = "DEBUG",
    INFO = "INFO",
    WARN = "WARN",
    ERROR = "ERROR"
}
/**
 * Logger configuration options
 */
export interface LoggerConfig {
    /** Minimum log level to output */
    minLevel: LogLevel;
    /** Whether to include timestamps in logs */
    timestamps?: boolean;
    /** Whether to include log level in output */
    showLevel?: boolean;
    /** Custom log handler (optional) */
    logHandler?: (level: LogLevel, message: string, ...args: unknown[]) => void;
}
/**
 * Logger class for consistent logging across the SDK
 */
export declare class Logger {
    private readonly config;
    /**
     * Creates a new Logger instance
     * @param {LoggerConfig} config - Logger configuration
     */
    constructor(config: LoggerConfig);
    /**
     * Log a debug message
     * @param {string} message - Message to log
     * @param {unknown[]} args - Additional arguments
     */
    debug(message: string, ...args: unknown[]): void;
    /**
     * Log an info message
     * @param {string} message - Message to log
     * @param {unknown[]} args - Additional arguments
     */
    info(message: string, ...args: unknown[]): void;
    /**
     * Log a warning message
     * @param {string} message - Message to log
     * @param {unknown[]} args - Additional arguments
     */
    warn(message: string, ...args: unknown[]): void;
    /**
     * Log an error message
     * @param {string} message - Message to log
     * @param {unknown[]} args - Additional arguments
     */
    error(message: string, ...args: unknown[]): void;
    /**
     * Internal logging method
     * @param {LogLevel} level - Log level
     * @param {string} message - Message to log
     * @param {unknown[]} args - Additional arguments
     */
    private log;
    /**
     * Check if message should be logged based on minimum level
     * @param {LogLevel} level - Log level to check
     * @returns {boolean} Whether message should be logged
     */
    private shouldLog;
    /**
     * Format log message with timestamp and level if configured
     * @param {LogLevel} level - Log level
     * @param {string} message - Message to format
     * @returns {string} Formatted message
     */
    private formatMessage;
}
