/**
 * Persistent Disk Cache for Usage Data
 *
 * Caches aggregated usage data to disk to avoid re-parsing 6000+ JSONL files
 * on every dashboard startup. Uses TTL-based invalidation with stale-while-revalidate.
 *
 * Cache location: ~/.ccs/cache/usage.json
 * Default TTL: 5 minutes (configurable)
 */
import type { DailyUsage, HourlyUsage, MonthlyUsage, SessionUsage } from './types';
/** Structure of the disk cache file */
export interface UsageDiskCache {
    version: number;
    timestamp: number;
    daily: DailyUsage[];
    hourly: HourlyUsage[];
    monthly: MonthlyUsage[];
    session: SessionUsage[];
}
/**
 * Read usage data from disk cache
 * Returns null if cache is missing, corrupted, or has incompatible version
 * NOTE: Does NOT reject based on age - caller handles staleness via SWR pattern
 */
export declare function readDiskCache(): UsageDiskCache | null;
/**
 * Check if disk cache is fresh (within TTL)
 */
export declare function isDiskCacheFresh(cache: UsageDiskCache | null): boolean;
/**
 * Check if disk cache is stale but usable (between TTL and STALE_TTL)
 */
export declare function isDiskCacheStale(cache: UsageDiskCache | null): boolean;
/**
 * Write usage data to disk cache
 */
export declare function writeDiskCache(daily: DailyUsage[], hourly: HourlyUsage[], monthly: MonthlyUsage[], session: SessionUsage[]): void;
/**
 * Get cache age in human-readable format
 */
export declare function getCacheAge(cache: UsageDiskCache | null): string;
/**
 * Delete disk cache (for manual refresh)
 */
export declare function clearDiskCache(): void;
//# sourceMappingURL=disk-cache.d.ts.map