import type { Logger } from '../logger.js'; import { type LogSinkCounters, type LoggerOptions, type MutableLogSinkCounters } from './types.js'; export type CreatedLogger = Logger & { readonly counters: LogSinkCounters; }; export declare function newCounters(): MutableLogSinkCounters; /** * `shared` lets several loggers write through ONE counter set. * * Without it the counters answer a question nobody asks. The process-wide * accessor this seam replaced resolved per call and built a fresh logger each * time, so every count it accumulated died with the expression that read it -- the five fields were * incremented on every record in the process and read by nothing, which is * `declared-but-undriven` with a comment above it promising `namzu doctor` * would read them. `installProcessSink` now owns one set for the process, * and that promise is discharged rather than deleted. */ export declare function createLogger(options: LoggerOptions, shared?: MutableLogSinkCounters): CreatedLogger; /** * A logger that discards everything, countably. Every call is accepted (the * level is `debug`, the widest threshold), and every accepted call is routed * to `NOOP_SINK` and counted as dropped — a host holding `NOOP_LOGGER` can * still tell "N calls happened and were discarded" from "N calls never * happened", which a logger that filtered everything out at `silent` could * not: a filtered call never reaches dispatch and is never counted at all. */ export declare const NOOP_LOGGER: CreatedLogger; //# sourceMappingURL=create-logger.d.ts.map