/** * Logger interface for ABAC Engine * * This interface allows for pluggable logging implementations. * Users can provide their own logger (Winston, Pino, Bunyan, etc.) * or use the default console-based logger. */ export interface ILogger { /** * Log debug messages */ debug(message: string, meta?: Record): void; /** * Log informational messages */ info(message: string, meta?: Record): void; /** * Log warning messages */ warn(message: string, meta?: Record): void; /** * Log error messages */ error(message: string, error?: Error | unknown, meta?: Record): void; } /** * Log levels for filtering */ export declare enum LogLevel { Debug = 0, Info = 1, Warn = 2, Error = 3, None = 4 } /** * Default console-based logger implementation * * This logger outputs to console and can be filtered by log level. * For production use, consider using a more robust logging library. */ export declare class ConsoleLogger implements ILogger { private readonly minLevel; constructor(minLevel?: LogLevel); debug(message: string, meta?: Record): void; info(message: string, meta?: Record): void; warn(message: string, meta?: Record): void; error(message: string, error?: Error | unknown, meta?: Record): void; } /** * Silent logger that doesn't output anything * Useful for testing or when logging is not desired */ export declare class SilentLogger implements ILogger { debug(_message: string, _meta?: Record): void; info(_message: string, _meta?: Record): void; warn(_message: string, _meta?: Record): void; error(_message: string, _error?: Error | unknown, _meta?: Record): void; } /** * Create a logger instance based on environment * * @param level - Minimum log level to output * @returns Logger instance */ export declare function createLogger(level?: LogLevel): ILogger; //# sourceMappingURL=logger.d.ts.map