import type { Provider } from '../di'; import { type Logger as PinoLogger } from 'pino'; export type LogData = Record; export declare enum LoggerLevel { none = 0, alert = 1, error = 2, warning = 3, log = 4, info = 5, debug = 6, debug2 = 7 } export interface LogEntry { level: LoggerLevel; levelName: keyof typeof LoggerLevel; scope?: string; message: string; data?: LogData; error?: unknown; timestamp: Date; } export type LogSink = (entry: LogEntry) => void; export declare const shouldUsePinoPretty: boolean; export declare const shouldUseSingleLine: boolean; export declare const LoggerContextProps: string[]; export declare const LoggerHttpContextProps: string[]; export declare const LoggerContextSymbol: unique symbol; export declare class Logger { readonly scope: string; protected scopeData?: LogData | undefined; protected sink: LogSink; level: LoggerLevel; constructor(scope?: string, scopeData?: LogData | undefined, sink?: LogSink); scoped(shortName: string, data?: LogData): ScopedLogger; setScopeData(data?: LogData): this; data(data: LogData): ScopedLogger; is(level: LoggerLevel): boolean; alert(...messages: unknown[]): void; error(...messages: unknown[]): void; warning(...messages: unknown[]): void; warn(...messages: unknown[]): void; log(...messages: unknown[]): void; info(...messages: unknown[]): void; debug(...messages: unknown[]): void; debug2(...messages: unknown[]): void; protected write(level: LoggerLevel, messages: unknown[], force?: boolean): void; protected handleError(level: LoggerLevel, message: string | undefined, error: unknown, data: LogData | undefined, contextProps: LogData | undefined): void; } export declare class ScopedLogger extends Logger { } export declare class ExtendedLogger extends ScopedLogger { } export type LoggerInterface = Logger; export declare const pinoLogger: PinoLogger; export declare function createLogger(subject: string | object, defaultData?: LogData): ScopedLogger; export declare function withLoggerContext(data: LogData, fn: () => Promise): Promise; export declare function projectLoggerHttpContext(context: unknown): LogData | undefined; export declare function setLogSink(sink: LogSink): void; export declare function resetLogSink(): void; export declare function createLoggerProviders(): Provider[]; //# sourceMappingURL=logger.d.ts.map