import type { InMemoryDB } from '../inmemory-db.js'; import { ObservabilityStorage } from './base.js'; import type { GetEntityTypesArgs, GetEntityTypesResponse, GetEntityNamesArgs, GetEntityNamesResponse, GetServiceNamesArgs, GetServiceNamesResponse, GetEnvironmentsArgs, GetEnvironmentsResponse, GetTagsArgs, GetTagsResponse, GetMetricNamesArgs, GetMetricNamesResponse, GetMetricLabelKeysArgs, GetMetricLabelKeysResponse, GetMetricLabelValuesArgs, GetMetricLabelValuesResponse } from './discovery.js'; import type { BatchCreateFeedbackArgs, CreateFeedbackArgs, GetFeedbackAggregateArgs, GetFeedbackAggregateResponse, GetFeedbackBreakdownArgs, GetFeedbackBreakdownResponse, GetFeedbackPercentilesArgs, GetFeedbackPercentilesResponse, GetFeedbackTimeSeriesArgs, GetFeedbackTimeSeriesResponse, ListFeedbackArgs, ListFeedbackResponse } from './feedback.js'; import type { BatchCreateLogsArgs, ListLogsArgs, ListLogsResponse } from './logs.js'; import type { BatchCreateMetricsArgs, ListMetricsArgs, ListMetricsResponse, GetMetricAggregateArgs, GetMetricAggregateResponse, GetMetricBreakdownArgs, GetMetricBreakdownResponse, GetMetricTimeSeriesArgs, GetMetricTimeSeriesResponse, GetMetricPercentilesArgs, GetMetricPercentilesResponse } from './metrics.js'; import type { BatchCreateScoresArgs, CreateScoreArgs, GetScoreAggregateArgs, GetScoreAggregateResponse, GetScoreBreakdownArgs, GetScoreBreakdownResponse, GetScorePercentilesArgs, GetScorePercentilesResponse, GetScoreTimeSeriesArgs, GetScoreTimeSeriesResponse, ListScoresArgs, ListScoresResponse } from './scores.js'; import type { BatchCreateSpansArgs, BatchDeleteTracesArgs, BatchUpdateSpansArgs, CreateSpanArgs, GetRootSpanArgs, GetRootSpanResponse, GetSpanArgs, GetSpanResponse, GetTraceArgs, GetTraceResponse, ListTracesArgs, ListTracesResponse, SpanRecord, UpdateSpanArgs } from './tracing.js'; import { TraceStatus } from './tracing.js'; /** * Internal structure for storing a trace with computed properties for efficient filtering */ export interface TraceEntry { /** All spans in this trace, keyed by spanId */ spans: Record; /** Root span for this trace (parentSpanId === null) */ rootSpan: SpanRecord | null; /** Computed trace status based on root span state */ status: TraceStatus; /** True if any span in the trace has an error */ hasChildError: boolean; } /** In-memory implementation of ObservabilityStorage for testing and development. */ export declare class ObservabilityInMemory extends ObservabilityStorage { private db; constructor({ db }: { db: InMemoryDB; }); dangerouslyClearAll(): Promise; createSpan(args: CreateSpanArgs): Promise; batchCreateSpans(args: BatchCreateSpansArgs): Promise; private validateCreateSpan; /** * Inserts or updates a span in the trace and recomputes trace-level properties */ private upsertSpanToTrace; /** * Recomputes derived trace properties from all spans */ private recomputeTraceProperties; getSpan(args: GetSpanArgs): Promise; getRootSpan(args: GetRootSpanArgs): Promise; getTrace(args: GetTraceArgs): Promise; listTraces(args: ListTracesArgs): Promise; /** * Check if a trace matches all provided filters */ private traceMatchesFilters; updateSpan(args: UpdateSpanArgs): Promise; batchUpdateSpans(args: BatchUpdateSpansArgs): Promise; batchDeleteTraces(args: BatchDeleteTracesArgs): Promise; batchCreateMetrics(args: BatchCreateMetricsArgs): Promise; listMetrics(args: ListMetricsArgs): Promise; private filterMetrics; private aggregate; private interpolatePercentile; /** * Cost is returned alongside value-based OLAP results so callers can derive * token and monetary views from the same filtered scan. */ private summarizeCost; getMetricAggregate(args: GetMetricAggregateArgs): Promise; getMetricBreakdown(args: GetMetricBreakdownArgs): Promise; getMetricTimeSeries(args: GetMetricTimeSeriesArgs): Promise; getMetricPercentiles(args: GetMetricPercentilesArgs): Promise; private intervalToMs; getMetricNames(args: GetMetricNamesArgs): Promise; getMetricLabelKeys(args: GetMetricLabelKeysArgs): Promise; getMetricLabelValues(args: GetMetricLabelValuesArgs): Promise; getEntityTypes(_args: GetEntityTypesArgs): Promise; getEntityNames(args: GetEntityNamesArgs): Promise; getServiceNames(_args: GetServiceNamesArgs): Promise; getEnvironments(_args: GetEnvironmentsArgs): Promise; getTags(args: GetTagsArgs): Promise; batchCreateLogs(args: BatchCreateLogsArgs): Promise; listLogs(args: ListLogsArgs): Promise; private logMatchesFilters; createScore(args: CreateScoreArgs): Promise; batchCreateScores(args: BatchCreateScoresArgs): Promise; listScores(args: ListScoresArgs): Promise; private scoreMatchesFilters; getScoreAggregate(args: GetScoreAggregateArgs): Promise; getScoreBreakdown(args: GetScoreBreakdownArgs): Promise; getScoreTimeSeries(args: GetScoreTimeSeriesArgs): Promise; getScorePercentiles(args: GetScorePercentilesArgs): Promise; private getNumericFeedbackValue; private getComparisonDateRange; createFeedback(args: CreateFeedbackArgs): Promise; batchCreateFeedback(args: BatchCreateFeedbackArgs): Promise; listFeedback(args: ListFeedbackArgs): Promise; getFeedbackAggregate(args: GetFeedbackAggregateArgs): Promise; getFeedbackBreakdown(args: GetFeedbackBreakdownArgs): Promise; getFeedbackTimeSeries(args: GetFeedbackTimeSeriesArgs): Promise; getFeedbackPercentiles(args: GetFeedbackPercentilesArgs): Promise; private feedbackMatchesFilters; } //# sourceMappingURL=inmemory.d.ts.map