import { FeatureFlag, Segment, SegmentId } from '../advanced/types'; import { WritableFlagProvider, LocalProviderConfig, FlagChangeListener, ProviderHealth, ProviderStats } from './types'; /** * Local/in-memory flag provider with optional persistence. */ export declare class LocalProvider implements WritableFlagProvider { readonly name: string; readonly priority: number; private flags; private segments; private listeners; private ready; private config; private stats; constructor(config?: LocalProviderConfig); /** * Initialize the provider. */ initialize(): Promise; /** * Get all flags. */ getFlags(): Promise; /** * Get a flag by key. */ getFlag(key: string): Promise; /** * Update or add a flag. */ updateFlag(flag: FeatureFlag): Promise; /** * Delete a flag. */ deleteFlag(key: string): Promise; /** * Set multiple flags at once. */ setFlags(flags: readonly FeatureFlag[]): Promise; /** * Get all segments. */ getSegments(): Promise; /** * Get a segment by ID. */ getSegment(id: SegmentId): Promise; /** * Update or add a segment. */ updateSegment(segment: Segment): Promise; /** * Delete a segment. */ deleteSegment(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; /** * Clear all flags and segments. */ clear(): Promise; /** * Export all data for backup. */ export(): { flags: FeatureFlag[]; segments: Segment[]; }; /** * Import data from backup. */ import(data: { flags?: FeatureFlag[]; segments?: Segment[]; }): Promise; private loadFromStorage; private saveToStorage; private saveSegmentsToStorage; private deserializeFlag; private deserializeSegment; private emitChange; private updateStats; private log; } /** * Create a local provider instance. */ export declare function createLocalProvider(config?: LocalProviderConfig): LocalProvider;