import { FeatureFlag, Segment, SegmentId, EvaluationContext } from '../advanced/types'; import { FlagProvider, RemoteProviderConfig, FlagChangeListener, ProviderHealth, ProviderStats } from './types'; /** * Remote flag provider that fetches flags from an API endpoint. */ export declare class RemoteProvider implements FlagProvider { readonly name: string; readonly priority: number; private flags; private segments; private listeners; private ready; private readonly config; private health; private stats; private abortController; constructor(config: RemoteProviderConfig); /** * Initialize the provider by fetching initial flags. */ initialize(): Promise; /** * Get all flags. */ getFlags(): Promise; /** * Get a flag by key. */ getFlag(key: string): Promise; /** * Refresh flags from the remote server. */ refresh(): 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 provider health status. */ getHealth(): ProviderHealth; /** * Get provider statistics. */ getStats(): ProviderStats; /** * Subscribe to flag changes. */ subscribe(listener: FlagChangeListener): () => void; /** * Shutdown the provider. */ shutdown(): Promise; /** * Update the context for subsequent requests. */ setContext(context: EvaluationContext): void; private fetchFlags; private fetchSingleFlag; private fetchSegments; private request; private buildUrl; private buildHeaders; private buildContextParams; private deserializeFlag; private deserializeSegment; private recordSuccess; private recordFailure; private emitChange; private updateStats; private sleep; private log; } /** * Create a remote provider instance. */ export declare function createRemoteProvider(config: RemoteProviderConfig): RemoteProvider;