UNPKG

rox-ssr

Version:

Rollout.io ROX JS SDK Client for SSR

106 lines (105 loc) 3.82 kB
import { Flag } from './flag'; import { RoxString } from './string'; import { RoxNumber } from './number'; export { Flag } from './flag'; export { RoxString } from './string'; export { RoxNumber } from './number'; declare global { interface Window { rolloutData: any; } } export interface RoxContainer { [key: string]: Flag | RoxNumber | RoxString; } export declare enum RoxFetcherStatus { AppliedFromEmbedded = "APPLIED_FROM_EMBEDDED", AppliedFromCache = "APPLIED_FROM_CACHE", AppliedFromNetwork = "APPLIED_FROM_NETWORK", ErrorFetchFailed = "ERROR_FETCH_FAILED" } export interface RoxFetcherResult { fetcherStatus: RoxFetcherStatus; creationDate: Date; hasChanges: boolean; errorDetails?: string; clientData?: string; } export interface RoxReporting { name: string; value: string; } export interface RoxExperiment { identifier: string; name: string; isArchived: boolean; labels: string[]; } export interface SelfManagedOptions { serverURL: string; analyticsURL: string; pushUpdateURL?: string; configurationURL?: string; stateURL?: string; } export interface RoxSetupOptions { version?: string; configurationFetchedHandler?(fetcherResult: RoxFetcherResult): void; debugLevel?: 'verbose'; impressionHandler?(reporting: RoxReporting, context: any): void; platform?: string; fetchIntervalInSec?: number; disableNetworkFetch?: boolean; dynamicPropertyRuleHandler?(propName: string, context: any): object; disablePushUpdateListener?: boolean; devModeSecret?: string; roxy?: string; selfManaged?: SelfManagedOptions; disableSignatureVerification?: boolean; } export interface dynamicApi { isEnabled(nameSpacedFlagName: string, defaultValue: boolean, context?: any): boolean; value(nameSpacedFlagName: string, defaultValue: string, context?: any): string; getNumber(nameSpacedFlagName: string, defaultValue: number, context?: any): string; } export interface overrides { setOverride(nameSpacedFlagName: string, value: string): void; clearOverride(nameSpacedFlagName: string): void; clearAllOverrides(): void; getOriginalValue(nameSpacedFlagName: string): string; hasOverride(nameSpacedFlagName: string): boolean; } export declare enum RoxOverridesPosition { TopLeft = "top left", TopRight = "top right", BottomLeft = "bottom left", BottomRight = "bottom right" } export declare class _RoxClient { dynamicApi: dynamicApi; overrides: overrides; private alreadyInitialized; private _configurationFetchedHandlers; private _rolloutData; private _initialSetup; private _confFetchedHandlers; private _impressionHandlers; register(namespace: string, roxContainer: RoxContainer): void; register(roxContainer: RoxContainer): void; setup(apiKey: string, options?: RoxSetupOptions): Promise<void>; private _confFetchedHandler; private _impressionsHandler; _setup(apiKey: string, options?: RoxSetupOptions): Promise<void>; setContext(globalContext: any): void; setCustomNumberProperty(name: string, value: number | ((context?: any) => number)): void; setCustomStringProperty(name: string, value: string | ((context?: any) => string)): void; setCustomBooleanProperty(name: string, value: boolean | ((context?: any) => boolean)): void; setCustomDateProperty(name: string, value: Date | ((context?: any) => Date)): void; setCustomSemverProperty(name: string, value: string | ((context?: any) => string)): void; fetch(): void; showOverrides(position?: RoxOverridesPosition): void; private _configurationFetchedHandler; get rolloutData(): string; get flags(): ReadonlyArray<Flag | RoxString | RoxNumber>; } export declare const Rox: _RoxClient;