import type { MastraError } from '../error/index.js'; import type { LoggerContext } from '../observability/types/logging.js'; import type { LogLevel } from './constants.js'; import type { IMastraLogger } from './logger.js'; import type { BaseLogMessage, LoggerTransport } from './transport.js'; /** * A transparent wrapper around IMastraLogger that also forwards log calls * to a LoggerContext (loggerVNext) for observability dual-write. * * All existing `this.logger.info(...)` call sites automatically get * dual-write when this wrapper is injected via `__setLogger()`. * * Span-aware: when called inside an executeWithContext() scope, forwards to * a span-correlated loggerVNext (with traceId/spanId). Otherwise falls back * to the global loggerVNext (no correlation, still persisted to storage). * * Uses a lazy getter function for loggerVNext so it always resolves the * current LoggerContext at call time (observability may initialize after the logger). */ export declare class DualLogger implements IMastraLogger { #private; constructor(inner: IMastraLogger, getLoggerVNext?: () => LoggerContext | undefined); /** * Set or update the loggerVNext getter. * Called after observability initializes (which may happen after logger creation). */ setLoggerVNext(getLoggerVNext: (() => LoggerContext | undefined) | undefined): void; debug(message: string, ...args: any[]): void; info(message: string, ...args: any[]): void; warn(message: string, ...args: any[]): void; error(message: string, ...args: any[]): void; trackException(error: MastraError, metadata?: Record): void; getTransports(): Map; listLogs(transportId: string, params?: { fromDate?: Date; toDate?: Date; logLevel?: LogLevel; filters?: Record; page?: number; perPage?: number; }): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean; }>; listLogsByRunId(args: { transportId: string; runId: string; fromDate?: Date; toDate?: Date; logLevel?: LogLevel; filters?: Record; page?: number; perPage?: number; }): Promise<{ logs: BaseLogMessage[]; total: number; page: number; perPage: number; hasMore: boolean; }>; } //# sourceMappingURL=dual-logger.d.ts.map