/**
 * Persistent cache for collection data to support offline/anonymous browsing
 */
export interface CollectionItem {
    name: string;
    path: string;
    sha: string;
    content?: string;
    last_modified?: string;
}
export interface CollectionCacheEntry {
    items: CollectionItem[];
    timestamp: number;
    etag?: string;
}
/**
 * Persistent cache for collection data that supports offline browsing
 */
export declare class CollectionCache {
    private cacheDir;
    private cacheFile;
    private readonly CACHE_TTL_MS;
    constructor(baseDir?: string);
    /**
     * Initialize cache directory
     */
    private ensureCacheDir;
    /**
     * Load collection data from persistent cache
     */
    loadCache(): Promise<CollectionCacheEntry | null>;
    /**
     * Save collection data to persistent cache
     */
    saveCache(items: CollectionItem[], etag?: string): Promise<void>;
    /**
     * Search cached collection items with fuzzy matching
     */
    searchCache(query: string): Promise<CollectionItem[]>;
    /**
     * Normalize search terms for better matching (handles spaces, dashes, etc.)
     */
    private normalizeSearchTerm;
    /**
     * Get cached collection items by type/path
     */
    getItemsByPath(pathPrefix: string): Promise<CollectionItem[]>;
    /**
     * Check if cache exists and is valid
     */
    isCacheValid(): Promise<boolean>;
    /**
     * Clear the cache
     */
    clearCache(): Promise<void>;
    /**
     * Get cache stats for debugging
     */
    getCacheStats(): Promise<{
        itemCount: number;
        cacheAge: number;
        isValid: boolean;
    }>;
}
//# sourceMappingURL=CollectionCache.d.ts.map