featurehub-javascript-client-sdk
Version:
FeatureHub client/browser SDK
54 lines (53 loc) • 2.19 kB
TypeScript
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 {};