import { FeatureFlag, Segment, SegmentId } from '..'; import { FlagProvider, CachedProviderConfig, FlagChangeListener, ProviderStats } from './types'; /** * Caching wrapper for flag providers. */ export declare class CachedProvider implements FlagProvider { readonly name: string; readonly priority: number; private provider; private flagsCache; private flagCache; private segmentsCache; private listeners; private ready; private config; private cacheHits; private cacheMisses; private revalidating; private readonly storageKey; constructor(config: CachedProviderConfig); /** * Initialize the provider. */ initialize(): Promise; /** * Get all flags with caching. */ getFlags(): Promise; /** * Get a specific flag with caching. */ getFlag(key: string): Promise; /** * Get all segments with caching. */ getSegments(): Promise; /** * Get a segment by ID. */ getSegment(id: SegmentId): Promise; /** * Invalidate all cached data. */ invalidate(): void; /** * Invalidate a specific flag. */ invalidateFlag(key: string): void; /** * Force refresh the cache. */ refresh(): Promise; /** * Check if the provider is ready. */ isReady(): boolean; /** * Check if the provider is healthy. */ isHealthy(): Promise; /** * Get cache statistics. */ getCacheStats(): { hits: number; misses: number; hitRate: number; size: number; flagsCached: boolean; segmentsCached: boolean; }; /** * Get provider statistics. */ getStats(): ProviderStats; /** * Subscribe to flag changes. */ subscribe(listener: FlagChangeListener): () => void; /** * Shutdown the provider. */ shutdown(): Promise; private fetchAndCacheFlags; private cacheFlag; private findOldestEntry; private revalidateInBackground; private getStorage; private loadFromStorage; private saveToStorage; private handleProviderChange; private emitChange; private log; } /** * Create a cached provider instance. */ export declare function createCachedProvider(config: CachedProviderConfig): CachedProvider;