export type LogLevel = "debug" | "info" | "warn" | "error"; export interface LogEntry { ts: string; level: LogLevel; event: string; [field: string]: unknown; } export declare class Logger { #private; constructor(opts?: { sink?: (e: LogEntry) => void; level?: LogLevel; base?: Record; }); log(level: LogLevel, event: string, fields?: Record): void; debug(event: string, fields?: Record): void; info(event: string, fields?: Record): void; warn(event: string, fields?: Record): void; error(event: string, fields?: Record): void; /** * A logger that adds `fields` to every entry (request/actor context). * * The level carries over. Attaching context is not a decision about how much to log, and * omitting it here silently reset the child to the `info` default — so a child of a * warn-level logger logged MORE than its parent, and a child of a debug-level one logged * less. Either way the threshold the caller set stopped applying at the first `child()`. */ child(fields: Record): Logger; } /** Silent (default for libraries/tests). */ export declare function silentLogger(): Logger; /** Emit one JSON object per line to stderr (default for CLI/servers). */ export declare function consoleLogger(level?: LogLevel): Logger; //# sourceMappingURL=logger.d.ts.map