import pino from 'pino';
declare const root: pino.Logger<never, boolean>;
/**
 * Sanitise free-form user text for safe inclusion in structured logs.
 *
 * Pre-existing behaviour: `text.substring(0, 120)` put the first 120
 * characters of every user message verbatim into stdout. With
 * systemd-journald persistence + SIEM forwarding, that meant sensitive
 * chat (credentials pasted by a user, PII, internal product names)
 * ended up archived in the security-event store indefinitely.
 *
 * The replacement returns three short fields:
 *
 *   * `len`    — full length in characters (operationally useful)
 *   * `prefix` — first 6 chars only, for "is this what I expected?" sanity
 *   * `hash`   — sha256 first 12 hex chars of the FULL text, lets the
 *                operator correlate the same message across multiple
 *                log lines or with the original (if the user later
 *                provides it) without storing the message itself
 *
 * Designed to be spread into a structured log call:
 *   `logger.info({ event: 'message.received', ...sanitizeUserText(text) })`
 *
 * Operators who need the verbatim text (e.g. for debugging) can re-enable
 * by setting `IMHUB_LOG_USER_TEXT=1` — that path is intentionally noisy
 * (`WARN` level) so it surfaces in default LOG_LEVEL=info deployments.
 */
export declare function sanitizeUserText(text: string): {
    len: number;
    prefix: string;
    hash: string;
    text?: string;
};
export declare function generateTraceId(): string;
export declare function createLogger(bindings?: Record<string, unknown>): pino.Logger;
export { root as logger };
//# sourceMappingURL=logger.d.ts.map