/**
 * SDK Logger
 *
 * Provides a configurable logger with level filtering.
 * SDK consumers can set the log level via config to control verbosity.
 */
export var LogLevel;
(function (LogLevel) {
    /** No logging */
    LogLevel[LogLevel["silent"] = 0] = "silent";
    /** Errors only */
    LogLevel[LogLevel["error"] = 1] = "error";
    /** Errors and warnings */
    LogLevel[LogLevel["warn"] = 2] = "warn";
    /** Errors, warnings, and info */
    LogLevel[LogLevel["info"] = 3] = "info";
    /** All messages including debug */
    LogLevel[LogLevel["debug"] = 4] = "debug";
})(LogLevel || (LogLevel = {}));
/**
 * Create a logger instance with the given log level.
 *
 * @param level - Minimum log level to output (default: LogLevel.warn)
 */
export function createLogger(level = LogLevel.warn) {
    return {
        error(tag, message, ...args) {
            if (level >= LogLevel.error) {
                console.error(`[${tag}]`, message, ...args);
            }
        },
        warn(tag, message, ...args) {
            if (level >= LogLevel.warn) {
                console.warn(`[${tag}]`, message, ...args);
            }
        },
        info(tag, message, ...args) {
            if (level >= LogLevel.info) {
                console.log(`[${tag}]`, message, ...args);
            }
        },
        debug(tag, message, ...args) {
            if (level >= LogLevel.debug) {
                console.debug(`[${tag}]`, message, ...args);
            }
        },
    };
}
/** Singleton silent logger for use before SDK initialization */
export const silentLogger = createLogger(LogLevel.silent);
//# sourceMappingURL=logger.js.map