UNPKG

featurehub-javascript-client-sdk

Version:
55 lines (54 loc) 3.08 kB
import { FeatureStateValueInterceptor, InterceptorValueMatch } from './interceptors'; import { FeatureStateHolder } from './feature_state'; import { AnalyticsCollector } from './analytics'; import { FeatureRolloutStrategy, SSEResultState } from './models'; import { ClientContext } from './client_context'; import { Applied, ApplyFeature } from './strategy_matcher'; import { InternalFeatureRepository } from './internal_feature_repository'; import { CatchReleaseListenerHandler, ReadinessListenerHandle } from './feature_hub_config'; import { PostLoadNewFeatureStateAvailableListener, Readyness, ReadynessListener } from './featurehub_repository'; export declare class ClientFeatureRepository implements InternalFeatureRepository { private hasReceivedInitialState; private features; private analyticsCollectors; private readynessState; private _readinessListeners; private _catchAndReleaseMode; private _catchReleaseStates; private _newFeatureStateAvailableListeners; private _matchers; private readonly _applyFeature; private _catchReleaseCheckForDeletesOnRelease?; constructor(applyFeature?: ApplyFeature); apply(strategies: Array<FeatureRolloutStrategy>, key: string, featureValueId: string, context: ClientContext): Applied; get readyness(): Readyness; notify(state: SSEResultState, data: any): void; private _checkForDeletedFeatures; addValueInterceptor(matcher: FeatureStateValueInterceptor): void; valueInterceptorMatched(key: string): InterceptorValueMatch | undefined; addPostLoadNewFeatureStateAvailableListener(listener: PostLoadNewFeatureStateAvailableListener): CatchReleaseListenerHandler; removePostLoadNewFeatureStateAvailableListener(listener: PostLoadNewFeatureStateAvailableListener | CatchReleaseListenerHandler): void; addReadynessListener(listener: ReadynessListener): ReadinessListenerHandle; addReadinessListener(listener: ReadynessListener, ignoreNotReadyOnRegister?: boolean): ReadinessListenerHandle; removeReadinessListener(listener: ReadynessListener | ReadinessListenerHandle): void; notReady(): void; broadcastReadynessState(firstState: boolean): void; addAnalyticCollector(collector: AnalyticsCollector): void; simpleFeatures(): Map<string, string | undefined>; logAnalyticsEvent(action: string, other?: Map<string, string>, ctx?: ClientContext): void; hasFeature(key: string): undefined | FeatureStateHolder; feature<T = any>(key: string): FeatureStateHolder<T>; getFeatureState<T = any>(key: string): FeatureStateHolder<T>; get catchAndReleaseMode(): boolean; set catchAndReleaseMode(value: boolean); release(disableCatchAndRelease?: boolean): Promise<void>; getFlag(key: string): boolean | undefined; getString(key: string): string | undefined; getJson(key: string): string | undefined; getNumber(key: string): number | undefined; isSet(key: string): boolean; private _catchUpdatedFeatures; private triggerNewStateAvailable; private featureUpdate; private deleteFeature; }