/**
 * Distributed Caching for Teams (Item 104)
 * Shared response cache across team members
 */
import { EventEmitter } from 'events';
export interface CacheEntry {
    key: string;
    value: string;
    metadata: {
        createdBy: string;
        createdAt: Date;
        expiresAt: Date;
        hits: number;
        size: number;
    };
}
export interface CacheStats {
    totalEntries: number;
    totalSize: number;
    hitRate: number;
    missRate: number;
}
export interface DistributedCacheConfig {
    maxSize?: number;
    ttl?: number;
    syncInterval?: number;
    nodes?: string[];
}
export declare class DistributedCache extends EventEmitter {
    private cache;
    private config;
    private hits;
    private misses;
    private syncTimer;
    constructor(config?: DistributedCacheConfig);
    private generateKey;
    set(key: string, value: string, userId: string): boolean;
    get(key: string): string | null;
    has(key: string): boolean;
    delete(key: string): boolean;
    private evictIfNeeded;
    private getTotalSize;
    getStats(): CacheStats;
    clear(): void;
    startSync(): void;
    stopSync(): void;
    private cleanup;
    dispose(): void;
}
export declare function getDistributedCache(config?: DistributedCacheConfig): DistributedCache;
export default DistributedCache;
