/**
 * Cache manager for research API responses
 *
 * @module research/cache/manager
 */
/**
 * Cache configuration
 */
export interface CacheConfig {
    /** Cache directory path */
    cacheDir: string;
    /** Default TTL in seconds */
    defaultTtl: number;
    /** TTL per endpoint type */
    ttlByEndpoint?: Record<string, number>;
}
/**
 * Cache manager for file-based caching
 */
export declare class CacheManager {
    private config;
    constructor(config?: Partial<CacheConfig>);
    /**
     * Get cached data
     */
    get<T>(key: string): Promise<T | null>;
    /**
     * Set cached data
     */
    set<T>(key: string, data: T, endpoint?: string): Promise<void>;
    /**
     * Delete cached data
     */
    delete(key: string): Promise<void>;
    /**
     * Clear all cache
     */
    clear(): Promise<void>;
    /**
     * Clear expired entries
     */
    clearExpired(): Promise<number>;
    /**
     * Get cache statistics
     */
    getStats(): Promise<{
        totalEntries: number;
        expiredEntries: number;
        sizeBytes: number;
    }>;
    /**
     * Generate cache key from input
     */
    generateKey(endpoint: string, params: Record<string, unknown>): string;
    /**
     * Check if cache entry is expired
     */
    private isExpired;
    /**
     * Get file path for cache key
     */
    private getFilePath;
    /**
     * Ensure directory exists
     */
    private ensureDir;
    /**
     * List all cache files
     */
    private listCacheFiles;
}
//# sourceMappingURL=manager.d.ts.map