export interface PerformanceEntry {
    timestamp: string;
    sessionId: string;
    provider: string;
    modelId: string;
    outputTokens: number;
    durationMs: number;
    tps: number;
}
export interface RollingAverage {
    median: number;
    mean: number;
    count: number;
}
export type PerformanceDeltaDirection = "above" | "below" | "stable";
export interface PerformanceDelta {
    baselineMedian: number;
    recentMedian: number;
    percentDelta: number;
    direction: PerformanceDeltaDirection;
    baselineCount: number;
    recentCount: number;
}
export declare class PerformanceTracker {
    private static readonly PRUNE_INTERVAL_MS;
    private static readonly LOCK_TIMEOUT_MS;
    private static readonly PRUNE_LOCK_TIMEOUT_MS;
    private static readonly STALE_LOCK_MS;
    private logPath;
    private lockPath;
    private entries;
    private pruneTimer;
    private disposed;
    constructor(logPath?: string);
    record(entry: PerformanceEntry): void;
    getRollingAverage(provider: string, modelId: string, count?: number): RollingAverage;
    getPerformanceDelta(provider: string, modelId: string, recentCount?: number, baselineCount?: number, stablePercent?: number): PerformanceDelta;
    getAllRollingAverages(windowMs?: number): Array<{
        provider: string;
        modelId: string;
        median: number;
        mean: number;
        count: number;
    }>;
    prune(ageMs?: number): void;
    dispose(): void;
    private ensureDir;
    private schedulePrune;
    private readEntries;
    private withLogLock;
    private acquireLock;
    private removeStaleLock;
}
//# sourceMappingURL=performance-tracker.d.ts.map