averox-sdk-secure
Version:
Real-time SDK for key monitoring, secure messaging, and A/V streaming with encryption
78 lines (77 loc) • 2.31 kB
TypeScript
/**
* 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;
}