@splitsoftware/splitio-react
Version:
A React library to easily integrate and use Split JS SDK
34 lines (33 loc) • 1.69 kB
TypeScript
import { ISplitStatus } from './types';
/**
* ClientWithContext interface.
*/
interface IClientWithContext extends SplitIO.IBrowserClient {
__getStatus(): {
isReady: boolean;
isReadyFromCache: boolean;
isTimedout: boolean;
hasTimedout: boolean;
isDestroyed: boolean;
isOperational: boolean;
lastUpdate: number;
};
}
export interface IFactoryWithLazyInit extends SplitIO.IBrowserSDK {
config: SplitIO.IBrowserSettings;
init(): void;
}
export declare function getSplitClient(factory: SplitIO.IBrowserSDK, key?: SplitIO.SplitKey): IClientWithContext;
export declare function getStatus(client?: SplitIO.IBrowserClient): ISplitStatus;
/**
* Manage client attributes binding
*/
export declare function initAttributes(client?: SplitIO.IBrowserClient, attributes?: SplitIO.Attributes): void;
export declare function getControlTreatmentsWithConfig(featureFlagNames: unknown): SplitIO.TreatmentsWithConfig;
/**
* Gets a memoized version of the `client.getTreatmentsWithConfig` method.
* It is used to avoid duplicated impressions, because the result treatments are the same given the same `client` instance, `lastUpdate` timestamp, and list of feature flag `names` and `attributes`.
*/
export declare function memoizeGetTreatmentsWithConfig(): typeof evaluateFeatureFlags;
declare function evaluateFeatureFlags(client: SplitIO.IBrowserClient | undefined, _lastUpdate: number, names?: SplitIO.SplitNames, attributes?: SplitIO.Attributes, _clientAttributes?: SplitIO.Attributes, flagSets?: string[], options?: SplitIO.EvaluationOptions): import("@splitsoftware/splitio-commons/types/splitio").TreatmentsWithConfig;
export {};