interface TimingStatsReport { count: number; avgMs: number; medianMs: number; maxMs: number; totalMs: number; } export declare function makeTimingReport(data: number[]): TimingStatsReport; export declare class LookupStats { static write(datasource: string, duration: number): void; static wrap(datasource: string, callback: () => Promise): Promise; static getReport(): Record; static report(): void; } export declare class PackageCacheStats { static writeSet(duration: number): void; static wrapSet(callback: () => Promise): Promise; static writeGet(duration: number): void; static wrapGet(callback: () => Promise): Promise; static getReport(): { get: TimingStatsReport; set: TimingStatsReport; }; static report(): void; } export interface HttpRequestStatsDataPoint { method: string; url: string; reqMs: number; queueMs: number; status: number; } interface HostStatsData { count: number; reqAvgMs: number; reqMedianMs: number; reqMaxMs: number; queueAvgMs: number; queueMedianMs: number; queueMaxMs: number; } type UrlHttpStat = Record>>; interface HttpStatsCollection { urls: UrlHttpStat; hosts: Record; requests: number; rawRequests: string[]; hostRequests: Record; } export declare class HttpStats { static write(data: HttpRequestStatsDataPoint): void; static getDataPoints(): HttpRequestStatsDataPoint[]; static getReport(): HttpStatsCollection; static report(): void; } interface HttpCacheHostStatsData { hit: number; miss: number; localHit?: number; localMiss?: number; } type HttpCacheStatsData = Record; export declare class HttpCacheStats { static getData(): HttpCacheStatsData; static read(key: string): HttpCacheHostStatsData; static write(key: string, data: HttpCacheHostStatsData): void; static getBaseUrl(url: string): string | null; static incLocalHits(url: string): void; static incLocalMisses(url: string): void; static incRemoteHits(url: string): void; static incRemoteMisses(url: string): void; static report(): void; } export {};