/** * Log levels ordered by severity (higher numbers = more verbose) */ export declare enum LogLevel { ERROR = 0, WARN = 1, INFO = 2, HTTP = 3, VERBOSE = 4, DEBUG = 5, SILLY = 6 } /** * Error information structure for log entries */ export interface LogError { name: string; message: string; stack?: string | undefined; code?: string | number | undefined; } /** * Service context information - flexible to allow additional properties */ export interface LogContext { service: string; version: string; environment: string; hostname?: string | undefined; pid?: number | undefined; thread?: string | undefined; [key: string]: any; } /** * Complete log entry structure */ export interface LogEntry { level: LogLevel; message: string; timestamp: Date; correlationId?: string | undefined; requestId?: string | undefined; userId?: string | undefined; context?: LogContext | undefined; metadata?: Record | undefined; duration?: number | undefined; error?: LogError | undefined; tags?: string[] | undefined; } /** * Timer interface for performance tracking */ export interface LogTimer { end: (message?: string, metadata?: Record) => number; } /** * Transport interface for log output destinations */ export interface LogTransport { name: string; level: LogLevel; write(entry: LogEntry): Promise; flush?(): Promise; close?(): Promise; } /** * Formatter interface for log output formatting */ export interface LogFormatter { format(entry: LogEntry): string; } /** * Logger configuration options */ export interface LoggerOptions { level: LogLevel; transports: LogTransport[]; context?: Partial | undefined; enableCorrelation?: boolean | undefined; sanitize?: boolean | undefined; sanitizeFields?: string[] | undefined; formatter?: LogFormatter | undefined; onError?: ((error: Error, transport: string) => void) | undefined; /** * Per-context log level overrides. * Keys are context identifiers (e.g., 'nevar.audit', 'nevar.engine'). * When logging with a matching context, the context-specific level is used * instead of the global level. */ contextLevels?: Record | undefined; } /** * Console transport configuration options */ export interface ConsoleTransportOptions { level?: LogLevel | undefined; formatter?: LogFormatter | undefined; } /** * File transport configuration options */ export interface FileTransportOptions { filename: string; level?: LogLevel | undefined; formatter?: LogFormatter | undefined; maxSize?: number | undefined; maxFiles?: number | undefined; createDir?: boolean | undefined; } /** * HTTP transport configuration options */ export interface HTTPTransportOptions { url: string; level?: LogLevel | undefined; headers?: Record | undefined; timeout?: number | undefined; batchSize?: number | undefined; flushInterval?: number | undefined; retries?: number | undefined; } /** * Database transport configuration options */ export interface DatabaseTransportOptions { level?: LogLevel | undefined; connectionString: string; tableName: string; maxPoolSize?: number | undefined; } /** * JSON formatter configuration options */ export interface JSONFormatterOptions { prettyPrint?: boolean | undefined; space?: number | undefined; includeStack?: boolean | undefined; } /** * Text formatter configuration options */ export interface TextFormatterOptions { includeStack?: boolean | undefined; colorize?: boolean | undefined; dateFormat?: string | undefined; } /** * Structured formatter configuration options */ export interface StructuredFormatterOptions { prefix?: string | undefined; delimiter?: string | undefined; includeTimestamp?: boolean | undefined; includeHostname?: boolean | undefined; } /** * Performance metrics for log monitoring */ export interface LogMetrics { totalLogs: number; logsByLevel: Record; errors: number; averageProcessingTime: number; transportFailures: Record; } /** * Log level string mappings */ export declare const LOG_LEVEL_NAMES: Record; /** * Default sanitization fields */ export declare const DEFAULT_SANITIZE_FIELDS: string[]; //# sourceMappingURL=types.d.ts.map