featurehub-javascript-client-sdk
Version:
FeatureHub client/browser SDK
36 lines (35 loc) • 1.4 kB
TypeScript
import { FeatureValueType } from './models';
import { ClientContext } from './client_context';
export interface FeatureListener<T = any> {
(featureChanged: FeatureStateHolder<T>): void;
}
export type FeatureListenerHandle = number;
export interface FeatureStateHolder<T = any> {
getKey(): string | undefined;
get key(): string | undefined;
getString(): string | undefined;
get str(): string | undefined;
getBoolean(): boolean | undefined;
getFlag(): boolean | undefined;
get flag(): boolean | undefined;
getNumber(): number | undefined;
get num(): number | undefined;
getRawJson(): string | undefined;
get rawJson(): string | undefined;
isSet(): boolean;
get exists(): boolean;
isLocked(): boolean | undefined;
get locked(): boolean | undefined;
isEnabled(): boolean;
get enabled(): boolean;
addListener(listener: FeatureListener<T>): FeatureListenerHandle;
removeListener(handle: FeatureListener<T> | FeatureListenerHandle): any;
triggerListeners(feature?: FeatureStateHolder<T>): void;
get value(): T | undefined;
getVersion(): number | undefined;
get version(): number | undefined;
getType(): FeatureValueType | undefined;
get type(): FeatureValueType | undefined;
withContext(param: ClientContext): FeatureStateHolder;
get featureProperties(): Record<string, string> | undefined;
}