import { type Logger } from 'pino';
/**
 * Structured logger (pino, JSON output).
 *
 * Принципы:
 *   - stdout зарезервирован под JSON-RPC (stdio transport) → все pino-логи
 *     идут в stderr.
 *   - Format: JSON по умолчанию. Pretty-print в dev (`NODE_ENV=development`,
 *     если установлен pino-pretty).
 *   - Redaction: secrets автоматически замещаются на `<REDACTED>` (см. § 2.4
 *     спеки `07-observability.md`).
 *   - Base fields: service, version, pod (HOSTNAME).
 *
 * Per-request child logger создаётся в HTTP middleware через
 * `logger.child({ requestId, sessionId, appSlug, tool })`.
 */
export interface LoggerConfig {
    level?: string;
    service?: string;
    /** Используется в `base.version`. */
    version?: string;
    /** Используется в `base.pod` (для k8s identification). */
    pod?: string;
    /** Pretty-print для dev. */
    pretty?: boolean;
}
export declare function createLogger(cfg?: LoggerConfig): Logger;
/** Singleton accessor. */
export declare function getLogger(): Logger;
export declare function setLogger(logger: Logger): void;
/**
 * Per-request child logger. Поля:
 *   - requestId, sessionId, appSlug, keyPrefix, tool — для корреляции.
 */
export interface RequestLogFields {
    requestId?: string;
    sessionId?: string;
    appSlug?: string | null;
    keyPrefix?: string;
    tool?: string;
    cached?: boolean;
    latencyMs?: number;
}
export declare function withRequestContext(logger: Logger, fields: RequestLogFields): Logger;
//# sourceMappingURL=logger.d.ts.map