import { FeatureFlag, Segment, SegmentId } from '../advanced/types'; import { FlagProvider, PollingProviderConfig, FlagChangeListener, ProviderStats } from './types'; /** * Polling wrapper that periodically refreshes flags from an underlying provider. */ export declare class PollingProvider implements FlagProvider { readonly name: string; readonly priority: number; private provider; private listeners; private ready; private config; private pollingTimer; private isPolling; private consecutiveFailures; private lastPollTime; private cachedFlags; private cachedSegments; private visibilityHandler; private isPaused; constructor(config: PollingProviderConfig); /** * Initialize the provider. */ initialize(): Promise; /** * Start polling for updates. */ startPolling(): void; /** * Stop polling. */ stopPolling(): void; /** * Pause polling (e.g., when page is hidden). */ pausePolling(): void; /** * Resume polling. */ resumePolling(): void; /** * Trigger an immediate poll. */ pollNow(): Promise; /** * Get all flags. */ getFlags(): Promise; /** * Get a flag by key. */ getFlag(key: string): Promise; /** * Get all segments. */ getSegments(): Promise; /** * Get a segment by ID. */ getSegment(id: SegmentId): Promise; /** * Check if the provider is ready. */ isReady(): boolean; /** * Check if the provider is healthy. */ isHealthy(): Promise; /** * Get polling status. */ getPollingStatus(): { isPolling: boolean; isPaused: boolean; lastPollTime: Date | null; consecutiveFailures: number; interval: number; }; /** * Get provider statistics. */ getStats(): ProviderStats; /** * Subscribe to flag changes. */ subscribe(listener: FlagChangeListener): () => void; /** * Shutdown the provider. */ shutdown(): Promise; /** * Update the polling interval. */ setInterval(interval: number): void; private scheduleNextPoll; private poll; private detectChanges; private setupVisibilityHandler; private removeVisibilityHandler; private emitChange; private log; } /** * Create a polling provider instance. */ export declare function createPollingProvider(config: PollingProviderConfig): PollingProvider;