/**
 * LoggerContextImpl - Structured logging with automatic trace correlation.
 *
 * Emits LogEvent to the ObservabilityBus. All context (correlationContext,
 * metadata) is snapshotted at construction time.
 */
import type { LogLevel, LoggerContext, CorrelationContext } from '@mastra/core/observability';
import type { ObservabilityBus } from '../bus/index.js';
export interface LoggerContextConfig {
    /** Top-level trace identity for emitted log events */
    traceId?: string;
    /** Top-level span identity for emitted log events */
    spanId?: string;
    /** Canonical correlation context for log correlation */
    correlationContext?: CorrelationContext;
    /** Metadata (entity context, runId, environment, serviceName, etc.) */
    metadata?: Record<string, unknown>;
    /** Bus for event emission */
    observabilityBus: ObservabilityBus;
    /** Minimum log level (logs below this are discarded) */
    minLevel?: LogLevel;
}
export declare class LoggerContextImpl implements LoggerContext {
    private config;
    /**
     * Create a logger context. Context and metadata are defensively copied so
     * mutations after construction do not affect emitted logs.
     */
    constructor(config: LoggerContextConfig);
    /** Log at DEBUG level. */
    debug(message: string, data?: Record<string, unknown>): void;
    /** Log at INFO level. */
    info(message: string, data?: Record<string, unknown>): void;
    /** Log at WARN level. */
    warn(message: string, data?: Record<string, unknown>): void;
    /** Log at ERROR level. */
    error(message: string, data?: Record<string, unknown>): void;
    /** Log at FATAL level. */
    fatal(message: string, data?: Record<string, unknown>): void;
    /**
     * Build an ExportedLog, check against the minimum level, and emit it through the bus.
     */
    private log;
}
//# sourceMappingURL=logger.d.ts.map