@forge/bridge

5.14.0-next.45.14.0-next.5
~

Modified (17 files)

Index: package/out/featureFlags/featureFlagEvents.js
===================================================================
--- package/out/featureFlags/featureFlagEvents.js
+++ package/out/featureFlags/featureFlagEvents.js
@@ -2,10 +2,10 @@
 Object.defineProperty(exports, "__esModule", { value: true });
 exports.trackFeatureFlagEvent = void 0;
 const bridge_1 = require("../bridge");
 const errors_1 = require("../errors");
-const types_1 = require("../types");
 const utils_1 = require("../utils");
+const types_1 = require("./types");
 const maxOps = 500;
 const intervalInMs = 1000 * 25;
 const callBridge = (0, bridge_1.getCallBridge)();
 const validatePayload = (payload) => {
Index: package/out/featureFlags/featureFlags.js
===================================================================
--- package/out/featureFlags/featureFlags.js
+++ package/out/featureFlags/featureFlags.js
@@ -1,65 +1,43 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.ForgeFeatureFlags = void 0;
-const js_client_1 = require("@statsig/js-client");
-const dataAdapter_1 = require("./dataAdapter");
-const types_1 = require("../types");
+exports.FeatureFlags = void 0;
+const evaluator_1 = require("./evaluator");
 const featureFlagEvents_1 = require("./featureFlagEvents");
-class ForgeFeatureFlags {
+const initFeatureFlags_1 = require("./initFeatureFlags");
+const types_1 = require("./types");
+class FeatureFlags {
     constructor() {
         this.initialized = false;
-        this.client = null;
-        this.dataAdapter = null;
         this.eventProps = {};
-        this.CLIENT_KEY = 'client-forge-internal-key';
     }
-    async initialize(user, config = {}) {
-        var _a;
+    async initialize(user, config = { environment: 'development' }) {
         if (this.isInitialized()) {
             return;
         }
-        this.dataAdapter = new dataAdapter_1.ForgeDataAdapter();
-        const options = {
-            environment: { tier: config.environment || 'development' },
-            disableEvaluationMemoization: false,
-            loggingEnabled: js_client_1.LoggingEnabledOption.disabled,
-            logLevel: js_client_1.LogLevel.None,
-            dataAdapter: this.dataAdapter
-        };
-        this.eventProps.environment = (_a = options.environment) === null || _a === void 0 ? void 0 : _a.tier;
-        this.client = new js_client_1.StatsigClient(this.CLIENT_KEY, this.convertUser(user), options);
-        await this.client.initializeAsync();
+        this.eventProps.environment = config.environment;
+        const result = await (0, initFeatureFlags_1.initFeatureFlags)({ user, config });
         this.initialized = true;
+        this.evaluator = new evaluator_1.Evaluator(result);
     }
-    checkFlag(flagName) {
-        if (!this.isInitialized() || !this.client) {
+    checkFlag(flagName, defaultValue = false) {
+        if (!this.isInitialized() || !this.evaluator) {
             this.sendCheckFlagEvent(flagName, false);
-            throw new Error('ForgeFeatureFlags not initialized. Call initialize() first.');
+            throw new Error('FeatureFlags not initialized. Call initialize() first.');
         }
         this.sendCheckFlagEvent(flagName, true);
-        return this.client.checkGate(flagName, { disableExposureLog: true });
+        return this.evaluator.checkFlag(flagName, defaultValue);
     }
-    async shutdown() {
-        if (!this.isInitialized() || !this.client) {
+    shutdown() {
+        if (!this.isInitialized()) {
             return;
         }
-        await this.client.shutdown();
-        if (this.dataAdapter) {
-            await this.dataAdapter.shutdown();
-        }
         this.initialized = false;
+        this.evaluator.shutDown();
     }
     isInitialized() {
         return this.initialized;
     }
-    convertUser(user) {
-        return {
-            userID: user.userId,
-            custom: { ...(user.custom || {}), ...(user.attributes || {}) },
-            customIDs: user.identifiers || {}
-        };
-    }
     sendCheckFlagEvent(flagName, success) {
         const props = {
             type: types_1.FeatureFlagEventType.CHECKFLAG,
             properties: {
@@ -71,5 +49,5 @@
         };
         void (0, featureFlagEvents_1.trackFeatureFlagEvent)(props);
     }
 }
-exports.ForgeFeatureFlags = ForgeFeatureFlags;
+exports.FeatureFlags = FeatureFlags;
Index: package/out/featureFlags/index.js
===================================================================
--- package/out/featureFlags/index.js
+++ package/out/featureFlags/index.js
@@ -1,5 +1,5 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.ForgeFeatureFlags = void 0;
+exports.FeatureFlags = void 0;
 var featureFlags_1 = require("./featureFlags");
-Object.defineProperty(exports, "ForgeFeatureFlags", { enumerable: true, get: function () { return featureFlags_1.ForgeFeatureFlags; } });
+Object.defineProperty(exports, "FeatureFlags", { enumerable: true, get: function () { return featureFlags_1.FeatureFlags; } });
Index: package/out/featureFlags/initFeatureFlags.js
===================================================================
--- package/out/featureFlags/initFeatureFlags.js
+++ package/out/featureFlags/initFeatureFlags.js
@@ -7,16 +7,16 @@
 const maxOps = 500;
 const intervalInMs = 1000 * 25;
 const callBridge = (0, bridge_1.getCallBridge)();
 const validatePayload = (payload) => {
-    if (!payload || !payload.user) {
+    if (!payload || !payload.user || !payload.config) {
         throw new errors_1.BridgeAPIError('Missing required parameters. Parameter user is required in the payload.');
     }
     if (Object.values(payload).some((val) => typeof val === 'function')) {
         throw new errors_1.BridgeAPIError('Passing functions as part of the payload is not supported!');
     }
 };
 const _initFeatureFlags = (payload) => {
     validatePayload(payload);
-    return callBridge('initFeatureFlags', { user: payload.user });
+    return callBridge('initFeatureFlags', { user: payload.user, config: payload.config });
 };
 exports.initFeatureFlags = (0, utils_1.withRateLimiter)(_initFeatureFlags, maxOps, intervalInMs, `Feature flags initialisation calls are rate limited at ${maxOps}req/${intervalInMs / 1000}s`);
Index: package/out/types.js
===================================================================
--- package/out/types.js
+++ package/out/types.js
@@ -1,7 +1,7 @@
 "use strict";
 Object.defineProperty(exports, "__esModule", { value: true });
-exports.FeatureFlagEventType = exports.ExtensionEnvironment = void 0;
+exports.ExtensionEnvironment = void 0;
 var ExtensionEnvironment;
 (function (ExtensionEnvironment) {
     ExtensionEnvironment["DEVELOPMENT"] = "DEVELOPMENT";
     ExtensionEnvironment["STAGING"] = "STAGING";
@@ -10,8 +10,4 @@
 var EcosystemLicenseMode;
 (function (EcosystemLicenseMode) {
     EcosystemLicenseMode["USER_ACCESS"] = "USER_ACCESS";
 })(EcosystemLicenseMode || (EcosystemLicenseMode = {}));
-var FeatureFlagEventType;
-(function (FeatureFlagEventType) {
-    FeatureFlagEventType["CHECKFLAG"] = "checkFlag";
-})(FeatureFlagEventType = exports.FeatureFlagEventType || (exports.FeatureFlagEventType = {}));
Index: package/package.json
===================================================================
--- package/package.json
+++ package/package.json
@@ -1,7 +1,7 @@
 {
   "name": "@forge/bridge",
-  "version": "5.14.0-next.4",
+  "version": "5.14.0-next.5",
   "description": "Forge bridge API for custom UI apps",
   "author": "Atlassian",
   "license": "SEE LICENSE IN LICENSE.txt",
   "main": "out/index.js",
@@ -17,9 +17,8 @@
     "@atlaskit/tokens": "^1.58.0",
     "@forge/egress": "^2.3.1",
     "@forge/i18n": "0.0.7",
     "@forge/resolver": "1.7.1",
-    "@statsig/js-client": "3.18.2",
     "@types/history": "^4.7.11",
     "@forge/manifest": "12.2.0-next.3",
     "@types/iframe-resizer": "^3.5.8",
     "iframe-resizer": "^4.4.5",
Index: package/out/featureFlags/featureFlagEvents.d.ts.map
===================================================================
--- package/out/featureFlags/featureFlagEvents.d.ts.map
+++ package/out/featureFlags/featureFlagEvents.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"featureFlagEvents.d.ts","sourceRoot":"","sources":["../../src/featureFlags/featureFlagEvents.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,4BAA4B,EAAwB,MAAM,UAAU,CAAC;AA8B9E,eAAO,MAAM,qBAAqB,0DAKjC,CAAC"}
\ No newline at end of file
+{"version":3,"file":"featureFlagEvents.d.ts","sourceRoot":"","sources":["../../src/featureFlags/featureFlagEvents.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,4BAA4B,EAAwB,MAAM,SAAS,CAAC;AA6B7E,eAAO,MAAM,qBAAqB,0DAKjC,CAAC"}
\ No newline at end of file
Index: package/out/featureFlags/featureFlags.d.ts.map
===================================================================
--- package/out/featureFlags/featureFlags.d.ts.map
+++ package/out/featureFlags/featureFlags.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"featureFlags.d.ts","sourceRoot":"","sources":["../../src/featureFlags/featureFlags.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAGlB,MAAM,WAAW,sBAAsB;IACrC,WAAW,CAAC,EAAE,sBAAsB,CAAC;CACtC;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,UAAU,CAAC,EAAE;QACX,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAID,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAKrD,UAAU,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,GAAE,sBAA2B,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB3F,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAa9B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAa/B,aAAa;IAIpB,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,kBAAkB;CAa3B"}
\ No newline at end of file
+{"version":3,"file":"featureFlags.d.ts","sourceRoot":"","sources":["../../src/featureFlags/featureFlags.ts"],"names":[],"mappings":"AAGA,OAAO,EAKL,eAAe,EACf,sBAAsB,EAEvB,MAAM,SAAS,CAAC;AAEjB,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,UAAU,CAAkC;IAKvC,UAAU,CACrB,IAAI,EAAE,eAAe,EACrB,MAAM,GAAE,sBAAuD,GAC9D,OAAO,CAAC,IAAI,CAAC;IAgBT,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO;IAa1D,QAAQ;IAQR,aAAa;IAIpB,OAAO,CAAC,kBAAkB;CAa3B"}
\ No newline at end of file
Index: package/out/featureFlags/index.d.ts.map
===================================================================
--- package/out/featureFlags/index.d.ts.map
+++ package/out/featureFlags/index.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/featureFlags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
\ No newline at end of file
+{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/featureFlags/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC"}
\ No newline at end of file
Index: package/out/featureFlags/initFeatureFlags.d.ts.map
===================================================================
--- package/out/featureFlags/initFeatureFlags.d.ts.map
+++ package/out/featureFlags/initFeatureFlags.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"initFeatureFlags.d.ts","sourceRoot":"","sources":["../../src/featureFlags/initFeatureFlags.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAA4B,MAAM,UAAU,CAAC;AAwB7E,eAAO,MAAM,gBAAgB,qDAK5B,CAAC"}
\ No newline at end of file
+{"version":3,"file":"initFeatureFlags.d.ts","sourceRoot":"","sources":["../../src/featureFlags/initFeatureFlags.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAA4B,MAAM,SAAS,CAAC;AAuB5E,eAAO,MAAM,gBAAgB,qDAK5B,CAAC"}
\ No newline at end of file
Index: package/out/types.d.ts.map
===================================================================
--- package/out/types.d.ts.map
+++ package/out/types.d.ts.map
@@ -1,1 +1,1 @@
-{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
\ No newline at end of file
+{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE7D,oBAAY,aAAa,GAAG;KACzB,GAAG,IAAI,MAAM,GAAG,MAAM,GAAG,GAAG;CAC9B,CAAC;AAEF,oBAAY,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AAExD,aAAK,aAAa,GAAG;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IACnC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,YAAY,CAAC,CAAC;AAEhD,oBAAY,oBAAoB,GAAG,aAAa,CAAC;AACjD,oBAAY,mBAAmB,GAAG,aAAa,CAAC;AAEhD,oBAAY,oBAAoB;IAC9B,WAAW,gBAAgB;IAC3B,OAAO,YAAY;IACnB,UAAU,eAAe;CAC1B;AAED,aAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,oBAAY,eAAe,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAEhE,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,eAAe,CAAC;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,wBAAwB,CAAC;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,WAAW,CAAC,EAAE,kBAAkB,CAAC;CAClC;AACD,UAAU,aAAa;IACrB,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED,aAAK,oBAAoB;IACvB,WAAW,gBAAgB;CAC5B;AACD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;IACtB,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAAC;CACtC;AAED,oBAAY,YAAY,GAAG;IACzB,WAAW,EAAE,MAAM,IAAI,CAAC;CACzB,CAAC;AAQF,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAGD,oBAAY,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAE3D,oBAAY,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC"}
\ No newline at end of file
Index: package/CHANGELOG.md
===================================================================
--- package/CHANGELOG.md
+++ package/CHANGELOG.md
@@ -1,6 +1,12 @@
 # @forge/bridge
 
+## 5.14.0-next.5
+
+### Minor Changes
+
+- Updated Feature flags client SDK to remove dependency on Statsig
+
 ## 5.14.0-next.4
 
 ### Minor Changes
Index: package/out/featureFlags/featureFlagEvents.d.ts
===================================================================
--- package/out/featureFlags/featureFlagEvents.d.ts
+++ package/out/featureFlags/featureFlagEvents.d.ts
@@ -1,3 +1,3 @@
-import { FeatureFlagEventTrackPayload } from '../types';
+import { FeatureFlagEventTrackPayload } from './types';
 export declare const trackFeatureFlagEvent: <T>(payload: FeatureFlagEventTrackPayload) => Promise<T>;
 //# sourceMappingURL=featureFlagEvents.d.ts.map
\ No newline at end of file
Index: package/out/featureFlags/featureFlags.d.ts
===================================================================
--- package/out/featureFlags/featureFlags.d.ts
+++ package/out/featureFlags/featureFlags.d.ts
@@ -1,33 +1,12 @@
-import { FeatureFlagEnvironment } from '../types';
-export interface ForgeFeatureFlagConfig {
-    environment?: FeatureFlagEnvironment;
-}
-export interface FeatureFlagUser {
-    userId?: string;
-    custom?: Record<string, string | number>;
-    attributes?: {
-        installContext?: string;
-        accountId?: string;
-        appVersion?: string;
-        license?: string;
-        capabilitySet?: string;
-    };
-    identifiers?: {
-        installContext?: string;
-        accountId?: string;
-    };
-}
-export declare class ForgeFeatureFlags {
+import { FeatureFlagUser, ForgeFeatureFlagConfig } from './types';
+export declare class FeatureFlags {
     private initialized;
-    private client;
-    private dataAdapter;
+    private evaluator;
     private eventProps;
-    private readonly CLIENT_KEY;
     initialize(user: FeatureFlagUser, config?: ForgeFeatureFlagConfig): Promise<void>;
-    checkFlag(flagName: string): boolean;
-    shutdown(): Promise<void>;
+    checkFlag(flagName: string, defaultValue?: boolean): boolean;
+    shutdown(): void;
     isInitialized(): boolean;
-    private convertUser;
     private sendCheckFlagEvent;
 }
 //# sourceMappingURL=featureFlags.d.ts.map
\ No newline at end of file
Index: package/out/featureFlags/index.d.ts
===================================================================
--- package/out/featureFlags/index.d.ts
+++ package/out/featureFlags/index.d.ts
@@ -1,2 +1,3 @@
-export { ForgeFeatureFlags, FeatureFlagUser, ForgeFeatureFlagConfig } from './featureFlags';
+export { FeatureFlags } from './featureFlags';
+export { FeatureFlagUser, ForgeFeatureFlagConfig } from './types';
 //# sourceMappingURL=index.d.ts.map
\ No newline at end of file
Index: package/out/featureFlags/initFeatureFlags.d.ts
===================================================================
--- package/out/featureFlags/initFeatureFlags.d.ts
+++ package/out/featureFlags/initFeatureFlags.d.ts
@@ -1,3 +1,3 @@
-import { InitFeatureFlagsPayload } from '../types';
+import { InitFeatureFlagsPayload } from './types';
 export declare const initFeatureFlags: <T>(payload: InitFeatureFlagsPayload) => Promise<T>;
 //# sourceMappingURL=initFeatureFlags.d.ts.map
\ No newline at end of file
Index: package/out/types.d.ts
===================================================================
--- package/out/types.d.ts
+++ package/out/types.d.ts
@@ -1,7 +1,6 @@
 import { type ForgeSupportedLocaleCode } from '@forge/i18n';
 import { type ThemeState } from '@atlaskit/tokens';
-import { StatsigUserInternal } from '@statsig/js-client';
 import { type Scopes, type External } from '@forge/manifest';
 export declare type InvokePayload = {
     [key in number | string]: any;
 };
@@ -63,25 +62,8 @@
 }
 export declare type Subscription = {
     unsubscribe: () => void;
 };
-export declare type InitFeatureFlagsPayload = {
-    user: StatsigUserInternal;
-};
-export declare type InitFeatureFlagsResponse = Record<string, any> | void;
-export declare enum FeatureFlagEventType {
-    CHECKFLAG = "checkFlag"
-}
-export declare type FeatureFlagEnvironment = 'development' | 'staging' | 'production';
-export declare type FeatureFlagEventProperties = {
-    environment?: FeatureFlagEnvironment;
-    success?: boolean;
-    name?: string;
-};
-export declare type FeatureFlagEventTrackPayload = {
-    type: FeatureFlagEventType;
-    properties: FeatureFlagEventProperties;
-};
 export interface RuntimePermissions {
     scopes?: Scopes;
     external?: External;
 }