import { FeatureFlag, Segment, SegmentId } from '../advanced/types'; import { FlagProvider, CompositeProviderConfig, FlagChangeListener, ProviderStats } from './types'; /** * Composite provider that combines multiple flag providers. */ export declare class CompositeProvider implements FlagProvider { readonly name: string; readonly priority: number; private readonly providers; private listeners; private ready; private config; private unsubscribes; constructor(config: CompositeProviderConfig); /** * Initialize all providers. */ initialize(): Promise; /** * Get all flags from providers based on strategy. */ getFlags(): Promise; /** * Get a specific flag. */ getFlag(key: string): Promise; /** * Get all segments from providers. */ getSegments(): Promise; /** * Get a segment by ID. */ getSegment(id: SegmentId): Promise; /** * Add a provider. */ addProvider(provider: FlagProvider): void; /** * Remove a provider. */ removeProvider(name: string): void; /** * Get all providers. */ getProviders(): readonly FlagProvider[]; /** * Get a provider by name. */ getProvider(name: string): FlagProvider | undefined; /** * Check if the provider is ready. */ isReady(): boolean; /** * Check if the provider is healthy. */ isHealthy(): Promise; /** * Get health status for all providers. */ getProviderHealths(): Promise>; /** * Get aggregate statistics. */ getStats(): ProviderStats; /** * Subscribe to flag changes. */ subscribe(listener: FlagChangeListener): () => void; /** * Shutdown the provider and all child providers. */ shutdown(): Promise; private getFlagsWithPriority; private getFlagsWithMerge; private getFlagsWithOverride; private handleProviderChange; private emitChange; private log; } /** * Create a composite provider instance. */ export declare function createCompositeProvider(config: CompositeProviderConfig): CompositeProvider;