/** * Persistence Interface * * Abstract interface for persisting metrics to any storage backend. * Implement this interface to add custom persistence (PostgreSQL, MongoDB, Redis, etc.) */ import type { AgentMetrics, ToolMetrics, LatencyMetrics, RequestTimingMetrics } from './types'; /** * Interface for persisting metrics * Implement this to add custom persistence backends */ export interface MetricsPersistence { /** * Persist agent metrics */ persistAgentMetrics(metrics: AgentMetrics): Promise; /** * Persist tool metrics */ persistToolMetrics(metrics: ToolMetrics): Promise; /** * Persist latency metrics */ persistLatencyMetrics(metrics: LatencyMetrics): Promise; /** * Persist request timing metrics */ persistRequestTimingMetrics(metrics: RequestTimingMetrics): Promise; /** * Retrieve agent metrics */ getAgentMetrics(timeRangeMs?: number, contextId?: string): Promise; /** * Retrieve tool metrics */ getToolMetrics(timeRangeMs?: number, contextId?: string): Promise; /** * Retrieve latency metrics */ getLatencyMetrics(timeRangeMs?: number): Promise; /** * Retrieve request timing metrics */ getRequestTimingMetrics(timeRangeMs?: number, contextId?: string): Promise; } /** * No-op persistence implementation (metrics only stored in memory) */ export declare class NoOpPersistence implements MetricsPersistence { persistAgentMetrics(_metrics: AgentMetrics): Promise; persistToolMetrics(_metrics: ToolMetrics): Promise; persistLatencyMetrics(_metrics: LatencyMetrics): Promise; persistRequestTimingMetrics(_metrics: RequestTimingMetrics): Promise; getAgentMetrics(_timeRangeMs?: number, _contextId?: string): Promise; getToolMetrics(_timeRangeMs?: number, _contextId?: string): Promise; getLatencyMetrics(_timeRangeMs?: number): Promise; getRequestTimingMetrics(_timeRangeMs?: number, _contextId?: string): Promise; } //# sourceMappingURL=persistence.d.ts.map