import type { EnumKey, EnumValue } from '@xylabs/enum'; import { Enum } from '@xylabs/enum'; /** A generic logging function that accepts any number of arguments. */ export type LogFunction = (...data: unknown[]) => void; /** * Interface to handle overlap between Winston & * `console` with as much congruency as possible. */ export interface Logger { debug: LogFunction; error: LogFunction; info: LogFunction; log: LogFunction; trace: LogFunction; warn: LogFunction; } /** Numeric log level values, from least verbose (error=1) to most verbose (trace=6). */ export declare const LogLevel: Enum<{ error: 1; warn: 2; info: 3; log: 4; debug: 5; trace: 6; }>; /** String key for a log level (e.g. 'error', 'warn', 'info'). */ export type LogLevelKey = EnumKey; /** Alias for LogLevelKey, representing the verbosity setting as a string. */ export type LogVerbosity = LogLevelKey; /** Numeric value of a log level (1 through 6). */ export type LogLevelValue = EnumValue; /** * A logger that filters messages based on a configured log level. * Methods for levels above the configured threshold return a no-op function. */ export declare class LevelLogger implements Logger { readonly level: LogLevelValue; readonly logger: Logger; constructor(logger: Logger, level?: LogLevelValue); get debug(): LogFunction; get error(): LogFunction; get info(): LogFunction; get log(): LogFunction; get trace(): LogFunction; get warn(): LogFunction; } //# sourceMappingURL=LevelLogger.d.ts.map