/** * Lemma ProjectStore * * Project-aware storage resolver: * - Detects project identity from package.json → cwd basename fallback * - Hashes project name to a 12-char hex prefix for path safety * - Provides Stats and Usage persistence helpers * * Layout: * ~/.lemma-cache/ * proxy.pid * proxy.port * stats.json (global, cross-project) * usage.json (global free-tier counter) * license.json (KeyManager) * <12-char hash>/ (per-project) * cache.db (future SQLite) * project-stats.json */ export declare const CACHE_DIR: string; export declare const PID_FILE: string; export declare const PORT_FILE: string; export declare const STATS_FILE: string; export declare const USAGE_FILE: string; export declare const LICENSE_FILE: string; export declare const CLIPBOARD_PID_FILE: string; export declare const FREE_TIER_LIMIT = 300; export declare const WARNING_THRESHOLD = 0.8; export interface ProjectInfo { name: string; hash: string; cacheDir: string; dbFile: string; statsFile: string; } export interface ProjectStats { total: number; hits: number; misses: number; totalLatency: number; totalTokensSaved: number; providers: Record; } export interface UsageRecord { count: number; lastReset: string; history: Array<{ month: string; count: number; }>; } export declare class ProjectStore { private project; private stats; private usage; constructor(overrideName?: string); getProject(): ProjectInfo; private resolveProject; private detectProjectName; getStats(): Record; getProjectStats(): ProjectStats; recordRequest(opts: { fromCache: boolean; latencyMs: number; provider: string; tokensSaved?: number; }): void; private emptyProjectStats; private loadStats; saveStats(): void; getUsage(): UsageRecord; incrementUsage(): void; checkUsageLimit(): { allowed: boolean; warning?: string; remaining: number; }; getNextResetDate(): string; private loadUsage; saveUsage(override?: UsageRecord): void; private ensureCacheDir; } //# sourceMappingURL=ProjectStore.d.ts.map