/**
 * Logger Context
 * Context tracking and propagation for structured logging
 */
import type { LogContext, ContextualLogger } from './types.js';
/** Correlation fields merged into every log line while the store is active (via pino mixin). */
declare const ASYNC_LOG_CORRELATION_KEYS: readonly ["requestId", "sessionId", "userId", "correlationId"];
type AsyncLogCorrelationKey = (typeof ASYNC_LOG_CORRELATION_KEYS)[number];
/**
 * Run *fn* with merged async log context. Propagates through async/await (Node AsyncLocalStorage).
 * Nested calls merge over the parent context (shallow per key).
 */
export declare function runWithLogContext<T>(context: LogContext, fn: () => T): T;
/** Current async log context, if any. */
export declare function getAsyncLogContext(): LogContext | undefined;
/**
 * Shallow-merge fields into the current async log context (e.g. set sessionId after parsing a body).
 * No-op when not inside {@link runWithLogContext}.
 */
export declare function updateAsyncLogContext(partial: LogContext): void;
/** Keys injected from async context into log records (used by logger mixin). */
export declare function getAsyncLogCorrelationKeys(): readonly AsyncLogCorrelationKey[];
export declare function inboundCorrelationMetadataFromAsyncLogContext(): Record<string, unknown> | undefined;
/**
 * Merge two contexts
 */
export declare function mergeContext(base: LogContext, additional: LogContext): LogContext;
/**
 * Store context for a request ID
 */
export declare function setRequestContext(requestId: string, context: LogContext): void;
/**
 * Get context for a request ID
 */
export declare function getRequestContext(requestId: string): LogContext | undefined;
/**
 * Clear context for a request ID
 */
export declare function clearRequestContext(requestId: string): void;
/**
 * Create a child logger with additional context
 * This is a placeholder for the actual implementation
 */
export declare function withContext(logger: ContextualLogger, context: LogContext): ContextualLogger;
export {};
