/**
 * Trust Score Time-Series Snapshotter.
 *
 * Records per-agent three-dimensional score snapshots over time. Drives the
 * dashboard trust-curve display (Q1 runtime view's secondary panel, plus
 * the per-agent detail page).
 *
 * Pure in-memory store with sorted-by-time invariants. Persistence to
 * Postgres is a follow-up slice (would wire the same API to Prisma).
 *
 * @connexum/ai-governance  Trust-score time-series (dashboard support)
 */
import type { AgentThreeDimensionalScore } from './trust-score-three-dim.js';
export interface ScoreSnapshot {
    agentId: string;
    /** ISO 8601 timestamp the snapshot was recorded. */
    at: string;
    score: AgentThreeDimensionalScore;
}
export interface TimeRange {
    /** Inclusive lower bound ISO 8601. */
    from?: string;
    /** Inclusive upper bound ISO 8601. */
    to?: string;
}
export interface ScoreDelta {
    agentId: string;
    fromIso: string;
    toIso: string;
    /** Score change per axis (positive = improvement). */
    delta: {
        agent_activity: number;
        operator_activity: number;
        agent_build_structure: number;
        composite: number;
    };
    /** Number of snapshots in the analysis window. */
    sampleCount: number;
}
export declare class TrustScoreSnapshotStore {
    private readonly byAgent;
    record(snapshot: ScoreSnapshot): void;
    /** Returns snapshots ordered by time ascending, optionally filtered by range. */
    getTimeSeries(agentId: string, range?: TimeRange): ScoreSnapshot[];
    /**
     * Compute the score delta over a range (first vs last snapshot in window).
     * Returns null when fewer than 2 snapshots fall in the range.
     */
    computeDelta(agentId: string, range?: TimeRange): ScoreDelta | null;
    /** List every agent that has at least one recorded snapshot. */
    listAgents(): string[];
    /** Most recent snapshot for an agent, or undefined if none recorded. */
    getLatest(agentId: string): ScoreSnapshot | undefined;
    /**
     * Down-sample to at most `maxPoints` evenly spaced snapshots — useful for
     * sparkline charts on the dashboard where 1000-point series produce no
     * additional information than ~50.
     */
    downsample(agentId: string, maxPoints: number, range?: TimeRange): ScoreSnapshot[];
}
//# sourceMappingURL=trust-score-snapshot.d.ts.map