UNPKG

featurehub-javascript-client-sdk

Version:
54 lines (53 loc) 2.19 kB
import { FeatureListener, FeatureListenerHandle, FeatureStateHolder } from './feature_state'; import { FeatureState, FeatureValueType } from './models'; import { ClientContext } from './client_context'; import { InternalFeatureRepository } from './internal_feature_repository'; interface ListenerTracker { listener: FeatureListener; holder: FeatureStateHolder; } export declare class FeatureStateBaseHolder<T = any> implements FeatureStateHolder<T> { protected internalFeatureState: FeatureState | undefined; protected _key: string; protected listeners: Map<number, ListenerTracker>; protected _repo: InternalFeatureRepository; protected _ctx: ClientContext | undefined; protected parentHolder: FeatureStateBaseHolder | undefined; constructor(repository: InternalFeatureRepository, key: string, existingHolder?: FeatureStateBaseHolder); get key(): string; get str(): string | undefined; get flag(): boolean | undefined; get num(): number | undefined; get rawJson(): string | undefined; get exists(): boolean; get locked(): boolean; get enabled(): boolean; get version(): number; get type(): FeatureValueType | undefined; withContext(param: ClientContext): FeatureStateHolder; isEnabled(): boolean; addListener(listener: FeatureListener<T>): FeatureListenerHandle; removeListener(handle: FeatureListener<T> | FeatureListenerHandle): void; getBoolean(): boolean | undefined; getFlag(): boolean | undefined; getKey(): string; getNumber(): number | undefined; getRawJson(): string | undefined; getString(): string | undefined; isSet(): boolean; getFeatureState(): FeatureState | undefined; setFeatureState(fs: FeatureState | undefined): boolean; copy(): FeatureStateHolder; analyticsCopy(): FeatureStateBaseHolder; getType(): FeatureValueType | undefined; getVersion(): number; isLocked(): boolean; triggerListeners(feature: FeatureStateHolder): void; private _copy; private featureState; private _getValue; private _castType; get value(): T; get featureProperties(): Record<string, string> | undefined; } export {};