/**
 * Context Cache Store - In-memory cache with TTL and LRU eviction
 * Stores packed file contents with session-based lifecycle management
 */
/** Cache entry metadata */
export interface CacheMetadata {
    files: string[];
    patterns: string[];
    total_bytes: number;
    file_count: number;
}
/** Cache entry structure */
export interface CacheEntry {
    session_id: string;
    created_at: number;
    accessed_at: number;
    ttl: number;
    content: string;
    metadata: CacheMetadata;
}
/** Paginated read result */
export interface PagedReadResult {
    content: string;
    offset: number;
    limit: number;
    total_bytes: number;
    has_more: boolean;
    next_offset: number | null;
}
/** Cache status info */
export interface CacheStatus {
    entries: number;
    total_bytes: number;
    oldest_session: string | null;
    newest_session: string | null;
}
/** Session status info */
export interface SessionStatus {
    session_id: string;
    exists: boolean;
    files?: string[];
    file_count?: number;
    total_bytes?: number;
    created_at?: string;
    expires_at?: string;
    accessed_at?: string;
    ttl_remaining_ms?: number;
}
/**
 * Context Cache Store singleton
 * Manages in-memory cache with TTL expiration and LRU eviction
 */
declare class ContextCacheStore {
    private cache;
    private maxEntries;
    private defaultTTL;
    private cleanupInterval;
    constructor(options?: {
        maxEntries?: number;
        defaultTTL?: number;
        cleanupIntervalMs?: number;
    });
    /**
     * Store packed content in cache
     */
    set(sessionId: string, content: string, metadata: CacheMetadata, ttl?: number): CacheEntry;
    /**
     * Get cache entry by session ID
     */
    get(sessionId: string): CacheEntry | null;
    /**
     * Read content with pagination
     */
    read(sessionId: string, offset?: number, limit?: number): PagedReadResult | null;
    /**
     * Release (delete) cache entry
     */
    release(sessionId: string): {
        released: boolean;
        freed_bytes: number;
    };
    /**
     * Get session status
     */
    getSessionStatus(sessionId: string): SessionStatus;
    /**
     * Get overall cache status
     */
    getStatus(): CacheStatus;
    /**
     * Cleanup expired entries
     */
    cleanupExpired(): {
        removed: number;
    };
    /**
     * Clear all cache entries
     */
    clear(): {
        removed: number;
    };
    /**
     * Check if entry is expired
     */
    private isExpired;
    /**
     * Evict oldest entry (LRU)
     */
    private evictOldest;
    /**
     * Stop cleanup timer (for graceful shutdown)
     */
    destroy(): void;
    /**
     * List all session IDs
     */
    listSessions(): string[];
    /**
     * Check if session exists and is valid
     */
    has(sessionId: string): boolean;
}
/**
 * Get the singleton cache instance
 */
export declare function getContextCacheStore(options?: {
    maxEntries?: number;
    defaultTTL?: number;
    cleanupIntervalMs?: number;
}): ContextCacheStore;
/**
 * Reset the cache instance (for testing)
 */
export declare function resetContextCacheStore(): void;
export { ContextCacheStore };
//# sourceMappingURL=context-cache-store.d.ts.map