import type { Format } from 'logform'; export declare const LEVEL_TO_SEVERITY: Record; /** * Round-trip the record through safe-stable-stringify so circular references * (HTTP client/response cycles, request/response objects, framework execution * contexts) become "[Circular]" instead of crashing the log emit, and bigints * serialize as strings (JSON.stringify can't, and the bare safe-stringify output * wouldn't round-trip through JSON.parse). Symbol keys winston relies on are * untouched (JSON ignores them), so Object.assign only rewrites string fields. */ export declare function bigIntSafeFormat(): Format; /** * Inject every logged HeaderRegistry key present in the active RequestContext frame * into the record under its `name` (→ top-level jsonPayload. in GCP, filterable * as jsonPayload.requestId, jsonPayload.tenantId, …). Values are read DIRECTLY from * RequestContext, secured keys masked via {@link ContextKey.maskForLogs} — no * ContextReader. Caller-supplied fields on the record win on conflict. Runs on EVERY * winston call, including winston's own handleExceptions/handleRejections lines that * bypass the WinstonLogger wrapper. * * This mirrors the (duplicated, on purpose) inline logic in BunyanLogger: it must run * ONLY when a winston backend is installed, never for the plain ConsoleLogger. A log * line with no active RequestContext just injects nothing (startup and background-job * lines are legitimately out of context). */ export declare function injectContextFormat(): Format; /** * Map the winston level onto a top-level `severity` field that the Cloud Logging * agent lifts onto the LogEntry. */ export declare function severityFormat(): Format; /** * Local-only human format: * `[LEVEL][time][Controller.method][loggerName][ctx tags]: message { …extra }` + Error Details block. * Level FIRST, then time (the ordering the production-tested format was tuned for). `controller`/`method` render * as a compact bracket, `loggerName` as its own bracket, every other registered context key as a * `key:value` tag, and anything else the caller attached as trailing JSON. Byte-identical to the bunyan * backend for the same record + `fields`. * * `fields`, when given, is the app-chosen ordered ALLOW-LIST of context keys to render as tags (hides * local noise like `requestPath`); when omitted, the registered logged keys render in registry order. * The time value comes from the `format.timestamp({format:'HH:mm:ss.SSS'})` layer in WinstonConsoleFactory. */ export declare function localPrettyFormat(fields?: string[]): Format;