UNPKG

featurehub-javascript-client-sdk

Version:
40 lines (39 loc) 2.07 kB
import { ClientContext } from './client_context'; import { FeatureStateHolder } from './feature_state'; import { FeatureStateValueInterceptor } from './interceptors'; import { AnalyticsCollector } from './analytics'; import { InternalFeatureRepository } from './internal_feature_repository'; import { CatchReleaseListenerHandler, ReadinessListenerHandle } from './feature_hub_config'; export declare enum Readyness { NotReady = "NotReady", Ready = "Ready", Failed = "Failed" } export interface ReadynessListener { (state: Readyness, firstTimeReady: boolean): void; } export interface PostLoadNewFeatureStateAvailableListener { (repo: InternalFeatureRepository): void; } export interface FeatureHubRepository { readyness: Readyness; catchAndReleaseMode: boolean; logAnalyticsEvent(action: string, other?: Map<string, string>, ctx?: ClientContext): any; hasFeature(key: string): undefined | FeatureStateHolder; feature(key: string): FeatureStateHolder; getFeatureState<T = any>(key: string): FeatureStateHolder<T>; release(disableCatchAndRelease?: boolean): Promise<void>; simpleFeatures(): Map<string, string | undefined>; getFlag(key: string): boolean | undefined; getString(key: string): string | undefined; getJson(key: string): string | undefined; getNumber(key: string): number | undefined; isSet(key: string): boolean; addValueInterceptor(interceptor: FeatureStateValueInterceptor): void; addReadynessListener(listener: ReadynessListener): number; addReadinessListener(listener: ReadynessListener, ignoreNotReadyOnRegister?: boolean): ReadinessListenerHandle; removeReadinessListener(listener: ReadynessListener | ReadinessListenerHandle): any; addAnalyticCollector(collector: AnalyticsCollector): void; addPostLoadNewFeatureStateAvailableListener(listener: PostLoadNewFeatureStateAvailableListener): CatchReleaseListenerHandler; removePostLoadNewFeatureStateAvailableListener(listener: PostLoadNewFeatureStateAvailableListener | CatchReleaseListenerHandler): any; }