sinch-rtc
Version:
RTC JavaScript/Web SDK
30 lines (29 loc) • 1.12 kB
TypeScript
import { ApiClient } from "../ocra/ApiClient";
import { FeatureStorage } from "../storage/FeatureStorage";
import { FeatureFlag } from "../constants";
export type FeatureFlags = Map<FeatureFlag, boolean | number>;
export declare class Features {
private featureStorage;
private featureFlags;
private userId?;
private instanceId?;
private timeService;
private onFeatureChanged;
constructor(featureStorage: FeatureStorage);
getFeatureFlag(key: FeatureFlag): boolean | number | undefined;
private initialiseFeatureFlags;
shouldRefresh(): boolean;
setUserInstance(userId: string, instanceId: string, applicationKey: string): void;
refresh(apiClient: ApiClient): Promise<void>;
addListener(listener: (arg: FeatureFlags) => void): void;
resetListeners(): void;
private fetchFeatureFlags;
private updateFeatureFlags;
private updateAndPublishFeaturesIfNeeded;
private publishFeaturesChanged;
private hasFeaturesChanged;
private storeFeatures;
}
export declare class FeaturesFactory {
static create(featureStorage: FeatureStorage): Features;
}