export type LatencyLogger = { info: (message: string, meta?: Record) => unknown; warn: (message: string, meta?: Record) => unknown; error: (message: string, meta?: Record) => unknown; }; export declare const setLatencyTrackerLogger: (logger: LatencyLogger) => void; export declare const setVerboseLatencyLogging: (enabled: boolean) => void; export declare const isVerboseLatencyLoggingEnabled: () => boolean; export type StageMetric = { name: string; durationMs: number; meta?: Record; }; export type ModelMetric = { model: string; durationMs: number; status: 'success' | 'error'; stage?: string; errorMessage?: string; timeoutMs?: number; tokens?: number | null; cost?: number | null; }; export type LatencySummaryTotals = { totalTokens?: number; totalCost?: number; totalModels?: number; }; type PersistMeta = { errorMessage?: string; latencySummary?: LatencySummaryTotals; } & Record; type SummaryOptions = { message?: string; totals?: LatencySummaryTotals; errorMessage?: string; includeContextKeys?: string[]; }; export declare class LatencyTracker { private readonly flowName; private readonly baseMeta; private static metricsDirectory; private readonly overallStart; private readonly stageTimers; private readonly stageMetrics; private readonly modelMetrics; private readonly context; constructor(flowName: string, baseMeta?: Record); startStage(stage: string): void; isStageActive(stage: string): boolean; endStage(stage: string, meta?: Record): number; recordStage(stage: string, durationMs: number, meta?: Record): void; recordModelLatency(model: string, durationMs: number, status: 'success' | 'error', meta?: { stage?: string; errorMessage?: string; timeoutMs?: number; tokens?: number | null; cost?: number | null; }): void; addContext(meta: Record): void; endAllActiveStages(errorMessage?: string): void; getSnapshot(): { totalDurationMs: number; stages: StageMetric[]; models: ModelMetric[]; context: Record; }; buildSummaryLog(status: 'success' | 'error', options?: SummaryOptions): Record; logSummary(status: 'success' | 'error', options?: SummaryOptions): Record | null; persist(status: 'success' | 'error', meta?: PersistMeta): Promise; private static ensureMetricsDirectory; } export {}; //# sourceMappingURL=LatencyTracker.d.ts.map