UNPKG

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
/** * 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; }