/** * `src/services/observability/aggregation-helpers.ts` * * The event-detail readers the aggregations in `aggregation.ts` are built on * (category test, `detail` field extraction, timestamp difference) and the * two event-source helpers the CLI calls. Moved verbatim (wave 3, file-size * cap campaign) so the aggregation module stays under the 300 raw-line cap. * The first four were module-private before the move and are NOT re-exported * from `aggregation.ts`; the two event-source helpers were public and are * re-exported there, so that module's public surface is unchanged. * * The per-slice repair-cycle count that used to live here moved to * `repair-cycle-metric.ts`: the version-1 counter this file carried counted * QA's own state transitions, not repair loops, and the corrected metric * needs its own module to keep the version marker and the legacy count * together. */ import { type ObservabilityEvent } from './observability-service.js'; export declare function isSliceTransition(event: ObservabilityEvent): event is ObservabilityEvent & { sliceRid: string; }; export declare function artifactRole(event: ObservabilityEvent): string; export declare function transitionTo(event: ObservabilityEvent): string | null; export declare function durationMsBetween(firstTs: string, lastTs: string): number; export declare function readAllSessionEvents(projectRoot: string): ObservabilityEvent[]; export declare function readSessionEvents(projectRoot: string, sessionId: string): ObservabilityEvent[];