import { ConfigSpec } from './ConfigSpec'; import Diagnostics from './Diagnostics'; import { EvaluationReason } from './EvaluationReason'; import { ExplicitStatsigOptions } from './StatsigOptions'; import { IDList } from './utils/IDListUtil'; import StatsigFetcher from './utils/StatsigFetcher'; export type ConfigStore = { gates: Record; configs: Record; idLists: Record; layers: Record; experimentToLayer: Record; }; export type DiagnosticsSamplingRate = { dcs: number; log: number; idlist: number; initialize: number; }; export declare const DEFAULT_API = "https://statsigapi.net/v1"; export type SDKConstants = DiagnosticsSamplingRate; export default class SpecStore { private initReason; private api; private apiForDownloadConfigSpecs; private rulesUpdatedCallback; private initialUpdateTime; private lastUpdateTime; private store; private syncInterval; private idListSyncInterval; private disableRulesetsSync; private disableIdListsSync; private initialized; private syncTimer; private idListsSyncTimer; private fetcher; private dataAdapter; private syncFailureCount; private syncTimerLastActiveTime; private idListsSyncTimerLastActiveTime; private diagnostics; private bootstrapValues; private initStrategyForIDLists; private samplingRates; private outputLogger; private sdkKey; constructor(sdkKey: string, fetcher: StatsigFetcher, options: ExplicitStatsigOptions, diagnostics: Diagnostics); getInitReason(): EvaluationReason; getInitialUpdateTime(): number; getLastUpdateTime(): number; getGate(gateName: string): ConfigSpec | null; getConfig(configName: string): ConfigSpec | null; getLayer(layerName: string): ConfigSpec | null; getExperimentLayer(experimentName: string): string | null; getIDList(listName: string): IDList | null; getAllGates(): Record; getAllConfigs(): Record; getAllLayers(): Record; init(): Promise; private _initIDLists; resetSyncTimerIfExited(): Error | null; isServingChecks(): boolean; private getResponseCodeFromError; private _fetchConfigSpecsFromServer; private _fetchConfigSpecsFromAdapter; private _saveConfigSpecsToAdapter; private pollForUpdates; private addDiagnosticsMarker; private logDiagnostics; syncBootstrapValues(bootstrapValues: string): boolean; syncValues(isColdStart?: boolean): Promise; syncIdLists(): Promise; private updateSamplingRates; private safeSet; private _process; /** * Returns a reverse mapping of layers to experiment (or vice versa) */ private _reverseLayerExperimentMapping; private syncIdListsFromDataAdapter; private syncIdListsFromNetwork; private genFetchIDList; shutdown(): void; private clearSyncTimer; private clearIdListsSyncTimer; private setInitialUpdateTime; }